مفاتيح قاعدة البيانات: دليل شامل

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

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

  1. الطلاب
  2. المقررات
  3. التسجيلات
  4. الأستاذون
  5. الأقسام

لنغوص في كل نوع من المفاتيح ونرى كيفية تطبيقها في قاعدة بيانات جامعتنا.

1. المفتاح الأساسي

التعريف

كماية أو مجموعة من الأعمدة التي تحدد كل سطر في الجدول بشكل فريد

الصفات

  • يجب أن يكون فريداً لكل سجل
  • لا يمكن أن يحتوي على قيم NULL
  • يجب أن لا يتغير (لا يتغير مع الزمن)

المثال

في جدولنا الطلاب، نستخدم StudentID كمفتاح أساسي.

SQL

 


CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE

);

هنا، StudentID يحدد بشكل فريد كل طالب، مؤكداً أن لا يوجد طالبان بنفس الرقم التعريفي.

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

تعريف

عمود أو مجموعة من الأعمدة في جدول واحد يشير إلى المفتاح الرئيسي في جدول آخر

الغرض

يحافظ على الثبات الارتباطي وينشئ العلاقات بين الجداول

مثال

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

SQL

 


CREATE TABLE Enrollments (

    EnrollmentID INT PRIMARY KEY,

    StudentID INT,

    CourseID INT,

    EnrollmentDate DATE,

    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)

)

هذا التصميم يضمن أن كل سجل التسجيل يرتبط بالطلاب والدورات الصالحين

3. المفتاح المركب

تعريف

مفتاح يتألف من ستونتين أو أكثر لتحديد السجل بشكل فريد

الاستخدام

عندما لا يمكن للعمود الواحد أن يضمن الفريدية

مثال

يمكننا إعادة تصميم جدولنا التسجيلات لاستخدام مفتاح مركب:

SQL

 

CREATE TABLE Enrollments (

    StudentID INT,

    CourseID INT,

    EnrollmentDate DATE,

    Grade CHAR(2),

    PRIMARY KEY (StudentID, CourseID),

    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)

);

هنا، تشكل تركيبة رقم الطالب و رقم الدورة مفتاحا مركبا، يحدد كل تسجيل التسجيل بشكل فريد

4. المفتاح المرشح

تعريف

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

الخصائص

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

مثال

في جدولنا Students، كلا StudentID و Email يمكن أن يكونوا مفتاحين مرشحين، لأن كلاهما يمكن أن يحدد طالبًا بشكل فردي. اخترنا StudentID كمفتاح أساسي، لكن Email يمكن أن يكون بديلًا.

5. المفتاح الفائق

التعريف

أي مجموعة من الأعمدة التي يمكن أن تحدد سجلاً بشكل فردي، بما في ذلك الأعمدة غير الضرورية

الفرق مع المفتاح المرشح

قد يحتوي على صفات إضافية ليس مطلوبًا للتحديد الفردي

المثال

في جدولنا Students، يمكن أن تتضمن المفاتيح الفائقة:

  • {StudentID, FirstName, LastName, Email} 
  • {StudentID, Email} 
  • {Email, FirstName, LastName}

كل هذه تتضمن مفاتيح مرشحة (StudentID أو Email) بالإضافة إلى حقول إضافية.

6. المفتاح البديل

التعريف

مفتاح مرشح لم يتم اختياره كمفتاح أساسي

الغرض

يوفر طريقة بديلة لتحديد السجلات بشكل فردي

المثال

في جدولنا Students، إذا اخترنا StudentID كمفتاح أساسي، فإن Email يصبح مفتاحًا بديلا:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE  -- This is an alternate key

);

القيد UNIQUE على Email يؤكد أنه يمكن أيضًا استخدامه لتحديد الطلاب بشكل فردي.

7. المفتاح الوكيل

تعريف

مفتاح إصطناعي خلق لغرض التعريف الفريد

صفات

  • يتم إنشاؤه عادةً بواسطة قاعدة البيانات
  • لا يحمل معنى تجاري

مثال

في جدولنا المقررات قد نستخدم CourseID التزايد الآلي:

SQL

 

CREATE TABLE Courses (

    CourseID INT PRIMARY KEY AUTO_INCREMENT,

    CourseCode VARCHAR(10) UNIQUE,

    CourseName VARCHAR(100),

    Credits INT

);

CourseID هو مفتاح البدل، بينما قد يكون CourseCode معرف فطري أكثر.

8. المفتاح الطبيعي

تعريف

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

ميزة

يوفر تعريفاً معنوياً

عيب

قد يتغير مع الزمن

مثال

في جدول الأستاذون قد نفكر في استخدام رقم الضمان الاجتماعي (على الرغم من أنه ليس من المستحب لأسباب الخصوصية):

SQL

 

CREATE TABLE Professors (

    ProfessorID INT PRIMARY KEY,

    SSN CHAR(9) UNIQUE,  -- This could be used as a natural key

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Department VARCHAR(50)

);

9. المفتاح المركب

تعريف

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

الفرق مع المفتاح المركب

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

مثال

في جدول عروض المقررات:

SQL

 

CREATE TABLE CourseOfferings (

    CourseID INT,

    Semester CHAR(6),  -- e.g., '202301' for Spring 2023

    ProfessorID INT,

    RoomNumber VARCHAR(10),

    PRIMARY KEY (CourseID, Semester),

    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID),

    FOREIGN KEY (ProfessorID) REFERENCES Professors(ProfessorID)

);

تركيب CourseID و Semester يشكل مفتاح مركب يحدد بشكل فريد قدماً خدمة المقررة ويحمل أيضًا معاني أعمالية.

10. مفتاح بسيط

تعريف

مفتاح يتكون من عنصر واحد فقط

ميزة

سهل التنفيذ والاستخدام

مثال

في جدولنا للأقسام Departments:

SQL

 

CREATE TABLE Departments (

    DepartmentID INT PRIMARY KEY,

    DepartmentName VARCHAR(100) UNIQUE,

    Building VARCHAR(50),

    Budget DECIMAL(10, 2)

);

DepartmentID هو مفتاح بسيط: عنصر واحد يحدد بشكل فريد كل قسم.

11. مفتاح فريد

تعريف

مفتاح يضمن أن جميع القيم في عمود أو مجموعة من الأعمد فريدة

فرقه مع المفتاح الرئيسي

يسمح له بوجود قيم NULL (إلا إذا تم تعيين شيء آخر)

مثال

في جدولنا للطلاب Students, Email مثال لمفتاح فريد:

SQL

 

CREATE TABLE Students (

    StudentID INT PRIMARY KEY,

    FirstName VARCHAR(50),

    LastName VARCHAR(50),

    Email VARCHAR(100) UNIQUE  -- This is a unique key

);

القيمة UNIQUE تضمن أن لا يمكن للطلاب المعدودين أن يمتلكوا نفس البريد إلكتروني.

خلاصة

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

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

هذه المقالة هي جزء من سلسلة أساسيات قواعد البيانات لدينا. ابق على اطلاع للحصول على مزيد من المقالات المتعمقة حول إدارة تصميم قواعد البيانات.

Source:
https://dzone.com/articles/database-keys-a-comprehensive-guide