فهم المفاتيح الرئيسية والخارجية والفريدة في تصميم قواعد البيانات

March 31, 2024

ما هو المفتاح الرئيسي (Primary Key)؟


ما هو المفتاح الخارجي (Foreign Key)؟


ما هو المفتاح الفريد (Unique Key)


مقدمة عن القيود الرئيسية والمفاتيح الخارجية والفريدة في قواعد البيانات

 

في عالم قواعد البيانات، تلعب المفاتيح الرئيسية (Primary Keys)، والمفاتيح الخارجية (Foreign Keys)، والمفاتيح الفريدة (Unique Keys)  دورًا حيويًا في تنظيم وتحديد البيانات. تعمل هذه القيود على ضمان أمان واستدامة البيانات داخل قواعد البيانات، مما يسهل عمليات البحث والتحديث والحذف بكفاءة ودقة.

 

Primary Key  المفتاح الرئيسي:


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

 


Foreign Key  المفتاح الخارجي:


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

 

Unique Key  المفتاح الفريد:


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

 

باستخدام هذه القيود، يمكن لمصممي قواعد البيانات ضمان تنظيم البيانات وأمانها، وبالتالي تحقيق أداء ممتاز وموثوقية عالية في تطبيقات قواعد البيانات


1- المفتاح الأساسي PRIMARY KEY

 

التعريف: المفتاح الأساسي هو عمود أو مجموعة من الأعمدة التي تحدد بشكل فريد كل صف في الجدول. يضمن أن كل سجل في الجدول فريد ويعمل كمعرف فريد لهذا السجل.

التمثيل البياني:

+---------------------+ | Employees | +---------------------+ | EmployeeID (PK) | | FirstName | | LastName | | Salary | +---------------------+

العلاقة: ينشئ المفتاح الأساسي علاقة واحد-إلى-واحد(one-to-one relationship ) بين الجدول والأعمدة المحددة. كل قيمة في أعمدة المفتاح الأساسي تحدد بشكل فريد صفًا واحدًا في الجدول

2- المفتاح الخارجيFOREIGN KEY):)


التعريف: المفتاح الخارجي هو عمود أو مجموعة من الأعمدة في جدول واحد يشير إلى المفتاح الأساسي أو المفتاح الفريد في جدول آخر. ينشئ رابطًا بين البيانات في جدولين، ويفرض السلامة المرجعية.

التمثيل البياني

+---------------------+ +---------------------+ | Orders | | Employees | +---------------------+ +---------------------+ | OrderID (PK) | | EmployeeID (PK) | | EmployeeID (FK) -> |-------| FirstName | | ... | | LastName | +---------------------+ | Salary | +---------------------+

العلاقة: يشير المفتاح الخارجي في جدول واحد إلى المفتاح الأساسي في جدول آخر، مما ينشئ علاقة واحد-إلى-كثير أو كثير-إلى-واحد بين الجدولين( one-to-many or many-to-one relationship). يضمن أن تتطابق القيم في أعمدة المفتاح الخارجي مع القيم في أعمدة المفتاح الأساسي المشار إليه

إليك توضيح أكثر تفصيلاً للعلاقة بين جدول Orders وجدول Employees:

 

جدول Orders:

 

OrderID (PK) يعتبر هذا المفتاح الأساسي لجدول Orders، وهو يميز كل طلب برقم فريد.

EmployeeID (FK) هذا المفتاح الخارجي (Foreign Key) يشير إلى جدول Employees ويحتوي على رقم الموظف المسؤول عن الطلب.

 

جدول Employees:

 

EmployeeID (PK) يعتبر هذا المفتاح الأساسي لجدول Employees، ويمثل رقم فريد لكل موظف.

FirstName وLastName: هذان العمودان يحتويان على اسم الموظف الأول والأخير على التوالي.

Salary: هذا العمود يحتوي على راتب الموظف.


علاقة بين الجدولين:

 

كل طلب في جدول Orders يرتبط بموظف محدد في جدول Employees عبر الربط بين مفتاح خارجي EmployeeID في جدول Orders ومفتاح أساسي EmployeeID في جدول Employees.

على سبيل المثال، إذا كانت قيمة EmployeeID في جدول Orders تساوي 101، فهذا يعني أن الموظف الذي قام بتنفيذ الطلب له نفس القيمة في جدول Employees، وبالتالي يمكن استخدام هذه القيمة لاسترجاع معلومات إضافية حول الموظف مثل الاسم والراتب.

 

3- الفريدUNIQUE:

 

التعريف: القيد الفريد يضمن أن جميع القيم في عمود أو مجموعة من الأعمدة فريدة (أي لا توجد قيم مكررة). على عكس المفتاح الأساسي، يسمح بالقيم الفارغة  NULL ولكن يُسمح بوجود قيمة NULL واحدة فقط.

التمثيل البياني:


+---------------------+ | Products | +---------------------+ | ProductID (PK) | | ProductName (UNIQUE)| | Price | +---------------------+

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


 

إليك توضيح أكثر تفصيلاً للجدول Products:

 

جدول Products:

 

ProductID (PK) يعتبر هذا المفتاح الأساسي لجدول Products، وهو يمثل رقم فريد لكل منتج.

ProductName (UNIQUE) يعتبر هذا العمود فريدًا، مما يعني أنه يجب ألا تتكرر قيمه، وهو مسؤول عن تخزين أسماء المنتجات.

Price هذا العمود يحتوي على سعر كل منتج.

علاقة بيانات المنتجات:

 

يتم تخزين كل منتج في جدول Products باستخدام مفتاح أساسي فريد (ProductID)، ولا يمكن تكرار القيمة في هذا العمود.

يجب أن يكون اسم كل منتج فريدًا أيضًا لضمان عدم وجود منتجات بنفس الاسم، ولذلك يتم تعيين عمود ProductName على أنه يجب أن يكون فريدًا باستخدام القيد UNIQUE.

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




ProductID (PK)

ProductName (Unique)

Price

1

Laptop

$800.00

2

Smartphone

$600.00

3

Tablet

$400.00

4                 

Desktop PC

$1200.00      


 

 



هذه القيود والمفاتيح تلعب أدوارًا حاسمة في تحديد الهيكل والعلاقات داخل مخطط قاعدة البيانات، وتضمن سلامة البيانات وتيسير إدارتها واستعلامها بكفاءة.


مالفرق بين (primary key, foreign key ,unique)







الخاصية

الوصف

الاستخدام

PrimaKey

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

عندما يكون لدينا حاجة لتحديد تعريف فريد وثابت لكل سجل في الجدول.

Foreign Key

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

عندما نحتاج إلى ربط بيانات في جدول واحد ببيانات في جدول آخر        

Unique

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

عندما نحتاج إلى ضمان أن القيمة في العمود أو الأعمدة غير مكررة.

 


comments 0

See all"ON"
Name is required.
Valid email is required.