أهم أقسام المدونة

الصفحات

الخميس، 21 أبريل 2016

جداول قاعدة البيانات Tables:


جداول قاعدة البيانات Tables:

تتركّب قاعدة البيانات في الأساس من مجموعةٍ من الجداول، هي التي يتم تخزين البيانات بها.. فإذا لم تحتوِ قاعدة البيانات على أي جداول، كانت فارغة بلا قيمة.

فمثلا، لو لديك قاعدة بيانات خاصة بمكتبة، فسيوجد بها جدول يحتوى على عناوين الكتب الموجودة في المكتبة (وليكن اسمه Books)، وجدول آخر يحتوى على أسماءِ مؤلفي هذه الكتب (وليكن اسمه Authors)، وجدول ثالث يحتوى على أسماء دور النشر التي نشرت هذه الكتب (وليكن اسمه  Publishers).

ويتكون كل جدول من: 

أ. أعمدة Columns (وتسمّى حقولا Fields أيضا):
ويشبه العمود المتغيرات في لغات البرمجة، فله اسم ونوع.. وتختلف أسماء أنواع البيانات اختلافا طفيفا من قاعدة بيانات إلى أخرى، لكنها في النهاية تشبه أنواع البيانات الموجودة في لغات البرمجة، مثل الأعداد الصحيحة Integers، والأعداد الطويلة Long وغيرها.
وعند إنشاء الجدول، يجب تصميم الأعمدة بشكل صحيح لمراعاة التالي:
1- أن يكون اسم العمود معبرا عن البيانات التي سيتم تخزينها فيه.
2- أن يتم اختيار نوع البيانات المناسب لحفظ بيانات هذا العمود، بحيث:
- لا يكون كبيرا جدا فيهدر مساحة كبيرة على القرص الصلب ويبطئ من عمليات نقل البيانات عبر الشبكة.
- ولا يكون صغيرا جدا فيعجز عن استيعاب بعض البيانات الهامة، مما يسبب أخطاء في البرامج التي تحاول الكتابة في الجدول، أو يمنعها من كتابة بعض البيانات الهامة إن كانت هذه البرامج مصممة جيدا لمعالجة الأخطاء التي تحدث. 

ب. صفوف Rows (وتسمّى سجلات Records أيضا):
يحتوي الجدول على صفوف، كل صف منها يعتبر وحدة بيانات مستقلة، تحفظ القيم فيها تحت كل عمود من أعمدة الجدول.. فمثلا: لو لديك جدول خاص بتلاميذ إحدى المدارس، فسيحتوي هذا الجدول على أعمدة تمثل رقم الطالب واسمه وعمره وفصله، وسيكون لكل تلميذ صف (سجل) في هذا الجدول يحتوي على المعلومات الخاصة به، كما هو موضح:
 

ID
Name
Age
Class
1
أحمد علي
12
6
2
محمود رشوان
11
5
3
شريف عمران
6
1
 

ويمكن أن يحتوي الجدول على مئات أو آلاف الصفوف تبعا لاحتياجك.. وتتحكم العوامل التالية في الحد الأقصى من الصفوف المسموح بحفظه في جداول قاعدة البيانات:
1- مساحة التخزين المتوفرة على القرص الصلب الذي توجد عليه قاعدة البيانات.. وإن كانت بعض أنواع قواعد البيانات تسمح بتقسيم ملفاتها على أكثر من قرص صلب، للسماح بحفظ ملايين السجلات.
2- نوع قاعدة البيانات.. حيث إن بعض أنواع قواعد البيانات مثل Access مصممة للتعامل مع قواعد بيانات صغيرة نسبيا، لهذا ينصح بألا يزيد عدد السجلات المحفوظة في قاعدة البيانات الخاصة بها عن 100 ألف سجل، أو مليون سجل على أقصى تقدير!.. أعرف أن هذا يبدو رقما ضخما بالنسبة لك، ولكن في قواعد البيانات العملاقة هذا رقم في غاية التفاهة، وقواعد بيانات SQL Server و Oracle تتعامل مع سجلات تتجاوز عشرات وربما مئات الملايين!
3- نوع العمليات التي تجريها على الجدول.. فلو كنت تحتاج إلى إجراء عمليات كثيرة على الجداول، وكان هناك عدد كبير من المستخدمين الذين يتعاملون مع هذه الجداول في نفس اللحظة، فإن ضخامة أحجام الجداول تؤدي إلى إبطاء نقل البيانات وإبطاء عمليات الإضافة والحذف والبحث.. في مثل هذه الحالة ينصح بتقسيم الجدول إلى جداول أصغر فيما يعرف باسم عملية التطبيع Normalization.. هذه العملية يمكن أن تتم:
أ. رأسيا: وذلك بتقسيم الأعمدة على أكثر من جدول، مع ربطها معا باستخدام رقم السجل ID والذي يعرف في هذه الحالة باسم المفتاح Key.
ب. أفقيا: وذلك بتقسيم الصفوف على أكثر من جدول تبعا لعامل مشترك بينها.. مثلا: يمكن تقسيم الصفوف على حسب تواريخها، وبدلا من أن يكون لديك جدول واحد لكل السنوات، يكون لديك جدول لكل سنة (هذا مناسب لجدول التلاميذ على سبيل المثال).. كما يمكنك أن تقوم بعملية تطبيع لقاعدة البيانات كلها، بتقسيمها إلى عدد من قواعد البيانات، تبعا للعام، أو المنطقة الجغرافية إلخ.
ويتحكم نوع المشروع الذي تتعامل معه وطبيعة بياناته، في كيفية حل مشاكل تضخم قواعد البيانات، وكيفية تقسيمها.. لهذا من المهم أن تحلل النظام الذي تتعامل معه جيدا لاختيار أكفأ تصميم لقاعدة البيانات منذ البداية، لأن محاولة حل مشكلة ظهرت بعد عدة سنوات من العمل على النظام، قد تكون مكلفة جدا ومضيعة للوقت والجهد، وربما تؤدي إلى إعادة كتابة البرامج كلها منذ البداية! 

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت DO .NET
للتنزيل من مكتبة الكتب العربية برابط مباشر:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.