طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 122 · برمجة قواعد البيانات
تقييم الدرس 8

التطبيع: من جدول واحد إلى جداول مترابطة

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

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

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

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

1) هدف التطبيع الأساسي:
2) جدول بنود مفتاحه (order_id, product_id) وفيه product_name. ما المخالفة؟
3) أعمدة phone1 و phone2 و phone3 تخالف:
4) أي أمر يملأ عمودًا من جدول آخر في PostgreSQL؟
5) إلغاء التطبيع المقصود يُقبل غالبًا في:

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

1) تكرار مدينة العميل في كل طلب يسبب شذوذ التعديل.
الصواب: صح
2) 1NF تسمح بقائمة قيم مفصولة بفواصل في الخلية.
الصواب: خطأ
3) 3NF تمنع اعتماد عمود عادي على عمود عادي آخر.
الصواب: صح
4) التفكيك الصحيح يفقد بعض البيانات حتمًا.
الصواب: خطأ
5) INSERT … SELECT DISTINCT ينقل القيم الفريدة فقط.
الصواب: صح

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

1) الصيغة التي تشترط قيمًا ذرّية هي .
الإجابة: 1NF
2) عدم القدرة على إضافة مورد قبل وجود طلب يسمّى شذوذ .
الإجابة: الإدخال
3) الدالة التي تفكّ نصًّا مفصولًا إلى صفوف .
الإجابة: string_to_table

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

1) كم صفًّا يُنتج هذا الاستعلام؟

query.sql
CREATE TABLE sales_flat (  order_id      int,  order_date    date,  customer_name text,  customer_city text,  products      text,          -- قائمة مفصولة بفواصل!  supplier      text,  supplier_phone text);INSERT INTO sales_flat VALUES (1, '2025-09-01', 'سارة', 'الرياض', 'حاسب محمول, فأرة', 'مؤسسة النور', '0501111111'), (2, '2025-09-02', 'خالد', 'جدة',    'فأرة',             'مؤسسة النور', '0501111111'), (3, '2025-09-03', 'سارة', 'الرياض', 'دفتر',             'مكتبة الفكر', '0502222222');SELECT count(*) FROM (SELECT DISTINCT supplier FROM sales_flat) s;
الناتج الصحيح:
النتيجة · صف واحد
count
2

2) ما ناتج هذا الاستعلام؟

query.sql
CREATE TABLE sales_flat (  order_id      int,  order_date    date,  customer_name text,  customer_city text,  products      text,          -- قائمة مفصولة بفواصل!  supplier      text,  supplier_phone text);INSERT INTO sales_flat VALUES (1, '2025-09-01', 'سارة', 'الرياض', 'حاسب محمول, فأرة', 'مؤسسة النور', '0501111111'), (2, '2025-09-02', 'خالد', 'جدة',    'فأرة',             'مؤسسة النور', '0501111111'), (3, '2025-09-03', 'سارة', 'الرياض', 'دفتر',             'مكتبة الفكر', '0502222222');SELECT count(*) FROM sales_flat, string_to_table(products, ',') p;
الناتج الصحيح:
النتيجة · صف واحد
count
4
أجب عن الأسئلة ثم اضغط «صحّح ورقتي».

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