1.سهلة
ما المفتاح البديل (surrogate key)؟
- Aمفتاح مأخوذ من بيانات واقعية مثل عنوان البريد الإلكتروني
- Bمفتاح لا يُستخدم إلا في العروض (views)
- Cمعرّف اصطناعي لا معنى تجاريًا له، مثل معرّف يتزايد تلقائيًا
- Dمفتاح يشير إلى جدول آخر
2.سهلة
إلى أي جزء من SQL تنتمي GRANT وREVOKE؟
- Aلغة استعلام البيانات (DQL)
- Bلغة معالجة البيانات (DML)
- Cلغة تعريف البيانات (DDL)
- Dلغة التحكم في البيانات (DCL)
3.سهلة
أي صفوف تختار WHERE price BETWEEN 10 AND 20؟
- Aالصفوف التي سعرها خارج المدى من 10 إلى 20
- Bالصفوف التي سعرها أعلى من 10 وأقل من 20، باستثناء 10 و20
- Cالصفوف التي سعرها من 10 إلى 20، بما في ذلك 10 و20
- Dالصفوف التي سعرها يساوي 10 أو 20 فقط
4.متوسطة
يحتوي عمود على القيم 10 و20 وNULL. ماذا تُرجع AVG(col)؟
- ANULL
- B30
- C10
- D15
5.متوسطة
ماذا تُرجع INTERSECT عند استخدامها بين استعلامين SELECT؟
- Aالصفوف الموجودة في النتيجتين كلتيهما
- Bجميع الصفوف من النتيجتين
- Cالصفوف الموجودة في النتيجة الأولى دون الثانية
- Dالضرب الديكارتي للنتيجتين
6.متوسطة
لماذا يفشل SELECT price * 2 AS double_price FROM t WHERE double_price > 10 في معظم قواعد البيانات؟
- Aلأن WHERE لا تقارن إلا أعمدة النصوص
- Bلأن WHERE تُقيَّم قبل قائمة SELECT، فلا يكون الاسم المستعار موجودًا بعد
- Cلأن العمليات الحسابية غير مسموح بها في قائمة SELECT
- Dلأن الأسماء المستعارة لا يجوز أن تحتوي على شرطة سفلية
7.صعبة
ماذا تشترط قاعدة التسجيل المسبق للسجل (write-ahead logging, WAL)؟
- Aيجب تسجيل كل استعلام قبل تحليله
- Bيجب كتابة صفحات البيانات قبل السجل
- Cيجب أن يصل سجل التغيير إلى التخزين المستقر قبل أن تصل صفحة البيانات المتغيرة
- Dلا يُكتب السجل إلا بعد التعطل
8.صعبة
بعد customers LEFT JOIN orders، لماذا تُستخدم COUNT(o.id) بدلًا من COUNT(*) لعدّ الطلبات لكل عميل؟
- Aلأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم
- Bلأن COUNT(*) تتجاهل الصفوف ذات القيم NULL
- Cلأن COUNT(o.id) تعدّ العملاء المميزين فقط
- Dلأن COUNT(*) غير مسموح بها بعد الربط
مفتاح الإجابات
- 1. C · معرّف اصطناعي لا معنى تجاريًا له، مثل معرّف يتزايد تلقائيًا
- 2. D · لغة التحكم في البيانات (DCL)
- 3. C · الصفوف التي سعرها من 10 إلى 20، بما في ذلك 10 و20
- 4. D · 15
- 5. A · الصفوف الموجودة في النتيجتين كلتيهما
- 6. B · لأن WHERE تُقيَّم قبل قائمة SELECT، فلا يكون الاسم المستعار موجودًا بعد
- 7. C · يجب أن يصل سجل التغيير إلى التخزين المستقر قبل أن تصل صفحة البيانات المتغيرة
- 8. A · لأن COUNT(*) تعدّ الصف المملوء بـ NULL على أنه 1 للعملاء الذين لا طلبات لهم
حلول كاملة خطوة بخطوة: تدرّب على هذا الموضوع في examproblems.com.