ما هي المفاتيح الخارجية في قواعد بيانات SQL؟

ما هي المفاتيح الخارجية في قواعد بيانات SQL؟

تتيح المفاتيح الخارجية لمسؤولي قاعدة البيانات التعرف بسهولة على الاتصالات المختلفة الموجودة داخل نظام إدارة قاعدة بيانات SQL.





يقوم SQL بإجراء عمليات حسابية على البيانات داخل نظام إدارة قواعد البيانات. تحتوي قواعد البيانات هذه على جداول مختلفة يقوم كل منها بتخزين البيانات في كيان معين. إذا كانت لديك قاعدة بيانات لتأجير السيارات ، فسيكون الكيان (أو الجدول) في قاعدة البيانات عملاء (والذي سيخزن جميع البيانات الشخصية لكل عميل).





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





في نظام إدارة قاعدة البيانات ، يجب أن يكون كل سجل (أو صف) فريدًا.

المفاتيح الأساسية

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



سيؤدي إنشاء مفتاح أساسي إلى التخفيف من هذه المخاطر. في نظام إدارة قاعدة بيانات SQL ، يعد المفتاح الأساسي معرفًا فريدًا يميز سجلًا عن آخر.

كيف تعرف من الذي ألغى متابعتك على الانستغرام

لذلك ، يجب أن يكون لكل سجل في نظام إدارة قاعدة بيانات SQL مفتاح أساسي.





استخدام المفاتيح الأساسية في قاعدة البيانات

لتضمين المفاتيح الأساسية في نظام إدارة قاعدة البيانات باستخدام SQL ، يمكنك ببساطة إضافتها كسمة عادية عند إنشاء جدول جديد. لذلك سيحتوي جدول العملاء على أربع سمات (أو أعمدة):

  • CarOwnerID (الذي سيخزن المفتاح الأساسي)
  • الاسم الأول
  • الكنية
  • رقم الهاتف

متعلق ب: كيفية إنشاء جدول في SQL





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

سجل بمثال أساسي

/* creates a new record in the customers table */
INSERT INTO Customers VALUES
('0004',
'John',
'Brown',
'111-999-5555');

سيضيف رمز SQL أعلاه سجلًا جديدًا إلى الملف الموجود مسبقًا عملاء طاولة. يوضح الجدول أدناه جدول العملاء الجديد مع سجلي John Brown.

المفتاح الخارجي

الآن لديك مفاتيح أساسية تميز بشكل فريد بين مستأجر سيارة وآخر. المشكلة الوحيدة هي أنه ، في قاعدة البيانات ، لا توجد علاقة حقيقية بين كل من جون براون والسيارة التي يستأجرها.

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

ما هو المفتاح الخارجي؟

في نظام إدارة قاعدة بيانات SQL ، المفتاح الخارجي هو معرف فريد أو مجموعة من المعرفات الفريدة التي تربط جدولين أو أكثر في قاعدة بيانات.

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

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

تختلف شفرة SQL التي تنشئ جدولاً بمفتاح خارجي قليلاً عن القاعدة.

إنشاء جدول بمفتاح خارجي مثال

/* creates a new cars table in the car rental database */
CREATE TABLE Cars
(
LicenseNumber varchar(30) NOT NULL PRIMARY KEY,
CarType varchar(30) NOT NULL,
CustomerID varchar(30) FOREIGN KEY REFERENCES Customers(CustomerID)
);

كما ترى في الكود أعلاه ، يجب تحديد المفتاح الخارجي صراحةً على هذا النحو ، جنبًا إلى جنب مع إشارة إلى المفتاح الأساسي الذي يتم توصيله بالجدول الجديد.

كيفية تنظيف الملفات على نظام التشغيل windows 10

متعلق ب: ورقة الغش في أوامر SQL الأساسية للمبتدئين

لإضافة سجل إلى الجدول الجديد ، ستحتاج إلى التأكد من أن القيمة الموجودة في حقل المفتاح الخارجي تطابق القيمة الموجودة في حقل المفتاح الأساسي للجدول الأصلي.

إضافة سجل بمفتاح خارجي مثال

/* creates a new record in the cars table */
INSERT INTO Cars VALUES
('100012',
'Mercedes-Benz',
'0004');

يقوم الكود أعلاه بإنشاء رقم قياسي جديد في ملف سيارات الجدول ، مما ينتج عنه النتيجة التالية.

طاولة سيارات

من الجدول أعلاه ، يمكنك تحديد جون براون الصحيح الذي يؤجر سيارة مرسيدس-بنز بواسطة المفتاح الأجنبي في السجل.

مفاتيح خارجية متقدمة

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

إذا نظرت إلى الوراء في تعريف المفتاح الخارجي أعلاه ، فستجد أنه يشير إلى أن المفتاح الخارجي يمكن أن يكون معرّفًا فريدًا أو مجموعة من المعرفات الفريدة.

بالعودة إلى مثال قاعدة بيانات تأجير السيارات ، سترى أن إنشاء رقم قياسي جديد (لنفس السيارة) في كل مرة يستأجر فيها العميل تلك السيارة ، يتعارض مع الغرض من سيارات طاولة. إذا كانت السيارات معروضة للبيع وتم بيعها لعميل واحد مرة واحدة ، فإن قاعدة البيانات الحالية مثالية ؛ ولكن نظرًا لأن السيارات مستأجرة ، فهناك طريقة أفضل لتمثيل هذه البيانات.

مفاتيح مركبة

يحتوي المفتاح المركب على معرّفين فريدين أو أكثر. في قاعدة البيانات العلائقية ، ستكون هناك حالات لا يمثل فيها استخدام مفتاح خارجي واحد العلاقات الموجودة داخل قاعدة البيانات هذه بشكل كافٍ.

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

إنشاء جدول بمفاتيح خارجية مركبة

/* creates a CarRental table in the car rental database */
CREATE TABLE CarRental
(
DateRented DATE NOT NULL,
LicenseNumber varchar(30) NOT NULL FOREIGN KEY REFERENCES Cars(LicenseNumber),
CustomerID varchar(30) NOT NULL FOREIGN KEY REFERENCES Customers(CustomerID),
PRIMARY KEY (DateRented, LicenseNumber, CustomerID)
);

الكود أعلاه يصور نقطة مهمة ؛ على الرغم من أن الجدول في قاعدة بيانات SQL يمكن أن يحتوي على أكثر من مفتاح خارجي واحد ، إلا أنه يمكن أن يحتوي على مفتاح أساسي واحد فقط. هذا لأنه يجب أن تكون هناك طريقة فريدة واحدة فقط لتعريف السجل.

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

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

كيفية إرسال بريد إلكتروني مجهول

مفاتيح أولية خارجية

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

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

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

يمكنك الآن تحديد المفاتيح الخارجية في قواعد بيانات SQL

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

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

يشارك يشارك سقسقة بريد الالكتروني تعرف على كيفية استخدام عمليات المشروع والاختيار في SQL

تعرف على قواعد بيانات SQL العلائقية من خلال فهم عمليات المشروع والاختيار بهذه الأمثلة.

اقرأ التالي
مواضيع ذات صلة
  • برمجة
  • برمجة
  • SQL
  • قاعدة البيانات
نبذة عن الكاتب قاديشا كين(21 مقالة منشورة)

قاديشا كين مطور برامج متكامل وكاتب تقني / تقني. لديها قدرة مميزة على تبسيط بعض المفاهيم التكنولوجية الأكثر تعقيدًا ؛ إنتاج مواد يمكن لأي مبتدئ في مجال التكنولوجيا فهمها بسهولة. إنها شغوفة بالكتابة وتطوير البرامج الشيقة والسفر حول العالم (من خلال الأفلام الوثائقية).

المزيد من Kadeisha Kean

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك