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

التاريخ
-------

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

التصميم
-------

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

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

الخصائص
-------

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

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

أمثلة
-----

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

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

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

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

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

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

```

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

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

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

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

```

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

```
 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. ↑  كيفية بناء قاعدة بيانات بواسطة إس كيو إل (بالإنجليزية)

| * ع
* ن
* ت
قاعدة بيانات |
| --- |
| 
* مفهوم قواعد البيانات
* تسوية قاعدة البيانات
* Database storage
* قاعدة بيانات موزعة
* Federated database system
* تكامل مرجعي
* Relational algebra
* Relational calculus
* قاعدة بيانات علائقية
* نظام إدارة قواعد البيانات العلائقية
* Relational model
* Object-relational database
* نظام معالجة المعاملات

 |
| مفاهيم | 
* قاعدة بيانات
* أسيد (معلوماتية)
* عمليات إدارة البيانات (CRUD)
* قيمة Null
* المفتاح المرشح
* مفتاح أجنبي
* مفتاح رئيسي
* المفتاح الأعظم
* Surrogate key
* Armstrong's axioms

 |
| كائنات | 
* Relation
	+ جدول (قاعدة بيانات)
	+ عمود (قاعدة بيانات)
	+ صف (قواعد البيانات)
* View
* Transaction
* سجل الإجراءات
* المحرك في قواعد البيانات
* فهرس قاعدة بيانات
* إجراء مخزّن
* Cursor
* Partition

 |
| مكونات | 
* Concurrency control
* قاموس البيانات
* جي دي بي سي
* XQJ
* اتصال قاعدة البيانات المفتوحة
* لغة استعلام
* Query optimizer
* Query plan

 |
| وظائف | 
* إدارة قواعد البيانات
* Query optimization
* التكرار

 |
| 
منتجات قواعد البيانات
Object-oriented
comparison
Relational
comparison
قاعدة بيانات موجهة
قاعدة بيانات بيانية
NoSQL
NewSQL
 |

* أيقونة بوابةبوابة قواعد البيانات
* أيقونة بوابةبوابة علم الحاسوب
* أيقونة بوابةبوابة إنترنت
* أيقونة بوابةبوابة تقانة
* أيقونة بوابةبوابة تقانة المعلومات