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

لقد قمت هنا بتحليل الفرق بين المفتاح الأساسي والمفتاح الخارجي وسوف أقوم بتقييم إيجابيات وسلبيات كل منهما بشكل شامل.
ما هو المفتاح الأساسي؟
قيد المفتاح الأساسي هو عمود أو مجموعة من الأعمدة التي تحدد بشكل فريد كل صف في جدول نظام إدارة قاعدة البيانات العلائقية. ولا يمكن أن تكون مكررة، مما يعني أنه لا ينبغي أن تظهر نفس القيمة أكثر من مرة في الجدول.
لا يمكن أن يحتوي الجدول على أكثر من مفتاح أساسي واحد. ال المفتاح الأساسي يمكن تعريفها على مستوى العمود أو الجدول. إذا قمت بإنشاء مفتاح أساسي مركب، فيجب تعريفه على مستوى الجدول.
مثال على المفتاح الأساسي
بناء الجملة:
فيما يلي بناء جملة المفتاح الأساسي:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
هنا،
- Table_Name هو اسم الجدول الذي يجب عليك إنشاؤه.
- Column_Name هو اسم العمود الذي يحتوي على المفتاح الأساسي.
على سبيل المثال:
StudID | لفة لا | الاسم الأول | اسم العائلة | البريد الإلكتروني |
---|---|---|---|---|
1 | 11 | توم | السعر الأساسي | abc@gmail.com |
2 | 12 | Nick | رايت | xyz@gmail.com |
3 | 13 | دانة | ناثان | mno@yahoo.com |
في المثال أعلاه، قمنا بإنشاء جدول طلاب يحتوي على أعمدة مثل StudID وRoll No. والاسم الأول واسم العائلة والبريد الإلكتروني. يتم اختيار StudID كمفتاح أساسي لأنه يمكنه تحديد الصفوف الأخرى في الجدول بشكل فريد.
لماذا استخدام المفتاح الأساسي؟
طوال سنوات عملي في التعامل مع أنظمة قواعد البيانات، لاحظت هذه السلبيات والفوائد عند استخدام المفتاح الأساسي:
- الهدف الرئيسي من المفتاح الأساسي هو تحديد كل سجل في جدول قاعدة البيانات.
- يمكنك استخدام المفتاح الأساسي عندما لا تسمح لشخص ما بإدخال قيم فارغة.
- إذا قمت بحذف السجلات أو تحديثها، فسيتم اتخاذ الإجراء الذي حددته لضمان سلامة البيانات.
- قم بإجراء عملية التقييد لرفض عملية الحذف أو التحديث للجدول الرئيسي.
- يتم تنظيم البيانات في تسلسل من الفهارس المجمعة عندما تقوم بتنظيم جدول DBMS فعليًا.
ما هو المفتاح الخارجي؟
المفتاح الخارجي هو عمود يقوم بإنشاء علاقة بين جدولين. الغرض من المفتاح الخارجي هو الحفاظ على تكامل البيانات والسماح بالتنقل بين مثيلين مختلفين للكيان. وهو بمثابة إسناد ترافقي بين جدولين لأنه يشير إلى المفتاح الأساسي لجدول آخر. يجب أن تكون كل علاقة في قاعدة البيانات مدعومة بمفتاح خارجي.
مثال على المفتاح الخارجي
بناء الجملة:
فيما يلي بناء جملة المفتاح الخارجي:
CREATE TABLE <Table Name>( column1 datatype, column2 datatype, constraint (name of constraint) FOREIGN KEY [column1, column2...] REFERENCES [primary key table name] (List of primary key table column) ...);
هنا،
- تشير المعلمة Table Name إلى اسم الجدول الذي ستقوم بإنشائه.
- المعلمات column1, column2... تصور الأعمدة التي يجب إضافتها إلى الجدول.
- يشير القيد إلى اسم القيد الذي تقوم بإنشائه.
- تشير المراجع إلى جدول بالمفتاح الأساسي.
على سبيل المثال:
DeptCode | اسم القسم |
---|---|
001 | علوم |
002 | الإنجليزية |
005 | الحاسوب |
معرف المعلم | اسم F | الاسم |
---|---|---|
B002 | ديفيد | نذير |
B017 | سارا | يوسف |
B009 | ميكروفون | برونتون |
في المثال أعلاه، لدينا جدولان: مدرس وقسم في المدرسة. ومع ذلك، لا توجد طريقة لمعرفة أي بحث يعمل في أي قسم.
في هذا الجدول، من خلال إضافة المفتاح الخارجي في Deptcode إلى اسم المعلم، يمكننا إنشاء علاقة بين الجدولين.
معرف المعلم | DeptCode | اسم F | الاسم |
---|---|---|---|
B002 | 002 | ديفيد | نذير |
B017 | 002 | سارا | يوسف |
B009 | 001 | ميكروفون | برونتون |
يُعرف هذا المفهوم أيضًا بالتكامل المرجعي.
لماذا استخدام المفتاح الخارجي؟
مما رأيته، إليك الأسباب المهمة لتنفيذ المفاتيح الخارجية:
- تساعدك المفاتيح الخارجية على ترحيل الكيانات باستخدام مفتاح أساسي من الجدول الأصلي.
- A المفتاح الخارجي تمكنك من ربط جدولين أو أكثر معا.
- يجعل بيانات قاعدة البيانات الخاصة بك متسقة.
- يمكن استخدام المفتاح الخارجي لمطابقة عمود أو مجموعة من الأعمدة مع المفتاح الأساسي في الجدول الأصلي.
- يتم استخدام قيد المفتاح الخارجي لـ SQL للتأكد من أن التكامل المرجعي لأصل البيانات يطابق القيم الموجودة في الجدول الفرعي.
الفرق بين المفتاح الأساسي والمفتاح الخارجي
اسمحوا لي أن أشارككم الفرق المهم بين المفتاح الأساسي والمفتاح الخارجي، كما خبرته شخصيًا:
أساس المقارنة | المفتاح الأساسي | مفتاح غريب |
---|---|---|
تعريف | قيد المفتاح الأساسي هو عمود أو مجموعة من الأعمدة التي تحدد بشكل فريد كل صف في الجدول نظام إدارة قواعد البيانات المرتبطة. | المفتاح الخارجي هو عمود يقوم بإنشاء علاقة بين جدولين. |
Basic | يساعدك على تحديد سجل في الجدول بشكل فريد. | إنه حقل في الجدول يمثل المفتاح الأساسي لجدول آخر. |
اغية | لا يقبل المفتاح الأساسي أبدًا القيم الخالية. | قد يقبل المفتاح الخارجي قيمًا فارغة متعددة. |
الفهرسة | المفتاح الأساسي عبارة عن فهرس مجمع، ويتم تنظيم البيانات في جدول DBMS فعليًا في تسلسل الفهرس المجمع. | لا يمكن للمفتاح الخارجي إنشاء فهرس تلقائيًا، سواء كان متجمعًا أو غير متجمع. |
العد التنازلي | يمكن أن يكون لديك مفتاح أساسي واحد في الجدول. | يمكن أن يكون لديك مفاتيح خارجية متعددة في الجدول. |
شطب | لا يمكن إزالة قيمة المفتاح الأساسي من الجدول الأصلي. | يمكن إزالة قيمة المفتاح الخارجي من الجدول الفرعي. |
جدول مؤقت | يمكنك تحديد المفتاح الأساسي ضمنيًا في الجداول المؤقتة. | لا يمكنك تحديد المفاتيح الخارجية على الجداول المؤقتة المحلية أو العالمية. |
علاقة | المفتاح الأساسي هو فهرس مجمع. | بشكل افتراضي، فهو ليس فهرسًا مجمعًا. |
تكرار | لا يمكن أن يحتوي أي صفين على قيم متطابقة للمفتاح الأساسي. | يمكن أن يحتوي المفتاح الخارجي على قيم مكررة. |
إدخال | ليس هناك أي قيود على إدراج القيم في عمود الجدول. | أثناء إدراج أي قيمة في جدول المفاتيح الخارجية، تأكد من وجود القيمة في عمود المفتاح الأساسي. |
كيفية الاختيار بين المفتاح الأساسي والمفتاح الخارجي
مما رأيناه، تحدد المفاتيح الأساسية إدخالات الجدول بشكل فريد، وتربط المفاتيح الخارجية هذه الإدخالات عبر الجداول، وكلاهما مهم للحفاظ على تكامل البيانات وتسهيل استرجاع البيانات بكفاءة.