علوم الحاسوب
قواعد البيانات — الورقة 2
- 1.
اشرح ميزة واحدة لقاعدة بيانات علائقية مقارنة بقاعدة بيانات أحادية الملف لتخزين سجلات الطلاب والمقررات في مدرسة.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن قاعدة البيانات العلائقية تخزن البيانات في جداول منفصلة ومترابطة بدلاً من جدول كبير واحد مكرر.
- يشرح أن هذا يتجنب تكرار بيانات الطالب نفسها لكل مقرر يأخذه، مما يقلل مساحة التخزين ومخاطر تضارب البيانات.
ملاحظة الفاحص: يكرر الملف الأحادي البيانات كلما كانت العلاقة واحداً إلى متعدد؛ ويزيل التقسيم إلى جداول مترابطة هذا التكرار.
- 2.
في جدول قاعدة بيانات يخزن سجلات الطلاب، أي حقل الأنسب كمفتاح أساسي؟ أ اسم الطالب ب تاريخ الميلاد ج رقم هوية الطالب د اسم الصف
[1 درجة] · بدون آلة حاسبةنقاط التصحيح
- يختار ج: رقم هوية الطالب فريد لكل طالب، بخلاف الحقول الأخرى التي يمكن أن تتكرر.
ملاحظة الفاحص: يجب أن يكون المفتاح الأساسي فريداً لكل سجل؛ ويمكن أن تتشارك الأسماء وتواريخ الميلاد وأسماء الصفوف أكثر من طالب.
- 3.
يرتبط جدول 'Students' وجدول 'Courses' عبر حقل StudentID موجود في كليهما. حدّد اسم هذا الحقل في جدول Courses، واشرح غرضه.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يحدده كمفتاح أجنبي.
- يشرح أنه يشير إلى المفتاح الأساسي لجدول Students، فيربط كل سجل مقرر بالطالب الصحيح.
ملاحظة الفاحص: يشير المفتاح الأجنبي في جدول إلى المفتاح الأساسي في جدول آخر، وهكذا تمثّل قواعد البيانات العلائقية العلاقات بين الجداول.
- 4.
اكتب جملة SQL لاختيار حقلي Name وAge من جدول يُدعى Students، للسجلات التي تزيد فيها قيمة Age عن 16.
[3 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم SELECT متبوعاً بأسماء الحقول الصحيحة، Name وAge.
- يستخدم FROM Students لتحديد الجدول الصحيح.
- يستخدم WHERE Age > 16 لتطبيق الشرط الصحيح.
ملاحظة الفاحص: ترتيب الجمل في SQL دائماً SELECT ... FROM ... WHERE ...؛ ويسبب الخلط في هذا الترتيب خطأً نحوياً.
- 5.
اكتب جملة SQL لاختيار جميع الحقول من جدول يُدعى Books، مرتبة حسب PublishedYear تنازلياً.
[3 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم SELECT * لاختيار جميع الحقول.
- يستخدم FROM Books لتحديد الجدول الصحيح.
- يستخدم ORDER BY PublishedYear DESC للترتيب حسب الحقل الصحيح تنازلياً.
ملاحظة الفاحص: يرتب DESC من الأعلى إلى الأدنى؛ وحذفه، أو استخدام ASC، يرتب من الأدنى إلى الأعلى بدلاً من ذلك.
- 6.
اشرح مشكلة واحدة يمكن أن تنشأ إذا خزّن جدول أحادي الملف تفاصيل الطالب الشخصية وصفاً منفصلاً مكرراً لكل مقرر يأخذه.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن تفاصيل الطالب الشخصية (مثل الاسم والعنوان) تتكرر في كل صف خاص بذلك الطالب.
- يشرح أن هذا يهدر مساحة التخزين ويخاطر بعدم الاتساق إذا حُدِّثت التفاصيل في بعض الصفوف دون غيرها.
ملاحظة الفاحص: هذا التكرار ومخاطره هما بالضبط ما يهدف تقسيم البيانات إلى جداول منفصلة ومترابطة (التسوية) إلى إزالته.
- 7.
أي نوع بيانات الأنسب لتخزين تاريخ ميلاد طالب بدقة في قاعدة بيانات؟ أ نص ب منطقي (Boolean) ج تاريخ د عدد صحيح
[1 درجة] · بدون آلة حاسبةنقاط التصحيح
- يختار ج: يتحقق نوع البيانات Date من قيم اليوم والشهر والسنة ويخزنها بصورة صحيحة.
ملاحظة الفاحص: يتيح نوع Date المخصص الترتيب والحسابات الزمنية (مثل إيجاد عمر شخص) التي لا يدعمها حقل Text العادي بموثوقية.
- 8.
اشرح لماذا قد يُقيَّد حقل قاعدة بيانات يخزن 'المرحلة الدراسية' لطالب بقائمة قيم محددة مسبقاً بدلاً من السماح بإدخال نص حر.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن تقييد الإدخال بقائمة محددة مسبقاً يتجنب قيماً غير متسقة، مثل الأخطاء الإملائية أو تهجئات مختلفة للمرحلة نفسها.
- يشرح أن القيم المتسقة تجعل الحقل أسهل وأكثر موثوقية للبحث والتصفية والتحليل.
ملاحظة الفاحص: القائمة المحددة مسبقاً هي شكل من أشكال التحقق يمنع إدخال بيانات غير صالحة أو غير متسقة من البداية.
- 9.
اكتب جملة SQL لإدراج سجل جديد في جدول يُدعى Students، برقم هوية الطالب 101 والاسم 'Amira' والعمر 15.
[3 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم INSERT INTO Students لتحديد الجدول الصحيح.
- يسرد أسماء الحقول بين قوسين: (StudentID, Name, Age).
- يستخدم VALUES (101, 'Amira', 15) مع وضع النص بين علامتي اقتباس والأرقام بدونها.
ملاحظة الفاحص: يجب وضع القيم النصية في SQL بين علامتي اقتباس؛ ويجب عدم وضع القيم الرقمية كذلك، وإلا تسبب الجملة خطأً.
- 10.
اكتب جملة SQL لتحديث حقل Age إلى 16 للطالب الذي رقم هويته 101 في جدول Students.
[3 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم UPDATE Students لتحديد الجدول الصحيح.
- يستخدم SET Age = 16 لتحديد القيمة الجديدة.
- يستخدم WHERE StudentID = 101 لاستهداف السجل الصحيح فقط.
ملاحظة الفاحص: أدرج دائماً جملة WHERE مع UPDATE — فبدونها، سيُحدَّث كل سجل في الجدول، لا السجل المقصود فقط.
- 11.
اكتب جملة SQL لحذف سجل الطالب الذي رقم هويته 101 من جدول Students.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم DELETE FROM Students لتحديد الجدول الصحيح.
- يستخدم WHERE StudentID = 101 لاستهداف السجل الصحيح فقط.
ملاحظة الفاحص: كما هو الحال مع UPDATE، فإن نسيان جملة WHERE في جملة DELETE سيحذف كل سجل في الجدول.
- 12.
اكتب جملة SQL لاختيار حقل Name من جدول يُدعى Students، للسجلات التي يكون فيها Age أكبر من 14 ويساوي فيها حقل Grade القيمة 'A' (باستخدام AND).
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم SELECT Name FROM Students لتحديد الحقل والجدول الصحيحين.
- يستخدم WHERE Age > 14 AND Grade = 'A' للجمع بين الشرطين بصورة صحيحة.
ملاحظة الفاحص: يتطلب AND أن يكون كلا الشرطين صحيحاً كي يُدرج السجل؛ بينما يُدرج OR سجلاً إذا تحقق أي من الشرطين.
- 13.
اكتب جملة SQL لعدّ عدد السجلات في جدول يُدعى Students.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم دالة التجميع COUNT.
- يكتب جملة كاملة وصحيحة: SELECT COUNT(*) FROM Students.
ملاحظة الفاحص: يحسب COUNT(*) كل صف في النتيجة، بصرف النظر عن قيم الحقول المحددة التي يحتويها.
- 14.
اشرح المقصود بالتكامل المرجعي في قاعدة بيانات علائقية، مستخدماً الرابط بين جدول Students وجدول Courses مثالاً.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن التكامل المرجعي يضمن أن قيمة المفتاح الأجنبي في جدول يجب أن تطابق قيمة مفتاح أساسي موجودة في الجدول المرتبط.
- يطبق ذلك على المثال: لا يمكن لسجل في Courses أن يشير إلى StudentID غير موجود فعلاً في جدول Students.
ملاحظة الفاحص: يمنع التكامل المرجعي السجلات «اليتيمة» التي تشير إلى شيء غير موجود، فيحافظ على صحة العلاقات بين الجداول.
- 15.
اشرح ماذا يعني أن يحتوي حقل قاعدة بيانات على قيمة NULL.
[1 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن قيمة NULL تعني أن الحقل لا يحتوي أي بيانات مخزنة فيه على الإطلاق — وهذا ليس مثل الصفر أو نص فارغ.
ملاحظة الفاحص: تمثل NULL «غير معروف» أو «لم يُدخَل»، وهو معنى مختلف عن قيمة مسجلة تساوي صفراً أو نصاً فارغاً.
- 16.
اشرح، مستخدماً الطلاب والأندية مثالاً، المقصود بعلاقة متعدد إلى متعدد في قاعدة بيانات.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أنه في علاقة متعدد إلى متعدد، يمكن ربط سجل واحد في الجدول الأول بسجلات كثيرة في الجدول الثاني، والعكس صحيح.
- يطبق ذلك على المثال: يمكن لطالب واحد الانضمام إلى أندية كثيرة، ويمكن لنادٍ واحد أن يضم طلاباً كثراً، لذا لا يستطيع أي جدول وحده تمثيل العلاقة مباشرة.
ملاحظة الفاحص: تحتاج علاقة متعدد إلى متعدد عادة إلى جدول ثالث رابط لتسجيل كل تركيبة فردية من طالب وناد.
- 17.
اشرح وظيفة واحدة يؤديها نظام إدارة قواعد البيانات (DBMS).
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يحدد وظيفة صحيحة، مثل التحكم في الوصول والصلاحيات، أو الحفاظ على تكامل البيانات، أو توفير أدوات للاستعلام وتحديث البيانات.
- يشرح بإيجاز كيف تفيد هذه الوظيفة مستخدمي قاعدة البيانات.
ملاحظة الفاحص: يقع نظام إدارة قواعد البيانات بين المستخدم والبيانات المخزنة الخام، فيدير كيفية إنشائها والوصول إليها وتحديثها وحمايتها.
- 18.
اشرح الغرض من قاموس البيانات عند تصميم قاعدة بيانات.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن قاموس البيانات يسجل تفاصيل عن كل حقل في قاعدة البيانات، مثل اسمه ونوع بياناته وطوله.
- يشرح أن ذلك يوفر مرجعاً واحداً ومتسقاً لأي شخص يصمم قاعدة البيانات أو يبنيها أو يصونها.
ملاحظة الفاحص: يوثّق قاموس البيانات بنية قاعدة البيانات نفسها، منفصلاً عن سجلات البيانات الفعلية المخزنة فيها.
- 19.
اشرح كيف يمكن لإضافة فهرس إلى حقل يُبحث فيه كثيراً أن تحسّن أداء قاعدة بيانات.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن الفهرس ينشئ بنية منفصلة ومنظمة تتيح لقاعدة البيانات إيجاد السجلات المطابقة أسرع، دون فحص كل صف.
- يذكر مقايضة، مثل استخدام الفهرس مساحة تخزين إضافية أو إبطائه قليلاً إدراج البيانات.
ملاحظة الفاحص: يعمل الفهرس تماماً كفهرس كتاب — فيتيح لك القفز مباشرة إلى المعلومة المناسبة بدلاً من قراءة كل صفحة بالترتيب.
- 20.
اشرح، ببساطة، فيم تُستخدم عملية SQL JOIN عند العمل مع جدولين مترابطين.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن JOIN يدمج صفوفاً من جدولين مترابطين أو أكثر في نتيجة واحدة، بناءً على حقل مشترك (مثل مفتاح مطابق).
- يقدم مثالاً معقولاً، مثل دمج جدول Students وجدول Courses لعرض كل طالب إلى جانب المقرر المسجل فيه.
ملاحظة الفاحص: يتيح JOIN الاستعلام عن بيانات موزعة عبر جداول مرتبطة متعددة كما لو كانت جدولاً واحداً مدمجاً.
- 21.
اشرح الغرض من رسم مخطط علاقات الكيانات قبل بناء قاعدة بيانات.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن مخطط علاقات الكيانات يوضح الكيانات المختلفة (مثل Students، Courses) التي ستخزنها قاعدة البيانات وكيفية ارتباطها ببعضها.
- يشرح أن التخطيط لذلك قبل بناء قاعدة البيانات يساعد على تجنب أخطاء بنيوية وعيوب تصميم لاحقاً.
ملاحظة الفاحص: مخطط علاقات الكيانات أداة تخطيط تُستخدم قبل بناء قاعدة بيانات، تماماً كما يُستخدم المخطط المعماري قبل تشييد مبنى.
- 22.
اشرح لماذا يكون حقل يسجل ما إذا كان طالب قد دفع عربون رحلة مدرسية الأنسب تخزينه كنوع بيانات منطقي (Boolean).
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن الحقل يمكن أن يكون في إحدى حالتين ممكنتين فقط: دُفع أو لم يُدفع.
- يشرح أن نوع البيانات المنطقي (صحيح/خاطئ) يطابق هذا تماماً، بينما قد يسمح استخدام النص بإدخالات غير متسقة مثل 'Yes' أو 'yes' أو 'paid'.
ملاحظة الفاحص: الحقل المنطقي هو الخيار الأنسب كلما كانت البيانات تمتلك فعلاً حالتين ممكنتين فقط، لأنه يمنع إدخالات نصية غير متسقة.
- 23.
اشرح لماذا ينبغي لمدرسة عمل نسخ احتياطي دوري لقاعدة بيانات سجلات طلابها.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يشرح أن النسخة الاحتياطية نسخة منفصلة من البيانات، تُخزَّن بأمان تحسباً لفقدان الأصل أو تلفه أو تضرره.
- يشرح أنه دون نسخة احتياطية حديثة، يمكن أن تُفقد سجلات طلاب مهمة نهائياً، وهو أمر قد يصعب أو يستحيل إعادة إنشائه.
ملاحظة الفاحص: ينبغي تخزين النسخة الاحتياطية في موقع مختلف عن البيانات الأصلية، كي لا تتمكن كارثة واحدة (كحريق أو عطل في العتاد) من تدمير كليهما.
- 24.
اكتب جملة SQL لاختيار جميع الحقول من جدول يُدعى Employees، مرتبة أولاً حسب Department ثم حسب Surname، كلاهما تصاعدياً.
[2 درجة] · بدون آلة حاسبةنقاط التصحيح
- يستخدم SELECT * FROM Employees لاختيار جميع الحقول من الجدول الصحيح.
- يستخدم ORDER BY Department, Surname للترتيب حسب كلا الحقلين بترتيب الأولوية الصحيح.
ملاحظة الفاحص: يؤدي سرد الحقول بترتيب بعد ORDER BY إلى الترتيب حسب الحقل الأول أولاً، مستخدماً الحقل الثاني فقط لكسر التعادل ضمن القيمة نفسها للحقل الأول.