طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 121 · مبادئ قواعد البيانات
تقييم الدرس 10

المفتاح الأجنبي وربط الجداول

أجب عن الأسئلة ثم اضغط «صحّح ورقتي» في آخر الصفحة. ← العودة إلى الدرس

أسئلة التقييم

تقييم الدرس 10: المفتاح الأجنبي وربط الجداول. إجاباتك تُحفظ تلقائيًّا على هذا الجهاز؛ أجب ثم اضغط «صحّح ورقتي».

1السؤال الأول: اختر الإجابة الصحيحة

1) في علاقة الأقسام والموظفين، الجدول الأب:
2) حذف القسم يجعل قسم موظفيه فارغًا. الخيار:
3) ماذا يحدث عند تنفيذ الأمر الأخير؟
query.sql
CREATE TABLE depts (  id   INTEGER PRIMARY KEY,  name TEXT NOT NULL);CREATE TABLE staff (  id      INTEGER PRIMARY KEY,  name    TEXT NOT NULL,  dept_id INTEGER REFERENCES depts(id));INSERT INTO depts VALUES (1, 'المبيعات'), (2, 'المستودع');INSERT INTO staff VALUES (10, 'سالم', 1), (11, 'منيرة', 1), (12, 'بدر', 2);INSERT INTO staff VALUES (20, 'ريم', 5);
4) في SQLite تُفعَّل المفاتيح الأجنبية بالأمر:
5) متى يناسب CASCADE؟

2السؤال الثاني: صح أم خطأ

1) يمكن إدخال موظف قبل إنشاء قسمه إن كان هناك مفتاح أجنبي.
الصواب: خطأ
2) المفتاح الأجنبي يمكن أن يتكرر في جدول الابن.
الصواب: صح
3) بلا خيار ON DELETE يرفض النظام حذف أب له أبناء.
الصواب: صح
4) المفتاح الأجنبي يجب أن يكون فريدًا دائمًا.
الصواب: خطأ

3السؤال الثالث: أكمل الفراغات من القائمة المنسدلة

1) الكلمة التي تحدد جدول الأب في المفتاح الأجنبي: .
الإجابة: REFERENCES
2) الصف الذي يشير إلى أب غير موجود يسمى سجلًّا .
الإجابة: يتيمًا
3) في MySQL تعمل المفاتيح الأجنبية مع المحرك .
الإجابة: InnoDB

4السؤال الرابع: أسئلة عملية

1) ما ناتج هذا الكود؟

query.sql
CREATE TABLE depts (  id   INTEGER PRIMARY KEY,  name TEXT NOT NULL);CREATE TABLE staff (  id      INTEGER PRIMARY KEY,  name    TEXT NOT NULL,  dept_id INTEGER REFERENCES depts(id) ON DELETE CASCADE);INSERT INTO depts VALUES (1, 'المبيعات'), (2, 'المستودع');INSERT INTO staff VALUES (10, 'سالم', 1), (11, 'منيرة', 1), (12, 'بدر', 2);DELETE FROM depts WHERE id = 1;SELECT name FROM staff;
الناتج الصحيح:
النتيجة · صف واحد
name
بدر

2) ما ناتج هذا الكود؟

query.sql
CREATE TABLE depts (  id   INTEGER PRIMARY KEY,  name TEXT NOT NULL);CREATE TABLE staff (  id      INTEGER PRIMARY KEY,  name    TEXT NOT NULL,  dept_id INTEGER REFERENCES depts(id) ON DELETE SET NULL);INSERT INTO depts VALUES (1, 'المبيعات'), (2, 'المستودع');INSERT INTO staff VALUES (10, 'سالم', 1), (11, 'منيرة', 1), (12, 'بدر', 2);DELETE FROM depts WHERE id = 2;SELECT COUNT(*) FROM staff WHERE dept_id IS NULL;
الناتج الصحيح:
النتيجة · صف واحد
COUNT(*)
1
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

📝 معلم؟ أرسل ملاحظة للمؤلف عن هذا الدرس