السلام عليكم
لدي من الوقت ثلاث ايام فقط
وارجو المساعدة
في تصميم
تتناول هذه المسألة قاعدة بيانات بسيطة لبرنامج تتبع مشاريع ضمن مؤسسة وتتألف من الجداول التالية:
جدول الحالات
Status
يحتوي حالات المشروع (1قيد التنفيذ، 2 تم، 3 مؤجل، 4 ملغي، 5 فشل)
مفتاح أساسي
ID
اسم الحالة
Name
جدول أنواع المشاريع
Type
يحتوي أنواع المشاريع (1 مشاريع تنفيذية، 2 تعاقد، 3 أنشطة)
مفتاح أساسي
ID
اسم النوع
Name
جدول المشرفين
Manager
يحتوي بيانات مشرفي المشاريع
مفتاح أساسي
ID
اسم المشرف
Name
جدول المشاريع
Project
يحتوي بيانات المشاريع
مفتاح أساسي
ID
مفتاح ثانوي من جدول الحالات
StatusID
مفتاح ثانوي من جدول أنواع المشاريع
TypeID
مفتاح ثانوي من جدول المشرفين
ManagerID
اسم المشروع
Name
وصف المشروع
Description
الجهة الداعمة أو الممولة
Sponsor
تاريخ البداية
StartDate
مدة المشروع بالأيام
Duration
جدول المراحل الافتراضية
DefaultStage
المراحل الافتراضية لكل نوع من أنواع المشاريع
مفتاح أساسي
ID
مفتاح ثانوي من جدول أنواع المشاريع
TypeID
اسم المرحلة الافتراضية
Name
جدول المراحل
Stage
يحتوي بيانات مراحل المشروع
مفتاح أساسي
ID
مفتاح ثانوي من جدول المشاريع
ProjectID
اسم المرحلة
Name
وصف المرحلة
Description
تاريخ البداية
StartDate
مدة المرحلة بالأيام
Duration
مفتاح ثانوي من جدول الحالات
StatusID
نسبة الإنجاز (0 – 100)%
Achievement
جدول المراحل الفرعية
SubStage
يحتوي بيانات المراحل الفرعية لكل مرحلة
مفتاح أساسي
ID
مفتاح ثانوي من جدول المراحل
StageID
اسم المرحلة الفرعية
Name
تاريخ البداية
StartDate
مدة المرحلة الجزئية بالأيام
Duration
مفتاح ثانوي من جدول الحالات
StatusID
جدول التحديثات على المراحل
Update
يحتوي بيانات التحديثات على كل مرحلة
مفتاح أساسي
ID
مفتاح ثانوي من جدول المراحل
StageID
بيانات التحديث
Description
تاريخ الإدخال
InsertDate
تاريخ التعديل
UpdateDate
جدول المرفقات
Attachment
يحتوي بيانات الملفات المرفقة (للمشاريع أو المراحل أو المراحل الجزئية)
مفتاح أساسي
ID
وصف الملف المرفق
Description
رابط الملف المرفق
URL
مفتاح ثانوي من جدول المشاريع
ProjectID
مفتاح ثانوي من جدول المراحل
StageID
مفتاح ثانوي من جدول التحديثات
UpdateID
يبيّن الشكل التالي مخطط الكيانات – العلاقات ERD الخاص بهذه القاعدة:
<H3 dir=rtl style="BACKGROUND: silver; MARGIN: 0cm 0cm 0pt; DIRECTION: rtl; unicode-bidi: embed; TEXT-ALIGN: right">المطلوب: </H3>
1. إنشاء قاعدة البيانات:
1.1.تحديد أنماط الحقول لجميع الجداول المذكورة أنفاً، مع التعليل.
1.2.تحديد القيود اللازمة، مع التعليل.
1.3.تحديد الفهارس اللازمة، مع التعليل.
1.4.بناء قاعدة البيانات (مع تحديد collation name = Arabic_CI_AI_WS أي Arabic + Case-Insensitive + Accent-Insensitive + Width-Sensitive).
1.5.تحديد ملفات قاعدة البيانات اللازمة، مع التعليل.
1.6.إدخال خمس مشاريع مع ثلاث مراحل لكل مشروع مع البيانات المرتبطة اللازمة
1.7.بناء الجداول والفهارس والقيود الخاصة بقاعدة البيانات مع إعطاء التعليمات اللازمة لتوليد هذه الأغراض وفق الاستمارة التالية:
بطاقة جدول
الرقم المتسلسل
اسم الجدول
(اختر التسلسل الذي تراه مناسباً للجداول)
(اسم الجدول)
الحقول
اسم الحقل
النمط
يقبل NULL
القيمة الافتراضية
القيود
اسم القيد
نوع القيد
الحقول المشاركة
الحقول الخارجية المشاركة
الفهارس
اسم الفهرس
نوع الفهرس
الحقول المشاركة
هل الفهرس عنقودي Clustered
T-SQL
إنشاء الجدول
Create Table ...
(…) ON …
إنشاء القيود (غير المضمنة في إنشاء الجدول)
Alter Table … Add Constraint xx …
إنشاء الفهارس
Create Index …
ملاحظات
ضع هنا أي تعليق تراه مناسباً لتبرير إنشاء القيود أو الفهارس وكذلك لتبرير أنماط معطيات الحقول إذا كان ذلك ضروريا برأيك.
2. تنفيذ استعلامات:
2.1. لعرض المشاريع المتأخرة، إما لتأخر المشروع أو أحد مراحله أو أحد مراحله الجزئية (حالتها قيد التنفيذ و تجاوزت المدة المحددة)، قم باستخدام الإجرائية المطلوبة في السؤال 3.
2.2. لعرض المشرفين الكسالى (لم يقم بإدخال تحديث في جدول التحديثات على المراحل منذ 10 أيام)
2.3. لعرض المشاريع مع نسبة إنجاز كل مشروع (بحسابه من نسب إنجاز المراحل)
2.4. لعرض المرفقات التابعة للمشروع (مرفقة بالمشروع أو مراحله أو تحديثات المراحل)
2.5. لطباعة تقرير يتضمن المشروع ومراحله وآخر تحديث على كل مرحلة.
3. إنشاء الإجرائية أو التابع المعرف من قبل المستخدم، مع بيان الدخل والخرج وطريقة الاستدعاء لمعرفة حالة مشروع ما وتأخره إن كان في حالة التنفيذ من عدمه.
4. كتابة المنظار الذي يصدر تقريراً بالتحديثات اليومية على المشاريع.
5. كتابة قادح واحد لازم لضمان تكامل البيانات (عند إنشاء مشروع جديد يقوم بإنشاء مراحله بالاعتماد على المراحل الافتراضية)