قواعد البيانات Database

لا يوجد نظام برمجي تقريبا الا ويستخدم قواعد البيانات وذلك لتخزين واسترجاع البيانات للنظام، تتميز قواعد البيانات بتجميع المعلومات مقسمة في جداول ومرتبطة مع بعضها البعض ضمن علاقات تساعد هذه العلاقات في الجدول وتسهل الاستعلام عن بيانات ومعلومات متوزعة في اكثر من جدول معين ضمن شروط معينة، ويعتبر برنامج حاسوب المحرك لقاعدة البيانات (Database Engine) وذلك بتسهيل التعامل معها والبحث ضمن هذه البيانات، وتمكين المستخدم من الإضافة والتعديل عليها.

يتم استرجاع البيانات باستخدام أوامر من لغة الاستعلام حيث تعتبر معلومات تساعد في عملية اتخاذ القرار.

وفى حال وجود علاقة بين جداول قاعدة البيانات يسمى هذا بنظام قواعد البيانات العلائقية (Relational Database Management System – RDBMS)  الهدف الأساسي لقواعد البيانات هو التركيز على طريقة تنظيم البيانات وليس على التطبيقات الخاصة. أي أن الهدف الرئيسي لمصمم قاعدة البيانات هو تصميم البيانات بحيث تكون خالية من التكرار ويمكن استرجاعها وتعديلها والإضافة عليها دون المشاكل التي يمكن أن تحدث مع وجود التكرار فيها. يتم ذلك عن طريق ايجاد ثلاث مستويات من التجريد أو النماذج لقواعد البيانات تسمى نماذج التطبيع (Normalizing Forms)، ويقصد بها جعل تركيبة البيانات أقرب للطبيعة التصنيفية.

هناك عدة بيئات لعمل قواعد البيانات ومنها:

Oracle

MySql

Microsoft SQL Server

Microsoft Access

IBM DB2

ما هي نظرية تسوية جداول قواعد البيانات  Database Table and Normalization:

التسوية هي عملية تعين صفات لجدول ما. مثل تحديد صفات لجدول الموظفين: حيث من صفاتة الأساسية وجود رقم للموظف، أسم الموظف. وتمر هذه العملية بعدة مراحل تسمى شكل التسوية (Normal Forms) وهي تصنف بالتوالي:

الشكل الأول للتسوية (1NF)
الشكل الثاني للتسوية (2NF)
الشكل الثالث للتسوية (3NF)

وحسب الترتيب فإن الشكل الثاني للتسوية الجدول أفضل من الشكل الأول، ويعتبر الثالث أفضل من الثاني، كلما قمنا بتسوية الجدول نكون قد حسنا من تصميمنا لقاعدة البيانات.
ولكل مستوى من التسوية شروط يجب استفائها قبل انتقاله من مستوى الى مستوى أخر في التصنيف. وستم التطرق لك مستوى على حدى لحقا. وقبل القيام بذلك يجب التعرف على بعض المصطلحات المتعلقة بالجداول لتسهيل عملية التحليل بغرض تسوية الجدول.

مصطلحات أساسية لصفات (حقول) الجدول:
يتم مراجة بعض المفاهيم الأساسية لتسهيل عملية فهم فروقات كل مستوى من التسوية (ضروري جدا)
أنواع الحقول في الجدول:
حقل مفتاح للجدول (Key Attribute)
حقل غير مفتاح للجدول ( Non-key Attribute )
ما هو الفرق بين المفتاح وغير المفتاح، والفرق جدا بسيط ما يميز حقل مفتاح الجدول هو:
اشتراط أن قمية الحقل لا يمكن أن تتكرر (NO Duplicate ) – توضيح: لتحديد سجل واحد فقط

أن يكون الحقل مفهرس (Indexed) – توضيح: لتسريع عملية البحث

وهذا ما يميز حقول المفاتيح. مثال على ذلك:

جدول الموظفين(رقم الموظف، والأسم الأول، الفئة الوظيفية، تكلفةالفئة بالساعة) يتم وضع خط تحت المفتاح الأساسي للجدول
أسم الجدول(المفتاح الأساسي ، مفتاح أجنبي،الحقول الأخرى)

من المنطقي عدم تكرار رقم الموظف لأكثر من موظف، أما الأسم الأول فقد يكون لدينا أكثر من موظف اسمه محمد أو عبدالله.

علاقة الحقول ببعضها:
توجد نوعين اساسين من العلاقة للحقول:
عتماد على مفتاح أساسي، وهي اعتماد حقل غير مفتاح لحقل أخر مفتاح لتحديد قيمتها. مثل أعتماد اسم الموظف على رقم الموظف في المثال السابق.
اعتماد على حقل غير مفتاح، وهي اعتماد حقل على حقل أخر غير مفتاح بالجدول. مثل على ذلك بالنظر للمثال السابق يتم تحديد التكلفة بالساعة حسب الفئة الوظيفية. حيث أن ولا واحد منهم يعتبر مفتاح بالجدول.

ماهي المجموعة المكرره؟
عند وجود جدول يوجد فيه اعتماد حقل غير مفتاح على حقل أخر غير مفتاح يتكون لدينا مجموعة مكرره. أو عند تحديد أكثر من قيمة لحقل واحد. وستم توضيح كذلك في أمثلة لاحقة.

شروط المستويات لــــ Normalization:
سيتم ذكر شروط كل مستوى من خلال مثال يظهر كيفية تحويل أي جدول من مستوى إلى أخر.
والمثال عبارة عن قاعدة بيانات لشركة مقاولات ترغب في معرفة كل موظف وماهو المشروع الذي يعمل فيه ومع احتساب التكلفة لكل موظف حسب الساعة.
فقام احد الموظفين بأخذ التقرير اليومي البسيط من مديرة المباشر وقام بانشاء جدول في قاعدة البيانات تعكس حقول الجدولن وهو موجود ادناه

الجدول الأول
T1

اعتقد الموظف بأن العمل انتها للجدول وكاد ان يسلمة لمديرة ولكن لاحظ بأن بعض السجلات لا يوجد لها مفتاح ؟
فقرر أن يضيف رقم المشروع لكل سجل وجعل مفتاح للسجل وكما اضاف اسم المشروع، فقام بتحويل الجدول إلى ما يلي :

الجدول الثاني
T2

ملاحظ: كل سجل ممثل بسطر والرقم الذي تحتة حظ يعني مفتاح أساسي للجدول

ولكن الموظف اكتشف بأن كل سجل سيتكرر فية رقم المشروع ولا يكمن تحديد الموظف فقر بإضافة رقم الموظف كفتاح اساسي، فأصبح للجدول مفتاح مركب (رقم المشروع + رقم الموظف).

المستوى الأول:
وما قام به الموظف دون علم هو تحويل الجدول إلى المستوى الأول من التسوية بكل بساطة حيث أن شروطها كما يلي:

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

رقم المشروع + رقم الموظف ,اسم المشروع، اسم الموظف، الفئة الوظيفية، تكلفة الساعة، عدد الساعات

المستوى الثاني:

ويشترط ما لي:
أن يكون الجدول في المستوى الأول وحقق شروطها
إزاله أي حقل يعتمد على جزئ من المفتاح

رقم المشروع + رقم الموظف , اسم المشروع، اسم الموظف، الفئة الوظيفية، تكلفة الساعة، عدد الساعات

اللون الأخضر: اعتماد اسم المشروع على رقم المشروع فقط
اللون الاحمر: اعتماد اسم الموظف والفئة والتكلفة على رقم الموظف فقط

ولكي يتمكن الموظف من تحويل جدوله البسط السابق إلى المستوى التالي يستلزم إنشاء جداول إضافة وهي:

جدول المشروع  (رقم المشروع، اسم الشروع)

جدول الموظف (رقم الموظف، اسم الموظف، الفئة الوظيفية، تكلفة الساعة)

جدول التكليف (رقم الموظف، رقم المشروع، عدد ساعات العمل)

وبهذا نحصل على المستوى الثاني من تسوية الجداول حيث يتم ربط الجداول باستخدام المفتاح الأجنبي (رقم المشروع في جدول التكليف عبارة عن مفتاح اساسي بجدول المشروع ولكن مفتاح اجنبي في جدول التكليف.

المستوى الثالث:

ولكن تكمن مشكل واحده، هو وجود بعض الحقول في جدول الموظف لا تعتمد على المفتاح الأساسي وهي

جدول الموظف (رقم الموظف، اسم الموظف، الفئة الوظيفية، تكلفة الساعة)

وشروط المستوى الثالث هي:
1- أن تكون في المستوى الثاني
2- عدم وجود حقل غير مفتاح يعتمد على حقل غير مفتاح

ولكي يتم تحويل تصميم الموظف السابق لهذا المستوى يجب إضافة جدول الفئة الوظيفية وربطها بالموظف من خلال متاح أجنبي نحصل على:

جدول الفئة الوظيفية (الفئة الوظيفية ، تكلفة الساعة)

وتصبح باقي الجداول كما يلي:

جدول المشروع(رقم المشروع، اسم الشروع)

جدول الموظف (رقم الموظف، اسم الموظف، الفئة الوظيفية)

جدول التكليف (رقم الموظف، رقم المشروع، عدد ساعات العمل)

جدول الفئة الوظيفية (الفئة الوظيفية ، تكلفة الساعة)

Tagged , , , . Bookmark the permalink.