مفتاح رئيسي

المفتاح الرئيسي (بالإنجليزية: Primary key or unique key)‏ هو الصفة أو الصفات التي لا تحتمل عملية التكرار في قواعد البيانات ويتم اختيار المفتاح الرئيسي ليكون محددا ومميزا لكل صف في الجدول.[1]

التاريخ

[عدل]

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

التصميم

[عدل]

في مصطلحات قاعدة البيانات العلائقية، لا يختلف المفتاح الأساسي في الشكل أو الوظيفة عن المفتاح غير الأساسي. في الممارسة العملية، قد تحدد الدوافع المختلفة اختيار أي مفتاح كأساسي على الآخر. قد يشير تعيين المفتاح الأساسي إلى المعرف «المفضل» للبيانات الموجودة في الجدول، أو أن المفتاح الأساسي يجب استخدامه لمراجع المفتاح الخارجي من جداول أخرى أو قد يشير إلى بعض الميزات التقنية بدلاً من السمات الدلالية للجدول. تحتوي بعض اللغات والبرامج على ميزات بناء الجملة الخاصة التي يمكن استخدامها لتحديد مفتاح أساسي على هذا النحو (على سبيل المثال، قيد PRIMARY KEY في SQL).

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

الخصائص

[عدل]

للمفتاح الرئيسي مجموعة من الخصائص لعل أبرزها:

  1. لا يأخذ قيمة فارغة
  2. لا يكون مكررا في سجل آخر

أمثلة

[عدل]

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

لكن يمكن استعمال رقم طالب معين في جامعة معينة كمفتاح رئيسي طالما ليس هناك طالبين على الأقل يحملان نفس الرقم.

تحديد المفتاح الرئيسي في إس كيو إل

[عدل]

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

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

  ALTER TABLE <table identifier> 
      ADD [ CONSTRAINT <constraint identifier> ] 
      PRIMARY KEY ( <column expression> {, <column expression>}... )

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

تحديد مفاتيح أخرى في الإس كيو إل

[عدل]

يمكن تحديد مفايتح أخرى في قاعدة بيانات بواسطة إس كيو إل، وهذه الطريقة مشابهة تقريبا لطريقة تحديد مفتاح رئيسي واحد:[3]

  ALTER TABLE <table identifier> 
      ADD [ CONSTRAINT <constraint identifier> ] 
      UNIQUE ( <column expression> {, <column expression>}... )

هذه الطريقة تخص تحديد المفتاح الرئيسي بعد إنشاء قاعدة بيانات أو عند التعديل عليها، أما طريقة تحديده عند إنشاء قاعدة بيانات فتتم بالطريقة التالية:[4]

  CREATE TABLE table_name (
     id_col   INT,
     col2     CHARACTER VARYING(20),
     key_col  SMALLINT NOT NULL,
     ...
     CONSTRAINT key_unique UNIQUE(key_col),
     ...
  )
  CREATE TABLE table_name (
     id_col  INT  PRIMARY KEY,
     col2    CHARACTER VARYING(20),
     ...
     key_col  SMALLINT NOT NULL UNIQUE,
     ...
  )

ملاحظة

[عدل]

يمكن للمفتاح الرئيسي أن يكون مركبا من صفتين أو أكثر (بالفرنسية: Clé Composé)‏، حيث يمكن استعمال الاسم، اللقب وتاريخ الميلاد كمفتاح رئيسي في جدول قاعدة بيانات مركب من 3 صفات بحيث من المستبعد إيجاد شخصين أو أكثر لهم نفس الاسم، اللقب وتاريخ الميلاد في آن واحد. لكن من المحبذ دائما في المفتاح الرئيسي ان يكون بسيطا ومألوفا قدر الإمكان.

انظر أيضًا

[عدل]

المراجع

[عدل]
  1. ^ "معلومات عن مفتاح رئيسي على موقع babelnet.org". babelnet.org. مؤرشف من الأصل في 2019-12-13.
  2. ^ "The programmer as navigator". Portal.acm.org. DOI:10.1145/355611.362534. مؤرشف من الأصل في 2021-05-13. اطلع عليه بتاريخ 2012-10-01.
  3. ^ خلاصة تحديد المفتاح الرئيسي عن طريق الإس كيو إل (بالإنجليزية)
  4. ^ كيفية بناء قاعدة بيانات بواسطة إس كيو إل (بالإنجليزية)