في عالم إدارة قواعد البيانات، تلعب المفاتيح دوراً حاسماً في تنظيم ووصول إلى البيانات وحفظ دقة البيانات. سواء كنت مدير قواعد البيانات مخضرم أو تبدأ في رحلتك في إدارة البيانات، فإن فهم الأنواع المختلفة من مفاتيح قواعد البيانات مهم جداً. في هذه المقالة، سنستكشف عن جميع أنواع المفاتيح المختلفة، وغرضها، وكيفية مساهمتها في تصميم قواعد البيانات فعالة.
لإظهار هذه الأفكار، سنستخدم قاعدة بيانات جامعية بسيطة مع الجداول التالية:
- الطلاب
- المقررات
- التسجيلات
- الأستاذون
- الأقسام
لنغوص في كل نوع من المفاتيح ونرى كيفية تطبيقها في قاعدة بيانات جامعتنا.
1. المفتاح الأساسي
التعريف
كماية أو مجموعة من الأعمدة التي تحدد كل سطر في الجدول بشكل فريد
الصفات
- يجب أن يكون فريداً لكل سجل
- لا يمكن أن يحتوي على قيم
NULL
- يجب أن لا يتغير (لا يتغير مع الزمن)
المثال
في جدولنا الطلاب
، نستخدم StudentID
كمفتاح أساسي.
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
Email VARCHAR(100) UNIQUE
);
هنا، StudentID
يحدد بشكل فريد كل طالب، مؤكداً أن لا يوجد طالبان بنفس الرقم التعريفي.
2. المفتاح الخارجي
تعريف
عمود أو مجموعة من الأعمدة في جدول واحد يشير إلى المفتاح الرئيسي في جدول آخر
الغرض
يحافظ على الثبات الارتباطي وينشئ العلاقات بين الجداول
مثال
في جدولنا التسجيلات
، نستخدم رقم الطالب
و رقم الدورة
كمفاتيح أجنبية
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. المفتاح المركب
تعريف
مفتاح يتألف من ستونتين أو أكثر لتحديد السجل بشكل فريد
الاستخدام
عندما لا يمكن للعمود الواحد أن يضمن الفريدية
مثال
يمكننا إعادة تصميم جدولنا التسجيلات
لاستخدام مفتاح مركب:
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
يصبح مفتاحًا بديلا:
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
التزايد الآلي:
CREATE TABLE Courses (
CourseID INT PRIMARY KEY AUTO_INCREMENT,
CourseCode VARCHAR(10) UNIQUE,
CourseName VARCHAR(100),
Credits INT
);
CourseID
هو مفتاح البدل، بينما قد يكون CourseCode
معرف فطري أكثر.
8. المفتاح الطبيعي
تعريف
مفتاح يتكون من بيانات موجودة بالفعل في العالم الحقيقي
ميزة
يوفر تعريفاً معنوياً
عيب
قد يتغير مع الزمن
مثال
في جدول الأستاذون
قد نفكر في استخدام رقم الضمان الاجتماعي (على الرغم من أنه ليس من المستحب لأسباب الخصوصية):
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. المفتاح المركب
تعريف
مفتاح يتكون من ستونين أو أكثر، حيث قد تحمل تركيبتها معنى تجاري ما
الفرق مع المفتاح المركب
يستخدم عادةً عندما تحمل الستونات المجموعة معنى بعيداً عن التعريف الفريد فقط.
مثال
في جدول عروض المقررات
:
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
:
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(100) UNIQUE,
Building VARCHAR(50),
Budget DECIMAL(10, 2)
);
DepartmentID
هو مفتاح بسيط: عنصر واحد يحدد بشكل فريد كل قسم.
11. مفتاح فريد
تعريف
مفتاح يضمن أن جميع القيم في عمود أو مجموعة من الأعمد فريدة
فرقه مع المفتاح الرئيسي
يسمح له بوجود قيم NULL
(إلا إذا تم تعيين شيء آخر)
مثال
في جدولنا للطلاب Students
, Email
مثال لمفتاح فريد:
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