العودة إلى الدورة

المفاتيح الجزء 2: المفاتيح الخارجية (FK) والعلاقات

أساسيات قواعد البيانات: من الصفر إلى الاحتراف

الدرس 8: المفاتيح الجزء 2: المفاتيح الخارجية (FK) والعلاقات

بينما تحدد المفاتيح الأساسية السجلات داخل جدول واحد، فإن المفاتيح الخارجية (Foreign Keys) هي التي تربط جدولين ببعضهما البعض، وتحدد العلاقات.

ما هو المفتاح الخارجي (Foreign Key - FK)؟

المفتاح الخارجي (FK) هو عمود (أو مجموعة من الأعمدة) في جدول واحد يشير إلى المفتاح الأساسي لجدول آخر.

  • المفتاح الخارجي هو الجسر الذي يربط البيانات.

دور المفتاح الخارجي (التكامل المرجعي)

يفرض المفتاح الخارجي التكامل المرجعي (Referential Integrity)، مما يعني أن العلاقة بين الجداول يجب أن تكون صالحة. لا يمكنك إنشاء سجل في الجدول 'الفرعي' يشير إلى سجل غير موجود في الجدول 'الأصلي'.

مثال: الطلبات والعملاء

  • الجدول الأصلي (Parent Table): Customers (مفتاحه الأساسي هو CustomerID)
  • الجدول الفرعي (Child Table): Orders (يحتاج إلى معرفة أي عميل قدم الطلب)

نقوم بإدخال عمود CustomerID في جدول Orders. هذا العمود الجديد هو المفتاح الخارجي.

sql -- الجدول 1: الأصل (Parent) CREATE TABLE Customers ( CustomerID INTEGER PRIMARY KEY, Name VARCHAR(100) );

-- الجدول 2: الفرع (Child) CREATE TABLE Orders ( OrderID INTEGER PRIMARY KEY, OrderDate DATE, CustomerID INTEGER, -- هذا هو المفتاح الخارجي

-- تعريف قيد المفتاح الخارجي (FK constraint)
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)

);

يضمن هذا القيد ما يلي:

  1. يجب أن ينتمي كل OrderID إلى CustomerID موجود بالفعل في جدول Customers.
  2. لا يمكنك حذف عميل إذا كانت لا تزال هناك طلبات مرتبطة به (ما لم يتم تحديد خلاف ذلك).