تهدف هذه الوحدة إلى تعريف الطلاب بمفهوم سلامة البيانات (Data Integrity) في قواعد البيانات، وأنواع القيود المختلفة التي تضمن دقة وتناسق البيانات، بالإضافة إلى قواعد العمل والعلاقات بين الجداول.
تهدف هذه الوحدة إلى تعريف الطلاب بمفهوم سلامة البيانات (Data Integrity) في قواعد البيانات، وأنواع القيود المختلفة التي تضمن دقة وتناسق البيانات، بالإضافة إلى قواعد العمل والعلاقات بين الجداول.
تُعد سلامة النطاق أحد الأبعاد الأساسية لسلامة البيانات. إنها تُركّز على التأكد من أن كل قيمة تُدخل في عمود معين تقع ضمن مجموعة القيم المسموح بها لذلك العمود، والمعروفة باسم "نطاق" (Domain) العمود.
سلامة النطاق هي التأكد من أن كل قيمة مدخلة في حقل ما تقع ضمن مجموعة القيم المسموح بها والمحددة مسبقًا لذلك الحقل.
تمنع إدخال بيانات خاطئة، غير منطقية، أو غير متوافقة مع متطلبات العمل، مما يحافظ على جودة البيانات.
INT للأرقام، VARCHAR للنصوص، DATE للتواريخ) يضمن أن البيانات المدخلة من النوع الصحيح.CHECK Constraint: يُستخدم لفرض شرط معين على القيم في عمود.
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Age INT CHECK (Age >= 0 AND Age <= 120),
Salary DECIMAL(10, 2) CHECK (Salary > 0)
);
ENUM Type (في بعض قواعد البيانات مثل MySQL): يُحدد قائمة بقيم محددة يمكن للعمود أن يأخذها.
CREATE TABLE Users (
UserID INT PRIMARY KEY,
UserName VARCHAR(100),
Gender ENUM('Male', 'Female', 'Other')
);
تُعرف قيود المؤسسة أيضًا باسم "قيود التكامل الدلالي" (Semantic Integrity Constraints). هي قواعد تحدد الشروط والقيود التي تنطبق على جميع البيانات في المؤسسة لضمان تكامل المعلومات عبر الجداول المختلفة أو لفرض منطق عمل معقد.
قواعد عامة تُفرض على مستوى قاعدة البيانات بأكملها (أو على جداول متعددة) لتطبيق منطق العمل الخاص بالمؤسسة والحفاظ على دقة وتناسق البيانات.
تضمن أن العلاقات بين الجداول المختلفة صحيحة وأن العمليات التجارية تُنفذ بطريقة متسقة عبر النظام بأكمله.
قواعد العمل هي تعليمات أو شروط تُحدد كيفية إدارة البيانات والعمليات داخل المنظمة. إنها تُمثل المنطق التشغيلي للشركة وتُترجم لاحقًا إلى قيود (Constraints) في تصميم قواعد البيانات لضمان أن النظام يعمل وفقًا لسياسات المؤسسة.
قواعد تحدد الشروط والإجراءات التي يجب اتباعها في معالجة البيانات والعمليات داخل المنظمة لضمان التوافق مع سياسات الشركة ومتطلباتها التشغيلية.
→ يمكن ترجمة هذا إلى قيد يضمن أن عمود `DepartmentID` في جدول `Employees` يقبل قيمة واحدة فقط لكل موظف، أو أن يكون هناك مفتاح رئيسي مركب في جدول يربط الموظفين بالأقسام إذا كانت العلاقة M:N.
→ يمكن تطبيق هذا باستخدام قيد `NOT NULL` على المفتاح الخارجي لـ `StudentID` في جدول التسجيل (إذا كانت علاقة 1:M)، أو باستخدام قواعد أكثر تعقيدًا (Triggers) لفرض أن الطالب لديه إدخال واحد على الأقل في جدول التسجيل.
→ يُترجم إلى قيود NOT NULL على حقلي `OrderDate` و`CustomerID` في جدول `Orders`، بالإضافة إلى قيد المفتاح الخارجي لـ `CustomerID` للتأكد من وجود العميل.
→ يتطلب هذا عادةً منطقًا برمجيًا في التطبيق أو مشغلًا (Trigger) في قاعدة البيانات يتحقق من رصيد العميل قبل السماح بإدخال طلب جديد.
قواعد العمل تُعد بمثابة الجسر بين متطلبات العمل الفعلية وتصميم قاعدة البيانات. تساعد على منع الأخطاء المنطقية عند معالجة البيانات، وهي أساس تصميم القيود (Constraints) في الجداول، سواء كانت بسيطة (مثل أنواع البيانات، NOT NULL) أو معقدة (مثل Triggers، Stored Procedures).
تُعد العلاقات بين الكيانات جانبًا حيويًا في نمذجة البيانات العلائقية. إنها تُحدد كيف ترتبط البيانات في جدول واحد بالبيانات في جدول آخر، وتؤثر بشكل مباشر على سلامة البيانات وتكاملها.
في هذه العلاقة، كل سجل في جدول يرتبط بسجل واحد فقط في جدول آخر، والعكس صحيح. هذه العلاقة نادرة نسبيًا في التصميم الجيد لقواعد البيانات، وغالبًا ما تشير إلى أن الجدولين يمكن دمجهما في جدول واحد، ما لم يكن هناك سبب محدد للفصل (مثل: فصل البيانات الحساسة لأسباب أمنية، أو التعامل مع سمات اختيارية كثيرة).
التطبيق: يمكن تحقيق ذلك بوضع المفتاح الرئيسي لجدول كـ مفتاح خارجي وفريد (UNIQUE FK) في الجدول الآخر.
هي العلاقة الأكثر شيوعًا في قواعد البيانات العلائقية. في هذه العلاقة، كل سجل في الجدول الأول (الجدول "الواحد") يمكن أن يرتبط بسجل واحد أو أكثر في الجدول الثاني (الجدول "المتعدد")، ولكن كل سجل في الجدول الثاني يرتبط بسجل واحد فقط في الجدول الأول.
التطبيق: تُنفذ هذه العلاقة بوضع المفتاح الرئيسي (PK) من الجدول "الواحد" (الأب) كـ مفتاح خارجي (FK) في الجدول "المتعدد" (الابن).
-- جدول القسم (الجانب "الواحد")
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName VARCHAR(100)
);
-- جدول الموظفين (الجانب "المتعدد")
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName VARCHAR(100),
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);
في هذه العلاقة، كل سجل في الجدول الأول يمكن أن يرتبط بسجل واحد أو أكثر في الجدول الثاني، وكل سجل في الجدول الثاني يمكن أن يرتبط بسجل واحد أو أكثر في الجدول الأول. لا يمكن تمثيل هذه العلاقة بشكل مباشر في النموذج العلائقي باستخدام مفتاح خارجي واحد فقط.
التطبيق: تُنفذ هذه العلاقة في قواعد البيانات العلائقية باستخدام جدول وسيط (Junction Table / Associative Table). هذا الجدول الوسيط يحتوي على المفتاحين الرئيسيين (Primary Keys) من الجدولين المرتبطين كمفاتيح خارجية (Foreign Keys)، وكلاهما معًا يشكلان المفتاح الرئيسي المركب لهذا الجدول الوسيط. قد يحتوي الجدول الوسيط أيضًا على سمات إضافية خاصة بالعلاقة نفسها (مثل `EnrollmentDate` أو `Grade` في مثال الطالب والمقرر).
-- جدول الطلاب
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
StudentName VARCHAR(100)
);
-- جدول المقررات
CREATE TABLE Courses (
CourseID VARCHAR(10) PRIMARY KEY,
CourseName VARCHAR(100)
);
-- الجدول الوسيط للتسجيل (Enrollment)
CREATE TABLE Enrollment (
EnrollmentID INT PRIMARY KEY AUTO_INCREMENT, -- مفتاح فريد للتسجيل نفسه
StudentID INT,
CourseID VARCHAR(10),
EnrollmentDate DATE,
Grade CHAR(1),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
-- يمكن أيضاً أن يكون المفتاح الرئيسي المركب هو (StudentID, CourseID)
-- PRIMARY KEY (StudentID, CourseID)
);
| المصطلح (الإنجليزية) | المصطلح (العربية) | التعريف |
|---|---|---|
| Data Integrity | سلامة البيانات | ضمان دقة، صحة، وتناسق البيانات، وحمايتها من التلف أو التغيير غير المصرح به. |
| Domain Integrity | سلامة النطاق | التأكد من أن البيانات المدخلة في حقل ما تقع ضمن مجموعة القيم المسموح بها لذلك الحقل. |
| Constraint | قيد | قاعدة تُفرض على البيانات في قاعدة البيانات لضمان دقتها وتناسقها (مثل NOT NULL, UNIQUE, CHECK). |
| Enterprise Constraints | قيود المؤسسة | قواعد عامة تُفرض على مستوى المؤسسة لضمان تكامل المعلومات عبر الجداول المختلفة أو فرض منطق عمل معقد. |
| Business Rules | قواعد العمل | تعليمات أو شروط تحدد كيفية إدارة البيانات والعمليات داخل المنظمة، وتُترجم إلى قيود قواعد البيانات. |
| Relationship | علاقة | ارتباط منطقي بين جدولين أو أكثر في قاعدة البيانات. |
| One-to-One (1:1) | علاقة واحد إلى واحد | كل سجل في جدول يرتبط بسجل واحد فقط في جدول آخر. |
| One-to-Many (1:M) | علاقة واحد إلى متعدد | كل سجل في الجدول الأول يرتبط بسجل واحد أو أكثر في الجدول الثاني. |
| Many-to-Many (M:N) | علاقة متعدد إلى متعدد | كل سجل في الجدول الأول يرتبط بسجل واحد أو أكثر في الجدول الثاني، والعكس صحيح. |
| Junction Table / Associative Table | جدول وسيط / ارتباطي | جدول يُستخدم لتمثيل علاقة M:N بين جدولين، ويحتوي على المفاتيح الخارجية من الجدولين الرئيسيين. |
| Primary Key (PK) | المفتاح الرئيسي | عمود أو مجموعة أعمدة تميز كل سجل بشكل فريد. |
| Foreign Key (FK) | المفتاح الخارجي | عمود أو مجموعة أعمدة في جدول تشير إلى المفتاح الرئيسي في جدول آخر. |
| Referential Integrity | التكامل المرجعي | قاعدة تضمن أن قيم المفتاح الخارجي تتطابق مع قيم المفتاح الرئيسي المرتبط أو تكون NULL. |
اختبر فهمك لمفاهيم هذه الوحدة بالإجابة على الأسئلة التالية: