Primary key
In the relational model of databases, a primary key is a designated set of attributes (column(s)) that can reliably identify and distinguish between each individual record in a table. The database creator can choose an existing unique attribute or combination of attributes from the table (a natural key) to act as its primary key, or create a new attribute containing a unique ID that exists solely for this purpose (a surrogate key).
Examples of natural keys that could be suitable primary keys include data that is already by definition unique to all items in the table such as a national identification number attribute for person records, or the combination of a timestamp attribute with a location attribute for event records.
More formally, a primary key is a specific choice of a minimal set of attributes that uniquely specify a tuple (row) in a relation (table).[a][1] A primary key is a choice of a candidate key (a minimal superkey); any other candidate key is an alternate key.
Design
In relational database terms, a primary key does not differ in form or function from a key that isn't primary. In practice, various motivations may determine the choice of any one key as primary over another. The designation of a primary key may indicate the "preferred" identifier for data in the table, or that the primary key is to be used for foreign key references from other tables or it may indicate some other technical rather than semantic feature of the table. Some languages and software have special syntax features that can be used to identify a primary key as such (e.g. the PRIMARY KEY constraint in SQL).
The relational model, as expressed through relational calculus and relational algebra, does not distinguish between primary keys and other kinds of keys. Primary keys were added to the SQL standard mainly as a convenience to the application programmer.
Primary keys can be an integer that is incremented, a universally unique identifier (UUID) or can be generated using Hi/Lo algorithm.
Defining primary keys in SQL
Primary keys are defined in the ISO SQL Standard, through the PRIMARY KEY constraint. The syntax to add such a constraint to an existing table is defined in SQL:2003 like this:
ALTER TABLE < معرف الجدول > ADD [ CONSTRAINT < معرف القيد > ] PRIMARY KEY ( < اسم العمود > [ { , < اسم العمود > } ... ] )يمكن تحديد المفتاح الأساسي مباشرةً أثناء إنشاء الجدول. في معيار SQL، قد يتكون المفتاح الأساسي من عمود واحد أو عدة أعمدة. يُعرَّف كل عمود مشارك في المفتاح الأساسي ضمنيًا على أنه غير قابل للقيمة الفارغة (NOT NULL). تجدر الإشارة إلى أن بعض أنظمة إدارة قواعد البيانات العلائقية (RDBMS) تتطلب تحديد أعمدة المفتاح الأساسي صراحةً على أنها غير قابلة للقيمة الفارغة ( NOT NULL) NOT NULL.
إنشاء جدول باسم_الجدول ( ... )إذا كان المفتاح الأساسي يتكون من عمود واحد فقط، فيمكن تمييز العمود على هذا النحو باستخدام الصيغة التالية:
إنشاء جدول table_name ( id_col INT PRIMARY KEY , col2 CHARACTER VARYING ( 20 ), ... )مفاتيح بديلة
في بعض الحالات، قد يكون استخدام المفتاح الطبيعي الذي يُعرّف صفًا في علاقة ما بشكل فريد أمرًا مُرهقًا في تطوير البرمجيات. على سبيل المثال، قد يتضمن أعمدة متعددة أو حقول نصية كبيرة. في مثل هذه الحالات، يُمكن استخدام مفتاح بديل كمفتاح أساسي. في حالات أخرى، قد يكون هناك أكثر من مفتاح مرشح لعلاقة ما، ولا يُفضّل أي منها بشكل واضح. يُمكن استخدام مفتاح بديل كمفتاح أساسي لتجنب منح أحد المفاتيح المرشحة أولوية مصطنعة على غيرها.
بما أن المفاتيح الأساسية موجودة في المقام الأول كوسيلة مساعدة للمبرمج، فإن المفاتيح الأساسية البديلة تُستخدم غالبًا، وفي كثير من الحالات بشكل حصري، في تصميم تطبيقات قواعد البيانات.
نظراً لشعبية المفاتيح الأساسية البديلة، بات العديد من المطورين، بل وحتى بعض المنظرين، يعتبرونها جزءاً لا يتجزأ من نموذج البيانات العلائقية. ويعود ذلك في معظمه إلى انتقال المبادئ من نموذج البرمجة الكائنية التوجه إلى النموذج العلائقي، مما أدى إلى ظهور النموذج الهجين الكائني-العلائقي. وفي نمط السجل النشط (Active Record ) المشابه لتقنية ORM ، تُفرض هذه القيود الإضافية على المفاتيح الأساسية:
- ينبغي أن تكون المفاتيح الأساسية غير قابلة للتغيير، أي لا يتم تغييرها أو إعادة استخدامها مطلقًا؛ وينبغي حذفها مع السجل المرتبط بها.
- ينبغي أن تكون المفاتيح الأساسية عبارة عن معرفات عددية أو رقمية مجهولة المصدر.
مع ذلك، لا يُعد أيٌّ من هذين القيدين جزءًا من النموذج العلائقي أو أي معيار من معايير لغة SQL. لذا، ينبغي توخي الحذر عند تحديد مدى ثبات قيم المفتاح الأساسي أثناء تصميم قواعد البيانات والتطبيقات. بل إن بعض أنظمة قواعد البيانات تفترض ضمنيًا عدم إمكانية تغيير القيم في أعمدة المفتاح الأساسي باستخدام UPDATEعبارة SQL.
مفتاح بديل
عادةً، يتم اختيار مفتاح مرشح واحد ليكون المفتاح الأساسي. أما المفاتيح المرشحة الأخرى فتصبح مفاتيح بديلة، ويمكن UNIQUEتعيين قيد لكل منها لمنع التكرارات (إذ لا يُعتبر الإدخال المكرر صالحًا في عمود فريد). [ 2 ]
يمكن استخدام المفاتيح البديلة مثل المفتاح الأساسي عند إجراء تحديد جدول واحد أو عند التصفية في جملة شرطية ، ولكنها لا تستخدم عادة لربط جداول متعددة.
انظر أيضاً
ملحوظات
- ↑ المصطلحات المقابلة هي على التوالي نظرية (الخاصية، الصف، العلاقة) وملموسة (العمود، الصف، الجدول).
مراجع
- ↑ "إضافة أو تغيير المفتاح الأساسي لجدول في أكسس" . مايكروسوفت . تم الاطلاع عليه بتاريخ 20 يناير 2020.
المفتاح الأساسي هو حقل أو مجموعة حقول ذات قيم فريدة في جميع أنحاء الجدول.
- ↑ مفتاح بديل – الأسئلة الشائعة حول أوراكل
- أنظمة إدارة قواعد البيانات
- نمذجة البيانات
