ورقة تقييم الدرس 12: مشروع صغير
مشروع: تصميم قاعدة بيانات لنظام إدارة مكتبة صغيرة
السيناريو: مكتبة حي صغيرة ترغب في تحويل نظامها اليدوي لإدارة الكتب والإعارات إلى نظام آلي بسيط. أنت مكلف بتصميم قاعدة البيانات لهذا النظام.
المتطلبات الوظيفية الرئيسية:
- الكتب: تخزين معلومات عن كل كتاب (عنوان، مؤلف/مؤلفون، ISBN، سنة النشر، عدد النسخ).
- الأعضاء (القراء): تسجيل معلومات الأعضاء (اسم، رقم عضوية، هاتف، عنوان).
- الإعارات: تسجيل كل إعارة (تاريخ الإعارة، تاريخ الإرجاع المتوقع والفعلي).
- تصنيف الكتب: يمكن تصنيف الكتب حسب فئات (روايات، علوم، تاريخ).
1. وصف المتطلبات (تحليل موجز):
(أعد صياغة المتطلبات بأسلوبك، وحدد افتراضاتك هنا...)
2. بناء النموذج المفاهيمي للبيانات (MCD):
(ارسم مخطط MCD هنا، أو صف الكيانات، الخصائص، والعلاقات بشكل نصي منظم...)
3. تحويل MCD إلى النموذج المنطقي للبيانات (MLD):
(اكتب قائمة بالجداول، أعمدتها، والمفاتيح الأساسية والخارجية هنا...)
إظهار الحل النموذجي لمشروع المكتبة
1. وصف المتطلبات (تحليل موجز)
يهدف النظام إلى إدارة الكتب والأعضاء والإعارات في مكتبة. الكيانات الرئيسية هي: الكتاب (بمعلومات مثل العنوان والمؤلف)، العضو (ببياناته الشخصية)، والإعارة (لربط الكتب بالأعضاء مع تواريخ). بالإضافة إلى ذلك، هناك كيانات مساعدة مثل المؤلف والفئة.
افتراضات رئيسية:
- الكتاب الواحد يمكن أن يكون له عدة مؤلفين.
- المؤلف الواحد يمكن أن يكتب عدة كتب (علاقة n,n).
- الكتاب الواحد ينتمي إلى فئة واحدة فقط.
- العضو يمكن أن يستعير عدة كتب، والكتاب يمكن أن يستعيره عدة أعضاء (ولكن ليس في نفس الوقت، يتم تتبع ذلك عبر الإعارة).
2. بناء النموذج المفاهيمي للبيانات (MCD)
بناءً على التحليل، نستنتج الكيانات والعلاقات التالية:
- الكيانات: كتاب، مؤلف، عضو، إعارة، فئة.
- العلاقات:
- يكتب (Auteur-Livre): علاقة (n,n) بين المؤلف والكتاب.
- ينتمي_إلى (Livre-Catégorie): علاقة (1,n) بين الفئة والكتاب.
- يستعير (Membre-Livre): هذه علاقة (n,n) ضمنية، يتم حلها عبر كيان "الإعارة". وبالتالي، العلاقة تصبح:
- عضو يقوم بـ (0,n) إعارة.
- كتاب يخضع لـ (0,n) إعارة.
- الإعارة الواحدة تخص (1,1) عضو و (1,1) كتاب.
(في الرسم الفعلي، سيتم رسم هذه الكيانات والعلاقات بوضوح).
3. تحويل MCD إلى النموذج المنطقي للبيانات (MLD)
ينتج عن تحويل الـ MCD الجداول التالية:
- id_categorie (PK)
- nom_categorie
- id_auteur (PK)
- nom_auteur
- id_membre (PK)
- nom_membre
- telephone
- adresse
- id_livre (PK)
- titre
- isbn
- annee_publication
- nb_copies
- id_categorie (FK)
- id_livre (PK, FK)
- id_auteur (PK, FK)
- id_emprunt (PK)
- date_emprunt
- date_retour_prevu
- date_retour_reel
- id_membre (FK)
- id_livre (FK)
شرح الجداول:
- Categories, Auteurs, Membres, Livres: كل كيان أساسي تحول إلى جدول خاص به.
- Livre_Auteur: هذا هو جدول الربط الذي نتج عن علاقة (n,n) بين الكتاب والمؤلف. مفتاحه الأساسي مركب من مفاتيح الجدولين الأصليين.
- Emprunts: هذا الجدول يمثل كيان "الإعارة". يستقبل مفتاح
id_membre
وid_livre
كمفاتيح أجنبية لربط كل إعارة بعضو وكتاب محددين. تم إعطاؤه مفتاحاً أساسياً خاصاً به (id_emprunt
) لتمييز كل عملية إعارة عن الأخرى.