تُعرف هذه الوحدة الطلاب بنموذج البيانات العلائقية (Relational Data Model)، مع شرح الخصائص الأساسية للجداول، المفاهيم المرتبطة بالعلاقات بين البيانات، والمصطلحات الأساسية، مع تقديم أمثلة عملية وتمارين تطبيقية.
تُعرف هذه الوحدة الطلاب بنموذج البيانات العلائقية (Relational Data Model)، مع شرح الخصائص الأساسية للجداول، المفاهيم المرتبطة بالعلاقات بين البيانات، والمصطلحات الأساسية، مع تقديم أمثلة عملية وتمارين تطبيقية.
يُعد نموذج البيانات العلائقية (Relational Data Model) حجر الزاوية في تصميم معظم قواعد البيانات الحديثة، وقد تم تقديمه لأول مرة بواسطة إدجار كود (E.F. Codd) في عام 1970. يعتمد هذا النموذج على مفهوم بسيط ولكنه قوي: تنظيم البيانات في جداول (Tables). كل جدول يمثل كيانًا (Entity) في العالم الحقيقي (مثل طالب، منتج، موظف) أو علاقة (Relationship) بين كيانات متعددة.
المكونات الأساسية للنموذج العلائقي هي:
هي البنية الرئيسية لتخزين البيانات. يتكون كل جدول من مجموعة من الصفوف والأعمدة. يُشار إلى الجدول أحيانًا بـ "العلاقة" (Relation) في سياق النموذج العلائقي.
كل صف في الجدول يمثل سجلاً فرديًا (Record) أو كيانًا واحدًا (Entity). على سبيل المثال، في جدول "الطلاب"، كل صف يمثل طالبًا واحدًا بكل بياناته.
كل عمود في الجدول يمثل خاصية (Property) أو سمة (Attribute) للكيان الذي يمثله الجدول. على سبيل المثال، في جدول "الطلاب"، قد تكون "اسم الطالب" أو "تاريخ الميلاد" أعمدة.
لا تكون الجداول معزولة؛ بل ترتبط ببعضها البعض منطقياً لتمثيل العلاقات في العالم الحقيقي. تُحدد هذه العلاقات بشكل أساسي عبر المفاتيح الرئيسية (Primary Keys - PK) والمفاتيح الخارجية (Foreign Keys - FK)، مما يضمن التكامل المرجعي (Referential Integrity).
تخيل نظامًا لإدارة الطلاب في جامعة. يمكن أن تُنظّم البيانات في الجداول التالية:
| جدول الطلاب (Students) | جدول المقررات (Courses) | جدول التسجيل (Enrollment) | ||||
|---|---|---|---|---|---|---|
StudentID (PK) |
Name |
CourseID (PK) |
CourseName |
EnrollmentID (PK) |
StudentID (FK) |
CourseID (FK) |
| 101 | أحمد | CS101 | مقدمة في البرمجة | 1 | 101 | CS101 |
| 102 | سارة | DB201 | تصميم قواعد البيانات | 2 | 101 | DB201 |
| 3 | 102 | CS101 | ||||
العلاقة هنا هي: كل طالب يمكن أن يسجل في عدة مقررات، وكل مقرر يمكن أن يسجله عدة طلاب. هذه تُعرف بعلاقة "متعدد إلى متعدد" (Many-to-Many)، والتي يتم تمثيلها في النموذج العلائقي عادةً بجدول وسيط (هنا جدول `Enrollment`) يحتوي على المفاتيح الخارجية من الجدولين الأساسيين.
لكي يكون الجدول جزءًا صالحًا من النموذج العلائقي، يجب أن يلتزم بخصائص محددة تضمن سلامة البيانات واتساقها:
لا يهم الترتيب الذي تُخزن به الصفوف داخل الجدول. ترتيب إدخال البيانات أو عرضها لا يؤثر على المعنى المنطقي للبيانات المخزنة. يمكن لـ DBMS عرض الصفوف بأي ترتيب (مثل الترتيب الأبجدي حسب الاسم، أو حسب التاريخ) دون تغيير البيانات نفسها.
لكل عمود في الجدول اسم فريد داخل ذلك الجدول، ونوع بيانات محدد (مثل نص، رقم، تاريخ، منطقي). هذا يضمن أن البيانات في كل عمود متجانسة ومتسقة.
يجب أن يحتوي كل جدول على مفتاح رئيسي (Primary Key) أو مجموعة من الأعمدة التي تضمن أن كل صف مميز وفريد ولا يتكرر في الجدول. قيمة المفتاح الرئيسي لا يمكن أن تكون فارغة (`NULL`).
نتيجة لوجود المفتاح الرئيسي، لا يُسمح بوجود صفين متماثلين تمامًا في نفس الجدول. هذا يضمن عدم تكرار البيانات ويحافظ على سلامتها.
يتم إنشاء العلاقات بين الجداول باستخدام المفاتيح الخارجية (Foreign Key). هذا يضمن التكامل المرجعي، أي أن أي قيمة في المفتاح الخارجي يجب أن تتطابق مع قيمة موجودة في المفتاح الرئيسي للجدول المرتبط، أو أن تكون قيمة فارغة (إذا سُمح بذلك).
يجب أن تحتوي كل خلية (تقاطع الصف والعمود) في الجدول على قيمة واحدة فقط وغير قابلة للتجزئة (Atomic Value). على سبيل المثال، لا يجب أن يحتوي عمود "رقم الهاتف" على رقمين هاتف في خلية واحدة.
على غرار الصفوف، لا يؤثر ترتيب الأعمدة في الجدول على المعنى المنطقي للبيانات المخزنة. يمكن تغيير ترتيب عرض الأعمدة دون التأثير على بنية أو سلامة البيانات.
لفهم النموذج العلائقي بعمق، يجب استيعاب المصطلحات والمفاهيم الأساسية التالية:
هو عمود أو مجموعة من الأعمدة في الجدول يُعرّف كل سجل (صف) بشكل فريد. لا يمكن أن يحتوي على قيم مكررة أو قيم فارغة (NULL). يُستخدم لضمان هوية فريدة لكل سجل وكمفتاح لربط الجداول الأخرى به.
EmployeeID (معرف الموظف) هو مفتاح رئيسي مثالي.
هو عمود أو مجموعة من الأعمدة في جدول ما (يُعرف بـ "الجدول الفرعي" أو "جدول الابن") يشير إلى المفتاح الرئيسي في جدول آخر (يُعرف بـ "الجدول الرئيسي" أو "جدول الأب"). وظيفته الأساسية هي ربط الجدولين معًا وضمان التكامل المرجعي (Referential Integrity).
| جدول الأقسام (Departments) | جدول الموظفين (Employees) | |||
|---|---|---|---|---|
DeptID (PK) |
DeptName |
EmpID (PK) |
EmpName |
DeptID (FK) |
| D01 | الموارد البشرية | 101 | علي | D01 |
| D02 | التسويق | 102 | سارة | D02 |
| 103 | فهد | D01 | ||
هنا، DeptID في جدول الأقسام هو المفتاح الرئيسي (PK). بينما DeptID في جدول الموظفين هو المفتاح الخارجي (FK) الذي يربط كل موظف بالقسم الذي ينتمي إليه. لا يمكن لموظف أن ينتمي لقسم غير موجود في جدول الأقسام.
تشير إلى العلاقة بين الأعمدة داخل الجدول، حيث تُحدد قيمة عمود واحد أو أكثر قيمة عمود آخر. تُستخدم لضمان تناسق البيانات وهي أساس لعملية التوحيد (Normalization) التي ستتعلمها لاحقًا.
في سياق النموذج العلائقي، مصطلح "العلاقة" يُستخدم للإشارة إلى الجدول (Table) نفسه. يُطلق عليه "علاقة" لأنه يمثل مجموعة من الكائنات (الصفوف) التي ترتبط بسمات (الأعمدة).
هو مصطلح بديل لـ "العمود" أو "الحقل". يمثل خاصية محددة أو وصفًا لكل سجل (كيان) في الجدول.
هو مصطلح بديل لـ "الصف" أو "السجل". يمثل كيانًا فرديًا كاملاً أو "مجموعة من الحقائق المترابطة" داخل الجدول.
| المصطلح (الإنجليزية) | المصطلح (العربية) | التعريف |
|---|---|---|
| Relational Data Model (RDM) | نموذج البيانات العلائقية | نموذج لتنظيم البيانات في جداول مترابطة. |
| Relation / Table | علاقة / جدول | تمثيل منطقي لمجموعة سجلات متشابهة الخصائص (الهيكل الأساسي لتخزين البيانات). |
| Tuple / Row / Record | صف / سجل | سجل فردي كامل في الجدول يمثل كيانًا واحدًا (مثل بيانات موظف واحد). |
| Attribute / Column / Field | عمود / سمة / حقل | خاصية واحدة لكل سجل (مثل الاسم، العمر، الراتب). |
| Primary Key (PK) | المفتاح الرئيسي | عمود أو مجموعة أعمدة تُعرف كل سجل بشكل فريد داخل الجدول، ولا يمكن أن تكون فارغة أو مكررة. |
| Foreign Key (FK) | المفتاح الخارجي | عمود في جدول ما يشير إلى المفتاح الرئيسي في جدول آخر، لربط الجدولين وضمان التكامل المرجعي. |
| Referential Integrity | التكامل المرجعي | قاعدة تضمن أن القيم في المفتاح الخارجي يجب أن تتطابق مع قيمة موجودة في المفتاح الرئيسي المرتبط، أو تكون قيمة فارغة. |
| Dependency | الاعتمادية | العلاقة التي تُحدد فيها قيمة عمود (أو مجموعة أعمدة) قيمة عمود آخر. |
| Candidate Key | مفتاح محتمل | أي عمود أو مجموعة أعمدة يمكن أن تكون مفتاحًا رئيسيًا (تُعرف السجلات بشكل فريد ولا تحتوي على تكرار). |
| Composite Key | مفتاح مركب | مفتاح يتكون من أكثر من عمود واحد معًا لتمييز السجلات بشكل فريد. |
| Domain | نطاق | مجموعة جميع القيم الممكنة التي يمكن أن يأخذها عمود معين. |
| Schema (Relational) | تخطيط (علائقي) | وصف هيكلي للجدول في النموذج العلائقي، يتضمن اسم الجدول، أسماء الأعمدة، ونوع بياناتها. |
اختبر فهمك لمفاهيم هذه الوحدة بالإجابة على الأسئلة التالية: