تصميم قواعد البيانات - PDF

Summary

هذه وثيقة مُلخصة حول تصميم قواعد البيانات. تُقدّم لمحة عامة عن مكونات نظام قاعدة البيانات ودورة حياة النظام. وتُناقش مكونات قواعد البيانات العلائقية والمفاتيح الرئيسية والفرعية. تُغطي كذلك أهداف تصميم قاعدة بيانات جيدة، بالإضافة الى أهمية تصميم قاعدة بيانات جيد.

Full Transcript

# تصميم قواعد البيانات ## مقدمة الحمد لله وحده، والصلاة والسلام على من لا نبي بعده، محمد وعلى آله وصحبه، وبعد: تسعى المؤسسة العامة للتعليم الفني والتدريب المهني لتأهيل الكوادر الوطنية المدربة القادرة عن شغل الوظائف التقنية والفنية والمهنية المتوفرة في سوق العمل، ويأتي هذا الاهتمام نتيجة للتوجه ال...

# تصميم قواعد البيانات ## مقدمة الحمد لله وحده، والصلاة والسلام على من لا نبي بعده، محمد وعلى آله وصحبه، وبعد: تسعى المؤسسة العامة للتعليم الفني والتدريب المهني لتأهيل الكوادر الوطنية المدربة القادرة عن شغل الوظائف التقنية والفنية والمهنية المتوفرة في سوق العمل، ويأتي هذا الاهتمام نتيجة للتوجه السديدة من لدن قادة هذا الوطن التي تصب في مجملها نحو إيجاد وطن متكامل يعتمد ذاتياً على موا وعلى قوة شبابه المسلح بالعلم والإيمان من أجل الاستمرار قدماً في دفع عجلة التقدم التنموي، لتصل بـ الله تعالى المصاف الدول المتقدمة صناعياً. وقد خطت الإدارة العامة لتصميم وتطوير المناهج خطوة إيجابية تتفق مع التجارب الدولية المتن في بناء البرامج التدريبية، وفق أساليب علمية حديثة تحاكي متطلبات سوق العمل بكافة تخصص لتلبي متطلباته، وقد تمثلت هذه الخطوة في مشروع إعداد المعايير المهنية الوطنية الذي يمثل الرد الأساسية في بناء البرامج التدريبية، إذ تعتمد المعايير في بنائها على تشكيل لجان تخصصية تمثل العمل والمؤسسة العامة للتعليم الفني والتدريب المهني بحيث تتوافق الرؤية العلمية مع الواقع العملي تفرضه متطلبات سوق العمل، لتخرج هذه اللجان في النهاية بنظرة متكاملة لبرنامج تدريبي | التصاقا بسوق العمل، وأكثر واقعية في تحقيق متطلباته الأساسية. وتتناول هذه الحقيبة التدريبية " تصميم قواعد البيانات" لمتدربي قسم برمجيات " للكليات | موضوعات حيوية تتناول كيفية اكتساب المهارات اللازمة لهذا التخصص. والإدارة العامة لتصميم وتطوير المناهج وهي تضع بين يديك هذه الحقيبة التدريبية تأمل منا وجل أن تسهم بشكل مباشر في تأصيل المهارات الضرورية اللازمة، بأسلوب مبسط يخلو من الـ وبالاستعانة بالتطبيقات والأشكال التي تدعم عملية اكتساب هذه المهارات. والله نسأل أن يوفق القائمين على إعدادها والمستفيدين منها لما يحبه ويرضاه، إنه سمين الدعاء. ## الإدارة العامة لتصميم وتطوير المناهج ## تصميم قواعد البيانات: مقدمة لتصميم قواعد البيانات ### مقدمة ## الوحدة الأولى: مقدمة لتصميم قواعد البيانات ### الأهداف: * القدرة على وصف مكونات نظام قاعدة البيانات ودورة حياة النظام. * أن يتعرف المتدرب مكونات نظام قاعدة البيانات. * أن يتعرف المتدرب دورة الحياة لنظام قاعدة البيانات. ### مستوى الأداء المطلوب: أن يتقن المتدرب وصف مكونات النظام ومراحل تطويره بنسبة 100%. ### الوقت المتوقع للتدريب : ساعتان ### الوسائل المساعدة: قلم + دفتر ### متطلبات الجدارة: أن يكون المتدرب قد أتقن جميع الجدارت في مقدمة قواعد البيانات. ### تعريف قاعدة البيانات قاعدة البيانات: هي عبارة عن مجموعة المعلومات والبيانات المخزنة بطريقة نموذجية ودون تكرار والمتصلة مع بعضها وفق علاقات متبادلة.. ومن أمثلة قواعد البيانات نظام تسجيل المتدربين حيث يقوم على تخزين البيانات الخاصة بالمتدربين والمتدربين والمقررات والشعب... الخ في جداول. وكذلك تحديد العلاقات بين هذه الجداول وفق أسس محددة وثابتة تعتمد على قواعد العمل في هذا النظام وكذلك على استخدام الطرق الصحيحة في عملية تصميم قاعدة البيانات. وتكون قاعدة البيانات مفصولة عن البرامج والتطبيقات التي تقوم بمعالجة هذه البيانات مثل برامج الإدخال والتعديل والحذف ويدير قاعدة البيانات نظام يمسى نظام إدارة قاعدة البيانات. ### تعريف نظام إدارة قاعدة البيانات ؟ )Database Management Information System) DBMS ما هي إدارة نظام قاعدة البيانات هي عبارة عن مجموعة البرامج التي تدير وتتحكم بعملية تخزين واسترجاع البيانات، وتوفر كذلك إمكانية قيام عدد كبير من المستخدمين من الوصول والتعامل مع البيانات، وينظر إليها كذلك على أنها حلقة الوصل بين المستخدمين وقاعدة البيانات، بحيث تقوم باستقبال متطلبات المستخدمين ومن ثم نقلها إلى قاعدة البيانات وتنفيذ البرامج اللازمة لتنفيذ هذه المتطلبات ومن ثم تزويد المستخدم بالنتائج المطلوبة. ### مكونات نظام قاعدة البيانات يقسم نظام قاعدة البيانات إلى خمسة أقسام : #### المكونات المادية ( Hardware ) : * تشمل جميع الأجهزة المادية في النظام مثل الحاسبات، الأجهزة الطرفية، الطابعات وكذلك أجه الاتصال في بيئة قاعد البيانات الموسعة... الخ. #### :) Software ( البرمجات * وهي مجموعة البرامج المستخدمة في قاعدة البيانات، وتقسم إلى ثلاثة أقسام: * أنظمة التشغيل: وهي البرامج التي تقوم بإدارة الأجهزة وتهيئتها للعمل وتمكين بقية البر Linux, Unix, Windows.... من العمل مثل * برنامج قاعدة البيانات وهو البرنامج الذي يتولى إدارة قاعدة البيانات مثل acle Sybase, DB2 * البرامج التطبيقية والبرامج المساعدة : وهي البرامج التي تقوم بعمليات الاسترجاع والتي وكذلك استخراج التقارير ..... #### - المستخدمون : * وهم عبارة عن الأشخاص الذين يقومون بالعمل في بيئة قاعدة البيانات وهم . * مدير النظام وهو الشخص المسؤول عن إدارة عمل البيئة العامة التي يعمل بها نظام في البيانات ويقوم بما يلي: * بإدارة المستخدمين ومنح الصلاحيات لاستخدام النظام. * إدارة أجهزة التخزين والأجهزة الأخرى. * متابعة عمل النظام. * مدير قاعدة البيانات وهو المسؤول عن إدارة قاعدة البيانات وتشمل واجباته : * تحديد متطلبات قاعدة البيانات من برامج وتجهيزات. * متابعة نظام قاعدة البيانات وتنسيق عملية استخدامه. * توفير الأمن والحماية للنظام. * تصميم آليات المحافظة على قاعدة البيانات وتحديد الإجراءات اللازمة لتوفير الم للمستخدمين الآخرين. #### مصمم قاعدة البيانات * وهو الشخص (الأشخاص الذي يقوم بعملية تصميم قاعدة البيانات ج وتشمل واجباته : * تحديد البيانات الواجب تخزينها في قاعدة البيانات * تصميم أفضل التراكيب لحفظ البيانات * تصميم قاعدة بيانات خالية من التكرار . * تحديد طرق الوصول والمعالجة والاسترجاع للبيانات من خلال تصميم الشاشات والتقا والتقارير الواجب استخدامها * توثيق عملية التصميم وطرق الوصول للبيانات . #### المبرمجون ومحللو النظم : * وهم الأشخاص الذين يقومون بعملية تصميم البرامج وتنفيذها وتشمل واجباتهم : * تصميم التطبيقات وتحويلها إلى برامج بلغة (لغات) برمجة حسب السياسات المقررة في عملية التصميم . * تنفيذ وتطبيق تلك البرامج والتأكد من سلامتها . * عمل الصيانة اللازمة لتلك البرامج . #### المستخدم النهائي: * وهو الشخص أو مجموعة الأشخاص الذين يقومون بالعمل اليومي على النظام وتطبيق البرامج في مجال محدد مثل الاسترجاع، التعديل الحذف، تنفيذ التقارير... الخ . #### - الإجراءات والعمليات : * وهي عبارة عن القوانين والتعليمات التي تحكم عمل قاعدة البيانات بشكل صحيح وتكون على شكل تعليمات موثقة بشكل واضح ومحدد. #### - البيانات * وهي أهم مكونات النظام حيث تشمل مجموعة الحقائق المخزنة في قاعدة البيانات. وكون البيانات تكون على شكل بدائي إذ لابد من تحديد مكان وكيفية التخزين لهذه البيانات حتى تسهل عملية معالجتها والاستفادة منها وهذا عمل المصمم . ### أهمية تصميم قواعد البيانات : إن عملية بناء قاعدة بيانات جيدة لا يأتي بتلك السهولة، إذ لابد من بذل جهد كبير للحصول على قاعدة بيانات جيدة. والتصميم الجيد لقاعدة البيانات يسهل عملية استخدام وإدارة هذه القاعدة أما التصميم السيئ فسيؤدي إلى تكرار البيانات ويعني وجود نفس البيانات في أكثر من مكان ) وبالتالي تصعب عملية الحفاظ على توافقية البيانات وعادة ما يؤدي تكرار البيانات إلى نتائج غير صحيحة عند طلب تلك البيانات من تلك القاعدة وهذا بدوره يؤدي إلى أن أي قرارات إدارية وكذلك أي تخطيط مستقبلي سيكون خاطئا لاعتماده على معلومات غير صحيحة. ### دورة الحياة لنظام قاعدة البيانات : * **الدراسة المبدئية للنظام القائم:** * تحليل الوضع الحالي للمؤسسة ومعرفة طبيعة الإجراءات المستخدمة والتعليمات وقواعد العمل . * تحديد المشاكل التي تواجه النظام المستخدم وكذلك القيود المادية مثل الطاقة البشرية والتمويل المتوفر لتطوير أو استبدال النظام الحالي . * تحديد الأهداف الواجب تحقيقها والمزايا المطلوبة في النظام الجديد. * **تصميم قاعدة البيانات:** وتعتبر هذه المرحلة من أهم المراحل في دورة حياة النظام إذ لابد من بذل جهد كبير لتصميم النظام للوصول إلى نظام جيد وتؤدي الأهداف المرجوة من عمل النظام وتشمل عملية التصميم ما يلي: * **بناء نموذج المفاهيم:** وتشمل هذه العملية عدة خطوات ( سنتطرق إلى هذه العملية بالتفصيل : الفصول اللاحقة ) : * تحليل البيانات ومتطلبات المستخدمين والإجراءات المطلوبة * تعريف وتحديد الكيانات وخصائصها وعلاقتها مع بعضها وكذلك وضعها في الصيف المعيارية. * رسم مخطط المفاهيم وهو عبارة عن نموذج رسومي يوصف كيانات النظام وعلاقتها من بعضها. * تعديل النموذج بحيث يشمل الإجراءات الرئيسة ، وقواعد عمليات الإضافة والتعديا والحذف على البيانات والتقارير، والشاشات ومقدار التشاركية و توافقية البيانات. * **اختيار نظام إدارة قاعدة البيانات (DBMS).** * **تحويل نموذج المفاهيم إلى نموذج داخلي بالاعتماد على نظام إدارة قاعدة البيانات (DBMS).** * **التصميم المادي:** وتتم خلاله عملية وضع مواصفات التخزين والوسائط المستخدمة في عملية التخزين وطرق الوصول للبيانات بالاعتماد على نظام إدارة قاعدة البيانات (DBMS). * **تنفيذ النظام:** وخلال هذه المرحلة تتم عملية إنشاء الجداول وكتابة جميع البرامج اللازمة لتنفيذ متطلبات النظام من الشاشات المختلفة والتقارير المطلوبة ...... * **عملية الفحص والتقييم للنظام:** * فحص قاعدة البيانات والتأكد من عملها بشكل صحيح. * تقييم عمل البرامج والتطبيقات المستخدمة. * **تطبيق النظام في مكان العمل:** وتشمل هذه العملية عمليات إنشاء الجداول والمستخدمين والصلاحيات... وتحميل جميع البرامج والتطبيقات وتنفيذها في البيئة الحقيقة التي يجب أن يعمل بها النظام. * **متابعة عمل النظام:** وهذه العملية تستمر طيلة فترة حياة النظام للتأكد من عمله بشكل صحيح وكذلك تعديل النظام ليتواءم مع المتطلبات الجديدة لبيئة العمل مثل تغير القوانين والأنظمة وقواعد العمل. ### تمارين * أي العبارات التالية صحيح وأيها خاطئة ؟ * من واجبات المبرمج توفير الأمن والحماية للنظام * المستخدم النهائي هو الشخص الذي يقوم بتوثيق عملية التصميم وطرق الوصول للبيانات * تعتبر البيانات من أهم مكونات نظام قاعدة البيانات. * عرف ما يلي: * قاعدة البيانات * نظام إدارة قاعدة البيانات * ما هي أهمية تصميم قاعدة البيانات ؟ * اشرح مرحلة تصميم قاعدة البيانات شرحا مفصلا * اذكر واجبات كل من مصمم قاعدة البيانات المبرمجين ومحللي النظم. ## قواعد البيانات العلائقية ## الوحدة الثانية: قواعد البيانات العلائقية ### الأهداف: * أن يتعرف المتدرب على قاعدة البيانات العلائقية . * أن يميز المتدرب بين مختلف أنواع المفاتيح للجداول (العلاقة). * أن يتعرف المتدرب على مختلف أنواع التشاركية بين الجداول (العلاقات) ### مستوى الأداء المطلوب : أن يصف المتدرب قواعد البيانات العلائقية وصفا صحيحا وكاملا بنسبة ١٠٠٪. ### الوقت المتوقع للتدريب: ساعتان ### الوسائل المساعدة قلم + دفتر. ### متطلبات الجدارة أن يكون المتدرب قد أتقن الجدارة في الوحدة السابقة. ### قاعدة البيانات العلائقية : بدأ نشوء مفهوم قواعد البيانات العلائقية عام ۱۹۷۰ عندما قدم العالم Codd اقتراحا لهذا النموذج والذي تم بناؤه على نظريات الجبر العلائقي ومن هنا برزت قوة هذا النموذج وسرعة انتشاره فيما بعد، ففي مطلع الثمانينات بدأت الكثير من الشركات بتبني هذا النموذج وتطبقيه، فنلاحظ الآن أن معظم أنظمة قواعد البيانات الموجودة في الأسواق تتوافق مع هذا النموذج. وتتلخص فكرة النموذج في النظر إلى قاعدة البيانات على أنها مجموعة من الجداول (Tables) أو علاقات تسمى (Relations) ومن هنا جاءت تسمية النموذج وكل جدول يجب أن يكون له اسم لا يوجد أكثر من جدول يحمل نفس الاسم ) والعلاقة هي عبارة عن مصطلح رياضي وتمثل جدولاً ذا بعدين صفوف وأعمدة) ، ولا توجد هناك أهمية لترتيب الصفوف أو الأعمدة حيث تمثل الصفوف مجموعة سجلات الجدول (Records or Tuple) وتمثل الأعمدة الصفات لهذا الجدول (Attributes ) ويجب أن يكون لكل صفة مجال (Domain) من القيم التي يمكن أن يحتويها هذا العامود وترتبط هذه الجداول مع بعضها بواسطة روابط. ويجب أن يكون لكل جدول مفتاح رئيس (Primary Key ) لتمييز الصفوف عن بعضها والنقطة التي تمثل تقاطع الصف مع العمود ( الصفة ) تمثل قيمة لهذا الصف و سنقوم في بقية أجزاء هذه الوحدة بتقديم وصفاً لقواعد البيانات العلائقية (Relational Database) من حيث مكوناتها وأهم خصائصها. ### مفاتيح الجداول ( العلاقات ) : تعتبر المفاتيح من أهم خصائص قواعد البيانات العلائقية حيث إنها تكون المميز لجدول معين من جهة والرابط الذي يربط الجداول المختلفة مع بعضها من جهة أخرى، ويمكن تقسيم المفاتيح في قواعد البيانات العلائقية إلى عدة أقسام : * **المفتاح الأعظم (Super Key )** : وهو أقل مجموعة من الصفات التي يمكن أن تميز الصف في الجدول عن بقية الصفوف الأخرى . فمثلا هذه المجموعة من الصفات يمكن أن تكون مفتاحا أعظم. * St_No * St No, St Name * St_No,dept_code * **المفتاح المرشح (Candidate Key )** : وهو الصفة ( مجموعة الصفات التي يمكن اختيارها كمفتاح رئيس للجدول ويجب أن يكون هناك أكثر من صف له نفس القيمة لهذه الصفة أو الصفات وكذلك يجب أن يكون له قيمة (ليس Null ) . ولكن كما لاحظنا فإن St_No, St _Name هي مفتاح أعظم ولكنه ليس مفتاحا مرشحا ليكون مفتاحا رئيسا لأن St_No وحدة يكفي لتمييز أي صف عن بقية الصفوف، ، لذلك فإن St_No يعتبر مفتاحا مرشحا ليكون مفتاحا رئيسيا . * **المفتاح الرئيس (Primary Key )** : وهو المفتاح الذي تم اختاره من مجموعة المفاتيح المرشحة ليكون محددا لكل صف في الجدول يمكن أن نختار St_No ليكون مفتاحاً رئيسا * **المفتاح الثانوي :** هو عبارة عن صفة أوصفات تستخدم لغايات الاسترجاع ، فمثلا لو كان لدينا جدول يحتوي على قائمة بالعملاء فالمفتاح الرئيس هو رقم العميل Customer _id ولكن إذا أردنا أن نسترجع رقم هاتف عميل معين ولكن من سيحفظ أرقام العملاء (؟!) ففي هذه الحالة عادة ما يستخدم الاسم في عملية البحث وليس الرقم ، فيتم اختيار اسم العميل كمفتاح ثانوي * **المفتاح الأجنبي (Foreign Key )** : وهو صفة أو صفات تشير إلى مفتاح رئيس أو قيمة غير مكررة(Unique) في جدول آخر فمثلا تمل الصفة (Dept_Code) في جدول المتدرب (Student ) مفتاح أجنبيا (Foreign Key) لجدول الأقسام (Department) ### التشاركية بين الجداول ( العلاقات ) : وتمثل الدرجة التي ترتبط بها الجداول مع بعضها فيجب أن تحدد هذه الروابط بشكل واضح لمع كيفية ارتباط هذه الجداول مع بعضها . هناك ثلاث درجات لارتباط الجداول : * **واحد واحد (1:1)** : وهذا يعني أن قيمة واحدة في الجدول الأول تقابل قيمة واحدة فقط في الجدول الثاني. فمثلا يمكن أن نحدد على سبيل المثال أن لكل شخص جواز سفر واحد فقط وأن جواز السفر ي لشخص واحد فقط . * **واحد - متعدد أو متعدد - واحد ( 1 : N أو : )** وهذا يعني أن قيمة في الجدول الأول تقابل قيمة في الجدول الثاني وأن القيمة في الجدول الثاني يمكن أن يقابلها قيمة أو أكثر في الجدول الأول. فمثلا يجب أن يتبع المتدرب لقسم واحد فقط وفي الوقت نفسه يمكن أن يكون هنالك أكثر من طالب ينتمي لهذا القسم . * **متعدد ـ متعدد (N:N)** : وهذا يعني أن قيمة في الجدول الأول تقابل قيمة أو أكثر في الجدول الثاني وأن القيمة في الجدول الثاني يمكن أن يقابلها قيمة أو أكثر في الجدول الأول. فمثلا يمكن للطالب أن يسجل في أكثر من شعبة وكذلك الشعبة يمكن أن يسجل فيها أكثر من طالب. ### تمارين * عرف ما يلي : * المفتاح المرشح * المفتاح الرئيس * المفتاح الأجنبي * وضح باستخدام الرسم علاقة الإشراف بين المدرس و الطالب. * وضح باستخدام الرسم نوع العلاقة بين القسم ومجموعة الاختصاصات في ذلك مستشفى. * أعط مثالا مع الرسم نوع التشاركية في قاعدة بيانات مستشفى واحد - واحد (N :N) واحد - متعدد (۱ : ) متعدد ـ متعدد (NN) ## نموذج الكيانات والعلاقات ## الوحدة الثالثة: نموذج الكيانات والعلاقات ### مقدمة : إن هدف عملية التصميم هو الوصول إلى فهم صحيح للنظام للمساعدة في عملية تطوير هذا النظام، وهذا ليس بالأمر السهل إذ لابد من وجود مقياس صحيح للحكم على هذا الفهم. ومن هنا برزت الأهمية لاستخدام العديد من الأدوات التي تساعد المصمم لوضع التصور والفهم الصحيحين لعمل هذا النظام ومن هذه الأدوات استخدام النماذج التمثيلية التي تصف مكونات النظام وكيفية ارتباطها مع بعضها وسنقوم في هذا الفصل بدراسة كيفية تمثيل البيانات باستخدام نموذج الكيانات والعلاقات Entity .Relationship (ER)Diagram ### النماذج : **ما هو النموذج ؟** النموذج عبارة عن وصف رسومي (تمثيلي) لوصف الحقائق التي لا يمكن رؤيتها مباشرة. وبعبارة أخرى هو وصف مجرد للكائنات الحقيقة نموذج البيانات هو عبارة عن تمثيل بسيط لوصف تراكيب البيانات المعقدة في واقع الحياة العملية على شكل رسومي دون النظر إلى مكان وكيفية تخزين أو الوصول إلى هذه البيانات. ويستخدم هذا النموذج كوسيلة اتصال ما بين المصمم من جهة وبين المبرمجين والمستخدمين من جهة أخرى. إذ حتى لو كان لدينا العديد من المبرمجين المحترفين فلا نستطيع الحصول على نظام جيد دون أن يكون هذا النظام قد صمم بشكل صحيح والشكل التالي يبين مواصفات المنزل وهذا الشكل يكون كوسيلة اتصال ما بين الشخص الذي يرغب في بناء المنزل (الزيون) وكذلك بين المهندس (المصمم) من جهة وبين المقاول (المنفذ ) الذي سيقوم ببناء المنزل، وفي بناء أنظمة قواعد البيانات يمثل الزبون صاحب النظام ويمثل المصمم ( مصمم قاعدة البيانات والمقاول المنفذ هو مجموعة المبرمجين التي تقوم ببناء النظام . ### نموذج الكيانات والعلاقات : هو عبارة عن نموذج لتمثيل كيانات النظام وصفاتها وكيفية ارتباط هذه الكيانات مع بعضها باستخدام رموز رسومية.. ولنتعرف الآن على عناصر هذا النموذج #### مجموعة الكيانات ( Entity Set ) * وتمثل المجموعة التي تنتمي إليها مجموعة الكائنات (Objects) المتشابهة وتمثل بجدول في قاعدة البيانات العلائقية . و الكيان (Entity) هو عبارة عن كائن أو شيء محط الاهتمام في النظام وعلينا أن نقوم بجمع وتسجيل البيانات عن هذا الكيان مثلا المتدرب ، المقرر. المدرس والشعبة تعتبر كيانات مهمة في نظام قاعدة البيانات الجامعة . ويمثل الطبيب والمريض و وصفة العلاج كيانات مهمة في قاعدة بيانات المستشفى . ويرمز المجموعة الكيانات بمستطيل يحتوي على اسم الكيان . #### الخصائص أو الصفات ( Attributes ) * هي عبارة عن الصفات المميزة للكيان، وبعبارة أخرى هي المعلومات الواجب تخزينها عن كائن معين وتمثل بأعمدة الجدول في قاعدة البيانات العلائقية.. فمثلا لكل طالب يجب أن نسجل الاسم الرقم تاريخ الميلاد، التخصص، والمنتج معين يكون الرقم الوصف الطول. العرض، اللون ويرمز للصفة بشكل بيضاوي يحتوي على اسم الصفة وتربط الصفة مع الكيان بواسطة خط مستقيم. #### ولكل صفة يجب أن نحدد مجال القيم (Domain): * وهو مجموعة القيم لهذه الصفة فمثلا رقم المتدرب يجب أن يكون عدداً صحياً من عشر خانات، واسم المتدرب يجب أن يحتوي على قيم رمزية بطول -- حرف والمعدل التراكمي يجب أن يحتوي على عدد كسري مابين ٥.٠٠ مثلا (٣,٥) تاريخ الميلاد يجب أن يكون مقبولاً بحيث لا يتجاوز عمر المتدرب عند القبول ۲۲ سنة. وبعض الصفات يمكن أن تشترك = نفس مجال القيم فمثلا القسم الدراسي للطالب والمدرس يكون اسماً من أسماء الأقسام في الجامعة والصفة (مجموعة الصفات ) التي تم اختيارها كمفتاح رئيس (primary key) تمثل كأي صفة ولكن يوضع خط تحت الاسم. #### : Simple and Composite Attributes * **الصفات البسطة والمركبة** * وتقسم إلى صفات بسيطة أي لا يمكن تجزئتها مثل رقم الطالب الجنس تاريخ الميلاد. أو مركبة أي يمكن تجزئتها كالاسم (الاسم الأول الثاني، واسم العائلة)، العنوان المدينة، الحي، الشارع، رقم المنزل). ويرمز للصفة المركبة بشكل بيضاوي ترتبط معه أشكال بيضاوية أخرى يحتوي كل منها على اسم الصفة الفرعية وتربط الصفات الفرعية مع الصفة الرئيسة بواسطة خط مستقيم #### : Single-Valued or Multiple-Valued Attributes * **صفات وحيدة أو متعددة القيم** * الصفات التي تحتوي على قيمة واحدة مثل (رقم السيارة، تاريخ الصنع أو عدة قيم مثل لون السيارة (فيمكن أن يكون هناك لون للسقف الجسم الجوانب) وكذلك يمكن أن يكون للمدرس أكثر من رقم هاتف أو أكثر من بريد إلكتروني. ويرمز للصفة متعددة القيم بشكل بيضاوي داخل شكل بيضاوي آخر يحتوي على اسم الصفة وتربط الصفة مع الكيان بواسطة خط مستقيم. #### : )Derived Attributes ج - الصفات المشتقة * وهي الصفات التي يمكن اشتقاقها من صفات أخرى ويرمز لها بشكل بيضاوي متقطع يحتوي على اسم الصفة وترتبط مع الكيان بخط مستقيم متقطع أيضا كما في الشكل التالي. مثل عُمر المتدرب يمكن حسابه على أنه الفرق بين تاريخ الميلاد والتاريخ الحالي. * العمر = التاريخ الحالي - تاريخ الميلاد. * **الصفات المشتقة يجب أن لا تخزن ولكن توضع طريقة لحسابها عند عملية الاسترجاع. ولكن قد نخزن بعض الصفات المشتقة إذا كانت عملية حسابها تأخذ وقتا كبيرا وفي نفس الوقت يتم طلبها بشكل كبير مثل المعدل التراكمي للطالب.** #### الروابط أو العلاقات ( Relationships ): * وهي عبارة عن الرابط أو العلاقة مابين الكيانات واسم هذه الرابطة يجب أن يعبر عن كيفية هذا الترابط ويكون على شكل فعل (ينتمي، يحتوي، يسجل، يتكون من.....). ويرمز لها بشكل معين يحتوي على اسم الرابط أو العلاقة.وكذلك لكل علاقة درجة تشاركية. وتبين مقدار التشارك مابين الكيانات إما واحد ـ واحد (۱:۱ ) أو واحد - متعدد (1 (N) أو متعدد - متعدد (N:N). * **فالطالب يسجل في شعبة أو أكثر والشعبة يسجل فيها مجموعة من الطلاب** ### الكيانات الضعيفة * وهي عبارة عن الكيانات التي لا توجد مستقلة بنفسها في النظام وبعبارة أخرى فإن وجودها يعتمد على وجود كيان آخر فمثلا لنفرض أن مؤسسة ما تسجل معلومات عن أسماء الأشخاص. التابعين للموظف مثل الأبناء، الزوجة أو الوالدين فوجود معلومات التابع مرتبط بوجود الموظف وفي هذه الحالة يختار المفتاح الرئيس للكيان الرئيس مع صفة من صفات التابع ( مثل الاسم ) لتشكل مفتاحا رئيسا للكيان التابع ويوضع تحته خط مقطع. ويرمز للكيان الضعيف بمستطيل داخل مستطيل يحتوي على اسم الكيان الضعيف ويرتبط مع الكيان الرئيس بخطين مستقيمين ( يعني أن وجود الكيان الأول شرط لوجود الكيان الآخر وليس بالضرورة للكيانات الضعيفة فقط ). ### : )Supertype and Subtype ( تمثيل الأنواع الرئيسة والأنواع الفرعية * هناك بعض الكيانات الفرعية التي تتبع إلى نوع رئيس أعلى) Supertype فمثلا بالنسبة للحساب ليقكي يمكن أن يكون هناك أكثر من نوع للحسابات ولكن جميع هذه الحسابات تشترك في الكثير من الصفات ففي هذه الحالة نقوم بإنشاء كيان الحساب البنكي Account بحيث يحتوي على جميع هذه الصفات ، ثم بعد ذلك نقوم بإنشاء كيانات فرعية للحسابات يحتوي كل منها على الصفات الخاصة بهذا النوع فقط. * **ثال: لنفرض أن لكل الحساب حقل يمثل رقم الحساب وحقل يمثل الرصيد الحالي وفي نفس الوقت لدينا عين من الحسابات الحساب الجاري (Current Account وفيه الصفة (Overdraft Amount) لي أعلى قيمة يسمح لصاحب الحساب أن يسحبها عندما لا يكون لديه رصيد والنوع الثاني حساب وفر وفية صفة معدل الفائدة (Interest Rate) مثل العلاقة بين الأنواع الرئيسة العليا والأنواع الفرعية بمثلث مقلوب يحتوي على (ISA) بمعنى يكون.** ### تمثيل علاقة الكيان مع نفسه ( Recursive ): * وفي هذه الحالة نبين كيفية تمثيل ارتباط الكيان مع نفسه، فمثلا نفرض أن المقرر الدراسي يمكن أن يكون لديه متطلب سابق أو أكثر وهذا المتطلب هو عبارة عن مقرر) وكذلك يجب أن يكون للموظن مدير واحد فقط والمدير بدوره هو أيضا موظف) ### حالة دراسية * سنقوم في هذا المثال بعملية تحويل عملية تحليل شركة ما إلى نموذج مفاهيم (نموذج الكيانات و العلاقات ER Diagram ). حيث إن الشركة تهتم بتسجيل معلومات عن الأقسام والمشاريع التي تنفذها الشركة وكذلك عن الموظفين العاملين فيها والتابعين لهؤلاء الموظفين . * تقسم الشركة إلى عدة أقسام ولكل قسم اسم واحد ورقم (لا يجوز أن يكون هناك أكثر من قسم بنفس الاسم أو الرقم ) ، لكل قسم موظف يدير هذا القسم ويجب معرفة التاريخ الذي بدأ فيه هذا الموظف بإدارة القسم ، ولكل قسم موقع واحد فقط. * القسم يمكن أن يدير عدة مشاريع ولكل مشروع رقم واسم ومكان تنفيذ . * يمكن أن يعمل في القسم موظف أو أكثر ولكن الموظف يجب أن يتبع لقسم واحد فقط ونحتفظ بالمعلومات التالية عن الموظف الرقم لكل موظف رقم يميزه عن بقية الموظفين، الاسم (الاسم الأول، الاسم الثاني واسم العائلة ، الجنس ، الراتب والعنوان. * الموظف يمكن أن يعمل في عدة مشاريع وليس بالضرورة أن يدار المشروع من نفس القسم الذي يتبع إليه الموظف ونحتفظ بعدد الساعات التي عملها الموظف في كل مشروع. * تحتفظ الشركة بمعلومات عن التابعين لكل موظف مثل الاسم ، تاريخ ، الميلاد ، الجنس، صلة القرابة . * تهتم الشركة بمعرفة عدد الموظفين الذين يتبعون لقسم معين. ## الصيغ المعيارية ## الوحدة الرابعة: الصيغ المعيارية إن عملية وضع تصميم قاعدة البيانات في الصيغة المعيارية يشكل لبنة أساسية في عملية التصميم الجيد لقاعدة البيانات. وتتم هذه العملية على عدة مراحل يتم خلالها تخليص قاعدة البيانات من التكرار غير المسوغ للبيانات بالاعتماد على قوانين الاستنتاج والاعتمادية الوظيفية. وسنقوم في هذا الفصل بالتعرف على الشروط والقوانين اللازمة للوصول بقاعدة البيانات إلى المستوى المعياري ### مقدمة : )Third Normal Form (3F( الثالث )Data Anomalies) مشاكل تكرار البيانات ### قواعد الاستنتاج وهي عبارة عن مجموعة من القواعد تستخدم في عملية تحديد الاعتمادية الوظيفية ( Functional Dependency FD) وتتلخص هذه القواعد بستة قواعد على النحو التالي : * **الانعكاسية Reflexive :** إذا كانت جزء من )) ((Y) محتواه في )X) فإن X تحدد Y * 1 - X⊃ Y : XY * **قاعدة الزيادة أو الإضافة Augmentation :** إذا كان X تحدد Y فإن إضافة Z إلى X تعني أنه بالإمكان إضافة Z إلى Y * 2- {X→ Y} = XZ →YZ * **قاعدة التعدي Transitive :** تعني أنه إذا كانت X تحدد Y وكانت Y تحدد Z فإن X تحدد Z . * 3- {X→ Y,YZ} = X →Z * **قاعدة الاتحاد Union :** تعني أنه إذا كانت X تحدد Y و X تحدد 2 فإننا نستطيع أن نقول أن X تحدد YZ * 4- {XY,XZ} = X →YZ * **قاعدة التقسيم Decomposition :** وهي عكس قاعدة الاتحاد * 5- {X YZ } FX →Y,X→ Z * **قاعدة التعدي الزائف Pseudotransitive :** * 6- {XY, WY→Z } ㅑ WX →Y * تعني أنه إذا تحقق الطرف الأيسر فإننا نستطيع استنتاج الطرف الأيمن . ### : )First Normal Form INF تعريف الصيغة المعيارية الأولى نستطيع أن نقول أن الجدول في الصيغة المعيارية الأولى إذا كانت جميع أعمدة الجدول تحتوي على بيانات بسيطة أو مفردة ( غير مركبة) أي إن كل عمود يحتوي على قيمة واحدة فقط . ### : )Second Normal Form 2NF تعريف الصيغة المعيارية الثانية نستطيع أن نقول أن الجدول في الصيغة المعيارية الثانية : * إذا كان الجدول في الصيغة المعيارية الأولى. * إذا لم يحتوي الجدول على اعتمادية جزئية. ### : )Third Normal Form 3NF تعريف الصيغة المعيارية الثالثة نستطيع أن نقول أن الجدول في الصيغة المعيارية الثالثة : * إذا كان الجدول فيالصيغة المعيارية الثانية. * إذا لم يحتوي الجدول على اعتمادية متعدية. ### تمارين * هل الجداول في الصيغة المعيارية الثانية ؟ * هل توجد هناك اعتمادية متعدية ؟

Use Quizgecko on...
Browser
Browser