قواعد أساسية في بناء قواعد البيانات ( سلسلة كن محترفاً )
السلام عليكم وحمه الله وبركاته
نصيحة لكل مبرمج sql لا تقم بالتعامل مع قاعده البيانات على اساس انها مخزن او مستودع فقط ...
وانما صممت قواعد البيانات لهدف اسمى من هذا ... الا وهو اداره البيانات والاداء
وحيث ذلك فيجب علينا اظهار بعض التقدير والاحترام لمدير البيانات (قاعده البيانات)
مقدمه طويله !! ولكن سوف ادخل فى الموضوع
سوف اعرض عليكم ان شاء الله بعض التوصيات و التأكدات المطروحه من خبراء اداره البيانات ...
حيث ان الهدف من ذلك هو مراقبه الاداء الوظيفى لها ... ليس فقط اجراء اوامر SQL عليها ...
عند قيامك بانشاء قاعده بيانات يجب عليك الاخذ ما يلى :
- اسم قاعده البيانات يجب ان يعبر عن محتواها
- لو انك سوف تنشىء قاعده البينات على سيرفر من الافضل تركها على المسار الافتراضى الذى يحدده لك مزود sql server - مفيد فى العمل الجماعى بالتأكيد ..
- مدى مقدار سعه قاعده النظام التى ستعمل عليه ...
يختلف باختلاف المجال .. مصنع - مشفى - منفذ بيع ...
* لا تترك جدولا بدون مفتاح اساسى primary key حتى ولو كنت لن تستخدم امكانات هذا المفتاح.
- يجب ان يدل اسم الحقل على محتواه ( من مبادىء الانتظام [Normalization] )
بحيث على سبيل المثال اسم المنتج= ProductName سعر المنتج= ProductPrice
هذا لك ولغيرك من المطورين - ان كان العمل جماعيا - او فى حاله خيانه الذاكره !!
- لو انك تريد ترك البيانات ( اسماء الحقول ) بدون Normalization يجب ان تضع بعض المعلومات التوضيحيه عن اسم الحقل .
الاستعلامات :
بما ان الهدف الاساسى الاول من استخدام قاعده البيانات هو التخزين فالهدف الاساسى الثانى من قاعده البيانات هو الاستعلام
وهناك بعض الاعتبارات عند الاستعلام لتحصل على اداء افضل من قاعده البيانات ...
- عن القيام بالتصريح عن جمل SELECT يجب ان تكون دقيقا ...
حيث ان كنت تريد حقل او اثنين فقط من الجدول : لا تقوم باحتيار كل الحقول ...
مثال :
رمز:
select * form Table
فى حال انى لا اريد كل الحقول من الجدول فان هذه العباره خاطئه 100 %
ولا تعبر عن اداءك البرمجى الصحيح
ولكن قل :
رمز:
select Feild1 , Feild2 , From Table
- تجنب انشاء جداول وهميه فى الذاكره فى حال انه يمكن الاستغناء عنها ... لان ةذلك يتكلف مجهود اكبر على كافه الاطراف المعنيه بالنظام ( نظام التشغيل - قاعده البيانات - بيئه التطوير )
- وقم بالاستعانه اما بانشاء جدول فى قاعده بيانات مختلفه (صغيره) او بانشاء جدول بنفس التركيب فى نفس قاعده البيانات ... هذا اسرع واسهل فى الاداره ...
- بعض الحالات يتطلب الامر انشاء جداول وهميه كما مع ADO.Net Offline Mode فان كان ولابد فقم بحذف الجدول بعد الانتهاء - او تفريغه - كما الحال مع سله المشتريات الموجوده فى معظم مواقع التسويق.
بعض المعاملات التى تتسبب فى بطء الاستجابه للاوامر :
تخيل انك تدير قاعده بيانات لشركه اتصالات مثلا تحتوى على بيانات اكثر من 20 مليون عميل
وتحاول استخراج بيانات ينطبق عليها شرط معين
بقدر الامكان حاول عدم استخدام المعاملات التاليه الا فى حالات العجز عن ايجاد النتائج الموجوه فعلا
رمز:
<> - Not - OR
وقم باستخدام المعامل where لتقليص النتيجه قدر الامكان وايضا لتسهيل عمليه الاسترجاع
واخيرا ولبس اخرا ... حاول بقدر الامكان استخدام stored procedures لانها مفيده جدا فى عمليه السرعه مع عمليات INSERT _ UPDATE _ DELETE_ SELECT
وجزاكم الله خيرا
نصيحة لكل مبرمج sql لا تقم بالتعامل مع قاعده البيانات على اساس انها مخزن او مستودع فقط ...
وانما صممت قواعد البيانات لهدف اسمى من هذا ... الا وهو اداره البيانات والاداء
وحيث ذلك فيجب علينا اظهار بعض التقدير والاحترام لمدير البيانات (قاعده البيانات)
مقدمه طويله !! ولكن سوف ادخل فى الموضوع
سوف اعرض عليكم ان شاء الله بعض التوصيات و التأكدات المطروحه من خبراء اداره البيانات ...
حيث ان الهدف من ذلك هو مراقبه الاداء الوظيفى لها ... ليس فقط اجراء اوامر SQL عليها ...
عند قيامك بانشاء قاعده بيانات يجب عليك الاخذ ما يلى :
- اسم قاعده البيانات يجب ان يعبر عن محتواها
- لو انك سوف تنشىء قاعده البينات على سيرفر من الافضل تركها على المسار الافتراضى الذى يحدده لك مزود sql server - مفيد فى العمل الجماعى بالتأكيد ..
- مدى مقدار سعه قاعده النظام التى ستعمل عليه ...
* لا تترك جدولا بدون مفتاح اساسى primary key حتى ولو كنت لن تستخدم امكانات هذا المفتاح.
- يجب ان يدل اسم الحقل على محتواه ( من مبادىء الانتظام [Normalization] )
هذا لك ولغيرك من المطورين - ان كان العمل جماعيا - او فى حاله خيانه الذاكره !!
- لو انك تريد ترك البيانات ( اسماء الحقول ) بدون Normalization يجب ان تضع بعض المعلومات التوضيحيه عن اسم الحقل .
الاستعلامات :
بما ان الهدف الاساسى الاول من استخدام قاعده البيانات هو التخزين فالهدف الاساسى الثانى من قاعده البيانات هو الاستعلام
وهناك بعض الاعتبارات عند الاستعلام لتحصل على اداء افضل من قاعده البيانات ...
- عن القيام بالتصريح عن جمل SELECT يجب ان تكون دقيقا ...
مثال :
رمز:
select * form Table
فى حال انى لا اريد كل الحقول من الجدول فان هذه العباره خاطئه 100 %
ولا تعبر عن اداءك البرمجى الصحيح
ولكن قل :
رمز:
select Feild1 , Feild2 , From Table
- تجنب انشاء جداول وهميه فى الذاكره فى حال انه يمكن الاستغناء عنها ... لان ةذلك يتكلف مجهود اكبر على كافه الاطراف المعنيه بالنظام ( نظام التشغيل - قاعده البيانات - بيئه التطوير )
- وقم بالاستعانه اما بانشاء جدول فى قاعده بيانات مختلفه (صغيره) او بانشاء جدول بنفس التركيب فى نفس قاعده البيانات ... هذا اسرع واسهل فى الاداره ...
- بعض الحالات يتطلب الامر انشاء جداول وهميه كما مع ADO.Net Offline Mode فان كان ولابد فقم بحذف الجدول بعد الانتهاء - او تفريغه - كما الحال مع سله المشتريات الموجوده فى معظم مواقع التسويق.
بعض المعاملات التى تتسبب فى بطء الاستجابه للاوامر :
تخيل انك تدير قاعده بيانات لشركه اتصالات مثلا تحتوى على بيانات اكثر من 20 مليون عميل
وتحاول استخراج بيانات ينطبق عليها شرط معين
بقدر الامكان حاول عدم استخدام المعاملات التاليه الا فى حالات العجز عن ايجاد النتائج الموجوه فعلا
رمز:
<> - Not - OR
وقم باستخدام المعامل where لتقليص النتيجه قدر الامكان وايضا لتسهيل عمليه الاسترجاع
واخيرا ولبس اخرا ... حاول بقدر الامكان استخدام stored procedures لانها مفيده جدا فى عمليه السرعه مع عمليات INSERT _ UPDATE _ DELETE_ SELECT
وجزاكم الله خيرا
0