You are on page 1of 71

‫اعداد الطالب ‪ :‬مصطفى الغول‬

‫تنسيق الطالب ‪ :‬ايهاب دخان‬


‫مقرر ‪ :‬قاعدة البيانات "نصفي"‬

‫الوحدة األولى‬
‫مقدمة في قاعدة البيانات‬
‫‪.2‬أنظمة قواعد البيانات‬
‫‪ 1.2‬المفاهيم األساسية‬
‫ان كلمة قواعد بيانات (‪ )Data Base‬أو (‪ )Database‬تعني جميع البيانات ذات العالقة التي‬
‫غالبا ما تخص مؤسسة أو مشروع متكامل أو شركة كبيرة (‪ ،)Enterprise‬أما نظام إدارة‬
‫قواعد البيانات (‪ )Data Base Managment System‬في اختصار ‪ )DBMS‬فهو مجموعة‬
‫من البرامج التي تقوم بإدارة ومعالجة هذه البيانات بطريقة سهلة وسريعة‪ .‬فالهدف من نظام‬
‫إدارة قواعد البيانات هو العمل على جمع البيانات الخاصة بالمؤسسة وتصنيفها وحفظها‬
‫وإدامتها واسترجاع المعلومات الصحيحة عند الحاجة لها بطريقة مالئمة وبسرعة مناسبة‪ .‬يمتاز‬
‫أسلوب نظام قواعد البيانات مقارنة باألسلوب القديم المسمى نظام الملفات الذي كان مستخدما‬
‫خالل السنوات السابقة في معالجة المعلومات بالشمولية للمعلومات وبتوحيد أساليب المعالجة‬
‫للبيانات‪.‬‬

‫يتم تصميم نظام قواعد البيانات ليقوم بإدارة البيانات ذات الحجم الكبير‪ .‬تشمل هذه اإلدارة‬
‫تعريف التركيب المناسب لخزن هذه البيانات واألسلوب األنسب لمعالجتها‪ ،‬باإلضافة لألساليب‬
‫الالزمة للمحافظة عليها وعلى ترتيبها وهذا يشمل الجوانب األمنية (‪ )Security‬والجوانب‬
‫المتعلقة بحمايتها من الضرر في حالة التعطل المفاجئ (‪ .)System Crash‬كما أنه من‬
‫الضروري المحافظة على دقة هذه المعلومات وصحتها وخاصة في حالة استخدام هذه البيانات‬
‫من قبل عدة مستخدمين‪.‬‬

‫إن أهمية توفر المعلومات عند اتخاذ القرارات المختلفة أثناء العمل عملت في على زيادة تطوير‬
‫وتعريف عدة مفاهيم وأفكار متعلقة بإدارة قواعد البيانات وإيجاد السبل المناسبة للتعامل معها‪.‬‬

‫‪ 2.2‬أهمية‪ ,‬قواعد البيانات‬


‫تنبع أهمية استخدام إدارة قواعد البيانات في المؤسسات والشركات الكبيرة من أنها توفر سيطرة‬
‫مركزية على حفظ البيانات واستخدامها وإدامتها مقارنة باألسلوب القديم (نظام الملفات التي ال‬
‫يعطي هذه الميزة‪ .‬إن نظام الملفات يحتاج إلى ملفات خاصة بكل نظام على حدة باإلضافة إلى‬
‫طاقم فني بكل نظام وقد يحتاج أيضا إلى األجهزة الخاصة بكل نظام‪ .‬أما في نظام إدارة قواعد‬
‫البيانات فيتم التعامل مع البيانات عن طريق شخص أو وحدة واحدة هو مدير قواعد البيانات (‬
‫‪))DBA( )DataBase Administration‬‬
‫‪7‬‬

‫فيما يلي نلخص‪ ،‬عزيزي الدارس‪ ،‬الفوائد الرئيسة االستخدام قواعد البيانات؟‬

‫‪ -1‬تجنب التكرار غير الالزم للبيانات المحفوظة (‪ :)Redundancy‬فبدال من حفظ المعلومات‬


‫الشخصية للموظف في ملف نظام الرواتب وتكرار حفظها في ملف نظام شؤون الموظفين يمكن‬
‫استخدام نظام إدارة قواعد البيانات الحفظ هذه البيانات مرة واحدة وفي مكان واحد فقط‪ .‬يستطيع‬
‫الموظفون في إدارة شؤون الموظفين وإدارة شؤون الرواتب في المؤسسة من استخدام نفس‬
‫المعلومات ونتيجة لذلك يتم توفير المساحات الالزمة لخزن هذه المعلومات‪.‬‬

‫‪ -2‬تحسين دقة وتطابق البيانات (‪ :)Consistency‬نتيجة لما ذكر في (‪ )1‬أعاله فإنه يصبح‬
‫باإلمكان تحسين دقة البيانات لكونها محفوظة في مكان واحد (إن كان ممكنا) ولكون الجهة‬
‫المسؤولة عنها هو شخص واحد (مدير قواعد البيانات) (‪ .)DBA‬إن المشاكل الرئيسة السابقة في‬
‫مركز المعلومات هو تعديل بيانات أحد األنظمة دون النظام اآلخر مما يسبب عدم تطابق‬
‫البيانات المتكررة في النظامين‪.‬‬

‫‪ -3‬سهولة المشاركة في استخدام‪ ,‬البيانات (‪ :)Sharing of Data‬نظرا الشمولية البيانات‬


‫وحفظها في مكان واحد بشكل منظم يصبح من السهولة بمكان توفير هذه البيانات أو جزء منها‬
‫ألي مستخدم جديد دون الحاجة إلى تصميم ملفات جديدة خاصة به‪.‬‬

‫‪-4‬توحید المعايير (‪ :)Standardization‬في استخدام البيانات وتسميتها وتعريفها وتركيبها‬


‫مما يسهل التعامل معها واستخدامها من قبل المبرمجين والمستخدمين وكذلك يسهل تبادل‬
‫البيانات بين األنظمة المختلفة في المؤسسات‪.‬‬

‫‪ -5‬تحسين الشروط األمنية (‪ :)Security‬نظرا لحفظ البيانات في مكان واحد والتعامل معها‬
‫من قبل شخص واحد يصبح باإلمكان تحسين شروط األمن والسالمة لهذه البيانات عن طريق‬
‫تحديد نظام صالحية الوصول إلى هذه البيانات واستخدامها مما يكفل تحديد المسؤولية وتغيرها‬
‫عند الحاجة‪.‬‬

‫‪ -6‬التأكد من صحة البيانات (‪ :)Integrity‬نظرا ألن قواعد البيانات يشترك به عدة مستخدمين‬
‫فإن البيانات تصبح معرضة للتحديث من قبل بعض البرامج التي قد تحوي على معلومات غير‬
‫صحيحة‪ .‬لذا فإن نظام قواعد البيانات يمكن المستخدم من تعريف عدة قواعد للتأكد من صحة‬
‫البيانات ووضعها في شكل برامج يتم استخدامها لتدقيق هذه البيانات وكشف أي أخطاء بها‪.‬‬
‫‪8‬‬
‫‪ -7‬عند استخدام أسلوب الملفات القديم كان من الضروري تعديل البرامج في حالة تغيير‬
‫التركيب الداخلي الفعلي للملفات أو للبيانات الذي غالبا ما يحصل عند تغيير أجهزة التخزين‪.‬‬
‫وكذلك كان من الضروري تعديل البرامج عند تعديل التركيب المنطقي (‪ )Logical‬لهذه الملفات‬
‫الذي غالبا ما يحصل عند زيادة أحد الحقول أو حذفها‪ .‬مع استخدام نظام قواعد البيانات أصبح‬
‫باإلمكان الفصل بين هذه المستويات الثالث المذكورة سابقا‪ .‬حيث يمكن تغيير التركيب الفعلي‬
‫للبيانات (‪ )Physical‬دون الحاجة إلى تعديل التركيب المنطقي لها أو إلى تعديل البرامج‬
‫التطبيقية التي تتعامل معها‪ .‬إن هذا يسمى استقالل البيانات الفعلي (‪Physical‬‬
‫‪ .(Independence‬أما النوع اآلخر الذي يمكن به تعديل التركيب المنطقي للبيانات (‬
‫‪ )Logical‬دون الحاجة إلى تعديل البرامج التطبيقية فيسمى باالستقالل المنطقي للبيانات (‬
‫‪.)Logical Independence‬‬

‫‪ 3.2‬األهداف الرئيسة لقواعد البيانات‬


‫إن الهدف الرئيسي الستخدام نظام قواعد البيانات هو تبسيط تصميم وتطوير األنظمة وبرمجتها وتطبيقها من جهة وتقليل‬
‫المدة الزمنية الالزمة لذلك من جهة أخرى‪ .‬بواسطة أنظمة قواعد البيانات تستطيع المؤسسات تحويل أنظمتها من األسلوب‬
‫اليدوي إلى األسلوب اآللي خالل مدة قصيرة جدا مقارنة باألسلوب القديم المبني على استخدام الملفات‪ .‬إن هذه النتائج‬
‫االيجابية الستخدام نظام قواعد البيانات كانت نتيجة اإلمكانات المتوفرة في هذا النظام حيث يمكن المصمم من تعريف‬
‫التركيب المنطقي والفعلي للبيانات ومن ثم تكوين هذه البيانات وكذلك يوفر له طرقا بسيطة للوصول لهذه البيانات وإدامتها‬
‫وتعديلها دون الحاجة إلى كتابة البرامج التطبيقية الالزمة لذلك‪.‬‬

‫باإلضافة لما ذكر أعاله فإن النظام يقوم بتحضير توثيق جيد للمعلومات والبيانات وأسلوب ترابطها مع بعضها البعض‬
‫وكذلك سيتمكن المستخدم من الحصول على بعض التقارير أو تنفيذ بعض الطلبات (‪ )Queries‬دون الحاجة إلى الرجوع‬
‫إلى المبرمجين‪ .‬إن هذه اإلمكانات الفنية الكثيرة والمتقدمة في أنظمة قواعد البيانات الحالية ساعدت في تسريع تطبيق‬
‫األنظمة وتحديثها‪ .‬إن هذه االمكانات تشمل كذلك الجوانب األمنية للبيانات وصحة هذه البيانات مع توزيع البيانات في‬
‫أماكن متفرقة دون أي إزعاج للمستخدم‪.‬‬

‫‪9‬‬

‫‪ 4.2‬مراحل تطور قواعد البيانات‬

‫منذ ظهور الحاسوب أصبحت معالجة البيانات الكبيرة من أهم استخدامها‪ ،‬باإلضافة إلى معالجة‬
‫الملفات بأشكالها المختلفة وتطبيقاتها في مجاالت اإلدارة والتجارة‪ .‬بعد ذلك بدأ التفكير بإيجاد‬
‫برمجيات خاصة للتعامل مع البيانات ذات الحجم الكبير ذات الطبيعة المتنوعة وتوحيد أسلوب‬
‫التعامل معها‪ .‬وقد كان تبسيط عمل المبرمجين من جهة وتقصير مدة تطوير األنظمة من جهة‬
‫أخرى من أهم األسباب التي من أجلها وجدت هذه البرمجيات‪.‬‬

‫إن أولى أنواع قواعد البيانات كان مشابها لطبيعة التطبيقات الفعلية ذو الشكل الشبكي (‬
‫‪ )Network‬حيث أن مكونات النظام كانت ترتبط مع بعضها البعض بشكل شبكة وأهم هذه‬
‫النظم هو ‪ CODASYL‬المشهور‪ .‬بعد ذلك بدأت أنواع مختلفة قليال في الظهور أهمها النظام‬
‫الهرمي (‪ )Hierarchical‬حيث أن مكونات النظام ترتبط مع بعضها بشكل شجرة (‪ )Tree‬كما‬
‫أن هذا األسلوب قام بتبسيط طرق البحث عن المعلومات حيث أن التنقل ما بين الوحدات يتم‬
‫دائما باتجاه واحد معروف‪.‬‬
‫وفي منتصف السبعينيات ظهر أسلوب آخر لقواعد البيانات هو األسلوب العالئقي (‬
‫‪ .)Relational‬في هذا األسلوب يتم النظر إلى البيانات على شكل جداول (‪ )Tables‬أو‬
‫مجموعات (‪ )Sets‬ويمكن تمثيل أي طلب من هذه البيانات بوساطة الجبر العالئقي (‬
‫‪ )Relational Algebra‬وظهرت منذ ذلك اللغة المشهورة الخاصة بذلك ‪.SQL‬‬

‫خالل السنوات األخيرة ظهرت أساليب جديدة لقواعد البيانات أهمها الكيانات ( (‪Entity-‬‬
‫‪Relationship‬واألسلوب المبني على معنى البيانات (‪ )Semantic‬واألسلوب الذي يقوم ببناء‬
‫البيانات على شكل كينونات (‪ )Objects‬أو أشياء‪.‬‬

‫أسئلة التقويم الذاتي (‪)1‬‬

‫‪ -1‬عرف نظام إدارة قواعد البيانات‪.‬‬

‫‪ -2‬ما الفرق بين أسلوب معالجة الملفات القديم وأسلوب نظام إدارة قواعد البيانات؟‬

‫‪ -3‬اذكر أهم فوائد استخدام نظام قواعد البيانات‪.‬‬


‫‪10‬‬

‫‪ .3‬مكونات نظام إدارة قواعد البيانات ()‪)Architecture of (DBMS‬‬

‫يشمل هذا القسم على شرح مبسط لمكونات نظام إدارة قاعدة البيانات‪ .‬وليصبح باإلمكان تقديم‬
‫هذا الشرح يجب تقديم تصور لقاعدة البيانات مع مالحظة بأنه يمكن وجود قواعد بيانات تختلف‬
‫مع هذا التصور‪ .‬الشكل (‪ )1‬يوضح قاعدة البيانات (‪ )DB‬المحفوظة فعليا في وحدات التخزين‬
‫المختلفة‪.‬‬

‫شكل (‪ )1‬في الكتاب‪ :‬مستويات وصف قواعد البيانات‬

‫يتم الوصول إلى هذه البيانات عن طريق الجزء الخاص بإدارة الملفات في نظام التشغيل (‬
‫‪ )Operating System‬وباستخدام نظام قواعد البيانات أصبح هناك‪ ،‬عزيزي الدارس‪ ،‬ثالثة‬
‫مستويات للتعامل مع هذه البيانات‪:‬‬

‫‪ -1‬المستوى الداخلي (‪ :)Internal Level‬وهو الموضح في الشكل (‪-1‬أ) وهو الذي يصف‬
‫أسلوب تخزين البيانات فعليا على وحدات التخزين الخارجية وهو المستوى األقرب إلى وحدات‬
‫التخزين‪ .‬إن المعلومات المتوفرة في هذا الجزء تساعد نظام التشغيل في اختيار األسلوب‬
‫المطلوب لحفظ البيانات وأسلوب الوصول إليها‪ .‬فمثال قد يختار مصمم نظام قواعد البيانات‬
‫تركيب الملفات باألسلوب التتابعي (‪ )Sequential‬أو التركيب التتابعي المفهرس (‪ )ISAM‬أو‬
‫غيرها لتخزين البيانات‪.‬‬
‫‪11‬‬

‫‪ -2‬المستوى المنطقي (‪ :)Conceptual Level‬وقد يسمى أيضا (‪ .)Logical Level‬إن هذا‬


‫المستوى يمثل المنظر العام المنطقي لجميع البيانات وترابطها مع بعضها البعض‪ ،‬ويمكن‬
‫تصور هذا المنظر بأنه التصميم العام وخارطة شاملة لجميع وحدات وأجزاء البيانات وعالقتها‬
‫مع بعضها البعض‪ .‬وعن طريق هذا المستوى يمكن ربط األجزاء المنطقية مع األجزاء الفعلية‬
‫‪ ) )Mapping Between Logical & Internal Level‬إن الذي يقوم بهذا الربط هو‬
‫برمجيات نظام قواعد البيانات شكل (‪ 1‬ب)‪.‬‬

‫‪ -3‬المستوى الخارجي (‪ :)External Level‬يمثل هذا المستوى المستخدم النهائي للبيانات (‬


‫‪ .)User‬يستطيع كل مستخدم أن يتعامل مع جزء من البيانات كلها وبذلك يمكن تصور كل‬
‫مستخدم بأنه من خالل شباك ليرى منظر (‪ )View‬قد يختلف عن المنظر الذي يراه مستخدم‬
‫آخر شكل (‪ - 1‬ج)‪ .‬يتم الربط بين وحدات البيانات في هذا المستوى وبين وحدات المستوى‬
‫المنطقي عن طريق برمجيات نظام قواعد البيانات‪ .‬الشكل (‪ )2‬يمثل ترابط هذه المستويات‬
‫الثالثة‪.‬‬
‫‪12‬‬

‫يجب أن تفهم‪ ،‬عزيزي الدارس‪ ،‬بأن كل ما هو مقصود من هذه المستويات هو استخدام مفهوم‬
‫التجريد (‪ )Data Abstraction‬الذي يمكن من خالله تصور البيانات بأشكال مختلفة يعتمد‬
‫على المستويات التي تسبقها‪ ،‬وهذا األسلوب أدى إلى التقدم السريع في تطوير البرمجيات‬
‫المختلفة مثل قواعد البيانات ونظم التشغيل وبرامج الترجمة المختلفة وغيرها ‪...‬‬

‫كذلك يجب أن نبين هنا‪ ،‬عزيزي الدارس‪ ،‬بأن برمجيات نظام قواعد البيانات تحتوي على‬
‫أجزاء كثيرة (‪ )Modules‬أهمها‪:‬‬

‫وصف تركيب وبناء البيانات وتعريفها (‪)Data Definition Language( )DDL‬‬ ‫‪-‬‬
‫األوامر التي يمكن من خاللها معالجة قواعد البيانات )‪Data Manipulation‬‬ ‫‪-‬‬
‫)‪)Language) (DML‬‬
‫برامج تقوم بعمل النسخ االحتياطية (‪.)Backups‬‬ ‫‪-‬‬
‫برامج تقوم بمراقبة دقة البيانات في حالة تعدد المستخدمين (‪Concurrency‬‬ ‫‪-‬‬
‫‪.)Control‬‬
‫برامج تقوم باسترجاع البيانات عن طريق تسجيل التغيرات على البيانات على ملف‬ ‫‪-‬‬
‫خاص (‪ )Log File‬لالستفادة منه في استرجاع (‪ )Recovery‬واعادة البيانات إلى‬
‫وضعها الصحيح في حالة حدوث خلل في التركيب لسبب أو آلخر‪.‬‬
‫برامج تراقب أمن وسرية البيانات مع وضع كلمات السر للمستخدمين وتحديد مستويات‬ ‫‪-‬‬
‫السرية ومنحها وإلغائها (‪.)Security‬‬
‫برامج تساعد المستخدم على تحضير التقارير بشكل بسيط وسريع (‪)Reporter‬‬ ‫‪-‬‬
‫برامج تساعد المستخدم على تحضير شاشات اإلدخال واإلخراج (‪Screen‬‬ ‫‪-‬‬
‫‪.)Formatter‬‬

‫برامج تساعد المستخدم على تحضير طلباته بسرعة وأهم اللغات المستخدمة هي لغة ‪SQL‬‬
‫وأسلوب معالجتها (‪.)Query Processor‬‬
‫برامج خاصة لربط البيانات مع أنظمة قواعد أخرى‪.‬‬ ‫‪-‬‬
‫برامج خاصة إلعادة تنظيم قواعد البيانات (‪.)Reorganization‬‬ ‫‪-‬‬
‫برامج خاصة لبناء قواعد البيانات للمرة األولى‪.‬‬ ‫‪-‬‬
‫برامج خاصة تساعد المصمم في تصميم البيانات (‪.)CASE Tools‬‬ ‫‪-‬‬
‫برامج خاصة تساعد المصمم في تعديل التصميم‬ ‫‪-‬‬
‫برامج خاصة لتوزيع قواعد البيانات على شبكات االتصال والتحكم بها‪ ،‬والعمل في‬ ‫‪-‬‬
‫بيئات حديثة مثل (‪ )Client-Server Model‬جميع هذه األجزاء وغيرها تمثل أجزاء‬
‫نظام إدارة قواعد البيانات‪.‬‬
‫‪13‬‬

‫أسئلة التقويم الذاتي (‪)2‬‬

‫‪ -1‬أذكر الثالثة مستويات للبيانات في نظام قواعد البيانات‪.‬‬

‫‪ -2‬مثل مستويات البيانات والعالقات التي بينها بشكل توضيحي‪.‬‬

‫‪ -3‬أذكر خمسة من أجزاء برمجيات نظام إدارة قواعد البيانات‪.‬‬

‫‪ .4‬مراحل تصميم قواعد البيانات‬

‫يقع تصميم قواعد البيانات ضمن تصميم النظام الكامل للمؤسسة‪ ،‬حيث يقوم محلل النظم بمسح‬
‫النشاطات وتنظيم المؤسسة وجمع البيانات والمعلومات الخاصة بذلك ومن ثم يقوم بتحليلها (‬
‫‪ .)Organization Analysis‬إن أحد الواجبات الرئيسة المحلل النظم هو تحليل البيانات التي‬
‫جمعها (‪ )Data Analysis‬وربطها مع بعضها البعض وتفسير معناها وتوضيح بناء هذه‬
‫البيانات وأسلوب تسجيلها وتحديثها وتركيبها وتصنيفها‪ .‬فمثال في حالة دراسة إحدى الشركات‪،‬‬
‫فإن اسم الموظف‪ ،‬ورقم الموظف‪ ،‬وعنوان الموظف‪ ،‬ومكان عمله‪ ،‬وتاريخ ميالده‪ ،‬وراتبه‪،‬‬
‫ودرجته‪ ،‬وغيرها تمثل إحدى البيانات المقصودة‪ ،‬ثم يتم ربط هذه البيانات مع بعضها وطرق‬
‫تسجيلها وتحديثها‪.‬‬

‫بعد ذلك يقوم المصمم بالبدء بوضع التصميم الرئيسي لقواعد البيانات ‪ ))Logical Design‬إن‬
‫هذا التصميم يوضح الوحدات الرئيسة للبيانات وتحديد أسلوب فهرستها وعالقتها مع بعضها‬
‫البعض‪ .‬إن هذا التصميم هو أهم واصعب خطوة في تصميم النظام ككل‪ .‬بعد ذلك يتم وضع‬
‫التصميم الداخلي للبيانات (‪ )Physical Design‬بحيث يتم تحديد أسلوب التخزين لهذه البيانات‬
‫على وحدات التخزين الخارجية‪ .‬وهذا التصميم‪ ،‬عزيزي الدارس‪ ،‬يعتمد على نظام التشغيل‬
‫المستخدم‪ .‬فمثال نظام التشغيل ‪ UNIX‬قد يوفر بناء ملفات قد تختلف عن البناء الذي يوفره نظام‬
‫‪ VM‬أو ‪ DOS‬وهكذا‪ .‬كما يجب أن تفهم هنا بأن التصميم المنطقي يعتمد على النظام المستخدم‬
‫فمثال نظام أوراكل (‪ )ORACLE‬قد يختلف عن األسلوب المستخدم في نظام ‪.IMS‬‬
‫أسئلة التقويم الذاتي (‪)3‬‬

‫‪ -1‬من المسؤول عن تصميم قواعد البيانات ؟‬


‫‪14‬‬

‫‪-5‬دورة حياة نظام قاعدة البيانات‬

‫تبدأ دورة حياة نظام قاعدة البيانات بمرحلة التصميم التي ينتج عنها التصميم المنطقي والداخلي‬
‫والخارجي للبيانات‪ .‬وبعدها يصبح الهيكل العام لتركيب البيانات والترابط بينها قد حدد وأسلوب‬
‫معالجتها مبين‪ .‬بعدها يتم تعريف هذا التصميم بلغات خاصة تعتمد على النظام المستخدم (‪Data‬‬
‫‪ ،)DDL( )Definition Language‬يقوم نظام الترجمة الخاص بها إلى تحديد األخطاء وبعدها‬
‫يتم بناء هيكل عام للبيانات على وحدات التخزين الخارجية‪ .‬وفي البداية يكون هذا الهيكل فارغا‬
‫من البيانات‪ .‬بعدها يتم بناء قواعد البيانات عن طريق اللغة الخاصة بذلك (‪Data( )DML‬‬
‫‪ )Manipulation Language‬ومن فترة ألخرى يحتاج نظام‬

‫قواعد البيانات إلى إعادة التنظيم (‪ )Reorganization‬بحيث يتم به بناء البيانات بشكل أكثر‬
‫مالءمة وكفاءة وإعادة تركيب الفهارس الالزمة لذلك وتوزيع مساحات وحدات التخزين بشكل‬
‫أفضل‪ .‬وخالل استخدام قواعد البيانات قد يحدث تغيير على التصميم المنطقي ولذلك قد يتطلب‬
‫األمر إجراء هذا التعديل مرة في السنة على األكثر‪ .‬خالل السنوات الالحقة الستخدام النظام يتم‬
‫إجراء الصيانة الالزمة‪ .‬وقد تكون هذه المدة ‪ 10-5‬سنوات من األفضل بعدها أن يتم إعادة‬
‫تصميم النظام باستخدام البرمجيات الحديثة أو األجهزة الحديثة واالستفادة من آخر تكنولوجيا في‬
‫هذا المجال‪.‬‬
‫تدريب (‪)1‬‬

‫آدرس نظام جامعة تحتوي على طلبة ومدرسين ومواد تدريسية وبين فيها مستويات تمثيل البيانات الثالثة‬ ‫‪-1‬‬
‫الخارجية والمنطقية والداخلية‪.‬‬

‫أسئلة التقويم الذاتي (‪)4‬‬

‫‪ 1‬الشرح باختصار دورة حياة قاعدة البيانات‪.‬‬

‫ماهي المدة التقديرية في رأيك إلعادة تصميم نظام قاعدة البيانات؟‬ ‫‪-2‬‬
‫لماذا الحاجة إلى إعادة تصميم نظام قاعدة البيانات؟‬ ‫‪-3‬‬

‫‪15‬‬

‫‪.6‬الخالصة‬

‫قدمنا لك في هذه الوحدة‪ ،‬عزيزي الدارس‪ ،‬شرح الفلسفة قواعد البيانات ومفهومها مع فوائد‬
‫استخدامها والمشاكل التي تعترضها‪ .‬إن خالصة هذه يمكن تلخيصها بضرورة استخدام قواعد‬
‫البيانات في تصميم األنظمة لما لها من فوائد وتوفيرا للوقت باالضافة إلى الكفاءة العالية في‬
‫التحكم وسهولة التعامل مع البيانات‪.‬‬

‫‪ .7‬لمحة عن الوحدة الدراسية الثانية‬


‫بعد انتهائك من دراسة هذه الوحدة التي تطرقنا من خاللها إلى قاعدة البيانات ننتقل في الوحدة‬
‫التالية إلى شرح مفاهيم تحليل البيانات وتمثيل األنظمة كوحدات وبيان العالقة فيما بينها‪ ،‬كما‬
‫تقدم عدة طرق لتمثيل القواعد‪.‬‬
‫‪16‬‬

‫‪.9‬المصطلحات‬
‫‪ -‬استرجاع (‪ :)Recovery‬أسلوب‪ ،‬إعادة البيانات إلى وضعها الصحيح بعد حدوث تعطل وخراب فيها‪.‬‬

‫‪ -‬استقالل البيانات (‪ :)Independence‬تعبير يعني إمكانية تعديل نظام التشغيل أو األجهزة دون الحاجة إلى تعديل‬
‫البرامج أو البيانات‪.‬‬

‫‪ -‬إعادة التنظيم (‪ :)Reorgonization‬عملية إعادة تنظيم قواعد البيانات لتصبح في وضع‬


‫أفضل‪.‬‬

‫‪ -‬برمجيات التصميم (‪ :)CASE‬برامج خاصة تستخدم للمساعدة في تصميم األنظمة‪.‬‬

‫‪ -‬تعدد االستخدامات (‪ :)Concurrency‬تأثر البيانات من قبل عدة برامج أو مستخدمين معا‪.‬‬

‫‪ -‬تعطل النظام (‪ :)System Crash‬ضياع البيانات المخزونة في الذاكرة الرئيسية ألي سبب‬
‫من األسباب‪.‬‬

‫‪ -‬تكرار البيانات (‪ :)Redundancy‬تكرر تخزين نفس البيانات عدة مرات في وحدات التخزين‬

‫‪ -‬دقة البيانات (‪ :)Consistency‬تطابق معنى وقيمة البيانات الموجودة في قواعد البيانات‪.‬‬

‫‪ -‬شبكة (‪ :)Network‬أسلوب تمثيل وحدات النظام المختلفة على شكل شبكة‪.‬‬

‫‪ -‬صحة البيانات (‪ :)Integrity‬شروط المحافظة على صحة البيانات‪.‬‬

‫‪ -‬الطلبات أو التساؤالت (‪ :)Queries‬تعبير يعني ما يطلبه المستخدم من النظام على شكل لغة‬
‫خاصة لهذا الغرض‪.‬‬

‫‪ -‬عالئقي (‪ :)Relational‬أسلوب تمثيل وحدات النظام المختلفة على شكل عالقات رياضية أو‬
‫جداول‪.‬‬

‫‪ -‬قواعد بيانات (‪ :)Database‬مجموعة البيانات التي تمثل وحدة واحدة أو قاعدة كاملة‬
‫للمؤسسة‪.‬‬

‫‪ -‬لغة معالجة البيانات (‪ :Data Manipulation Language(( )DML‬لغة خاصة تستخدم‬


‫لوصف أوامر معالجة البيانات‪.‬‬
‫‪17‬‬
‫لغة وصف البيانات (‪ )DDL( )Data Definition Language‬لغة خاصة تستخدم‬ ‫‪-‬‬
‫لوصف بناء وتركيب البيانات‪.‬‬
‫مدير إدارة قواعد البيانات (‪ :)Database Administration‬الشخص أو الوحدة‬ ‫‪-‬‬
‫المسؤولة عن إدارة ومراقبة قواعد البيانات في المؤسسة‪.‬‬
‫مستويات تجريد البيانات (‪ :)Data Abstract Levels‬أسلوب منطقي التمثيل البيانات‬ ‫‪-‬‬
‫على عدة مستويات حسب استخدامها مما يعطي معنى التجريد‪.‬‬
‫ملف (‪ :)Log‬الملف الذي يحوي جميع ما يحدث للنظام من عمليات مرتبه حسب وقت‬ ‫‪-‬‬
‫حدوثها‪ .‬منطقي‬
‫منطقي (‪ :)Conceptual‬تعبير يعني أسلوب تصور شكل البيانات في المستوى‬ ‫‪-‬‬
‫المنطقي بها‪.‬‬
‫مؤسسة (‪ :)Enterprise‬تطلق على كل مؤسسة كبيرة تحتاج إلى تطبيق | نظام قواعد‬ ‫‪-‬‬
‫البيانات‪.‬‬

‫‪ -‬نسخ احتياطية (‪ :)Backups‬النسخ االحتياطية من البيانات‪.‬‬

‫‪ -‬نظام الخادم ‪ /‬المستخدم (‪ :)Client/ Server‬أسلوب حديث التصميم قواعد البيانات‬


‫بحيث يتم تطبيق بعض البرامج على حاسوب صغير خاص للمستخدم وابقاء البرامج الرئيسية‬
‫على الحاسوب الرئيسي (الخادم)‪.‬‬

‫‪ -‬هرمي (‪ :)Hierarchical‬أسلوب تمثيل وحدات النظام المختلفة على شكل شجرة أو هرم‪.‬‬

‫‪ ،10‬المراجع‬

‫‪- Data, C.J., "An Introduction to DataBase Systems", Addison -1‬‬

‫‪.Wesely, 1991‬‬

‫‪Korth, Henry F. and Abraham Silberschatz, "Data Base System -2‬‬

‫‪.Concepts", McGraw-Hill, 1991‬‬


‫‪18‬‬

‫الوحدة الثانية‬
‫تحليل البيانات‬
‫‪14‬‬

‫‪ .2‬الكيانات والخصائص (‪)Entities and Attributes‬‬


‫تعتبر قواعد البيانات مجموعة من البيانات لغرض احتياجات مستخدميها بكل دقة وكفاءة‬
‫وسرعة عالية‪ .‬وتوفر أنظمة قواعد البيانات وسائل قيمة في البحث والتعديل واإلضافة والحذف‬
‫في هذه البيانات‪ ،‬وقواعد البيانات تستند إلى مفهوم النموذج الذي تؤدي الكيانات (‪ )Entities‬في‬
‫تصميمه دورا مهما‪ .‬ولكل كيان مجموعة من الخصائص (‪ )Attributes‬تعالج معالمها‪ ،‬فمثال‪،‬‬
‫يعد الطالب كيان والمعلومات الخاصة به خصائص ومن الخصائص قد تكون اسم الطالب‬
‫والرقم‪ ،‬والمعدل‪ ،‬ويعرف كيان الطالب على النحو اآلتي‪:‬‬

‫الطالب ‪(:‬االسم‪ ،‬الرقم المعدل)‬

‫)‪Student: (Name, Number, Average‬‬

‫ولكل كيان قيم متعددة تسمى عنصرا كلها تشترك بالصفات ولكن تختلف بالقيم (‪ )Values‬لهذه‬
‫الصفات فمثال أحدها‪ :‬الطالب (حمدان‪ )95 ،320 ،‬وكذلك الطالب‪( :‬أحمد‪.)80 ،350 ،‬‬
‫ويمكن التصور في نظام الجامعة أن يكون المدرس) كيان وكذلك (المساق)‪.‬‬

‫تدريب (‪)1‬‬

‫حدد الكيانات والخصائص الجهاز حاسوب شخصيه‬


‫‪25‬‬

‫‪ .3‬العالقات األساسية في قواعد البيانات‬

‫لقد عرفت‪ ،‬عزيزي الدارس‪ ،‬أن الكيان هو نموذج أو مجموعة من األعضاء تحدد معالمها‬
‫مجموعة من الخصائص‪ .‬يمكن تمثيل أي نظام بمجموعة من الكيانات‪ .‬فمثال كيان الطالب‬
‫وكيان المدرس وكيان المساق يشكلون ما يسمى بنظام الجامعة‪ ،‬يسمي الهيكل العام الذي يربط‬
‫مختلف الكيانات بالعالقة (‪ )Relationship‬ويطلق على عدد من العالقات بمجموعة العالقات‪.‬‬
‫وتشكل مجموعة الكيانات مع مجموعة العالقات أسس بناء نماذج قواعد البيانات‪.‬‬

‫الشكل (‪ :)1‬مجموعة الكيانات الزبون والحساب وعناصرها‬

‫يبين الشكل (‪ )1‬كيانين هما الزبون والحساب في البنك‪ ،‬وتعرف العالقة الزبون‪-‬الحساب بأنها‬
‫الرابطة بين الزبون ورقم حسابه في البنك كما يبين ذلك الشكل (‪.)2‬‬

‫الشكل (‪ :)2‬العالقة زبون ‪ -‬حساب‬

‫ويبين الشكل أن الزبون ”محمد“ يرتبط بالحساب (‪ )1500 ،401‬وقد تحدد العالقات بمجموعة‬
‫من الخصائص كما هو الحال مع كيانات تاريخ فتح الحساب على سبيل المثال‪ ،‬قد يكون أحد‬
‫خصائص العالقة بين الزبون والحساب هو تاريخ فتح الحساب‪.‬‬

‫‪ 1.3‬العالقات بين البيانات‬

‫ترتبط البيانات مع بعضها البعض بمجموعة من العالقات‪ .‬ونورد‪ ،‬عزيزي الدراس‪ ،‬أدناه‬
‫مجموعة من العالقات‪:‬‬
‫(‪One‬‬

‫‪ 1.1.3‬عالقة واحد إلى واحد (‪)One -to- One‬‬

‫تربط هذه العالقة بين كيانين على أن يرتبط كل عنصرين (عنصر من كل كيان) من عناصر‬
‫البيانات معا بحيث يتم تحديد قيمة العنصر الثاني عندما تكون قيمة العنصر األول معلومة عند‬
‫لحظة زمنية معينة‪ .‬بعبارة أخرى‪ ،‬إذا كان الكيان ‪ A‬مرتبطة مع الكيان ‪ B‬فإن كل قيمة‬
‫(عنصر) من قيم الكيان ‪ A‬ترتبط بقيمة واحدة (عنصر) من قيم الكيان ‪ B‬كما في الشكل (‪.)3‬‬

‫‪27‬‬

‫الشكل (‪ :)3‬عالقة وأحد إلى واحد‬

‫فمثال إذا كانت ‪ A‬تمثل المساق في قسم الحاسوب فإن ‪ B‬تمثل المدرس‪ Ai .‬يقابله ‪ a4، b1‬يقابله‬
‫‪ h4‬وهكذا‪( .‬المقرر يدرسه مدرس واحد وكل مدرس يدرس مقرر واحد نظريا) ويمكن الرمز‬
‫لهذا النوع من العالقات كما‬

‫في الشكل (‪.)4‬‬

‫‪ 2.1.3‬عالقة واحد إلى متعدد (‪)Many -One- to‬‬

‫يفيد هذا النوع من العالقات في تحديد ارتباط عنصر من عناصر الكيان ‪ B‬مع عنصر أو أكثر‬
‫من عناصر الكيان ‪ A‬فعندما يأخذ عنصر من ‪ B‬قيمة معينة فإنها ترتبط بأكثر من قيمة من قيم‬
‫‪ .A‬فمثال أخذنا معلومات الموظف فالعالقة ما بين الموظف وأوالده في واحد لمتعدد الشكل (‪.)5‬‬
‫الشكل (‪ :)5‬عالقة واحد إلى متعدد‬

‫‪28‬‬

‫أما إذا كانت عدة قيم ترتبط بقيمة واحدة فتسمى العالقة عالقة متعدد إلى واحد كما في الشكل (‬
‫‪.)6‬‬

‫الشكل (‪ :)6‬عالقة متعدد إلى واحد‬

‫‪ 3.1.3‬عالقة متعدد إلى متعدد ((‪Many -Many- to‬‬

‫يسمى ارتباط عدة قيم مع عدة قيم أخرى بعالقة متعدد إلى متعدد كما في الشكل (‪ )7‬الشكل (‬
‫‪ :)7‬عالقة متعدد إلى متعدد ولهذا النوع من العالقات تطبيقات متعددة في حياتنا اليومية منها‬
‫الطالب‬

‫‪29‬‬

‫والمقررات فكل طالب قد يسجل عدة مقررات‪ ،‬وكل مقرر يتم التسجيل فيه من قبل عدة طالب‪.‬‬
‫ومن األمثلة األخرى‪ ،‬حسابات البنوك‪ ،‬حيث يمكن أن يشترك أفراد العائلة (بعدة أفراد) بعدة‬
‫حسابات في البنك نفسه (حساب بالدينار‪ ،‬حساب بالدوالر‪ ،‬حساب بالليرة‪...‬الخ)‪.‬‬
‫تدريب (‪)2‬‬

‫ما العالقة في الجامعة ما بين المرشد والطالب؟‬

‫‪ 2.3‬العالقات بين السجالت‬

‫في الجزء السابق تم شرح المفاهيم الخاصة بالكيانات والعالقات ما بينها‪ ،‬أما في هذا الجزء‬
‫فسوف يتم شرح المفاهيم المتعلقة بتركيب الملفات منطقيا وربط سجالتها مع بعض‪.‬‬

‫تتوفر مجموعة من العالقات التي تربط السجالت مع بعضها ببعض‪ ،‬ونورد أدناه مجموعة من‬
‫هذه العالقات‪.‬‬

‫‪ 1.2.3‬التفرع الشجري (‪)Tree‬‬

‫التفرع عبارة عن تنظيم للبيانات تستند إليه قواعد البيانات الهرمية يمثل هذا التنظيم من‬
‫عنصرين أساسيين‪:‬‬

‫مربعات (‪ :)Boxes‬والتي تمثل السجالت‪.‬‬ ‫‪‬‬


‫خطوط (‪ :)Lines‬والتي تمثل الروابط بين السجالت‪.‬‬ ‫‪‬‬

‫يؤدي التفرع الوظيفة نفسها التي تؤديها العالقات الكيانية الذاتية (‪)Entity Relationship‬‬
‫بصورة عامة‪ ،‬ويؤدي التفرع إلى تحديد‬

‫التركيب المنطقي لقواعد البيانات‪ .‬يتصف التفرع بما يلي‪:‬‬

‫‪ .1‬ال يسمح بوجود دوران‪.‬‬

‫‪ .2‬العالقات في التفرع بين المستويات الوالد واألبناء من نوع العالقة واحد إلى متعدد أو واحد‬
‫إلى واحد فقط‪ .‬يبين الشكل (‪ )8‬التنظيم العام للتفرع‪.‬‬

‫‪30‬‬

‫الشكل (‪ :)8‬التنظيم العام للتفرع‬

‫تالحظ من الشكل (‪ )8‬أن األسهم تتجه من المستوى األدنى إلى األعلى (أي من األبناء إلى‬
‫اآلباء)‪ .‬وقد يتجه السهم من اآلباء إلى األبناء ولكن دائما هناك أسهم تتجه من األبن إلى األب‪.‬‬
‫ويعد جذر التفرع مربع وهمي‪ ،‬فروعه عبارة عن سجالت‪ ،‬والتفرعات المتعاقبة لكل فرع‬
‫(مربع ) هي أيضا سجالت قد تكون ذات أنواع مختلفة‪.‬‬

‫تدريب (‪)3‬‬

‫اذكر مواصفات التفرع‬

‫‪ 2.2.3‬الشبكة البسيطة (‪)Simple Network‬‬


‫الشبكة البسيطة عبارة عن مجموعة من السجالت المنتظمة على شكل عالقات واحد إلى متعدد‪.‬‬
‫السجل في الشبكات البسيطة قد ينحدر من أكثر من سجل ما دامت السجالت مختلفة األنواع‪.‬‬
‫ولتوضيح هذا المفهوم تأمل‪ ،‬عزيزي الدارس‪ ،‬الشكل (‪.)9‬‬

‫الشكل (‪ :)9‬الشبكة البسيطة‬

‫‪31‬‬

‫تالحظ من الشكل (‪ )9‬أن سجالت الطلبة (‪ )Students‬ترتبط بنوعين مختلفين من السجالت‬


‫هما سجالت المشرفون (‪ )Advisor‬وسجالت التخصص (‪( )Major‬أي لسجل الطالب أكثر‬
‫من والد)‪ .‬يأخذ التركيب الكياني العام للشبكة البسيطة الشكل (‪.)10‬‬

‫الشكل (‪ :)10‬التركيب العام للشبكة البسيطة‬

‫نالحظ من التركيب العام أن العالقات هي من نوع واحد إلى متعدد وأن سجل الطالب له والدان‬
‫(يرتبط بنوعين من السجالت المختلفة)‪ .‬كذلك فإنك تالحظ أن سجالت اآلباء إلى األعلى‬
‫واألبناء إلى األسفل وقد يكون هذا التنظيم محبذا‬

‫‪ 3.2.3‬الشبكة المعقدة (‪)Complex Network‬‬

‫الشبكة المعقدة عبارة عن مجموعة من السجالت التي ترتبط مع بعضها بعالقات على األقل أحد‬
‫هذه العالقات هي عالقة متعدد إلى متعدد فمثال تمثل العالقات بين الفاتورة (‪،)Invoice‬‬
‫والطلبية (‪ ،)Line-item‬والقطعة (‪ ،)Part‬والمورد (‪ .)Supplier‬كما في الشكل (‪.)11‬‬

‫الشكل (‪ :)11‬التركيب العام للشبكة المعقدة‬

‫‪32‬‬

‫هي عالقتان من العالقات من نوع واحد إلى متعدد ومن نوع متعدد إلى متعدد‪ ،‬يسمى هذا النوع‬
‫من التركيب بالشبكة المعقدة لوجود عالقة واحدة على األقل من نوع متعدد إلى متعدد‪ .‬مالحظة‬
‫النموذج العالئقي ال يساند العالقات من نوع متعدد إلى متعدد إال أنه باإلمكان تعريف عالقة‬
‫التقاطع (‪ )Supplier -Part‬كما في الشكل (‪.)12‬‬

‫الشكل (‪ :)12‬التمثيل العالئقي للشبكة المعقدة‬

‫أسئلة التقويم الذاتي (‪)1‬‬

‫‪ .1‬ما الشبكة البسيطة وما نوع العالقات فيها؟‬

‫‪ .2‬ما الشبكة المعقدة وما نوع العالقات فيها؟‬

‫‪ 4.2.3‬المفتاح الرئيس والمفتاح الثانوي‬

‫(‪)Primary key and Secondary key‬‬


‫يمثل مفهوم المفتاح (‪ )key‬بصورة عامة على أنه عنصر من عناصر البيانات أو حقل من‬
‫السجل ويفيد في استرجاع المعلومات المخزنة‪ .‬وتنقسم المفاتيح بصورة عامة عزيزي الدارس‬
‫الى قسمين رئيسين‪:‬‬

‫المفتاح الرئيس (‪ :)Primary Key‬عبارة عن حقل أو عنصر من عناصر بيانات سجل‬ ‫‪‬‬
‫ما ويجب أن يكون العنصر الوحيد لكل سجل‪ .‬فإذا كانت السجالت تمثل طلبة جامعة‬
‫فإن رقم الطالب يعد المفتاح الرئيس للتمييز بين سجالت الطلبة‪ .‬وقد يكون المفتاح‬
‫الرئيس عبارة عن مجموعة من العناصر‪.‬‬

‫‪33‬‬

‫المفتاح الثانوي (‪ :)Secondary Key‬يختلف المفتاح الثانوي عن المفتاح الرئيس في‬ ‫‪‬‬
‫كونه ال يشترط أن يكون وحيدا من نوعه‪ .‬بعبارة أخرى‪ ،‬قيم المفتاح الثانوي قد تتكرر‬
‫ألكثر من سجل‪ .‬فمثال‪ ،‬اسم الطالب أو تاريخ ميالده قد يكون مفتاح ثانوي حيث من‬
‫الممكن أن تتشابه أسماء بعض الطلبة‪ ،‬أو قد يتساوى تاريخ ميالد بعضهم‪ .‬ويفيد المفتاح‬
‫الثانوي في بعض التطبيقات‪ ،‬فإذا وقع حادث سير وكان المسبب هو سائق سيارة فولفو‬
‫مثال لم يعثر عليه‪ ،‬فمن الممكن اعتماد نوع السيارة السترجاع جميع أسماء وعناوين‬
‫وارقام هواتف أصحاب هذا النوع من السيارات في ذلك البلد‪.‬‬

‫تدريب(‪)4‬‬

‫تحتفظ دائرة السير بمعلومات عن كافة المركبات في ذلك البلد في قاعدة بيانات ولكل مركبة‬
‫سجل يتكون من مجموعة حقول هي‪:‬‬

‫رقم السيارة‪ ،‬اسم المالك‪ ،‬عنوان المالك‪ ،‬تلفون المالك‪ ،‬نوع السيارة‪،‬‬

‫سنة الصنع‪ ،‬اللون‪ ،‬والطراز‪.‬‬

‫‪ .1‬ما عناصر البيانات التي يمكن اعتمادها مفاتيح رئيسة؟‬

‫‪ .2‬ما عناصر البيانات التي يمكن اعتمادها مفاتيح ثانوية؟‬

‫‪ .3‬اذا عرفت نوع السيارة مار سيدس ولونها أحمر هل يمكن االستفادة هن العنصرين لتحديد‬
‫اسم المالك وعنوانه ورقم هاتفه؟‬

‫‪ 5.2.3‬عنونة السجالت (‪)Record Addressing‬‬

‫يمثل السجل مجموعة من العناصر أو الحقول غالبا ما يسمى أحدها المفتاح (‪ )Key‬حيث‬
‫يسترجع سجل ما بواسطة مفتاحه الرئيس الممثل برقم معين مثل رقم الطالب‪ ،‬رقم العامل‪ ،‬رقم‬
‫المادة في المخزن‪ .‬وتستخدم طرق عدة لعنونة السجالت وتختلف هذه الطرق في سرعة‬
‫االسترجاع وسعة الذاكرة المطلوبة لتخزين البيانات ومن أهم الطرق‪:‬‬
‫أ‪ -‬الطريقة التتابعية (‪:)Sequential‬‬

‫وتتلخص خطوات هذه الطريقة بما يأتي‪ :‬ترتيب الملف تصاعديا أو تنازليا حسب مفتاح معين‪.‬‬
‫يقارن المفتاح الذي تبحث عن سجله‪ ،‬مع مفاتيح سجالت الملف‪ .‬فإن كان المفتاح س أقل من‬
‫مفتاح السجل األول وأكبر من مفتاح السجل األخير في الملك فان المفتاح س غير موجود وإال‬
‫يقارن س مع المفتاح األول والثاني‪ ،.... ،‬حتى يتم التطابق أو الوصول إلى نهاية الملف‪.‬‬

‫‪34‬‬

‫تمتاز هذه الطريقة بعدم حاجتها إلى سعة كبيرة من الذاكرة ألنه ال يتم تخزين أكثر من سجل في‬
‫كل مرة ومن مساوئ هذه الطريقة أنها بطيئة‪.‬‬

‫ب‪ -‬الطريقة الثنائية (‪:)Binary Search‬‬

‫تتلخص خطوات عمل هذه الطريقة بما يلي‪:‬‬

‫ترتيب الملف تصاعديا أو تنازليا حسب مفتاح معين‪.‬‬ ‫‪‬‬


‫تقسيم الملف إلى نصفين ويقارن المفتاح س المطلوب البحث عنه مع مفتاح السجل‬ ‫‪‬‬
‫الواقع في منتصف الملف ولنفرض أنه ص‪.‬‬

‫فإذا كان س = ص فقد حدث التطابق وتسترجع معلومات السجل‪ .‬أما إذا كان س أقل من ص‬
‫تكرر هذه الخطوة للنصف األول من الملف وإال تكرر للنصف الثاني‪.‬‬

‫تدريب (‪)5‬‬

‫‪35‬‬

‫ج‪ -‬طريقة الكتل (‪:)Block Searching‬‬

‫تشابه هذه الطريقة الطريقة التتابعية إال أن السجالت يتم تجميعها على شكل وحدات حقيقية‬
‫(كتل) مرتبة‪ .‬وتتلخص خطوات الطريقة كما يلي‪:‬‬

‫‪ .1‬يقارن مفتاح السجل س مع آخر مفتاح في الكتلة األولى‪:‬‬

‫‪ - I‬فإن كان س أقل من مفتاح آخر سجل أو يساويه فإنه سيقع في الكتلة األولى ثم تتبع الطريقة‬
‫التتابعية‪.‬‬

‫‪ ii -‬واال سيكون في بقية الكتل‪.‬‬

‫‪ .2‬تكرر الخطوات السابقة للكتلة الثانية‪ ،... .‬حتى الكتلة األخيرة‪.‬‬

‫د‪ -‬طريقة المزج (‪:)Hashing Technique‬‬

‫تستخدم هذه الطريقة التحويل أرقام السجالت إلى ترتيب آخر بوساطة اقتران يسمى اقتران‬
‫المزج (‪ .)Hash Function‬وتتوافر عدة طرق نورد هنا إحداها‪ ،‬وهي طريقة باقي القسمة‪.‬‬
‫تتطلب طريقة باقي القسمة عدد السجالت في الملف ولنفرض أنها نه يكتب اقتران المزج‬
‫بالصورة‪ :‬ص (رقم المفتاح) = باقي القسمة (رقم المفتاح أن) ‪1+‬‬

‫ولتوضيح استخدام هذه الطريقة إليك‪ ،‬عزيزي الدارس‪ ،‬المثال اآلتي‪:‬‬

‫مثال‪:‬‬

‫جد ترتيب السجل الذي مفتاحه الرقم ‪ 90053249‬وأن عدد السجالت في الملف هو ‪100‬‬
‫سجال‪.‬‬

‫الحل‪:‬‬

‫باستخدام اقتران المزج‪:‬‬

‫ص (رقم المفتاح) = باقي القسمة (رقم المفتاح آن) ‪.1+‬‬

‫ينتج ص (‪ = )90053249‬باقي القسمة (‪.50 = 1 + )100/90053249‬‬

‫أسئلة التقويم الذاتي (‪)2‬‬

‫‪ -1‬عدد أنواع العالقات التي تربط البيانات بعضها مع بعضه‬

‫‪ -2‬عدد أنواع العالقات التي تربط السجالت بعضها مع بعض‪ ،‬واشرح واحدة منها‬

‫‪36‬‬

‫‪ .4‬المخططات والمخططات الفرعية والعالقات وطرق تمثيلها‬

‫(‪)Schema, Subschema & Relationship‬‬

‫إن التركيب العام لقاعدة البيانات بأكملها يسمى المخططات (‪ )Schema‬أو التخطيطي التمهيدي‬
‫(‪ )Conceptual View‬بينما تركيبة جزء من قاعدة البيانات والتي تعالج بوساطة تطبيق معين‬
‫تسمى المخططات الفرعية (‪ )Subschema‬أو مخططات التطبيقات الفرعية‪ ،‬كذلك‪ ،‬تسمى‬
‫المخططات المنطقية (‪ )Logical View‬ولتوضيح هذه المفاهيم إليك‪ ،‬عزيزي الدارس‪ ،‬المثال‬
‫اآلتي‪:‬‬

‫يرغب قسم الحاسب في إحدى الجامعات إلى تنظيم دخول طلبة الدراسات العليا إلى مختبر‬
‫حاسوب أعضاء هيئة التدريس وقد أوكلت المهمة إلى أحد الموظفين المختصين وقد تم تقسيم‬
‫العمل إلى أربع وظائف وهي‪ :‬إعداد الجدول الزمني‪ ،‬والمخزون‪ ،‬والتدقيق‪ ،‬والتحليالت‬
‫اإلحصائية‪ .‬يفيد الجدول الزمني لحجز وقت لكل طالب واحتياجاته المادية والبرمجية‪ .‬ويبين‬
‫الجدول اآلتي الوظائف األربع‪.‬‬

‫التطبيق الخاص بالمخزون يفيد في متابعة المعدات واألجهزة الملحقة في المعدات‪ .‬أما التدقيق‬
‫فيختص بمتابعة البرمجيات ومن يستخدمها وخصوصا البرمجيات خاصة الغرض‪ .‬وتفيد‬
‫التحليالت اإلحصائية في معرفة من استخدم المختبر وما اسم المقرر ومن المدرس المشرف‪...‬‬
‫الخ‪ .‬وأن التركيب العام لكافة البيانات في الجدول هو المخطط‪ .‬والمعدات واألجهزة الملحقة بها‬
‫تحدد المخزون أو المخططات الفرعية للمخزون‪.‬‬

‫‪37‬‬

‫‪ .5‬مستويات توصيف قواعد البيانات‬

‫تطور مفهوم قواعد البيانات‪ ،‬عزيزي الدارس‪ ،‬من خالل استخدام المعلومات والبيانات في‬
‫وسائل االعالم والمطبوعات واألعمال التجارية وفي الحاسبات اإللكترونية‪ .‬ولذا فإن أي‬
‫مجموعة من البيانات يمكن اعتبارها قاعدة بيانات‪ .‬ومن الطبيعي أن تعرف قواعد البيانات على‬
‫أنها مجموعة من البيانات المخزنة على شكل كتلة واحدة وتستدعى بأشكال وتنظيمات جدولية‬
‫مختلفة وتعتمد على نوع التطبيق المستخدم‬

‫وقد يسأل سائل ما الفرق بين نظام الملفات المعمول به بشكل واسع (خاصة في التطبيقات‬
‫البسيطة) وقواعد البيانات‪ .‬إن الفرق بين اإلثنين شاسع‪ ،‬فاألول يحتوي على معلومات وبيانات‬
‫وفق هيئة معينة تسمى السجالت ومجموعة السجالت تسمى ملف‪ ،‬وكل سجل يختلف عن الثاني‬
‫وكما يبين ذلك الشكل (‪.)13‬‬

‫الشكل (‪ :)13‬نظام الملفات في مؤسسة‬

‫إن لكل دائرة سجالتها الخاصة بها ويتم تعديل السجالت والبيانات ضمن الدائرة المعنية‪ ،‬أما‬
‫قواعد البيانات فهي ضم جميع السجالت المختلفة من سجالت الزبائن إلى سجالت المبيعات في‬
‫قالب واحد كما في الشكل (‪.)14‬‬

‫الشكل (‪ :)14‬نظام قواعد البيانات‬

‫‪38‬‬

‫من أجل ذلك تعد قواعد البيانات أكثر شمولية وأيسر مراجعة وتعديال من نظام الملفات باإلضافة‬
‫إلى ذلك فإن لقواعد البيانات ميزات أخرى مهمة سرعة اكتشاف األخطاء والمراقبة المركبة‬
‫وسرية المعلومات وعدم وجود حقول مكررة وغيرها تم شرحها بالتفصيل في الوحدة األولى‪.‬‬

‫من أهم الفروقات الرئيسة بين أنظمة قواعد البيانات وأنظمة الملفات هو استقالل التوصيف‬
‫المادي عن التوصيف المنطقي مما يريح المبرمج من الخوض في التفاصيل الدقيقة للتعامل مع‬
‫البيانات وتخزينها‪.‬‬

‫‪ 1,5‬المخططات الفرعية (األنماط الفرعية) (‪)Subschemas‬‬

‫توفر قواعد البيانات طريقة معينة للوصول إلى البيانات بحيث ال يسمح لكل من يشاء االطالع‬
‫عليها وبذلك تحفظ سرية المعلومات‪ .‬فمثال بإمكان دائرة المشتريات استدعاء المعلومات الخاصة‬
‫بالمخزن وال يسمح لها باالطالع على المعلومات الخاصة باألجور والرواتب‪ .‬ومن أجل توفير‬
‫الحماية الالزمة وبالوقت نفسه السماح للدوائر االطالع على البيانات التابعة لها فإن قواعد‬
‫البيانات تنظم وفق نمط عام (مخطط) (‪ )Schema‬يصف تركيبة قواعد البيانات‪ ،‬وأنماط ذات‬
‫مستويات أدني (مخططات فرعية) (‪ )Subschema‬أخرى تصف تركيب البيانات الجزئية‬
‫(حسب الدائرة المعينة)‪.‬‬

‫يبين الشكل (‪ )15‬قاعدة بيانات تشمل عدة تطبيقات منها األجور‪ .‬ولألجور مخطط فرعي يشمل‬
‫اسم العامل‪ ،‬ساعات العمل‪ ،‬األجرة‪ ،‬األجرة المقبوضة‪.‬‬

‫الشكل (‪ :)15‬مفهوم المخططات الفرعية‬

‫‪39‬‬

‫ترتبط البيانات الجزئية مع بعضها البعض بواسطة دليل (مؤشر) بحيث يمكن الوصول إلى‬
‫بعض المعلومات دون غيرها‪ .‬فمثال تحتوي قواعد البيانات في الجامعات على سجالت خاصة‬
‫للطلبة واعضاء الهيئة التدريسية والعاملين‪ .‬فبإمكان المسجل العام أن يطلع على ملف الطالب‬
‫لمعرفة اسمه ورقمه وعنوانه وهناك دليل يربط الطالب المذكور بمشرفه وبإمكان المسجل أن‬
‫يعرف اسم المشرف دون تمكنه من معرفة المعلومات الخاصة بالمشرف نفسه‪ .‬وبإمكان دائرة‬
‫الحسابات أن تطلع على راتب المشرف دون التمكن من االطالع على أسماء الطلبة الذين‬
‫يشرف عليهم‪ .‬إذن هنا تخصص في البيانات فالنمط الجزئي للبيانات (‪ )Subschema‬يحدد‬
‫العالقات بين األنماط المختلفة حيث أنه لكل نمط تركيب معين‪.‬‬

‫‪ 2.5‬التوصيف المنطقي (‪)Logical DB Description‬‬

‫التوصيف المنطقي هو عملية عرض البيانات كما يفهمها المستفيد أو رجل األعمال المتخصص‪.‬‬
‫إن المقصود هنا هو وصف تركيب قواعد البيانات من المستوى المنطقي الذي يعرف تركيب‬
‫السجالت وعالقتها مع بعضها البعض من المستوى العام والذي غالبا ما يشتق في تعريف‬
‫الكيانات وعالقتها مع بعض‪.‬‬

‫‪ 3.5‬التوصيف المادي (‪)Physical DB Description‬‬

‫التوصيف المادي يبين حقيقة تنظيم البيانات وتخزينها في وسائط التخزين المادية مثل األشرطة‬
‫المغناطيسية واألقراص المغناطيسية أو الضوئية أو األقراص المضغوطة ‪ .CD -ROM‬إن هذا‬
‫الجزء من الوصف يحدد المعلومات الالزمة الخزن قواعد البيانات وأسلوب استرجاعها‬
‫وتحديثها والمساحات الالزمة لها والمفاتيح الخاصة بكل منها‪.‬‬

‫أسئلة التقويم الذاتي (‪)3‬‬

‫‪ .1‬اذكر الفرق ما بين المفتاح الرئيس والمفتاح الثانوي‪.‬‬

‫‪ .2‬اشرح طريقة البحث ‪ Hashing‬في بناء الملفات‪.‬‬

‫‪40‬‬

‫‪ .6‬الخالصة‬
‫لقد استعرضنا في هذه الوحدة‪ ،‬عزيزي الدارس‪ ،‬المفاهيم األساسية لتحليل البيانات وبناء‬
‫نماذجها حيث تم توضيح الكيانات والخصائص وأهميتها في بناء قواعد البيانات وفي‬
‫استخدامها‪ ،‬وبينت الوحدة العالقات األساسية في قواعد البيانات حيث عرفت بنوعين من‬
‫العالقات هما‪:‬‬

‫‪ -‬العالقات بين البيانات والتي تشتمل على عالقة واحد إلى واحد‪ ،‬وعالقة واحد إلى متعدد‬
‫وعالقة متعدد إلى متعدد‪.‬‬

‫‪ -‬العالقات بين السجالت والتي تشتمل على التفرع‪ ،‬الشبكة البسيطة‪ ،‬والشبكة المعقدة‪ ،‬والمفتاح‬
‫الرئيس والثانوي وطرق عنونة السجالت‪ .‬وتطرقت الوحدة إلى المخططات والمخططات‬
‫الفرعية (األنماط) والعالقات وطرق تمثيلها‪ .‬وعرضت الوحدة مستويات توصيف البيانات‬
‫الثالث‪ :‬المخططات الفرعية‪ ،‬والتوصيف المنطقي‪ ،‬والتوصيف المادي‪.‬‬

‫‪.7‬لمحة عن الوحدة الدراسية الثالثة‬

‫تعرفت‪ ،‬عزيزي الدراس‪ ،‬من خالل دراستك لهذه الوحدة على المفاهيم األساسية لتحليل البيانات‬
‫وبناء نماذجها‪ .‬كما تعرفت على الكيانات والخصائص وأهميتها في بناء قواعد البيانات‬
‫واستخدامها‪ .‬وبينت الوحدة العالقات األساسية في قواعد البيانات حيث عرفت نوعين من‬
‫العالقات هما‪ :‬العالقات بين البيانات والعالقات بين السجالت‪.‬‬

‫وتعلمت أيضا في هذه الوحدة أسس المخططات والمخططات الفرعية والعالقات وطرق تمثيلها‪.‬‬

‫وبينت الوحدة مستويات توصيف البيانات باستخدام المخططات الفرعية‪ ،‬والتوصيف المنطقي‪،‬‬
‫والتوصيف المادي‪.‬‬

‫وهكذا فإنك ستدرس في الوحدة الثالثة الملفات البسيطة وطرق إنشائها‪،‬‬

‫وستتعرف على التنظيمات األساسية لقواعد البيانات المختلفة ومنها التنظيم الهرمي والتنظيم‬
‫الشبكي والتنظيم العالئقي‪ .‬وتستعرض الوحدة التالية‪ ،‬عزيزي الدارس‪ ،‬أنواع أنظمة قواعد‬
‫البيانات والمقارنة بينها وتلخص الوحدة الفروقات بین النماذج الهرمية‪ ،‬والنماذج الشبكية‪،‬‬
‫والنماذج العالئقية‪.‬‬

‫‪41‬‬

‫‪ .9‬مسرد المصطلحات‬

‫خصائص (‪ :)Attributes‬عبارة عن خواص للكيانات تكون سجلها‪ ،‬فمثال إذا كان الزبون كيان‬
‫فإن رقم الزبون‪ ،‬اسمه‪ ،‬عنوانه‪ ،‬رقم هاتفه‪ ،‬رقم حسابه هي خصائصه‬

‫الشبكة البسيطة (‪ :)Simple Network‬عبارة عن شبكة تساند عالقة واحد إلى متعدد‬ ‫‪-‬‬
‫‪ One- to Many‬وال تساند عالقة متعدد إلى متعدد‬
‫الشبكة المعقدة (‪ :)Complex Network‬عبارة عن شبكة تساند عالقة متعدد إلى متعدد‬
‫‪ Many- to- Many‬وكذلك تساند عالقة واحد إلى متعدد ((‪One- to- Many‬‬

‫‪ -‬فئة الكيانات (‪ :)Entity Class‬مجموعة من العناصر ذات الخواص المتشابهة مثل الزبائن‪،‬‬
‫الطالب‪ ،‬المرضى‪.‬‬

‫‪ -‬الكيان (‪ :)Entity‬بيانات مخزونة تخص شخص‪ ،‬أو موقع شيء‪ :‬أو المفهوم‪ ،‬حيث يسمى‬
‫الشيء أو الشخص‪ ،‬أو منتج ما‪ ،‬كيان‪.‬‬

‫‪ -‬المخططات (األنماط) (‪ :)Schema‬تمثيل للتركيب المنطقي لقاعدة بيانات وقد تمثل على شكل‬
‫مخطط أو على شكل لغة تعريف بيانات‪.‬‬

‫المفتاح الثانوي (‪ :)Secondary Key‬عبارة عن خاصية أو بيانات تحدد سجل أو مجموعة‬


‫سجالت‪ ،‬وال يشترط تلك‬

‫الخاصية أن تكون فريدة من نوعها‪.‬‬

‫‪43‬‬

‫الوحدة الثالثة‬
‫تنظيم قواعد البيانات وطرقها‬
‫‪45‬‬

‫‪4.1‬القراءات المساعدة‬

‫عزيزي الدارس‪ ،‬تفيدك المراجع اآلتية في أن تنتفع وتستزيد في دراسة مادة هذه الوحدة‬
‫والوحدات األخرى نظرا ألهميتها واتصالها بموضوعات الوحدة •‬

‫‪Jackson, Glenn A., “ Relational Database Design with .1‬‬

‫‪.Microcomputer Applications”, Prentice-Hall, 1988‬‬

‫‪Korth, Henry F. and Silberschatz Abraham., "Database .2‬‬

‫‪.System Concepts", McGraw-Hill, Second Edition, 1991‬‬

‫‪ 5.1‬ما تحتاج إليه لدراسة الوحدة‬


‫هيء لنفسك‪ ،‬عزيزي الدارس‪ ،‬الجو الدراسي المالئم‪ .‬عليك بحل كافة التدريبات وأسئلة التقويم‬
‫الذاتي الواردة في الوحدة لما لها من دور مهم في ترسيخ المادة العلمية في ذهنك‪ .‬ابق على‬
‫اتصال مع مشرفك األكاديمي كلما احتجت لذلك‪.‬‬

‫‪ .2‬الملفات البسيطة (‪)Flat Files‬‬

‫يمكن بناء البيانات من مجموعة من الرموز التي تمثل حقل (‪ )Field‬أو خاصية (‪)Attribute‬‬
‫من خصائص الكيان‪ .‬كما أن مجموعة من الحقول (الخصائص) يمكن أن تمثل سجل من‬
‫البيانات (‪ .)Record‬فمثال اسم الطالب يتكون من مجموعة من الرموز وكذلك العنوان وغيرها‪.‬‬
‫وجميع البيانات من هذه الحقول التي تخص طالبا بعينه تسمى سجل الطالب‪.‬‬

‫ومجموعة السجالت لجميع الطلبة تسمى ملفا (‪ )File‬يخص كيان الطالب‪ .‬أما مجموعة الملفات‬
‫التي تخص مؤسسة (‪ )Enterprise‬تسمی قاعدة البيانات‪ .‬إن الملفات عبارة عن تركيب يحتوي‬
‫على مجموعة من البيانات المنتظمة على شكل حقول حيث يعرف لكل حقل اسم‪ ،‬وسعة‪ ،‬ونوع‬
‫البيانات ومجموعة الحقول ذات العالقة تسمى سجال‪ .‬إن مجموعة السجالت توضع في الملفات‬
‫البسيطة (‪.)Flat Files‬‬

‫باإلمكان تصور الملفات البسيطة على أنها مصفوفة ذات بعدين‪ .‬ومن األمثلة على الملفات‬
‫البسيطة الجدول اآلتي حيث تنظم البيانات على شكل صفوف وأعمدة كما في الجدول (‪)1‬‬

‫‪50‬‬

‫جدول (‪ :)1‬المفاتيح الرئيسة والثانوية‬

‫تشير أسماء البيانات في أعلى الجدول إلى خصائص (‪ )Attributes‬كل كيان (‪ .)Entity‬وكل‬
‫عمود يحتوي على قيمة بيانات معينة‪ .‬وكل صف من صفوف الجدول عبارة عن سجل منتج‬
‫واحد‪ .‬ومن الجدير باإلشارة‪ ،‬عزيزي الدارس‪ ،‬إلى وجود قيمة واحدة فقط عند تقاطع العمود مع‬
‫الصف‪ .‬وهذه تعد إحدى الخصائص المهمة للملفات البسيطة‪ .‬إن المفتاح الرئيسي لكل منتج‬
‫يحدد أحد السجالت والخصائص األخرى المرتبطة به‪ .‬فمثال‪ ،‬الرقم ‪ 1677‬عبارة عن المفتاح‬
‫الرئيسي الذي يحدد المنتج المسمى "خزانة مالبس وجهة التصدير "ليبيا" وسعر الوحدة ‪328‬‬
‫وحدة سعر‪.‬‬

‫إن المفتاح الرئيسي يحدد منتج واحد فقط‪ ،‬بينما المفتاح الثانوي قد يحدد أكثر من حالة‪ ،‬فإذا‬
‫اعتمدنا المفتاح الثانوي "وحدات جدارية" فهناك سجالن ينطبق عليهما الحال هما‪.‬‬

‫وهذه النتائج تستدعي اعتماد مفتاح رئيسي للبحث عن المعلومات واسترجاعها‪ ،‬وال ضير من‬
‫استخدام المفتاح الثانوي مع المفتاح الرئيسي‪ ،‬وإال تحصل على سجالت قد تكون غير مطلوبة‪.‬‬

‫‪51‬‬

‫يعتمد تنظيم الملفات على نوعية التطبيقات‪ .‬لقد تم اعتماد تصميم الملفات ليالئم مواصفات‬
‫تطبيق معين‪ ،‬فمثال ملفات الرواتب (‪ )payroll‬تحتوي على معلومات خاصة بنظام الرواتب في‬
‫الشركة أو المؤسسة‪ ،‬وملف آخر يتضمن معلومات خاصة باألفراد‪ ،‬وآخر للحسابات‪ ،‬وآخر‬
‫لألستاذ العام‪ ،‬وهكذا‪ .‬وإذا لم يتم تنظيم البيانات بصورة جيدة فقد ينشأ عن ذلك تكرار المعلومات‬
‫والبيانات عبر عدة ملفات‪.‬‬

‫تدريب (‪)1‬‬

‫ضع إشارة (‪ )7‬أمام العبارة الصحيحة واشارة (‪ )X‬أمام العبارة الخاطئة‬

‫‪ .1‬تعد الملفات البسيطة أساس قواعد البيانات الهرمية‪.‬‬

‫‪ .2‬تشابه الملفات البسيطة الجداول اإللكترونية (‪.)Spreadsheet‬‬

‫‪ .3‬ال تعتمد الملفات البسيطة مفهوم المفتاح الرئيسي‬

‫‪ .4‬تعد الملفات البسيطة قواعد بيانات عالئقية بذاتها‪.‬‬

‫‪ .5‬تستخدم الملفات البسيطة للتطبيقات التي تتوزع بياناتها إلى عدة ملفات‪.‬‬

‫وفيما يلي مجموعة من األمثلة عن الملفات البسيطة والملفات غير البسيطة‪.‬‬

‫‪ -‬الملفات البسيطة‪:‬‬

‫مثال لملف بسيط‪.‬‬

‫‪ -‬الملفات غير البسيطة‪:‬‬

‫‪52‬‬

‫تدريب (‪)2‬‬

‫هل يعبر الشكل اآلتي عن ملف بسيط أم غير بسيط؟‬

‫أسئلة التقويم الذاتي (‪)1‬‬

‫ما الفرق بين المفتاح الرئيس والمفتاح الثانوي؟‬

‫‪53‬‬

‫‪ .3‬التنظيمات الرئيسة لقواعد البيانات‬

‫يمكن‪ ،‬عزيزي الدارس‪ ،‬ربط مجموعة من الملفات التي تخص مؤسسة مع بعضها البعض لتمثل‬
‫قاعدة بيانات لهذه المؤسسة‪ .‬وأسلوب ربط هذه الملفات يحدد تنظيم أو بنية قواعد البيانات‪.‬‬
‫تتوافر في الوقت الحاضر ثالثة أنواع من تنظيمات قواعد البيانات‪.‬‬

‫‪ 1.3‬التنظيم الهرمي (‪)Hierarchical / Tree‬‬


‫يسمى التنظيم الهرمي في بعض األحيان بالتنظيم الشجري (‪ .)Structure Tree‬الشكل (‪)1‬‬
‫أدناه يبين صورة التنظيم الهرمي‪.‬‬

‫الشكل (‪ :)1‬التنظيم الهرمي‬

‫وتخزن البيانات في العقد حيث تنمو الشجرة عمودية وقد يتفرع من العقدة (‪ )Node‬فروع‬
‫متعددة تنتهي بعقدة وليدة‪ ،‬وتسمى العقدة المولدة بالوالد والجديدة باألبناء حيث لكل ابن والد‬
‫واحد فقط‪.‬‬

‫ترتبط كيانات هذا النوع على شكل شجرة ودائما يتم البحث فيه ابتداء من الجذر (‪ )Root‬باتجاه‬
‫تفرع الشجرة‪ .‬لذا يعد هذا النوع هو األفضل من حيث البحث عن البيانات‪.‬‬

‫‪54‬‬

‫‪2.3‬التنظيم الشبكي (‪)Network Organization‬‬

‫ويشبه في تركيبه التنظيم الهرمي إال أن كل عقدة أو فرع قد يكون لها أكثر من والد‪ ،‬كما في‬
‫الشكل (‪.)2‬‬

‫الشكل (‪ :)2‬التنظيم الشبكي‬

‫حيث يظهر بأن العالقة بين كيانات هذا النوع هو على شكل مخطط (‪.)Graph‬‬

‫‪ 3.3‬التنظيم العالئقي (‪)Relational Organization‬‬

‫يمكن تنظيم البيانات على شكل جداول ذات بعدين‪ .‬ويوفر هذا النوع من التنظيم كفاءة عالية في‬
‫المرونة ويحتاج إلى حجم تخزين قليل نسبيا في الذاكرة أو وحدات الخزين المساعدة‪ ،‬ولكن‬
‫إنشاء الجداول قد يحتاج إلى جهد أكبر‪ ،‬وكذلك لها مساوئ أخرى فالوقت المطلوب للوصول إلى‬
‫المعلومات واسترجاعها أو تعديلها أو حذفها يكون أطول بالمقارنة مع التنظيمين السابقين‬
‫باإلضافة إلى ذلك يضع منتجي هذا النوع من قواعد البيانات قيودا على طول الحقل مما يؤدي‬
‫إلى وضع قيود على البرامج التطبيقية ومع كل هذه المساوئ فإن التنظيم العالئقي يلقى اهتماما‬
‫واسعا من قبل الشركات المنتجة ويتوقع بعض المختصين أن يحل محل التنظيمين السابقين‪.‬‬

‫أسئلة التقويم الذاتي (‪)2‬‬

‫ما الفرق بين أسلوب ربط مكونات قواعد البيانات في النموذج الهرمي والنموذج الشبكي؟‬

‫‪55‬‬

‫‪ .4‬نماذج أنظمة قواعد البيانات‬

‫يتم تمرير قواعد البيانات خالل مجموعة من الطبقات تؤدي كل منها وظيفة معينة قبل وصولها‬
‫إلى المستخدم‪ .‬فالمستخدم يستدعي المعلومات المطلوبة وتظهر بشكل مقروء وواضح‪ .‬ومن أجل‬
‫إظهار المعلومات بهذا الشكل فال بد من تأمين برامج أخرى للقيام بهذه المهمة‪ .‬وتسمى هذه‬
‫البرامج بالبرامج التطبيقية‪ ،‬وتعد هذه البرامج حلقة وصل بين المستخدم وبرنامج آخر يطلق‬
‫عليه إدارة قواعد البيانات (‪ .)Database Management System‬وإدارة قواعد البيانات‬
‫هي المسؤولة عن تحديد النمط والحماية‪ ،‬بينما البرامج التطبيقية هي المسؤولة عن استقبال‬
‫األسئلة وإصدار اإلجابات بالشكل المطلوب‪ .‬الشكل (‪ )3‬يبين هذه المراحل القواعد البيانات‪.‬‬

‫الشكل (‪ :)3‬التنظيم المنطقي لقواعد البيانات‬

‫تعد البيانات المادة الخام التي تبني منها األنظمة الحديثة في العصر الحالي‪ ،‬والذي يعد عصر‬
‫المعلومات والمعلومات هي منتجات نهائية مادتها األولية البيانات‪ .‬ويعتمد اتخاذ القرار على‬
‫المعلومات المستقاة من البيانات‪ .‬يبين الشكل (‪ )4‬العالقة بين البيانات والمعلومات واتخاذ‬
‫القرار‪.‬‬

‫الشكل (‪ :)4‬العالقة بين البيانات والمعلومات واتخاذ القرار‬

‫‪56‬‬

‫وال غرو أن يولي المختصون في المؤسسات أهمية كبيرة في تركيب وتنظيم البيانات بطرق‬
‫تساعد على تخزين البيانات واسترجاعها بأشكال وأنماط مختلفة عند الحاجة‪ .‬واحدى هذه‬
‫الطرق هي قواعد البيانات‪ .‬وأولى خطوات تصميم قواعد البيانات اختيار النموذج المناسب‪.‬‬
‫والنموذج عبارة عن تمثيل للبيانات‪ ،‬وقد يسمى النموذج بالمخطط (‪ .)Schema‬ويصف‬
‫النموذج خصائص قواعد‬

‫البيانات‪ .‬ومثلما يستطيع القارئ التعرف على محتويات أي كتاب فانه يلجأ إلى الفهرسة أو قائمة‬
‫المحتويات لينال شيئا مما في الكتاب‪ ،‬وبالطريقة نفسها فإن نماذج قواعد البيانات تبين األجزاء‬
‫الرئيسية (مثل الملفات السجالت‪ ،‬والحقول) لقاعدة البيانات وتوضح طريقة الربط بينها‪.‬‬

‫تبني قواعد البيانات وفق نماذج مختلفة وفيما يأتي‪ ،‬عزيزي الدارس‪ ،‬بعض هذه النماذج‬

‫‪ .1‬النموذج الهرمي (‪.)Hierarchical Model‬‬

‫‪ .2‬النموذج الشبكي (‪.)Network Model‬‬

‫‪ .3‬النموذج العالئقي (‪.)Relational Model‬‬

‫وفيما يلي شرح موجز عن كل من هذه النماذج‪:‬‬

‫‪ 1.4‬النماذج الهرمية (‪)Hierarchical Models‬‬

‫يعد النموذج الهرمي أقدم من النموذج العالئقي‪ .‬وتنظم العالقات بين السجالت على شكل شجرة‬
‫مقلوبة‪ .‬حيث يبين جذر الشجرة المفتاح الرئيسي نوع البيانات‪ ،‬مواقعها‪ ،‬وكذلك الفروع‬
‫الخارجة من الجذر‪ .‬لقد تم تطوير النموذج ألنه يعكس العالقات في معظم التطبيقات في الحياة‬
‫العملية‪ .‬فمثال المخطط اإلداري يتكون من شكل هرمي مستواه األول (جذره) اإلدارة العليا ثم‬
‫يبين المستوى الثاني اإلدارة الوسطى‪ ۰۰ ،‬والمستوى األخير يمثل بقية المنتسبين‪ .‬بعبارة أخرى‬
‫كل منتسب يرتبط بمدير واحد فقط‪ .‬ولذا فالنموذج الهرمي هو من نوع العالقة واحد الى متعدد‬
‫انظر الشكل (‪.)5‬‬

‫‪57‬‬

‫الشكل (‪ :)5‬النموذج الهرمي‬

‫من األمثلة األكثر تطبيقا للنظام الهرمي تخزين المواد اإلحتياطية للطائرات حيث يتكون‬
‫المستودع من وحدات رئيسة‪ .‬وتتكون هذه الوحدات الرئيسة بدورها من وحدات فرعية‪،... ،‬‬
‫وهكذا‪ .‬فبإعتماد النموذج الهرمي تنظم العالقات بين السجالت والمتغيرات على النحو اآلتي‪:‬‬
‫يمثل المستوى األول (األعلى) الوحدات الرئيسية مثل األجنحة‪ ،‬الجسم‪ ،‬المؤخرة‪ ،‬ومقصورة‬
‫الطيران‪ ،‬ويمثل المستوى الثاني الوحدات الفرعية لكل وحدة رئيسية‪ ،‬والمستوى االدنى‬
‫(األخير) يمثل الوحدات التي ال يمكن تجزئتها‪ .‬أرقامها ومعلومات إضافية أخرى‪.‬‬

‫يناسب هذا النموذج اإلجابة على التساؤالت المتعلقة بالوحدات وما يتوفر منها وعرض‬
‫المعلومات اإلضافية األخرى ولكنه ال يناسب التساؤالت المتعلقة بالوحدات وفي أي طائرة‬
‫مستخدمة‬

‫نشاط (‪)1‬‬

‫لماذا ال يالئم النموذج الهرمي التساؤالت المتعلقة بالوحدات وفي أي‬

‫طائرة مستخدمة؟‬

‫‪58‬‬

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

‫من المنتجات التجارية لهذا النوع من قواعد البيانات نظام إدارة المعلومات المنتج من قبل شركة‬
‫أ‪ .‬ب‪ .‬م (‪ )IMS‬ونظام إدارة قواعد المعلومات المنتج من قبل شركة كولينيت (‪)IDMS‬‬
‫وغيرها‪.‬‬

‫‪ 2.4‬النماذج الشبكية (‪)Network Models‬‬

‫يعتمد هذا النموذج في بنائه على مفهوم المجموعات الجزئية والعناصر حيث يطلق على كل‬
‫مجموعة من المعلومات بالمالك وما يرتبط بها بالعناصر‪ .‬وترتبط العناصر بالمالك عبر خطوط‬
‫شبيهة بخطوط القوائم المتصلة (‪ )Linked Lists‬ويمكن تمثيل المثال السابق بالنموذج الشبكي‬
‫كما في الشكل (‪.)6‬‬
‫ومن الحزم البرمجية المعتمدة في بنائها على هذا النموذج‪ Total :‬وهي مصممة للحاسبات‬
‫الكبيرة والمتوسطة في عقد السبعينات‪ .‬وقد انتشر استخدام نموذج قواعد البيانات العالئقية في‬
‫الوقت الحاضر أكثر من النماذج األخرى‪.‬‬

‫الشكل (‪ :)6‬نظام شبكي‬

‫‪59‬‬

‫‪ 3.4‬النماذج العالئقية (‪)Relational Models‬‬

‫تكمن أهمية وشهرة هذا النموذج من تركيبته البسيطة حيث يتكون من جداول تحتوي على‬
‫البيانات ويسمى كل من هذه الجداول بالعالقة ‪ Relation‬كما هو موضح في الجدول (‪.)2‬‬

‫جدول (‪ )2‬أسماء الطالب في إحدى الجامعات‬

‫يتكون الجدول من أربعة أعمدة حيث كل عمود يمثل حقل معين‪ :‬االسم‪ ،‬الرقم‪ ،‬العنوان وعدد‬
‫المقررات وبإمكاننا إضافة أعمدة أخرى للجدول أعاله مثل الكلية‪ ،‬التخصص‪ ،‬القسم‪ ،‬تاريخ‬
‫االلتحاق بالجامعة والمستوى‪ .‬ومن األفضل إضافة العالقات الجديدة في جداول كما في جدول (‬
‫‪.)3‬‬

‫‪60‬‬

‫جدول (‪)4‬‬

‫وباإلمكان اآلن معرفة كافة أسماء الطلبة القاطنين في حي المهاجرين (الجدول ‪ )2‬وتخصصهم‬
‫اقتصاد إسالمي (الجدول ‪ )3‬وتاريخ التحاقهم في الجامعة ‪( 1989-10-1‬الجدول ‪ ،)4‬وهذه‬
‫العملية هي عملية الربط بين أكثر من جدول‪ .‬أي أنه باإلمكان إصدار شتى األسئلة‬
‫واالستفسارات باستخدام هذا األسلوب‪ .‬ومن الحزم البرمجية المعتمدة في بنائها على هذا‬
‫النموذج ‪ Dbase.III+, FoxPro, Oracle, Ingres, Access, Paradox‬جميعها على نفس‬
‫المبدأ تقريبا‪ .‬كما أن هناك لغة قياسية للتعامل مع الحزم البرمجية تسمى لغة اإلستفسارات‬
‫القياسية ومن أشهرها ‪ Structured Query Language‬أو اختصار ‪ .SQL‬وسنستخدم‬
‫الحزمة البرمجية ‪ Access‬كحالة تطبيقية لتوضيح أساسيات قواعد البيانات العالئقية‪.‬‬

‫أسئلة التقويم الذاتي (‪)3‬‬

‫‪ .1‬ارسم مخططا توضح فيه طبقات البرمجيات المستخدمة في الحاسوب‪.‬‬

‫‪ .2‬كيف يتم ربط الملفات (الجداول في النظام العالئقي؟‬

‫‪61‬‬

‫‪ .5‬مقارنة بين النماذج المختلفة ألنظمة قواعد البيانات‬


‫الكل نموذج ميزات ومحددات‪ ،‬ومن الميزات األساسية للنموذج الهرمي هو سهولة البحث فيه‬
‫عن البيانات حيث يعطي تنظيمه الشجري أسلوبا واضحا لخطوات البحث‪.‬‬

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

‫كما في الجدول (‪.)5‬‬

‫جدول (‪ :)5‬مقارنة بين أنظمة قواعد البيانات الرئيسة الثالث‬

‫ومما تجدر اإلشارة إليه أن اختيار نظام إدارة قاعدة بيانات يعتمد على عدة عوامل منها مسح‬
‫شامل لمنتجات برمجيات قواعد البيانات ومعرفة ميزات ومحددات المنتجات وأساليب زيادة‬
‫اإلنتاجية‪ .‬ومن العوامل المهمة التي تعتمدها كثير من الشركات في تقييم برمجيات قواعد‬
‫البيانات ما يأتي‪:‬‬

‫‪ .1‬نموذج البيانات المستخدم أي ما النموذج المنطقي للبيانات الذي يعتمده نظام إدارة قواعد‬
‫البيانات‪ :‬أهو الهرمي أم الشبكي أم العالئقي‪.‬‬

‫‪ .2‬سهولة التعامل مع أنظمة التساؤالت‪ ،‬إنشاء التقارير والرسوم البرمجيات اإلحصائية‪.‬‬

‫‪ .3‬توفر لغات البرمجة عالية المستوى لتطوير تطبيقات برمجية‪.‬‬

‫‪ .4‬مرونة إضافة حقول جديدة إلى تعريف السجالت أو حذفها‪.‬‬

‫‪ .5‬أمن المعلومات وسريتها‪.‬‬

‫‪ .6‬إعادة التشغيل وسهولة معالجة األخطاء‪.‬‬

‫‪ .7‬ضوابط صحة البيانات وتدقيقها وأساليب السيطرة على األخطاء في أثناء‬

‫عمليات التحديث المتعدد‪.‬‬

‫‪62‬‬

‫‪ .8‬المستلزمات المادية والبرمجية‪ .‬هل يمكن تشغيل أنظمة قواعد البيانات على الحواسيب‬
‫الصغيرة‪ ،‬المتوسطة‪ ،‬أم الكبيرة‪.‬‬

‫‪ .9‬في الزمن الالزم لتنفيذ عمليات المعالجة وإيجاد األداء األمثل‪.‬‬

‫‪ .10‬الكفاءة‪ .‬طريقة تخصيص الذاكرة وطرق ضغط البيانات‪.‬‬

‫‪ .11‬الوسائل المتوفرة لمراقبة األداء‪.‬‬


‫‪ .12‬سهولة اإلستخدام‪ .‬هل التوثيق مالئم ويفي بالغرض المطلوب؟ وهل وسائل المساعدة اآللية‬
‫متوافرة؟‬

‫‪ .13‬التعامل مع البيانات من حيث إنشائها وتدقيقها‪.‬‬

‫‪ .14‬سهولة تنفيذ البرمجيات بواسطة مختلف األجهزة وأنظمة التشغيل‪.‬‬

‫‪ .15‬سهولة التعامل مع أنظمة اإلتصال المباشر‪.‬‬

‫‪ .16‬الوسائل المتاحة ألنظمة التوزيع وسرعة تنفيذ الصيانة المطلوبة‪.‬‬

‫تدريب (‪)3‬‬

‫كيف تسد إرشادات لمن يرغب في شراء برمجيات جاهزة؟‬

‫أسئلة التقويم الذاتي (‪)4‬‬

‫عدد خمسة عوامل تعتمدها كثير من الشركات في تقييم برمجيات قواعد البيانات‪.‬‬

‫‪63‬‬

‫‪ .6‬الخالصة‬

‫لقد عرفنا في هذه الوحدة‪ ،‬عزيزي الدارس‪ ،‬الملفات البسيطة والتي هي عبارة عن شكل أو‬
‫تركيب يحتوي على مجاميع من المعلومات المنتظمة على شكل حقول حيث لكل حقل اسم‪،‬‬
‫وسعة‪ ،‬ونوع البيانات‪ .‬وتتخذ الحقول في قواعد البيانات أشكال السجالت‪ .‬إن مجموعة السجالت‬
‫تسمى الملفات البسيطة (‪ .)Flat Files‬باإلمكان تصور الملفات البسيطة على أنها مصفوفات‬
‫ذات بعدين‪.‬‬

‫وتتطرق الوحدة إلى التنظيمات الرئيسة لقواعد البيانات ومنها التنظيم الهرمي والتنظيم الشبكي‬
‫والتنظيم العالئقي‪ .‬إن معظم نظم إدارة قواعد البيانات لهذه التنظيمات المختلفة توفر لغة مخاطبة‬
‫(‪ )Query Language‬تساعد الجهة المستفيدة على إصدار األسئلة واستالم األجوبة دون‬
‫الحاجة إلى كتابة برامج معينة‪.‬‬

‫واستعرضت الوحدة كذلك أنواع أنظمة قواعد البيانات بأنواعها الثالث الرئيسة‪ .‬وفي نهاية‬
‫الوحدة تم عرض المزايا والمساوئ لنماذج قواعد البيانات‪.‬‬

‫‪ .7‬لمحة عن الوحدة الدراسية الرابعة‬

‫بعد أن عرفت‪ ،‬عزيزي الدارس‪ ،‬في هذه الوحدة الملفات البسيطة والتنظيمات الرئيسة لقواعد‬
‫البيانات ومنها التنظيم الهرمي والتنظيم الشبكي والتنظيم العالئقي‪ .‬وكذلك عرفت أنواع أنظمة‬
‫قواعد البيانات بأنواعها الثالث الرئيسة والمقارنة بينها‪ ،‬سنلقي الضوء في الوحدة الرابعة على‬
‫أحد المواضيع المهمة في قواعد البيانات أال وهي التصميم المنطقي لقواعد البيانات‪ .‬حيث‬
‫تستعرض الوحدة االعتمادات الوظيفية‪ :‬مفهومها وعالقتها بالمفاتيح‪ ،‬تصنيفها‪ ،‬ومفهوم العالقات‬
‫الذاتية‪ .‬وتتناول الوحدة التصميم التمهيدي بشيء من التفصيل حيث توضح طرق تجميع البيانات‬
‫وتحديد اإلحتياجات وتنسيق البيانات ثم عرض التمثيل البياني للنموذج التمهيدي‪ .‬وستدرس في‬
‫الوحدة التالية أيضا التصميم المنطقي وطرق توثيق التصميم المنطقي‪.‬‬

‫‪64‬‬

‫‪65‬‬

‫‪ .9‬مسرد المسرطلحات‬

‫‪ -‬العالقة (‪ :)Relationship‬عبارة عن عالقات بين كيائين لنموذج بيانات‪.‬‬

‫‪ -‬الملفات البسيطة (‪ :)Flat Files‬عبارة عن مصفوفة ذات بعدين من البيانات أو الخصائص‪،‬‬

‫‪ -‬تموج (‪ :)Model‬النموذج عبارة عن تمثيل لكيانات الحياة العملية والخصائص التي ترتبط‬
‫بتلك الكيانات‪.‬‬

‫‪ -‬النموذج الشبكي (‪ :)Network Model‬عبارة عن نموذج من السجالت‪ ،‬البيانات‪ ،‬وترابط‬


‫بين السجالت‪ .‬وكل نوع من السجالت قد يرتبط بمجموعة من العالقات مع أي نوع آخر من‬
‫السجالت في الشبكة نفسها‪.‬‬

‫‪ -‬النموذج العالئقي (‪ :)Relational Model‬عبارة عن نموذج بيانات منطقي حيث تمثل‬


‫البيانات على شكل مجموعات من العالقات المتناسفة‪.‬‬

‫‪ -‬النموذج الهرمي (‪ :)Hierarchical Model‬عبارة عن نموذج تمثل بواسطته البيانات على‬


‫شكل عالقات واحد إلى متعدد‪.‬‬

‫‪66‬‬

‫الوحدة الرابعة‬

‫التصميم المنطقي لقواعد البيانات‬


‫‪67‬‬

‫‪ .2‬االعتمادات الوظيفية (‪)Dependencies Functional‬‬

‫‪ 1.2‬مفهوم االعتمادات وعالقتها بالمفاتيح‬

‫(‪)Functional Dependencies and Keys‬‬

‫االعتمادات الوظيفية عبارة عن عالقة بين خاصيتين‪ ،‬الخاصية ‪ B‬ترتبط بالخاصية ‪ .A‬فمثال إذا‬
‫استخدمت قيمة ‪ A‬في تحديد قيمة ‪ B‬عند أي لحظة زمنية‪ ،‬يمكن تمثيل ذلك على النحو اآلتي‪:‬‬
‫‪A→B‬‬

‫ونقول أن قيمة ‪ A‬تحدد قيمة ‪ B‬أو أن ‪ B‬تعتمد على ‪ A‬وإليك المثال الذي يحدد عنوان الكتاب (‬
‫‪ )Book Title‬من خالل الرقم الوطني لكتاب (‪ )ISBN‬بعبارة أخرى‬

‫‪ISBN → Book Title‬‬

‫ولذا نقول أن عنوان الكتاب يعتمد على الرقم الوطني والعكس ليس صحيحا‪ .‬والسبب في ذلك قد‬
‫يكون هناك أكثر من كتاب بنفس العنوان مثل‪:‬‬

‫‪Book Title‬‬

‫قواعد البيانات وإدارتها‬

‫قواعد البيانات وادارتها‬

‫قواعد البيانات وإدارتها‬

‫قواعد البيانات وادارتها‬

‫‪ISBN‬‬

‫‪1-199878-13-0‬‬

‫‪3-199068-13-0‬‬

‫‪9-6040-8053-0‬‬

‫‪1-771841-13-0‬‬

‫فعنوان الكتاب هو «قواعد البيانات وإدارتها» وهناك أربعة كتب بنفس العنوان ولكن الرقم‬
‫الوطني لكل منها يختلف عن الثاني‪ .‬تسمى الخاصية الواقعة في الجهة اليسرى بالمحدد (‬
‫‪ ،)Determinant‬فالمحدد في المثال السابق هو الرقم الوطني‪ .‬ولتوضيح مفهوم االعتمادات‬
‫بصورة أدق‪ ،‬إليك الجدول (‪ )1‬والذي يمثل عالقة لها ثالثة اعتمادات‪.‬‬

‫جدول (‪ :)1‬جدول بثالثة أعمدة‬

‫‪Fee‬‬

‫‪30‬‬

‫‪25‬‬

‫‪30‬‬

‫‪35‬‬
‫‪25‬‬

‫‪28‬‬

‫‪.Course No‬‬

‫‪CS210‬‬

‫‪CS271‬‬

‫‪CS210‬‬

‫‪CS472‬‬

‫‪CS271‬‬

‫‪CS481‬‬

‫‪.Student No‬‬

‫‪92055025‬‬

‫‪93052004‬‬

‫‪93055002‬‬

‫‪94042156‬‬

‫‪94052025‬‬

‫‪94053114‬‬

‫***‬

‫‪73‬‬

‫تكتب االعتمادات الثالثة على النحو اآلتي‪:‬‬

‫‪StudentNo → CourseNo, Fee‬‬

‫‪CourseNo Fee‬‬

‫تالحظ‪ ،‬عزيزي الدارس‪ ،‬أن عدد المحددات هما اثنتان بالرغم من وجود ثالثة اعتمادات‬
‫وظيفية‪ .‬المحددات هي رقم الطالب ورقم المقرر‪ .‬فإذا علمت رقم الطالب فباإلمكان معرفة رقم‬
‫المقرر وأجرته‪ ،‬وإذا علمت رقم المقرر فتستطيع معرفة أجرته‪.‬‬
‫إن رقم الطالب يحدد بصورة وحيدة المقرر وأجرة ذلك المقرر ولذلك تسمى تلك الخاصية (رقم‬
‫الطالب أو العمود األول بالمفتاح الرئيس ‪ ))Primary Key‬أو بصورة عامة المفتاح‪ .‬فإذا‬
‫أعطيت الرقم ‪ 93055002‬فهذا يحدد الصف الثالث في الجدول (‪ .)1‬إن رقم المقرر واألجور‬
‫يعتمدان على رقم الطالب‪ .‬بعبارة أخرى‪ ،‬رقم المقرر واألجور يعتمدان وظيفيا على رقم‬
‫الطالب‪.‬‬

‫‪74‬‬

‫لقد عرفت‪ ،‬عزيزي الدراس‪ ،‬أن االعتمادات الوظيفية لعنصر مثل ‪ A‬تحدد قيمة واحدة فقط من‬
‫قيم ‪B‬‬

‫‪B→A‬‬

‫لكن في بعض األحيان قيمة واحدة من قيم العنصر ‪ A‬تحدد مجموعة من قيم‬

‫العنصر ‪ .B‬ويكتب هذا النوع من االرتباطات على النحو اآلتي‪:‬‬

‫‪.B → → A‬‬

‫فإذا أعطيت االعتماد الوظيفي للعالقة في تدريب (‪ )1‬على النحو اآلتي‪:‬‬

‫‪Course-id. → → Starting-date‬‬

‫وأعطيت رقم الدورة التدريبية (‪ ،)Course-id‬على سبيل المثال‪ ،‬يساوي ‪C500‬‬

‫فإنك ستالحظ وجود تاريخان هما‪ ،1996-10-18 :‬و‪ 1997-03-03‬النعقاد تلك الدورة كما‬
‫يأتي‪:‬‬

‫إن هذا النوع من االعتمادات يسمى االعتماد متعدد القيم ‪))Multivalued. Dependency‬‬

‫‪ 2.2‬تصنيف االعتمادات‬

‫االعتمادات عبارة عن عالقات تربط خصائص جدول أو عدة جداول‪ .‬وهناك عدة أنواع من‬
‫االعتمادات نجمل أهمها فيما يأتي‪:‬‬

‫االعتمادات الوظيفية (‪.)Functional Dependency‬‬ ‫‪.1‬‬


‫االعتمادات الوظيفية الكاملة (‪.)Full Functional Dependency‬‬ ‫‪.2‬‬
‫االعتمادات اإلنتقالية (‪.)Transitive Dependency‬‬ ‫‪.3‬‬
‫االعتمادات األخرى‬ ‫‪.4‬‬

‫لقد تم توضيح االعتمادات الوظيفية في البند السابق‪ .‬أما االعتمادات الوظيفية الكاملة فهي التي‬
‫تخص المحددات المركبة فإذا استخدمت جميع خصائص المحدد لمعرفة هوية الكيان فهذا يمثل‬
‫اعتماد وظيفي كامل‪.‬‬
‫‪75‬‬

‫أما االعتمادات االنتقالية فتحدث عند وجود اعتمادات وسيطة‪ .‬فإذا كان لديك ثالث خصائص أو‬
‫مجاميع من الخصائص ‪ A,B,C‬ومرتبطة على النحو اآلتي‪:‬‬

‫‪B→ A‬‬

‫‪C→ B‬‬

‫فسيكون االعتماد االنتقالي بالصورة‬

‫‪C→ B→ A‬‬

‫وأما االعتمادات المتعددة القيم فهي التي تتعلق بالجداول من نوع متعدد إلى متعدد مثل مدرس‬
‫في مدرسة ويسمح له في التدريس في عدة مدارس أخرى‪ ،‬فهنا االعتماد متعدد‪.‬‬

‫وتنقسم االعتمادات عزيزي الدارس‪ ،‬إلى قسمين هما‪:‬‬

‫‪ -‬االعتمادات الدائمة‪ :‬وهي االعتمادات التي ال تتغير فيها العالقات مع تغير الزمن‪ .‬فاالعتماد‬
‫اآلتي هو من النوع الدائم ‪ Title → Book→ ISBN‬ألن الرقم الوطني للكتاب ال يتغير خالل‬
‫مدة زمنية معينة بل يستمر مع طول عمر الكتاب‪ .‬االعتمادات المؤقتة‪ :‬وهي االعتمادات التي‬
‫تتغير فيها العالقات مع تغير الزمن‪ .‬فاالعتماد الوظيفي الذي يربط رقم الطالب بالمقرر‬
‫‪ CourseNo→ StudentNo‬اعتماد مؤقت ألن الطالب يسجل في كل فصل مقررات مختلفة‬
‫األرقام‪.‬‬

‫‪ 3.2‬مفهوم العالقات الكيانية (‪)Entity Relationship‬‬

‫تعد طريقة االعتمادات الوظيفية إحدى الطرق المتميزة في تصميم قواعد البيانات والتي تؤدي‬
‫إلى تجزئة العالقات الكبيرة إلى عالقات صغيرة يسهل التعامل معها‪ .‬وتكمن مساوئ طريقة‬
‫االعتمادات الوظيفية في صعوبة تعاملها مع العالقات التي يتجاوز عدد أعمدتها (خصائصها)‬
‫العشرون‪ .‬ومن الطرق المتوفرة والتي تعالج مشكلة الحجوم الكبيرة للعالقات هي طريقة‬
‫العالقات الكيانية‪.‬‬

‫ولتوضيح مفهوم العالقات الكيانية أفرض أنك تود تصميم قاعدة بيانات تتضمن معلومات عن‬
‫أعضاء هيئة تدريس في إحدى الكليات العلمية والمقررات التي يدرسونها‪ .‬إن الكيانين الرئيسين‬
‫هما المدرس والمقرر‪ .‬وهذان الكيانان‬

‫‪76‬‬

‫يرتبطان مع بعضهما البعض بعالقة التدريس‪ .‬ويمكن عرض هذه العالقة في عدة أشكال‬
‫موضحة كما في الشكل (‪.)1‬‬

‫الشكل (‪ :)1‬العالقات الكيانية‬


‫يبين الشكل (‪ )1‬مفهوم العالقات الكيانية حيث يشير المربع إلى الكيانات ويشير الشكل المعيني‬
‫إلى العالقة التي تربط بين الكيانات (أي بين المدرس والمقرر)‪ .‬ومن الخصائص المهمة‬
‫للعالقات الكيانية درجة العالقة (‪ .)Degree of a Relationship‬إن هذا النوع من العالقات‬
‫هو من نوع واحد إلى واحد (‪ )1:1‬ولكن هذا التمثيل قد يعطي مفاهیم مختلفة للعالقات كما في‬
‫الشكل (‪.)2‬‬

‫‪77‬‬

‫الشكل (‪ :)2‬أشكال مختلفة للعالقة واحد إلى واحد‬

‫بين الشكل (‪ )2‬ترع (أ) أن كل مدرس (عضو هيئة تدريس) يدرس على األكثر متر را واحدا‬
‫وال يدرس أي مقرر من أكثر من مدرسه ويبين الشكل (‪ )2‬فرع (ب) أن كل مدرس يدرس‬
‫مقرر واحد فقط وال يدرس أي مقرر من أكثر من مدرس‪ .‬وأما الشكل (‪( )2‬ج) فيبين أن كل‬
‫مدرس يدرس على األكثر مقررا واحدا وأن كل مقرر يدرس من مدرس واحد فقط‪ .‬ويبين‬
‫الشكل (‪ )2‬فرع (د) أن كل مدرس يدرس مقرر واحد فقط وأن كل مقرر يدرس من مدرس‬
‫واحد فقط ويمكن تمثيل المعلومات الواردة في الشكل (‪ )2‬بصورة أكثر دقة كما هو موضح في‬
‫الشكل (‪)3‬‬

‫‪78‬‬

‫الشكل (‪ :)3‬أشكال مختلة للعالقات الكيانية‬

‫وهناك كذلك‪ ،‬عالقات أخرى من نوع متعدد إلى واحد‪ ،‬واحد إلى متعدد‬

‫او متعدد إلى متعدد‪.‬‬

‫تدريب (‪)2‬‬

‫ارسم العالقات ومخططات العالقات الكيائية لكل حالة من الحاالت االتية‬

‫ا‪ -‬كل مدرس قد يدرس عدة مقررات وكل مقرر ال يدرس بمن من مدرس‬

‫ب‪ -‬كل مدرس يدرس على األكثر مقرر واحد وكل مقرر قد يدرس قبل أكثر من المدرس‪.‬‬

‫ج‪ -‬كل مدرس قد يدرس عدة مقررات وكل مقرر قد يدرس من قبل أكثر من‬

‫مدرس‪.‬‬

‫وفيما يلي مجموعة من العالقات والعالقات الكيانية‪ ،‬فالجدول (‪ )2‬قائمة حساب مريض في أحد‬
‫المستشفيات الخاصة‬

‫‪79‬‬

‫جدول (‪ )2‬قائمة حساب مريض‬


‫تدريب (‪)3‬‬

‫وضح كيف يختلف تصميم البرمجيات عن تصميم قواعد البيانات‪.‬‬

‫وفي الشكل (‪ )4‬نرسم مخطط العالقات الكيانية للمعلومات الواردة في الجدول (‪)2‬‬

‫الشكل (‪ :)4‬مخطط العالقات الكيانية القائمة حساب‬

‫‪80‬‬

‫تالحظ‪ ،‬عزيزي الدارس‪ ،‬من الشكل أعاله أن قائمة الحساب تتضمن كيانين هما المريض‬
‫والمادة وأن المفتاح الرئيس للمريض هو رقمه وللمادة هو رقمها إن العالقة التي تربط بين‬
‫المريض والمادة هي من نوع متعدد إلى متعدد (‪ :)M:M‬واسم العالقة هي «يحاسب على»‪.‬‬

‫نشاط (‪)11‬‬

‫لماذا العالقة بين والمادة من نوع متعدد إلى متعدد؟‬

‫تدريب (‪)4‬‬

‫إلى من تعود الخاصية «التكلفة»؟ ولماذا؟‬

‫يبين الجدول (‪ )3‬التقرير اليومي لسكن المرضى في أحد المستشفيات حيث يوضح حالة كل‬
‫غرفة وموقعها‪ .‬ويشير العمود األول «الموقع «إلى رقم الغرفة ورقم السرير‬

‫الجدول (‪ :)3‬التقرير اليومي للسكن‬

‫يبين الشكل (‪ )5‬مخطط العالقات الكيانية للتقرير اليومي للسكن‪ .‬تالحظ من الشكل وجود كيانان‬
‫هما السكن (الغرف) والمريض‪ .‬العالقة التي تربط بينهما من نوع واحد إلى واحد وأنها‬
‫مشروطة باالتجاهين‪ .‬حيث ال يشترط تعيين غرفة ما إلى مريض وال يشترط أن يسند كل‬
‫مريض إلى غرفة‪ .‬المفتاح الرئيس للغرفة هو الموقع والمفتاح الرئيس للمريض هو رقم‬
‫المريض‪.‬‬

‫‪81‬‬

‫الشكل (‪ :)5‬مخطط العالقات الكيانية السكن المرضى في مستشفى يعد المستشفى تقرير يوميا‬
‫عن الطبيب وعدد المرضى الذين يعالجهم واألدوية التي تصرف لهم واإلجراءات المتبعة في‬
‫العالج (‪ .)Treatment‬والجدول (‪ )4‬يبين التقرير اليومي للطبيب‪.‬‬

‫جدول (‪ :)4‬التقرير اليومي للطبيب‬

‫‪82‬‬

‫أما مخطط العالقات الكيانية فيبينه الشكل (‪)6‬‬


‫الشكل (‪ :)6‬مخطط العالقات الكيانية للطبيب‬

‫تالحظ من الشكل (‪ )6‬وجود كيانات هما الطبيب والمريض والعالقة «يعالج»‬

‫من نوع متعدد إلى متعدد وغير مشروطة في االتجاهين‪.‬‬

‫نشاط (‪)2‬‬

‫تعود الخاصية «نوع العالج» إلى العالقة يعالج‪ .‬فلماذا ال تعود إلى‬

‫الطبيب أو المريض أو كليهما؟‬

‫يتطلب األمر‪ ،‬في كثير من األحيان‪ ،‬عرض المعلومات عن المرضى باستخدام الحاسوب (قاعدة‬
‫البيانات)‪ ،‬وهذه المعلومات قد يستخدمها الطبيب‪ ،‬الممرض‪ ،‬أو اإلدارة‪ .‬ولنفرض أن المعلومات‬
‫(التقرير اإلداري)‪ ،‬تعرض كما في الشكل (‪)7‬‬

‫‪83‬‬

‫رقم المريض ‪4563:‬‬

‫اسم المريض ‪ :‬حس جادهللا حسی‬

‫عنوان المريض جامعة الدول العربية‬

‫الرمز البريدي ‪8765432:‬‬

‫| تاريخ دخول المستشفي ‪23:‬رجب ‪1417‬‬

‫تاريخ الخروج من المستشفي ‪XXXXXXX:‬‬

‫الموقع ‪2-342:‬‬

‫الهاتف (فرعی) ‪2341:‬‬

‫جهة التأمين الصحي فرع جامعة الدول العربية‬

‫شكل (‪ :)7‬التقرير اإلداري عن المريض‬

‫تدريب (‪)5‬‬

‫ارسم مخطط العالقات الكيانية للتقرير اإلداري الكيانات والخصائص التي تمثلها‪.‬‬

‫‪ .3‬تصميم النموذج التمهيدي (‪)Model Conceptual‬‬

‫التصميم التمهيدي هو المرحلة الثانية بعد مرحلة دراسة االحتياجات والمتطلبات‪ .‬فالتصميم‬
‫التمهيدي تنظيم تفصيلي لعناصر قاعدة البيانات وارتباطاتها وال يولي أي أهمية إلى التفاصيل‬
‫المطلوبة في المراحل الالحقة مثل مرحلة التصميم المادي أو التنفيذ‪.‬‬
‫تتكون برمجيات قواعد البيانات من مجموعة من الطبقات تؤدي كل منها وظيفة معينة‪.‬‬
‫فالمستخدم يستدعي المعلومات المطلوبة وتظهر بشكل مقروء وواضح‪ .‬ومن أجل إظهار‬
‫المعلومات بهذا الشكل فال بد من برامج أخرى للقيام بهذه المهمة‪ .‬وتسمى هذه البرامج بالبرامج‬
‫التطبيقية وتعتبر هذه حلقة وصل بين المستخدم وبرنامج آخر بطلق عليه إدارة قواعد البيانات (‬
‫‪ .)Database Management System‬وإدارة قواعد البيانات هي المسؤولة عن تحديد‬
‫النمط والحماية‪ ،‬بينما البرامج التطبيقية هي المسؤولة‬

‫عن استقبال األسئلة وإصدار اإلجابات بالشكل المطلوب‬

‫‪ 1.3‬تجميع البيانات وتحديد المتطلبات‬

‫تعد البيانات المادة الخام التي تبني منها األنظمة اإللكترونية في العصر الحالي‪ ،‬والذي يعد‬
‫عصر المعلومات‪ .‬والمعلومات هي منتجات نهائية مادتها‬

‫‪84‬‬

‫األولية البيانات‪ .‬ويعتمد اتخاذ القرار على المعلومات المستقاة من البيانات‪ .‬تبدأ عملية بناء نظام‬
‫المعلومات بدراسة المشكلة وتحديد معطياتها‪ ،‬وأبعادها‪ ،‬ونتائجها وكلما استوعبت معطيات‬
‫المشكلة والمواصفات واالحتياجات المطلوبة كان تصميم نظام المعلومات أفضل وأشمل ونسبة‬
‫األخطاء أقل وكلما‬

‫كان العكس از دادت نسبة األخطاء واصبح تصميم النظام سيئ وأداءه رديء ومن أجل تصميم‬
‫نظام برمجي يستوفي المتطلبات الضرورية اعتمدت طريقة دورة حياة النظام إلى‪:‬‬

‫بتحديد االحتياجات والمتطلبات‪.‬‬ ‫‪‬‬


‫تصميم النظام والبرمجيات‪.‬‬ ‫‪‬‬
‫تحويل التصميم إلى برامج واختبار أجزاء البرنامج كل على حده ‪.‬‬ ‫‪‬‬
‫تجميع البرامج واختبار النظام‪.‬‬ ‫‪‬‬
‫تشغيل النظام وصيانته‪.‬‬ ‫‪‬‬

‫وهذه المراحل مرتبطة مع بعضها البعض حيث ال يمكن االنتقال إلى مرحلة الحقة ما لم يتم‬
‫تنفيذ المرحلة السابقة وعند ظهور األخطاء أو سوء التصميم في المراحل الالحقة يجب تفحص‬
‫المراحل السابقة‪ .‬ويبين الشكل (‪ )8‬تنظيم هذه العالقة‪.‬‬

‫الشكل (‪ :)8‬دورة تصميم وتطوير أنظمة المعلومات‬

‫‪85‬‬

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

‫إن مراحل الحياة السابقة أساسية لكل نظام من أنظمة المعلومات إال أن تصميم قواعد البيانات‬
‫يتطلب تنظيم البيانات أيضا وليس تصميم برامج فقط‪ ،‬ويقتضي أمر تصميم قواعد البيانات أن‬
‫يكون النظام المصمم مرنا لالستفادة من قواعد البيانات إلى أبعد الحدود‪ .‬ويجب أن يتميز النظام‬
‫بما يأتي‪:‬‬

‫سهولة التعامل مع قواعد البيانات‪.‬‬ ‫‪‬‬


‫سهولة تحديث السجالت والتعامل معها‬ ‫‪‬‬
‫األداء العالي والسرعة في استرجاع المعلومات‪.‬‬ ‫‪‬‬

‫طريقة تصميم قاعدة بيانات‬

‫إن تصميم قواعد بيانات متكاملة قد يستغرق أشهرا أو قد يصل إلى عدة سنوات‪ ،‬وهناك خطوات‬
‫إضافية يجب اتباعها عند تصميم قاعدة بيانات منها‪:‬‬

‫تحديد البيانات المراد تمثيلها بوساطة قاعدة البيانات‪.‬‬ ‫‪‬‬


‫تحديد العالقات بين البيانات‬ ‫‪‬‬
‫تحويل التصميم المنطقي للبيانات إلى شكل تركيبة البيانات‪.‬‬ ‫‪‬‬
‫تصميم المخطط أو النمط (‪ )Schema‬والتركيبة العامة لقواعد البيانات‪.‬‬ ‫‪‬‬

‫وفيما يلي‪ ،‬عزيزي الدارس‪ ،‬شرح عن تحديد البيانات المراد تمثيلها بوساطة قاعدة البيانات‪ .‬إن‬
‫الخطوة األولى في تصميم قواعد البيانات في معرفة أنشطة المؤسسة المطلوب بناء قواعد‬
‫بيانات لها‪ ،‬معرفة أهداف المؤسسة‪ ،‬البيانات المتوفرة ونوعيتها‪ ،‬التعرف على مستخدمي‬
‫النظام‪ ،‬دراسة القيود الموضوعة على أنشطة المؤسسة‪ ،‬والتعرف على أي معلومات إضافية‬
‫أخرى‪ ،‬وال يشترط في بناء نظام قواعد بيانات أن تبتدئ من نقطة الصفر وإنما قد يكون النظام‬
‫أصال موجودا ولكن يعتمد على البرامج التقليدية ونظام الملفات‪ .‬وسنتعرف هنا على مصدرين‬
‫من مصادر تحديد البيانات‪.‬‬

‫‪86‬‬

‫تتوفر عدة مصادر للحصول على البيانات‪ ،‬فإذا كان نظام قاعدة البيانات هو عبارة عن تحويل‬
‫وتطوير النظام الملفات فإن مصادر البيانات تتضمن‪:‬‬

‫مستخدمي النظام التقليدي حيث بإمكانهم تزويد مصممي النظام بكميات هائلة من‬ ‫‪‬‬
‫البيانات والتساؤالت ونقاط القوة والضعف‪.‬‬
‫العينات الناتجة من تنفيذ النظام التقليدي توفر للمصمم معلومات قيمة للتصميم‬ ‫‪‬‬
‫قد يزود المتخصصون في النظام التقليدي مصمم قاعد البيانات بما هو مطلوب تمثيله‬ ‫‪‬‬

‫من البيانات‪.‬‬
‫أما إذا كان التصميم من نقطة الصفر فإن توفر البيانات قد يكون محدودا ويجب تجميع‬ ‫‪‬‬
‫البيانات من خالل التنبؤ والتخطيط لما سيوفره النظام لمستخدميه‪ ،‬وكذلك يمكن‬
‫الحصول على المعلومات من متخصصي قواعد البيانات‪ ،‬ومن خالل مقابلة المنتسبين‬
‫المتوقع استخدامهم للنظام وتدوين متطلباتهم واستفساراتهم وأخذها بعين االعتبار‪ .‬ومن‬
‫المصادر األخرى في توفير البيانات للقاعدة المراد بناؤها‪ ،‬المجالت والكتب ودراسة‬
‫خطوات بناء قواعد بيانات مشابه‪.‬‬

‫أسئلة التقويم الذاتي (‪)1‬‬

‫ما الفرق الرئيس بين تصميم أنظمة برمجيات وتصميم قواعد بيانات؟‬

‫‪ 2.3‬تطبيع البيانات‬

‫التطبيع (‪ )Normalization‬عبارة عن عملية تجميع الخصائص بشكل عالقات مرتبة وتنفذ‬


‫عملية تطبيع البيانات في عدة مراحل كما يبين ذلك الشكل (‪.)9‬‬

‫‪87‬‬

‫الشكل (‪ : )9‬خطوات تطبيع البيانات‬

‫إن كل مرحلة تمثل شكل من أشكال التطبيع وأشكال التطبيع ‪ ))Normal Forms‬عبارة عن‬
‫شكل من أشكال العالقة تقابل نوع من االعتمادات التي تحكم العالقة‪ ،‬وفيما يلي وصف ألشكال‬
‫التطبيع المختلفة‪:‬‬

‫(‪ )1‬نموذج التطبيع األول (‪ )First Normal Form( )INF‬عبارة عن نموذج تتحدد فيه قيمة‬
‫واحدة للعالقة التي يتقاطع نيها صفة مع عموده أي يجب إزالة الجداول المركبة (جدول داخل‬
‫جدول)‪.‬‬

‫(‪ )2‬نموذج التطبيع الثاني (‪ )Second Normal form( )2NF‬عبارة عن عالقة لنموذج‬
‫التطبيع األول ويرتبط فيها كل مفتاح غير رئيس (‪ )Nonkey Attribute‬وظيفيا مع المفتاح‬
‫الرئيس (‪ )Primary Key‬أي ان كل قيمة تعتمد على المفتاح رئيس اخر‪.‬‬

‫‪88‬‬

‫(‪ )3‬مزدي السبع الثالث (‪ Third Normal Form(( )NF3‬عبارة عن عالقة لنموذج التطبيع‬
‫الثاني والتي ال يرتبط فيها أي مفتاح غير رئيس (‪ )Nonkey attribute‬وظيفيا مع أي مفتاح‬
‫غير رئيس أخر‪.‬‬

‫مثال (‪)1‬‬

‫يبين الجدول (‪ )5‬عالقة غير مطبعة (‪ ،)Unnormalized Relation‬ضع هذه العالقة في‬
‫التطبيع األول والثاني والثالث مبينا المفتاح الرئيسة جدول (‪Grade_Report :)5‬‬
‫التغيير اسم المقرر ‪ Math 1‬مثال يتطلب األمر بحث جميع التكرارات‪ ،‬والجدول أعاله ليس في‬
‫التطبيع األول ألنه جدول غير ثنائي البعد‪ .‬وعمليات التطبيع تكون كما يلي‪:‬‬

‫جدول (‪Student :)6‬‬

‫‪89‬‬

‫ومن المالحظ أن الراشد‪ ،‬ول (‪ )6‬في التطبيع الثالث (‪ )3NF‬ألنه ال مرتبط فيه أي مفتاح غير‬
‫رئيس وطيفيا مع أي مفتاح غير رئيس آخر‪ .‬الجدول أعاله في التطبيع األول ألنه جدول ثنائي‬
‫البعد‪ .‬الحظ أن ‪ Grade‬تعتمد على مفتاح مركب مكون من ‪Course Number .Number +‬‬
‫‪Student‬‬

‫حيث ال يمكن إضافة أي مقرر جديد إال إذا سجل له طالب واحد على األقل ألن رقم الطالب‬
‫جزء من المفتاح المركب‪ ،‬لذلك يجب إزالة أي محددة غير أولية ليست اعتمادا كامال على‬
‫المفتاح الرئيس وعندها تحصل على جدول‬

‫(‪ )8‬في التطبيع الثاني (‪.)2NF‬‬

‫جدول )‪Course - Instructor :(8‬‬

‫‪90‬‬

‫أما الجدول (‪ :)9‬التسجيل (‪ )Registration‬فإنه في التطبيع‬

‫الثالث (‪.)3NF‬‬

‫جدول (‪Registration: )9‬‬

‫وبدراسة الجدول (‪ )8‬نجد أن العالقة بين ‪ Course Number‬و‪Instructor Departmen‬‬


‫عالقة متعدية‪ ،‬حيث أن العالقة األساسية هي بين ‪Instructor Department , Instructor‬‬
‫‪ Name‬فنبعد إزالة اعتماد تعدية للمحددات غير األولية عن المفتاح الرئيس تحصل على‬
‫التطبيع الثالث (‪ )3NF‬كما في الجدولين (‪ )11( ،)10‬أدناه‪.‬‬

‫جدول (‪)10‬‬

‫ومن الجدير بالمالحظة أن ‪ Instructor Name‬هو المفتاح األجنبي هنا حيث انه مفتاح غير‬
‫رئيس في عالقة ما ويصبح مفتاحا رئيسا في عالقة أخرى‪،‬‬

‫‪91‬‬

‫جدول (‪Instructor :)11‬‬


‫مثال (‪)2‬‬

‫أوجد التطبيع األول والثاني والثالث للجدول (‪.)12‬‬

‫الجدول (‪ :)12‬عالقة تمثل قائمة طلبيات‬

‫والتي تمثل قائمة بالطلبيات لمؤسسة تقوم باستيراد قطع سيارات؛ حيث تقوم هذه المؤسسة بطلب‬
‫عدد من قطع السيارات ضمن طلبية واحدة من مورد واحد وبكمية معينة لكل قطعة‪.‬‬

‫الحل‪:‬‬

‫بالنظر إلى الجدول (‪ )12‬نجد أن كل سطر من الجدول يمثل طلبية وبذلك فإنه عند تقاطع هذا‬
‫السطر مع العمود المعنون رقم القطعة نجد وجود أكثر من قطعة (‪ .)B101,C102‬وتهدف‬
‫عملية التطبيع إلى تبسيط هذه العالقة بحيث يمكن الحصول على عالقة أخرى لها مفتاح رئيس‬
‫يؤدي استخدامه إلى جعل التقاطع المذكور يحتوي قطعة واحدة‪ .‬وباختيار المفتاح الرئيس مكونا‬

‫‪92‬‬

‫من رقم الطلبية ‪ +‬رقم القطعة فإننا نحقق هذا الهدف‪ .‬وبذلك فإننا نحصل على التطبيع األول (‬
‫‪ )First Normal Form‬وباستخدام هذا المبدأ تحصل على الجدول (‪ )13‬والمكافئ للجدول‬
‫األصلي ولكنه في التطبيع األول‪.‬‬

‫الجدول (‪ :)13‬التطبيع األول‬

‫وبحصولنا على هذا الجدول نجد أن بعض الخصائص تعرف بجزء من المفتاح الرئيس‪ .‬وهنا‬
‫نضع هدفا آخر هو أن تكون الخصائص معتمدة على المفتاح الرئيس كله وليس على جزء منه‪.‬‬
‫وهذا يؤدي إلى تقسيم هذا الجدول إلى الجداول التالية ونكون بذلك قد حصلنا على التطبيع الثاني‬
‫(الجداول ‪.)16 ، 15 ، 14‬‬

‫الجدول (‪)14‬‬

‫رقم القطعة‬

‫‪B101‬‬

‫‪C102‬‬

‫الكمية الموجودة‬

‫‪.....‬‬

‫‪.....‬‬

‫الجدول (‪)15‬‬
‫رقم الطلبية ‪ +‬رقم القطعة‬

‫‪B101+1000‬‬

‫‪C102+1000‬‬

‫الكمية المطلوبة‬

‫‪.....‬‬

‫‪.....‬‬

‫‪93‬‬

‫الجدول (‪)16‬‬

‫رقم الطلبية‬

‫‪1000‬‬

‫تاريخ االستالم‬

‫‪1/05/2005‬‬

‫رقم المورد‬

‫‪200003‬‬

‫اسم المورد‬

‫شركة مرسيدس‬

‫وبدراسة الجدول (‪ )16‬نجد أن العالقة بين رقم الطلبية واسم المورد عالقة متعدية‪ ،‬حيث أن‬
‫العالقة األساسية هي بين رقم المورد واسم المورد‪ .‬وهنا نضع هدفا جديدا هو إزالة هذه العالقة‬
‫المتعدية وبذلك تحصل على جدولين من الجدول (‪ )16‬كما هو مبين في الجداول (‪)18 ،17‬‬
‫وهي عالقات في التطبيع الثالث‪.‬‬

‫الجدول (‪)17‬‬

‫رقم المورد‬

‫‪200003‬‬

‫اسم المورد‬

‫شركة مرسيدس‬
‫الجدول (‪)18‬‬

‫رقم الطلبية‬

‫‪1000‬‬

‫تاريخ االستالم‬

‫‪1/05/2005‬‬

‫رقم المورد‬

‫‪200003‬‬

‫ويمكن تمثيل الجداول (‪ )18 ،17 ،15 ،14‬بالعالقات التالية‪:‬‬

‫عالقة القطعية (رقم القطعية‪ ،‬الكمية الموجودة)‬

‫عالقة الطلبية (يتم الطلبية‪ ،‬تاريخ االستالم‪ ،‬رقم المورد)‬

‫عالقة محتويات الطلبية (يتم الطلبية ‪ +‬رقم القطعة‪ ،‬الكمية المطلوبة)‬

‫عالقة المورد (رقم المورد‪ ،‬اسم المورد)‬

‫وهذه العالقات جميعها في التطبيع الثالث‪.‬‬

‫(‪ )4‬نموذج تطبيع بوبس ‪ -‬كود (‪)Boyce -Codd Normal Form‬‬

‫(‪ :)BCNF‬عبارة عن نموذج لوصف التطبيع العالئقي الذي يرشح كل‬

‫محدد فيه ألن يكون مفتاحا رئيسا‪.‬‬

‫‪94‬‬

‫مثال (‪ :)3‬على تطبيع بويس كود (‪)Boyce- Codd Normal Form‬‬

‫جدول (‪ )19‬في التطبيع الثالث (‪ )3NF‬ويمكن تحويله إلى (‪ )BCNF‬بعد إزالة المشكالت‬
‫المتبقية الناجمة عن االعتمادات الوظيفية‪.‬‬

‫جدول (‪)19‬‬

‫‪# Student‬‬

‫‪150‬‬

‫‪250‬‬

‫‪400‬‬
500

700

Maior

Physics

Math

Biology

Physics

Physics

Advisor

Sami

Maher

Reem

Salim

Sami

.)BCNF( ‫) في‬21( ‫) وجدول‬20( ‫الحظ أن العالقات في جدول‬

)20( ‫جدول‬

Students

150

250

400

500

700

Advisor

Sami
‫‪Maher‬‬

‫‪Reem‬‬

‫‪Salim‬‬

‫‪Sami‬‬

‫جدول (‪)21‬‬

‫‪Advisor‬‬

‫‪Sami‬‬

‫‪Maher‬‬

‫‪Reem‬‬

‫‪Salim‬‬

‫‪Major‬‬

‫‪Physics‬‬

‫‪Math‬‬

‫‪Biology‬‬

‫‪Physics‬‬

‫‪95‬‬

‫(‪ )5‬نموذج التطبيع الرابع(‪ Fourth Normal Form( ( )4NF‬عبارة‬

‫عن عالقة لنموذج تطبيع بويس ‪ -‬كود والتي ال تحتوي على ارتباطات متعددة القيم‬

‫مثال (‪ :)4‬على التطبيع الرابع (‪ )4NF‬عزيزي الدارس انتبه إلى المالحظات التالية أثناء‬
‫اطالعك على الجدول (‪.)22‬‬

‫جدول (‪)22‬‬

‫‪ .1‬لكل ‪ Computer‬يوجد عدة حزم (‪ )Packages‬وعدة محالت تجارية (‪)Outlets‬‬

‫‪ Packages 2‬و ‪ Outlets‬تعتمدان على أل ‪ Computer‬ولكنهما مستقالن عن بعضهما‬


‫البعض‪.‬‬
‫فالعالقة أعاله تحتوي اعتماد متعدد القيم (‪ .)Multivalued Dependency‬يوجد مفتاح‬
‫مركب ‪ ،Computer+ package‬كما ويوجد مفتاح مركب ‪Computer + Outlet‬‬

‫ولكي نحصل على (‪ )4NF‬نتخلص من ‪Multivalued Dependency‬‬

‫وعندها تحصل على جدولين في التطبيع الرابع هما‪ :‬جدول (‪ )23‬وجدول (‪.)24‬‬

‫جدول (‪)23‬‬

‫‪96‬‬

‫جدول (‪)24‬‬

‫(‪ )6‬نموذج التطبيع الخامس (‪ Fifth Normal Form(( )5NF‬عبارة عن عالقة ال تحتوي‬
‫على اعتمادات (‪)Join Dependencies‬‬

‫مثال (‪ :)5‬على التطبيع الخامس (‪)5NF‬‬

‫عزيزي الدارس‪ ،‬انتبه إلى المالحظتين التاليتين عند اطالعك على الجدول (‪ )25‬وهو في‬
‫التطبيع الرابع (‪ )4NF‬ويوجد به عدة مشاكل‪.‬‬

‫جدول (‪Persons :)25‬‬

‫بعض الحقائق مخزنة مرتان («‪ ” Ahmad‬و "‪ "Rami‬وتمتلك المهارة‬ ‫‪.1‬‬

‫("‪ Skill‬من نوع ‪Computing‬‬

‫يوجد حقول فارغة («‪ »Samir‬يمتلك مهارة "‪ "Math‬ولكن حاليا ال يوجد لها أي‬ ‫‪.2‬‬
‫مشروع)‪.‬‬

‫‪97‬‬

‫ولحل المشاكل أعاله فإننا يجب أن نقسم الجدول (‪ Persons )25‬إلى ثالثة جداول وعندها‬
‫تحصل على التطبيع الخامس (‪.)5NF‬‬

‫جدول (‪Knowledge :)26‬‬

‫‪Person-id‬‬

‫‪Rami‬‬

‫‪Rami‬‬

‫‪Samir‬‬
Samir

Ahmad

******

Skill

Computing

Math

Math

Economics

Computing

Assignments :)27( ‫جدول‬

Person-id

Rami

Rami

Samir

Ahmad

Ahmad

*****

Project-id

Proj1

Proj3

Proj1

Proj1

Proj2

Needs :)28( ‫جدول‬


‫‪Project-id‬‬

‫‪Proj1‬‬

‫‪Proj1‬‬

‫‪Proj2‬‬

‫‪Proj3‬‬

‫‪Proj3‬‬

‫*****‬

‫‪Skill‬‬

‫‪Computing‬‬

‫‪Economics‬‬

‫‪Computing‬‬

‫‪Computing‬‬

‫‪Math‬‬

‫‪98‬‬

‫‪3.3‬التمثيل البياني للنموذج التمهيدي‬

‫يهدف النموذج التمهيدي إلى تطوير تركيبة للمعلومات وعلى تلبية احتياجات المؤسسة المطلوب‬
‫بناء نظام قاعدة بيانات لها‪ .‬إن النموذج التمهيدي ال يعتمد بصورة كاملة على المكونات المادية‬
‫وال على المكونات البرمجية‪ .‬وخالل عمليات التصميم فإنك تحتاج إلى نوعين من المعلومات‪:‬‬

‫‪ .1‬المعلومات التي تصف تركيبة البيانات (‪ )Data Structure‬مثل الكيانات‪ ،‬الخصائص‪،‬‬


‫والعالقات ‪ .)Relationships‬هذا النوع من المعلومات غالبا يعرض على شكل تمثيل بياني‬
‫للعالقات الكيانية‪.‬‬

‫‪ .2‬المعلومات التي تصف القواعد والقوانين القيود التي تحافظ على‬

‫تكامل البيانات (‪ .)Data Integrity‬وتسمى هذه القواعد بالقواعد التجارية‪.‬‬

‫ولفهم المعلومات المطلوب دراستها وتنظيمها نعرض لك‪ ،‬عزيزي الدارس‪ ،‬مكونات النموذج‬
‫التمهيدي بيانيا كما في الشكل (‪.)10‬‬

‫الشكل (‪ :)10‬عرض النموذج التمهيدي بيانيا‬


‫‪99‬‬

‫إن المكونات األربع األولى للنموذج التمهيدي (الكيان‪ ،‬العالقات‪ ،‬الخصائص‪ ،‬والفئات الجزئية)‬
‫تتعلق بصورة رئيسة بتركيب البيانات‪ .‬بينما تتعلق القيود بقيمة البيانات‪ .‬ويوجد ثالثة أنواع‬
‫رئيسة من القيود هي‪:‬‬

‫قيود المجال (‪ :)Domain Contraints‬تصف هذه القيود نوع البيانات‪ ،‬طولها‪،‬‬ ‫‪‬‬
‫وترتيبها أو نمط البيانات (‪ ،)Format‬والقيم المسموح فيها لكل عنصر من عناصر‬
‫البيانات‪.‬‬
‫قیود دقة البيانات (‪ :)Referential Integrity Constraints‬تدقق هذه القيود على‬ ‫‪‬‬
‫صحة البيانات بين صفوف من جدول مع صفوف من جدول آخر أو من عدة جداول‪.‬‬
‫قيود تجارية أخرى (‪ :)Other Business Constraints‬تدقق هذه القيود على صحة‬ ‫‪‬‬
‫البيانات لقيمة عنصر واحد في جدول إذا علمت قيم عنصر أو أكثر في الجدول نفسه أو‬
‫جداول أخرى‬

‫لقد عرفنا أن التصميم التمهيدي يهدف إلى بناء وتطوير نموذج تمهيدي للبيانات بناء معلومات)‪.‬‬
‫وعلى هذا األساس يمكن تصميم نموذج تمهيدي وذلك بجمع العالقات في مخطط بياني واحد‪.‬‬
‫فمثال جمع العالقات الكيانية األربع المذكورة سابقا وهي قائمة الحساب‪ ،‬السكن‪ ،‬التقرير‬
‫اإلداري‪ ،‬وتقرير عن الطبيب‪ ،‬ينتج النموذج التمهيدي المبين‬

‫في الشكل (‪.)11‬‬

‫الشكل (‪ :)11‬نموذج تمهيدي ألربع عالقات كيانية‬

‫‪100‬‬

‫ويتضمن النموذج التمهيدي الناتج أربع كينونات هي السكن‪ ،‬المرضى‪ ،‬األطباء‪ ،‬والمواد‪ .‬وكلما‬
‫تطلب األمر إصدار تقارير جديدة تحتاج إلى اضافة كينونات أخرى‪ .‬يحتوي النموذج التمهيدي‬
‫الموضح في الشكل السابق على عالقتين من نوع متعدد إلى متعدد هما العالقة «يعالج» (ربط‬
‫الطبيب بالمريض والعالقة «يحاسب على» (ربط المريض بالمادة)‪ .‬ويتكون النموذج من عالقة‬
‫أخرى مشروطة نوع واحد إلى واحد تربط المريض بالسكن (الغرف)‪.‬‬

‫‪ .4‬تصميم النموذج المنطقي (‪)Logical Model‬‬

‫التصميم المنطقي هو تحويل التصميم التمهيدي إلى إحدى نماذج التصميم المعتمدة‪ :‬الهرمي‪،‬‬
‫الشبكي‪ ،‬أو العالئقي‪ .‬ويهتم التصميم المنطقي للنماذج في تفسير البيانات من وجهة نظر المستفيد‬
‫تفيد نماذج التصميم المنطقي في التوثيق وفي تجميع البيانات‪ ،‬وفي تصميم أنظمة المعلومات‪،‬‬
‫وفي تصميم وتنفيذ قواعد البيانات المادية‪ .‬إن التصميم المنطقي الجيد للنموذج يجعل منه وحدة‬
‫متكاملة مستقلة عن أنظمة إدارة قواعد البيانات حيث يمكن نقل هذه الوحدة‬
‫من نظام إدارة قواعد بيانات إلى نظام آخر دون الحاجة إلى تعديله ومن الشروط الواجب اتباعها‬
‫أن يحتوي نموذج البيانات المصمم على تفاصيل أساسية ألداء المهمات المناطة به‪ ،‬ويجب أن ال‬
‫تكون التفاصيل دقيقة جدا بحيث يصيح استخدام النموذج معقدا‪.‬‬

‫وهناك تقنيات كثيرة يمكن استخدامها في التصميم المنطقي للنماذج‪ .‬وسنستخدم هذا النموذج‬
‫الذي تم تطويره من قبل كود (‪ )Codd‬وتبسيطه من قبل دیت (‪ .)Date‬ويسمى هذا النموذج‬
‫بالعالئقي الموسع ‪ )The Extended Relational) Model‬ومن أجل فهم هذا النموذج ال بد‬
‫من توضيح بعض المفاهيم األساسية والتي تم التطرق إليها في الوحدات السابقة ولكن‬
‫سنوضحها هنا بأسلوب آخر‪ .‬ومن هذه المفاهيم الكيان (‪ Entity‬التي يمكن النظر لها ككينونة (‬
‫‪ )Object‬وقد تكون ملموسة مثل الطالب‪ ،‬المدرس‪ ،‬أو بناية وقد تكون غير ملموسة مثل مقرر‪،‬‬
‫عالمة‪ ،‬أو حالة معينة‪ ،‬وقاعدة البيانات تحتوي على الكينونات‪ .‬وكل كينونة يجب أن تكون‬
‫مميزة عن مثيالتها من الكينونات‪ .‬فالطالب‪ ،‬مثال‪ ،‬كينونة يميزها رقم الطالب‪ ،‬والمدرس كينونة‬
‫يميزه‬

‫‪101‬‬

‫رقم العامل‪.‬‬

‫ولكل كيان مجموعة من المعالم التي تصفها تسمى خصائص (‪ )Properties‬أو (‬


‫‪ .)Attributes‬فالطالب له رقم واحد‪ ،‬وجنس واحد‪ ،‬و تخصص رئیس واحد‪ ،‬وعنوان‬
‫واحد‪ ،...،‬إلخ‪ .‬وترتبط الكينونات مع بعضها البعض بعالقات من نوع واحد إلى واحد أو واحد‬
‫إلى متعدد‪ ،‬أو متعدد إلى واحد‪ ،‬أو متعدد إلى متعدد ويمكن تدریس طالب من قبل مجموعة من‬
‫المدرسين‪ ،‬والمدرس الواحد يدرس مجموعة من الطالب‪ .‬ويمكن وصف الكيان منطقيا على‬
‫النحو اآلتي‪:‬‬

‫)‪Student (StudentNo, StudentName, Address, BirthDate, Gender, Club‬‬

‫إذا كان ينتمي إلى نادي واحد‪ .‬أما اذا كان ينتمي إلى أكثر من نادي فيمكن وصفه على النحو‬
‫اآلتي‪:‬‬

‫)‪Student (StudentNo, Student Name, Address, Birth Date, Gender‬‬

‫)‪Clubs (StudentNo, ClubName‬‬

‫وتبني قواعد البيانات منطقيا وفق خطوات وتصميمات مختلفة ومن هذه‬

‫التصميمات ما يأتي‪:‬‬

‫‪ .1‬تصميم النموذج العالئقي للبيانات (‪.)Relational Model‬‬

‫‪ .2‬تصميم النموذج الشبكي (‪.)Network Model‬‬

‫‪ .3‬تصميم النموذج الهرمي للبيانات (‪.)Hierarchical Model‬‬


‫وفيما يأتي‪ ،‬عزيزي الدارس‪ ،‬توضيح لهذه التصاميم المنطقية للنماذج الثالث‪:‬‬

‫‪ 1.4‬النموذج العالئقي للبيانات (‪)Relational Model‬‬

‫تكمن أهمية وشهرة هذا النموذج من إمكانية تطبيق بعض القوانين الرياضية عليه ومن تركيبته‬
‫البسيطة حيث يتكون من جداول تحتوي على البيانات ويسمى كل من هذه الجداول كما في‬
‫الرياضيات (مجموعة يطبق عليها عالقة معينة) بالعالقة (‪ )Relation‬كما هو موضح في‬
‫الجدول (‪.)29‬‬

‫‪102‬‬

‫الجدول (‪ )29‬جدول أسماء الطالب في إحدى الجامعات‬

‫ولتحويل النموذج التمهيدي إلى النموذج العالئقي تتبع الخطوات اآلتية‪:‬‬

‫‪ .1‬تحويل الكيانات األربع في مخطط العالقات الكيانية إلى عالقات (جداول) هي السكن‪،‬‬
‫الطبيب‪ ،‬المادة‪ ،‬والمريض علما أن المفاتيح الرئيسية ستكون نفس مفاتيح الكيانات في كل عالقة‬
‫من العالقات األربع‪.‬‬

‫‪ .2‬تحويل عالقة "يعالج متعدد إلى متعدد (بين الطبيب والمريض) إلى عالقة معالجة (‬
‫‪ )Treatment‬وبمفتاح مركب من رقم المريض‪ ،‬واسم الطبيب والخاصية عالج ترتبط وظيفية‬
‫بهذا المفتاح المركب‪.‬‬

‫‪ .3‬وبالطريقة نفسها‪ ،‬يتم تحويل عالقة (يحاسب على) متعدد إلى متعدد إلى عالقة تكلفة‪.‬‬

‫‪ .4‬أما العالقات نوع واحد إلى واحد فيمكن بسهولة تحويلها إلى جداول عالئقية أو اعتبارها‬
‫حالة خاصة من نوع واحد إلى متعدد‪ .‬فالعالقة "تخصص" إلى يمكن تمثيلها وذلك بإضافة مفتاح‬
‫خارجي (‪ )Foreign key‬هو "الموقع" عالقة المريض والذي يمثل المفتاح الرئيس في عالقة‬
‫السكن‪.‬‬

‫‪ 2.4‬النموذج الهرمي للبيانات (‪)Hierarchical Model‬‬

‫يعد النموذج الهرمي اقدم من النموذج العالئقي‪ .‬وتنظم العالقات بين السجالت البيانات على‬
‫شكل شجرة حيث يبين جذر الشجرة المفتاح الرئيس‪ ،‬نوع البيانات‪ ،‬مواقعها‪ ،‬وكذلك الفروع‬
‫الخارجة من الجذر‪ .‬لقد تم تطوير النموذج الهرمي ألنه يعكس العالقات في معظم التطبيقات في‬
‫الحياة العملية‪ .‬فمثال المخطط اإلداري يتكون من شكل هرمي مستواه األول (جذره) اإلدارة‬
‫العاليا ثم يبين المستوى الثاني اإلدارة الوسطى‪ ،‬والمستوى األخير يمثل بقية المنتسبين‪ .‬بعبارة‬
‫أخرى كل منتسب يرتبط بمدير واحد‬

‫‪103‬‬

‫فقط‪ .‬ولذا فالنموذج الهرمي هو من نوع العالقة واحد إلى متعدد‪ .‬من األمثلة األكثر تطبيقا للنظام‬
‫الهرمي مخزون المواد االحتياطية للطائرات حيث يتكون من وحدات رئيسة‪ .‬وتتكون هذه‬
‫الوحدات الرئيسة بدورها من وحدات فرعية ‪ ،....‬وهكذا‪ .‬فباعتماد النموذج الهرمي تنظم‬
‫العالقات بين السجالت والمتغيرات على النحو اآلتي‪ :‬يمثل المستوى األول (األعلى) الوحدات‬
‫الرئيسة مثل األجنحة‪ ،‬الجسم‪ ،‬المؤخرة‪ ،‬ومقصورة الطيران‪ ،‬ويمثل المستوى الثاني الوحدات‬
‫الفرعية لكل وحدة رئيسة والمستوى االدنى (األخير) يمثل الوحدات التي ال يمكن تجزئتها‪،‬‬
‫وأرقامها ومعلومات إضافية أخرى‪.‬‬

‫يناسب هذا النموذج اإلجابة على التساؤالت المتعلقة بالوحدات الرئيسة والفرعية وما يتوفر منها‬
‫وعرض المعلومات اإلضافية األخرى ولكنه ال يناسب التساؤالت المتعلقة بتلك الوحدات وفي‬
‫أي طائرة مستخدمة‪.‬‬

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

‫من األمثلة التجارية لهذا النوع من قواعد البيانات نظام إدارة المعلومات المنتج من قبل شركة‬
‫أوب‪.‬م (‪ )IMS‬ونظام إدارة قواعد المعلومات المنتج من قبل شركة كولينيت (‪)IDMS‬‬

‫‪ 3.4‬النموذج الشبكي للبيانات (‪)Network Model‬‬

‫يعتمد هذا النموذج في بنائه على مفهوم المجموعات الجزئية والعناصر حيث يطلق على كل‬
‫مجموعة من المعلومات بالمالك وما يرتبط بها بالعناصر‪ .‬وترتبط العناصر بالمالك عبر خطوط‬
‫شبيهة بخطوط القوائم المتصلة (‪ )Linked Lists‬ويمكن تمثيل المثال السابق بالنموذج الشبكي‬
‫كما في الشكل (‪.)12‬‬

‫ومن األمثلة التجارية لهذا النوع‪ :‬تلك النماذج المصممة للحاسبات الكبيرة والمتوسطة في عقد‬
‫السبعينيات‪ .‬وقد طغت قواعد البيانات العالئقية على األنواع المستخدمة في الوقت الحاضر‪.‬‬

‫‪104‬‬

‫الشكل (‪ :)12‬نظام شبكي‬

‫‪ .5‬توثيق التصميم المنطقي (‪)Documentation‬‬

‫يحتل التوثيق مكانة كبيرة في تصميم أنظمة الحاسوب بصورة عامة وقواعد البيانات بصورة‬
‫خاصة‪ .‬فالتوثيق تدوين التركيبة قواعد البيانات واألعمال المنجزة أو المتوقع إنجازها ويعكس‬
‫ترابط مكونات النظام‪ .‬ويعد التوثيق واسطة تفاهم بين مصممي نظام قواعد البيانات وإدارة‬
‫المؤسسة وبين النظام المصمم نفسه والمتخصصين‪ .‬ومن الشروط الواجب توفرها احتواء‬
‫التوثيق على كافة المعلومات الضرورية التتبع فعاليات التصميم المنطقي‪ .‬ومن المالحظات التي‬
‫يجب أن يتضمنها التوثيق‪ ،‬عزيزي الدارس‪ ،‬ما يلي‪:‬‬
‫جميع الفعاليات والوظائف التي يتوقع أن يؤديها النظام عند التنفيذ ‪.Functions‬‬ ‫‪‬‬
‫كتابة وتحديد جميع القيود الموضوعة على النظام ‪Constraints‬‬ ‫‪‬‬
‫تدوين األجهزة والمعدات والخبرات المطلوبة عند وضع النظام قيد التطبيق‪.‬‬ ‫‪‬‬
‫تدوين جميع التفاصيل الدقيقة والضرورية عن تطور دورة حياة النظام ومستقبله‪.‬‬ ‫‪‬‬
‫التوثيق وسيلة فعالة في تنفيذ عمليات الصيانة ويعد التوثيق حجر األساس للنظام‪.‬‬ ‫‪‬‬
‫تدوين استجابات النظام المقترح للحاالت المحتملة وغير المتوقعة‪.‬‬ ‫‪‬‬
‫ومن المستلزمات الضرورية واألسس العملية للتوثيق أن يكون محكم التنظيم واضح‬ ‫‪‬‬

‫‪105‬‬

‫المداخل والمخارج محدد الفصول والمحتويات والفهرسة‪ .‬ويتضمن مسرد للمصطلحات باللغتين‬
‫العربية واإلنجليزية‪ .‬وإحدى التنظيمات المقترحة هي احتواء التوثيق على المعلومات والبيانات‬
‫اآلتية‪:‬‬

‫‪ .1‬مقدمة التوثيق‪ ،‬ويجب أن تتضمن المقدمة على وصف كامل لألسباب الداعية إلى بناء‬
‫النظام‪ ،‬وكذلك وصف كامل لوظائف النظام المقترح وربط كل وظيفة مع السبب الداعي لتطوير‬
‫النظام‪ .‬ومن المستلزمات األخرى التي يجب أن يتضمنها التوثيق أهمية النظام بالنسبة إلى‬
‫المؤسسة بصورة عامة من النواحي قصيرة المدى وبعيدة المدى‬

‫‪ .2‬نوع النموذج المستخدم في التصميم المنطقي لقاعدة البيانات‪ :‬يجب أن يحتوي التوثيق على‬
‫نوع النموذج المستخدم في التصميم (نموذج عالئقي‪ ،‬نموذج هرمي‪ ،‬أو نموذج شبكي)‪ .‬ويجب‬
‫أن توضح العالقات التي تربط بيانات المؤسسة مع بعضها البعض‪.‬‬

‫‪ .3‬طريقة التعامل مع النظام‪ ،‬ويجب أن يتضمن التوثيق المطلوب على الخدمات التي يوفرها‬
‫النظام‪ ،‬وأسلوب التساؤالت التي يتم إصدارها ولغات التساؤل المعتمدة واللغات عالية المستوى‬
‫التي يمكن استخدامها مع قاعدة البيانات‪ .‬وتدوين إمكانية كتابة برامج فرعية متخصصة وبلغات‬
‫عالية المستوى مثل لغة ‪ C++‬وغيرها‪.‬‬

‫‪ .4‬المعوقات‪ :‬تدوين كافة المعوقات والقيود التي يجب أخذها بعين االعتبار عند إنشاء قواعد‬
‫البيانات مثل عدد الصفوف المسموح فيها‪ ،‬عدد األعمدة‪ ،‬وعدد العالقات‪.‬‬

‫‪ .5‬المصطلحات الفنية‪ :‬تعريف كافة المصطلحات الواردة في التوثيق وعدم افتراض قدرة‬
‫القارئ على فهم المصطلحات الفنية‪.‬‬

‫ويتوجب على مصممي قواعد البيانات عدم االستهانة بأهمية التوثيق ودوره في إذكاء النظام‬
‫وتحسين أدائه‪ .‬فالتوثيق هو القناة التي من خاللها يتم استيعاب حركة النظام الديناميكية ورصد‬
‫مساوئه و محاسنه‪ ,‬وتكمن أهمية التوثيق‪ ،‬كذلك‪ ،‬في تدبير أمر الصيانة حيث أن صيانة أنظمة‬
‫قواعد البيانات ضرورية ألسباب عدة منها التقدم المستمر في حركة المجتمع والتطورات‬
‫المستمرة في صناعة أجهزة الحاسوب المتطورة ومنها تغيير في العالقات والقوانين التي تحكم‬
‫إدارة المؤسسة ومنتسبيها‪.‬‬
‫‪106‬‬

‫‪.6‬الخالصة‬

‫عزيزي الدارس‪ ،‬تعالج الوحدة الرابعة أحد المواضيع المهمة في قواعد البيانات أال وهي‬
‫التصميم المنطقي لقواعد البيانات حيث تستعرض الوحدة االعتمادات الوظيفية‪ :‬مفهومها‬
‫وعالقتها بالمفاتيح‪ ،‬تصنيفها‪ ،‬ومفهوم العالقات الكيانية‪ .‬وتتناول الوحدة التصميم التمهيدي‬
‫بشيء من التفصيل حيث توضح طرق تجميع البيانات وتحديد االحتياجات وتطبيع البيانات ثم‬
‫عرض التمثيل البياني النموذج التمهيدي‪ .‬وبينت هذه الوحدة التصميم المنطقي وطرق توثيق‬
‫التصميم المنطقي‬

‫‪ .7‬لمحة عن الوحدة الدراسية الخامسة‬

‫لقد تعلمت في هذه الوحدة‪ ،‬عزيزي الدراس‪ ،‬مفهوم التصميم المنطقي ورسم صورة واضحة‬
‫لتركيبة قاعدة البيانات الستخدامها في حل المشكالت التي تواجه المؤسسات اإلدارية والصناعية‬
‫في تصميم‪ ،‬وإدارة‪ ،‬وصيانة أنظمة المعلومات‪ .‬واستعرضت الوحدة االعتمادات الوظيفية من‬
‫حيث بنيتها التركيبية واللفظية وأهميتها في تسهيل مهمات التطبيع المختلفة‪ .‬وأوضحت الوحدة‪،‬‬
‫كذلك‪ ،‬مفاهيم التصميم التمهيدي األساسية وعالقتها في تجميع البيانات ودراسة المتطلبات أو‬
‫احتياجات الجهات المستفيدة وتحديدها وتنسيقها وتناولت الوحدة التمثيل البياني للنموذج التمهيدي‬
‫والتصميم المنطقي للنماذج العالئقية والهرمية والشبكية للبيانات وأساليب التوثيق المعتمدة خالل‬
‫مراحل التصميم‬

‫تستعرض الوحدة الخامسة من هذا المقرر مكونات النظام العالئقي ومستوياته ليساعدك على‬
‫تطوير نظام قواعد بيانات للمؤسسة التي تعمل فيها‪ .‬وتوضح الوحدة مفهومي نموذج البيانات‬
‫العالئقي والتطبيع العالئقي‪ ،‬وتستعرض الوحدة التالية‪ ،‬كذلك‪ ،‬مفهوم التعامل مع البيانات‬
‫والطرق المستخدمة السترجاع البيانات من قاعدتها‪ ،‬أو حذفها‪ ،‬أو تعديلها‪ ،‬أو إضافة سجالت‬
‫جديدة إلى قاعدة البيانات والوسائل المتاحة للتعامل مع البيانات وهي‪ :‬لغات البرمجة (‬
‫‪ )Programming Languages‬ولغات التساؤل (‪ )Query Languages‬ولغات األوامر‬
‫‪ )Command- Oriented Query Languages‬وإعداد التقارير (‪)Reports generator‬‬
‫وتوضح الوحدة الجبر العالئقي والحسابات العالئقية وطرق استخدامها في اصدار التساؤالت‪.‬‬
‫وستتناول الوحدة أسس ومعايير التصميم الجيد وعرض أمثلة مختارة من أنظمة قواعد البيانات‬
‫العالئقية‪.‬‬

‫‪107‬‬

‫‪ .9‬مسرد المصطلحات‬

‫‪ -‬االعتماد الوظيفي (‪ :)Functional Dependency‬العالقة بين خاصيتين (عمودين) في‬


‫جدول أو عالقة‪ .‬الخاصية ‪ B‬تعتمد وظيفيا على الخاصية ‪ A‬عندما تتحدد قيم ‪ B‬عند معرفة قيم‬
‫‪.A‬‬
‫‪ -‬التصميم التمهيدي (‪ :)Conceptual Design‬عبارة عن عملية وصف تصميم القاعدة بيانات‬
‫منطقية ال تأخذ بعين االعتبار الموارد المادية أو البرمجية لنظام الحاسوب‪.‬‬

‫‪ -‬الخاصية (‪ :)Attribute‬عبارة عن خاصية (عمود في عالقة) أو صفة الكيان ما‪.‬‬

‫‪ -‬الربط (‪ :)Join‬أمر من اوامر الجبر العالئقي الذي يفيد في دمج جدولين لهما مجال (‬
‫‪ )Domain‬مشترك في جدول واحد‪.‬‬

‫‪ -‬المحدد (‪ :)Determinant‬عبارة عن خاصية تعتمد عليها وظيفيا خصائص أخرى‪.‬‬

‫‪ -‬المفتاح المركب (‪ :)Composite key‬هو المفتاح الناجم عن جمع خاصيتين أو أكثر من‬
‫خصائص العالقة (أعمدة الجدول)‪.‬‬

‫‪ -‬النموذج التمهيدي للبيانات (‪ :)Conceptual Data Model‬التركيب العام لنموذج منطقي‬


‫لقاعدة بيانات مؤسسة معينة وال يعتمد على نظام إدارة قاعدة بيانات محدد‪.‬‬

‫‪ -‬نموذج التطبيع األول (‪ )First Normal Form( )NF1‬عبارة عن نموذج تتحدد فيه قيمة‬
‫واحدة للعالقة التي يتقاطع فيها صف مع عموده‬

‫‪ -‬نموذج التطبيع الثاني (‪ )Second Normal Form( )NF2‬عبارة عن عالقة لنموذج التطبيع‬
‫األول ويرتبط فيها كل مفتاح غير رئيس (‪ )Nonkey Attribute‬وظيفيا مع المفتاح الرئيس (‬
‫‪)Primary key‬‬

‫‪ -‬نموذج التطبيع الثالث (‪ )Third Normal Form()NF3‬عبارة عن عالقة لنموذج التطبيع‬


‫الثاني والتي ال يرتبط فيها أي مفتاح غير رئيس (‪ )Nonkey Attribute‬وظيفيا مع أي مفتاح‬
‫غير رئيس آخره‬

‫‪111‬‬

‫نموذج التطبيع الرابع (‪ )Forth Normal Form( )NF4‬عبارة عن عالقة لنموذج‬ ‫‪-‬‬
‫تطبيع بويس ‪ -‬كود والتي ال تحتوي على ارتباطات متعددة القيم‬

‫‪ -‬نموذج التطبيع الخامس (‪ )Fifth Normal Form( )NF5‬عبارة عن عالقة ال تحتوي على‬
‫ارتباطات (‪.)Join Dependencies‬‬

‫‪ -‬نموذج تطبيع بويس ‪ -‬کود (‪ )Boyce- Codd Normal Form‬عبارة عن نموذج لوصف‬
‫التطبيع العالئقي الذي يرشح‬

‫كل محدد فيه ألن يكون مفتاحا رئيسا‬


‫ النموذج‬.‫ عبارة عن وصف مقتضب لبيانات المؤسسة‬:)Data Model( ‫ نموذج البيانات‬-
‫ عبارة عن تحويل للنموذج التمهيدي للبيانات إلى‬:)Logical Data Model( ‫المنطقي للبيانات‬
.‫نموذج قابل للمعالجة بوساطة نظام إدارة قاعدة البيانات‬

‫ المراجع‬.10

Kroenke, David M., and Dolan, Kathleen A., «Database .1

Processing: Fundamentals, Design, Implementation», Third

.Edition, Science Research Associates, Inc.1990

Mcfadden, Fred R. and Hoffer, Jeffery A., «Database .2

Management, The Benjamin/Cummings Publishing

.Company, Inc., Third Edition, 1991

Parker, Charles S., «Understanding Computer & Information .3

Processing: Today and tomorrow. The Dryden Press, Fourth

.Edition, 1992

& ,Su, S.Y.W., «Database Computers: Principles, Architecture .4

.Techniques», New York, McGraw-Hill

112

‫الوحدة الخامسة‬

‫طرق تصميم قواعد البيانات‬

‫العالئقية وتركيبها‬
113

)Architecture of Relational DBS( ‫ بنية النظام العالئقي‬.2

:‫ في ثالث مستويات هي‬،‫ عزيزي الدارس‬،‫تمثل قواعد البيانات‬

.External Level( ‫ المستوى الخارجي‬-1

.)Conceptual Level( ‫ المستوى التمهيدي‬-2


‫‪ -3‬المستوى الداخلي (‪.)Internal Level‬‬

‫يعد المستوى الخارجي هو األقرب إلى مفهوم المستخدم‪ ,‬ويتعلق تركيب هذا المستوى بالمفهوم‬
‫الذي يجب أن يراه مستخدمي النظام‪ .‬وعلى هذا األساس فإن كل مستقيد أو مستخدم يتصور‬
‫المستوى الخارجي من الزاوية المناسبة للتطبيق‪.‬‬

‫ويتعلق المستوى التمهيدي أو المنطقي بتمثيل كافة المعلومات في قاعدة البيانات‪ .‬وكل مستوى‬
‫خارجي يعكس جزء أو أكثر من المستوى التمهيدي‪ .‬ومن هذا المنطلق يمكن اعتبار المستوى‬
‫التمهيدي عبارة عن اتحاد المجموعة من األجزاء التي يحتاجها المستوى الخارجي‪ .‬ومما تجدر‬
‫اإلشارة إليه وجود عدة مستويات خارجية ولكن يوجد مستوى تمهيدي واحد‪ .‬ويطلق في بعض‬
‫األحيان على المستوى التمهيدي بالمستوى المنطقي (‪.)Logical Level‬‬

‫أما المستوى الداخلي (‪ )Internal Level‬والذي يسمى أيضا بالمستوى المادي (‪Physical‬‬
‫‪ )Level‬فهو األقرب إلى مواقع التخزين وحيث يتم تخزين محتويات المستوى التمهيدي على‬
‫شكل ملفات في أقراص مغناطيسية‪ .‬وكما هو الحال بالنسبة إلى المستوى التمهيدي فهناك‬
‫مستوى داخلي واحد لقاعدة البيانات‪.‬‬

‫‪119‬‬

‫‪.3‬نمودج البيانات العالئقي والتطبيع العالئقي‬

‫(‪)Relational Data Model & Relational Normalization‬‬

‫لقد ظهرت خالل العقدين الماضيين مجموعة من نماذج البيانات‪ ،‬ومن أهم هذه النماذج‬
‫المستخدمة في يومنا الحاضر‪ ،‬عزيزي الدارس‪ ،‬هو نموذج البيانات العالئقي (‪The‬‬
‫‪ )Relational Model‬والذي يتميز بسهولة تصميمه واستخدامه واستقاللية بياناته وقوة بنائه‪.‬‬
‫ويتكون النموذج العالئقي من عالقات وخصائص ومفاتيح وصفوف‪ .‬وتعرف العالقة بأنها‬
‫جدول من الصفوف واألعمدة حيث يمثل العمود خاصية (‪ .)Attribute‬وأما المفتاح الرئيس‬
‫فهو قيم عمود أو أكثر يحدد بصورة وحيدة حالة الكيان‪ .‬وأما الصف أو ما يسمى ‪ Tuple‬نهو‬
‫عبارة عن مجموعة من عناصر البيانات المرتبة مثل العالقة المزدوجة (‪ R (X,Y‬أو العالقة‬
‫الثالثية (‪ R )X,Y,Z‬كل صف عبارة عن حالة لكيان معين‪ .‬إن الرمز ‪ R‬عبارة عن اسم العالقة‬
‫بينما الرموز داخل القوسين فهي خصائص العالقة كما في المثال اآلتي‪:‬‬

‫طالب (االسم‪ ،‬الرقم‪ ،‬التخصص الرئيس‪ ،‬المعدل)‬

‫)‪student (Name, Number, Major, Average‬‬

‫ويبين جدول (‪ )1‬نموذج بيانات عالئقي يمثل حالة (‪ )Instance‬الجدول‪ ،‬يتكون من ستة طالب‬
‫وأربعة أعمدة (خصائص) هي اإلسم‪ ،‬الرقم‪ ،‬التخصص الرئيس والمعدل‪ .‬يعرف كيان طالب‬
‫العالقة المطلوبة‪.‬‬

‫جدول (‪ :)1‬كيان الطالب‬


‫التطبيع (‪ )Normalization‬عبارة عن ترتيب عناصر البيانات على شكل عالقات‪ ،‬ويستخدم‬
‫مفهوم مخطط الكينونية (‪ )Object Diagram‬لتسهيل مهمة إجراء التطبيع حيث يتم عرض‬
‫الخصائص المتشابهة بسهولة‪ .‬ويعد التصميم الجيد للعالقات «التطبيع»‪ ،‬ويتطلب األمر من‬
‫مصممي قواعد البيانات اختيار إما كفاءة صيانة قواعد المعلومات أو سرعة استرجاع‬
‫المعلومات‪ .‬فالعالقات التي لم تنظم في وضعها‬

‫‪120‬‬

‫الطبيعي (تطبيع قد تؤدي إلى ظهور مشاكل في صيانة (تعديل‪ ،‬إضافة‪ ،‬حذف) قواعد‬
‫المعلومات‪ .‬وهناك عدة أشكال من التطبيع تبدأ من الشكل األول وتنتهي بالشكل بيانات عالئقي‬
‫يعد شكل التطبيع األول (‪ .)First Normal Form‬فإذا كانت البيانات في شكلها األولي فالتطبيع‬
‫هو عملية تجزئة العالقة األصلية عدة عالقات وبعدد إلى أقل األعمدة (الخصائص)‪ .‬فالتطبيع‬
‫يساعد على تقليل من األخطاء الناجمة من الصيانة وفي الوقت نفسه يقلل من سرعة استرجاع‬
‫المعلومات‪.‬‬

‫تدريب (‪)1‬‬

‫‪ .1‬عرف مفهوم تطبيع البيانات؟‬

‫‪ .2‬ما فوائد التطبيع؟ وما مساوئه؟‬

‫نماذج تطبيع العالقات‬

‫ترتبط عناصر البيانات بعالقات معينة بحيث يمكن تمثيل هذه العالقة كما يأتي‪:‬‬

‫)‪R (A, B, C, D‬‬

‫حيث ‪ R‬هي العالقة بينما ‪ D‬و‪ C‬و‪ B‬و‪ A‬وهي عبارة عن عناصر البيانات‪ .‬ومن هذه العالقة‬
‫يمكن اشتقاق العالقة الثنائية األتية‪:‬‬

‫)‪ R (A, B‬وتسمى هذه العالقة والعنصران بالثنائي ويمكن بسهولة معالجة هذا النوع من‬
‫العالقات برمجيا‪ ،‬فمثال من االستنتاج السابق يمكن كتابة العالقة‪:‬‬

‫‪.#DEPARTMENT (DEPT# , DEPT-NAME, EMPLOYEE‬‬

‫‪)REPORTS-TO, MANAGER, BUDGET‬‬

‫عالقات ثنائية على النحو اآلتي‪:‬‬

‫‪DEPT - NAME (DEPT# , NAME) .1‬‬

‫‪#DEPT - REPORTS -TO (DEPT# , EMPLOYEE) .2‬‬

‫‪# DEPT - MANAGER (DEPT# , MANAGER) .3‬‬


‫‪DEPT - BUDGET (DEPT# , BUDGET) .4‬‬

‫أسئلة التقويم الذاتي (‪)1‬‬

‫‪ .1‬ما أهم ميزات النظام العالئقي‪.‬‬

‫‪ .2‬عدد أنواع التطبيع‪.‬‬

‫‪121‬‬

‫‪ .4‬معالجة البيانات (‪)Data Manipulation‬‬

‫يشير منقوم معالجة البيانات إلى الطرق المستخدمة السترجاع البيانات من قاعدتها‪ ،‬أو حذفها‪،‬‬
‫أو تعديلها‪ ،‬أو إضافة سجالت جديدة إليها وهناك‪ ،‬عزيزي الدارس‪ ،‬وسيلتين رئيستين المعالجة‬
‫البيانات وهما‪:‬‬

‫(‪ )1‬لغات البرمجة (‪ :)Programming Languages‬وهي لغات عالية المستوى مثل لغة‬
‫كوبول‪ ،‬فور تران‪ ،‬أو غيرها‪ .‬وتستخدم أوامر هذه اللغات في تحديث سجالت قواعد البيانات‬
‫وتنفيذ العمليات التي تتطلب حسابات معقدة كالحسابات اإلحصائية والرياضية واللغة في هذه‬
‫الحالة تسمى اللغة المضيفة (‪.)Host‬‬

‫(‪ )2‬لغات التساؤل (‪ :)Query Languages‬وهي لغات بسيطة تفيد في البحث في قواعد‬
‫البيانات واسترجاع المعلومات المطلوبة‪ .‬وتنقسم لغات التساؤل إلى نوعين‪:‬‬

‫(أ) لغات األوامر ‪ :))Command- Oriented Query Languages‬يعتمد مفهوم إصدار‬


‫األسئلة لهذا النوع من اللغات على مجموعة من األوامر نوردهما فيما يلي‪:‬‬

‫اعرض أسماء طلبة جامعة معينة بحيث تعرض أسماء الطلبة الذكور فقط؟‬ ‫‪‬‬

‫أمر العرض المطلوب هو‪:‬‬

‫‪”PRINT NAME OF STUDENT WITH GENDER = "MALE‬‬

‫اعرض أسماء وعناوين الطلبة الذين تنحصر مواليدهم بين ‪ 15‬تشرين أول ‪1975‬و‪5‬‬ ‫‪‬‬
‫كانون أول ‪1976‬؟‬

‫‪PRINT NAME, ADDRESS OF STUDENT WITH‬‬

‫‪BIRTHDATE BETWEEN “15-OCT-75" AND‬‬

‫«‪"JAN-76-5‬‬

‫اعرض االسم‪ ،‬القسم األكاديمي‪ ،‬والمرتب لمنتسبي كلية معينة تنازليا حسب المرتب؟‬

‫‪PRINT FACULTY_NAME, DEPARTMENT, SALARY OF‬‬


‫‪FACULTY SORTED BY SALARY DESCENDING‬‬

‫* أضف سجل جديد إلى قاعدة بيانات مسماة ‪Faculty‬؟‬

‫‪STORE FACULTY‬‬

‫‪Enter FAC_ID: 582/11‬‬

‫‪Enter FACULTY_NAME: SCIENCE‬‬

‫‪Enter DEPARTMENT: PHYSICS‬‬

‫‪Enter GENDER: MALE‬‬

‫‪Enter SALARY: 743‬‬

‫‪122‬‬

‫تدريب (‪)2‬‬

‫بناء على ما سبق أجب عما يلي‪-:‬‬

‫اكتب الصيغة العامة لألوامر المطلوبة لعرض االسم والمرتب لمنتسبي كلية من اإلناث اللواتي‬
‫تنحصر مرتباتهن بين ‪ 4000‬دينار و‪ 7000‬دينارا تصاعديا احسب المرتب؟‬

‫اكتب الصيغة العامة لألوامر التي تؤدي إلى زيادة مرتبات منتسبي قسم الحاسب اإللكتروني أو‬
‫الحاسوب في جامعة القدس المفتوحة بمقدار ‪60%‬‬

‫(ب) لغات العرض الجاهز (‪)Screen-Oriented Query Languages‬‬

‫توفر لغات العرض الجاهز إمكانية عرض نموذج للجداول على شاشة العرض ويقوم المستفيد‬
‫بكتابة األوامر المطلوبة في الفراغات المخصصة في النموذج‪ .‬ومن هذه اللغات لغات التساؤل‬
‫باألمثلة (‪ )Query By Example( )QBE‬حيث توفر هذه اللغة إمكانية عرض الجداول جاهزة‬
‫على الشاشة ويستطيع المستفيد استخدام مجموعة من األوامر السترجاع المعلومات مثل (‬
‫‪ ،)Print‬تحديث بيانات الجداول (‪ ،)Update‬حذف بيانات معينة (‪ ،)Delete‬أو إضافة‬
‫معلومات جديدة (‪ ،)Insert‬ولبيان طريقة استخدام هذا النوع من اللغات سنستخدم األمثلة نفسها‬
‫المستخدمة في لغات األوامر‪ .‬اعرض كافة المعلومات الخاصة بطلبة جامعة معينة بحيث‬
‫تعرض أسماء الطلبة الذكور فقط‬

‫وعندئذ سيظهر جدول خال من أي معلومات كما يأتي‪:‬‬

‫وبإمكان المستفيد كتابة األوامر المطلوبة في المربعات وكتابة الشروط بالصورة االتية‪:‬‬

‫‪Birthdate Gender‬‬
‫األمر ‪ P.‬هو أمر الطباعة أو العرض حيث كل مربع يحتوي على هذا األمر استعرض‬
‫المعلومات المتعلقة به على شاشة العرض‪ .‬بعبارة أخرى ستعرض المعلومات الخاصة برقم‬
‫الطالب (‪ )Std-id‬اسم الطالب (‪ )Student-Name‬العنوان (‪ )Address‬تاريخ الميالد (‬
‫‪ )Birthdate‬وتظهر المعلومات عندما يكون الطالب ذكرا حيث يختبر الشرط = ‪MALE‬‬
‫‪ Gender‬لكل سجل من سجالت قاعدة البيانات‪.‬‬

‫‪123‬‬

‫أعرض أسماء وعناوين الطلبة الذين ينحصر تاريخ ميالدهم بين ‪ 15‬تشرين أول ‪1975‬و‪5‬‬
‫كانون أول ‪1976‬‬

‫يستخدم هذا المثال أمر اللغة ‪ DATE‬ومربع الشروط للربط بين مربع تاريخ الميالد ومربع‬
‫الشروط ليعرض على الشاشة أسماء الطلبة الذين تنحصر اعمارهم كما هو مبين أعاله ويعرض‬
‫كذلك عناوينهم‬

‫تدريب (‪)3‬‬

‫بناء على ما سبق أجب عما يلي‪:‬‬

‫‪ .1‬أكتب الصيغة العامة لألوامر المطلوبة لعرض اإلسم والمرتب لمنتسبي كلية اإلناث اللواتي‬
‫تنحصر مرتباتهن بين ‪ 4000‬دينار و‪ 7000‬دينار تصاعديا حسب المرتب؟‬

‫‪ .2‬اكتب الصيغة العامة لألوامر التي تؤدي إلى زيادة مرتبات منتسبي قسم‬

‫الحاسب في جامعة القدس المفتوحة بمقدار ‪60%‬؟‬

‫‪ 1.4‬الجبر العالئقي (‪)Relational Algebra‬‬

‫لقد تعلمت‪ ،‬عزيزي الدارس‪ ،‬خالل المراحل الدراسية األساسية العمليات الحسابية والجبرية مثل‬
‫عمليات الجمع والطرح والضرب والقسمة وبنظرة بسيطة يمكن اعتبار الجدول على أنه‬
‫مجموعة‪ .‬كما ويمكن اعتبار اإلجراءات التي تم ذكرها سابقا في لغات التساؤل على أنها‬
‫عمليات على هذه المجموعة وهي مشتقة من الجبر العالئقي‪ .‬والجبر العالئقي يستند على نفس‬
‫األسس التي يستند إليها الجبر الحسابي‪ .‬فالجبر العالئقي يفيد في تنفيذ عمليات جبرية خاصة‬
‫بالجداول والعالقات والنتائج التي تحصل عليها من تنفيذ عمليات الجبر العالئقي هي عبارة عن‬
‫جداول أو عالقات جديدة‪ .‬فاإلشارة «‪ »+‬في الجبر الحسابي تعني جمع مقدارين حسابيين مثل‬
‫‪ 13+11‬بينما تعني هذه تلك اإلشارة في الجبر العالئقي «اتحاد» جدولين (عالقتين أو أكثر‬
‫للحصول على جدول عالقة) جديد‪ .‬وفيما يلي‪ ،‬عزيزي الدارس‪ ،‬مجموعة من العالقات‬
‫المستخدمة في التعامل مع الجداول العالئقية‪.‬‬

‫‪124‬‬

‫االتحاد (‪)Union‬‬ ‫(أ)‬


‫يفيد االتحاد في تجميع عناصر عالقة مع عناصر عالقة أخرى للحصول على عالقة جديدة‪ .‬فإذا‬
‫كانت س و ص عالقتان متوافقتان فإن س ا ص عبارة عن عالقة عناصرها تنتمي إلى س أو‬
‫ص أو كليهما‪ ،‬حيث يمثل الرمز به اإلتحاد بين عناصر عالقتين‪ .‬ومن أجل توضيح هذه‬
‫المفاهيم إليك‪ ،‬عزيزي الدارس‪ ،‬العالقتين المبينتين في الجدولين (‪ )3( ،)2‬اآلتيين‪:‬‬

‫الجدول (‪)2‬‬

‫‪125‬‬

‫اذا علمت أن س = مجموعة الصفوف من الجدول (‪ )2‬والتي تكون الرتبة العلمية فيها أستاذ‬
‫مشارك أو أستاذ‪.‬‬

‫وأن ص = مجموعة الصفوف من الجدول (‪ )3‬والتي يكون رمز القسم ‪ CS‬أو ‪MA‬‬

‫إن س يشمل سبعة صفوف (عناصر) واألسماء هي‪ :‬ليلى سلمان‪ ،‬أحمد صالح‪ ،‬داود عطية‪،‬‬
‫كرم جابر‪ ،‬راجي نعمة‪ ،‬باسم عبد الكريم‪ ،‬جعفر طالب‪ .‬وأن ص تشمل خمسة عناصر هي‪:‬‬
‫أحمد صالح‪ ،‬داود عطية‪ ،‬تموز حسن‪ ،‬مریم جعفر‪ ،‬جعفر طالب‪.‬‬

‫لذا فإن س اتحاد ص سيشمل تسعة عناصر هي‪ :‬ليلى سلمان‪ ،‬أحمد صالح‪ .‬داود عطية‪ ،‬كرم‬
‫جابر‪ ،‬راجي نعمة‪ ،‬باسم عبد الكريم‪ ،‬جعفر طالب‪ ،‬تموز حسن‪ ،‬مریم جعفر‬

‫ومن الجدير بالذكر‪ ،‬عزيزي الدارس‪ ،‬أنه إذا كانت س مجموعة جزئية من ص فإن اتحادهما‬
‫سيكون عناصر ص نفسها‪ .‬ويمكن تطبيق عالقة االتحاد إلى أي عدد من العالقات‪.‬‬

‫(ب) التقاطع (‪)Intersection‬‬

‫يفيد التقاطع في تحديد العناصر المشتركة بين عالقة وأخرى للحصول على عالقة جديدة‪ .‬فإذا‬
‫كانت س تقاطع ص عالقتان متوافقتان فان س م ص عبارة عن عالقة عناصرها تنتمي إلى س‬
‫و ص‪ ،‬حيث يمثل الرمز التقاطع‪.‬‬

‫إذا علمت أن س = مجموعة الصفوف في جدول (‪ )3‬والتي تكون الرتبة العلمية فيها أستاذ‬
‫مشارك أو أستاذه‬

‫وأن ص = مجموعة الصفوف في جدول (‪ )3‬والتي يكون رمز القسم ‪ CS‬أو ‪MA‬‬

‫إن س يشمل سبعة صفوف (عناصر) واألسماء هي‪ :‬ليلى سلمان‪ ،‬أحمد صالح‪ ،‬داود عطية‪،‬‬
‫كرم جابر‪ ،‬راجي نعمة‪ ،‬باسم عبد الكريم‪ ،‬جعفر طالب‪ .‬وأن ص تشمل خمسة عناصر هي‪:‬‬
‫أحمد صالح‪ ،‬داود عطية‪ ،‬تموز حسن‪ ،‬مریم جعفر‪ ،‬جعفر طالب‪.‬‬

‫لذا فإن س تقاطع ص سيشمل ثالثة عناصر مشتركة فقط هي‪ :‬أحمد صالح‪ ،‬داود عطية‪ .‬جعفر‬
‫طالب‪.‬‬

‫(ج) الفرق (‪)Difference‬‬


‫تفيد عملية الفرق إلى تحديد العناصر المنتمية إلى عالقة دون األخرى •‬

‫‪126‬‬

‫فإذا كانت س و ص عالقتان متوافقتان فإن س ص عبارة عن عالقة عناصرها تنتمي إلى س‬
‫وال تنتمي إلى ص‪ ،‬حيث يمثل الرمز «‪ »-‬الفروق أو ‪ .Diff‬إذا علمت أن س = مجموعة‬
‫الصفوف في جدول (‪ )2‬والتي تكون الرتبة العلمية أستاذ مشارك أو أستاذ‪.‬‬

‫ص = مجموعة الصفوف في جدول (‪ )3‬والتي يكون رمز القسم ‪ CS‬أو ‪ MA‬إن س يشمل‬
‫سبعة صفوف (عناصر) واألسماء هي‪ :‬ليلى سلمان‪ ،‬أحمد صالح‪ ،‬داود عطية‪ ،‬كرم جابر‪،‬‬
‫راجي نعمة‪ ،‬باسم عبد الكريم‪ ،‬جعفر طالب‪.‬‬

‫وأن ص تشمل خمسة عناصر هي‪ :‬أحمد صالح‪ ،‬داود عطية‪ ،‬تموز حسن‪ ،‬مریم جعفر‪ ،‬جعفر‬
‫طالب‪.‬‬

‫لذا فإن س ‪ -‬ص سيشمل أربعة عناصر هي‪ :‬ليلى سلمان‪ ،‬کرم جابر‪ ،‬راجي نعمة‪ ،‬باسم عبد‬
‫الكريم‪.‬‬

‫(د) الضرب الكارتيزي (‪)Cartesian Product‬‬

‫الضرب الكارتيزي‪ ،‬لعالقتين س و ص عدد الخصائص األعمدة) لكلمنهما ‪ m، 1‬على الترتيب‪،‬‬


‫هي عالقة عدد خصائصها ‪ M+N‬وتتضمن كل‬

‫الصفوف أحيث ‪ t‬عبارة عن تركيب من كل صف أ من العالقة س مع كل صف أ من العالقة‬


‫ص‪ .‬بعبارة أخرى‪ ،‬إذا فرضنا أن‪:‬‬

‫)‪T1 = (a, ...,am‬‬

‫)‪,T2 = (b1,…,bn‬‬

‫فإن تركيب ‪ T1‬مع ‪ T2‬يكون الصف‪:‬‬

‫)‪t = (a,, .. .,am,b1,..bn‬‬

‫ويكتب الضرب الكارتيزي بالصورة س ‪ X‬ص‪ .‬فإذا كانت عدد صفوف س هي ‪ 2‬وعدد‬
‫صفوف ص هي ‪ q‬فإن عدد صفوف العالقة الناجمة من الضرب الكارتيزي هو ‪•pxq‬‬

‫(ها) االختيار (‪)Select‬‬

‫ويرمز لها بالحرف اليوناني (ه) وتعني اختيار العناصر أو الصفوف التي ينطبق عليها شرط‬
‫معين يسمى‬

‫مثال (‪ :)1‬اختر األشخاص من س الذين تكون رتبتهم أستاذ ‪( oP‬س)‪ :P( ،‬الرتبة = أستاذ)‬
‫‪127‬‬

‫النتيجة والتي ينطبق عليهم هذا الشرط كما يلي‪:‬‬

‫(و) العرض (‪)Projection‬‬

‫ويرمز لها بالحرف اليوناني ‪ π‬وتعني أنه يتم حذف المعلومات ما عدا األعمدة المذكورة مع هذه‬
‫العملية‪.‬‬

‫مثال (‪)2‬‬

‫إعرض المعلومات المتعلقة باالسم والرمز من المجموعة س‪:‬‬

‫‪( π‬س) االسم والرمز‬

‫والنتيجة لهذه العملية هي‬

‫ويوفر الجبر العالئقي‪ ،‬أيضا‪ ،‬مجموعة من العمليات الخاصة مثل الربط و‬

‫(‪anillo (Join) )Division‬‬

‫‪ 2.4‬الحسابات العالئقية (‪)Relational Calculus‬‬

‫الحسابات العالئقي وسيلة أخرى من وسائل التعامل مع العالقات والجداول‪ .‬إنها لغة وصفية‬
‫للتعبير عن اإلستفسارات دون معرفة التفصيالت الدقيقة للوصول إلى النتائج المطلوبة كما هو‬
‫الحال مع الجبر العالئقي (‪ )Predicate Calculus‬تعد الحسابات العالئقية أحد فروع علم‬
‫المنطق‬

‫(‪ )Predicate Calculus‬تعد الحسابات العالئقية أحد فروع علم المنطق وتعتمد على مجموعة‬
‫من العمليات وهي‪:‬‬

‫أداة النفي األحادي ‪ NOT‬أو‬

‫أداة الربط الثنائي ‪ AND‬أو ‪۸‬‬

‫‪128‬‬

‫إداة اإلختيار ‪ OR‬أو ‪۷‬‬

‫إذاء ‪ ..‬فإن (االستنتاج ‪if….then→ )Implication‬‬

‫‪ IFF‬أو ما يسمى ‪.Equivalence‬‬ ‫إذا وإذا فقط‬

‫لجميع قيم ‪ X‬أو ‪X V Universal quantifier‬‬


‫وجود قيم ‪ x‬أو ‪x ᴲ Existential quantifier‬‬

‫وبداللة العمليات واألدوات السابقة ندرج فيما يلي‪ ،‬عزيزي الدارس‪،‬‬

‫جداول الحقيقة (‪ )Truth Tables‬لبعض العمليات األساسية‪.‬‬

‫‪129‬‬

‫ويمكن تعريف (‪ )p q‬بصورة أخرى (‪.)- p v q‬‬

‫ويمكن تعريف (‪ ) q ↔p‬بصورة أخرى (‪ )p → q( ∩ )p → q‬هناك أسلوبان لتطبيق هذا‬


‫في قواعد البيانات‪ ،‬األول يعتمد على الصفوف (‪ )Tuple‬واآلخر يعتمد على المجال (‬
‫‪.)Domain‬‬

‫‪ 1.2.4‬الحسابات العالئقية للصفوف (‪)The Tuple Relational Calculus‬‬

‫عندما تكتب مقدار جبري عالئقي فإنك عزيزي الدارس‪ ،‬تحتاج إلى كتابة سلسلة من األوامر‬
‫(خوارزمية) التي تؤدي للحصول على الجواب المطلوب‪ .‬إن الحسابات العالئقية للصفوف ال‬
‫تحتاج إلى توفير سلسلة من األوامر بل تحتاج‬

‫إلى وصف االستفسار المطلوب‪ .‬ويمكن عرض االستفسار باستخدام الحسابات العالئقية على‬
‫النحو اآلتي‪ :‬حيث ‪ t‬عبارة عن مجموعة الصفوف التي تحقق القاعدة ‪ P‬لقيم ‪ .t‬وكذلك تستخدم‬
‫الرموز [‪ t[A‬لتشير إلى قيمة الصف ‪ t‬عند الخاصية (العمود) ‪ A‬وأن (‪ )t € r‬تعني أن الصف‬
‫‪ t‬ينتمي للعالقة (الجدول) ‪,r‬‬

‫ولتسهيل عرض بعض األمثلة نقرض وجود عدة جداول أوعالقات ومنها؛‬

‫‪.1‬عالقة الودائع (‪ )Deposit Relation‬حيث تتكون العالقة من أربعة أعمدة هي‪:‬‬

‫( ‪)branch-name, account number, customer-name, balance‬‬

‫(اسم الفرع‪ ،‬رقم الحساب‪ ،‬اسم الزبون‪ ،‬الحساب)‬

‫‪ .2‬عالقة الزبائن (‪ )Customer Relation‬وتتكون من ثالثة أعمدة هي‪:‬‬

‫(‪)customer-name, street, customer-city‬‬

‫(اسم الزبون‪ ،‬الشارع المدينة)‬

‫‪ .3‬عالقة القروض (‪ )Borrow Relation‬وتتكون من أربعة أعمدة هي‪:‬‬

‫( ‪)branch-number, loan-number, customer-name, amount‬‬


‫(اسم الفرع‪ ،‬رقم القرض‪ ،‬اسم الزبون‪ ،‬المبلغ)‬

‫‪130‬‬

‫‪ .4‬عالقة فروع البنك (‪ )The Branch Relation‬وتتكون من ثالثة أعمدة هي‪:‬‬

‫(‪)branch-name, assets, branch-city‬‬

‫(اسم الفرع‪ ،‬مقدار السيولة‪ ،‬اسم المدينة)‬

‫مثال (‪)3‬‬

‫(‪el (customer- name) )amount‬‬

‫جد اسم الفرع (‪ )name -branch‬رقم القرض (‪)loan- number‬‬

‫اسم الزبون ((‪ customer- name‬المبلغ (‪)amount‬‬

‫عندما يتجاوز مقدار القرض (‪ 1200 )loan‬دينار؟‬

‫الحل‪:‬‬

‫المقدار الحسابي اآلتي يحدد كافة الصفوف في عالقة القروض والتي‬

‫يتجاوز فيها مقدار القرض ‪ 1200‬دينارا‪.‬‬

‫{‪} t|t€ borrow L t [amount] > 1200‬‬

‫مثال (‪)4‬‬

‫جد أسماء الزبائن الذين يتجاوز مقدار قرض كل منهم ‪ 1200‬دينار؟‬

‫الحل‪:‬‬

‫للتعبير عن هذا االستفسار تستخدم العالقة التالية‪:‬‬

‫‪T Ꜫ r (Q(t)) ᴲ‬‬

‫والتي تعني ”هناك يوجد صف مثل ‪ t‬ينتمي إلى العالقة ‪ r‬بحيث تتحقق العبارة (‪Q(t‬‬

‫‪ ."t‬وبصورة عامة يكتب المقدار الحسابي على النحو اآلتي‪:‬‬

‫ويمكن التعبير عن الصورة أعاله لغوية كما يلي‪" :‬إيجاد جميع الصفوف ‪ t‬التي يتحقق عندها‬
‫الصف ‪ S‬والذي ينتمي إلى العالقة ‪ ،borrow‬بحيث تتساوى قيم ‪ S‬مع قيم ‪ t‬عند العمود اسم‬
‫الزبون ‪customer‬‬

‫تتساوى قيم ‪ S‬مع قيم ‪ t‬عند العمود اسم الزبون ‪customer- name‬‬
‫وأن قيمة ‪ S‬في العمود المبلغ ‪ amount‬أكبر من ‪ 1200‬دينار‪.‬‬

‫‪131‬‬

‫‪ 2.2.4‬الحسابات العالئقية للمجال (‪)The Domain Relational Calculus‬‬

‫تكتب صور الحسابات العالئقية على النحو اآلتي‪:‬‬

‫{<‪}˂x, x,, ..., X. >| P(x, X, ..., X‬‬

‫حيث تمثل (‪ )X1,X2,..,Xn‬متغيرات (أعمدة)‪ P.‬عبارة عن قاعدة من العناصر األساسية‪ .‬ويأخذ‬


‫العنصر األساسي أحد األشكال اآلتية‪:‬‬

‫‪ )X,X2,..,Xn)€ r .1‬حيث ‪ r‬عالقة تتكون من ‪ n‬عموده‬

‫‪ Y .2‬مقارنة‪ ، X‬حيث ‪ y X‬متغيرات (أعمدة) وأن األداة ‪ 0‬أداة مقارنة تتضمن األدوات‪:‬‬

‫( <‪) => ,> ,# ,=,=< ,‬‬

‫‪ C‬مقارنة ‪ ،X‬حيث ‪ X‬متغير و ‪ C‬مقدار ثابت‪.‬‬ ‫‪.3‬‬

‫مالحظة‪:‬‬

‫تختصر القاعدة ‪ a (ᴲb (ᴲc (p (a , b , c))))ᴲ‬بالصورة ‪a , b , c (p(a , b , c))ᴲ‬‬

‫مثال (‪)5‬‬

‫‪)number‬‬

‫جد اسم الفرع ((‪ ،branch- name‬ورقم الحساب‪ )Loan- )number‬واسم الزبون (‬
‫‪ )Customer- name‬والمبلغ‬

‫(‪ )amount‬عندما يتجاوز مقدار القرض (‪ 1200 )loan‬دينار؟‬

‫الحل‪:‬‬

‫المقدار الحسابي األتي يحدد كافة الصفوف في عالقة القروض والتي يتجاوز فيها مقدار القرض‬
‫‪ 1200‬دينارا‪.‬‬

‫الحل‪:‬‬

‫{‪) b, 1, c, a> | <b, 1, c, a˃ € borrow La > 1200‬‬

‫‪132‬‬

‫مثال (‪)6‬‬
‫جد أسماء الزبائن الذين يتجاوز مقدار قرض كل منهم ‪ 1200‬دينار؟‬

‫الحل‪:‬‬

‫للتعبير عن هذا االستفسار تستخدم العالقة التالية‪:‬‬

‫{ ‪}˂ c>| <b, 1, c, a> e borrow La > 1200‬‬

‫(‪)5‬‬

‫تدريب‬

‫بناء على ما سبق‪ ،‬جد أسماء جميع الزبائن الذين يستقرضون من أحد فروع البنك المسمى‬
‫«قرع اليرموك ‪ “Yarmouk‬والواقع بالقرب من محل سكناهم‬

‫(‪)6‬‬

‫ما أسماء الزبائن الذين يستقرضون من البنك ‪ -‬فرع اليرموك أو لديهم ودائع هناك أو كليهما‬
‫(ودائع واستقراض)‪.‬‬

‫(‪)7‬‬

‫جد أسماء جميع الزبائن الذين لهم حساب في جميع الفروع في مدينة حيفا‬

‫أسئلة التقويم الذاتي (‪)2‬‬

‫‪ ،1‬ما الصفة األساسية للغة ‪QBE‬؟‬

‫‪ ،2‬ما الفرق بين اللغات التي تعتمد على الجبر العالئقي واللغات التي تعتمد على الحسابات‬
‫العالئقية للمجال ؟‬

‫‪133‬‬

‫‪ .5‬معايير التصميم‬

‫تتطلب معايير التصميم مجموعة من اإلجراءات‪ ،‬التي تلي مرحلة التصميم التمهيدي وتحديد‬
‫العالقات بين عناصر البيانات‪ ،‬مثل دراسة التكرارات المختلفة العالقات ومحاولة تقليل هذه‬
‫التكرارات (‪ )Elimination of Redundancies‬قدر اإلمكان‪ .‬فمثال‪ ،‬الشكل (‪ )1‬يبين العالقة‬
‫التي تربط العناصر ‪y z x‬‬

‫الشكل (‪ :)1‬العالقة بين العناصر ‪X، y، Z‬‬

‫من المالحظ من الشكل أن العالقة بين ‪ X‬و‪ 1‬يمكن حذفها حيث يمكن‬

‫ربط ‪ X‬مع ‪ z‬عن طريق ‪ ،y‬أي أن‪:‬‬


‫‪X →y → Z‬‬

‫ولكن يجب التأكد من أن المعنى المطلوب للعالقة ال يتغير‪.‬‬

‫ومن األمور التي يجب اتباعها جمع العالقات‪ ،‬وعندما تجمع العالقات فإن المفتاح البسيط يحتاج‬
‫إلى تحويل إلى مفتاح مركب‪ .‬وعندما تجمع العالقات فإن األمر يتطلب حذف العالقات‬
‫المتكررة‪ .‬واألمثلة التالية‪ ،‬عزيزي الدارس توضح عملية جمع العالقات‪:‬‬

‫‪134‬‬

‫الشكل (‪ :)2‬جمع العالقات‬

‫العالقة من ‪ A‬إلى ‪ C‬ومن ‪ A‬إلى ‪ D‬عالقتان غير ضروريتان ألنه يمكن االستعاضة عنهما وعند‬
‫حذفهما ينتج الشكل اآلتي‪:‬‬

‫الشكل (‪ :)3‬العالقة الجديدة‬

‫وهكذا يبين الشكل أعاله كيف استطعنا جمع عالقتين مع بعضهما البعض للحصول على عالقة‬
‫جديدة وبدون تكرارات‪ .‬بصورة عامة تتبع الخطوات التالية‪ ،‬عزيزي الدارس‪ ،‬عند تصميم‬
‫نموذج قواعد البيانات العالئقية‬

‫‪ .1‬يدرس النموذج التمهيدي لبيان العالقات المتكررة ويتم حذفها‪.‬‬

‫‪ .2‬تحدد المفاتيح الرئيسة ويمكن إعتبار عنصر البيانات الخارجة منه على األقل العالقة‬

‫‪135‬‬

‫من نوع مفتاح واحد وقد يكون هذا المفتاح بسيطا أو مركبا‪.‬‬

‫‪ .3‬تحديد الخصائص حسب المفتاح ومن خالل العالقة الخارجة من المفتاح إلى عناصر‬
‫البيانات األخرى‪.‬‬

‫‪ .4‬إن فقدت العالقة من نوع واحد بين عنصرين من عناصر البيانات وتوفرت العالقة من نوع‬
‫بينهما فإن هذان العنصران يجمعان في عنصر واحد هو المفتاح‬

‫‪ .6‬الخالصة‬

‫لقد تطرقنا‪ ،‬عزيزي الدارس‪ ،‬في هذه الوحدة إلى مكونات النظام العالئقي ومستويات بنائه مما‬
‫يساعدك على تطوير نظام قواعد بيانات للمؤسسة التي تعمل فيها‪ ،‬وتطرقت الوحدة إلى نموذج‬
‫البيانات العالئقي والتطبيع العالئقي‪.‬‬

‫واستعرضت الوحدة كذلك‪ .‬مفهوم التعامل مع البيانات والطرق المستخدمة االسترجاع البيانات‬
‫من قاعدتها‪ ،‬أو حذفها‪ ،‬أو تعديلها‪ ،‬أو إضافة سجالت جديدة إلى قاعدة البيانات والوسائل‬
‫المتاحة للتعامل مع البيانات وهي‪ :‬لغات التساؤل ‪)Query‬‬
‫(‪ )og bley Languages )Command-Oriented Query Languages‬وإعداد التقارير‪.‬‬
‫وتوضح الوحدة الجبر العالئقي والحسابات العالئقية وطرق استخدامها في إصدار التساؤالت‪.‬‬

‫وأخيرا تناولت الوحدة أسس معايير التصميم الجيد وعرض أمثلة مختارة‪.‬‬

‫‪ .7‬لمحة عن الوحدة الدراسية السادسة‬

‫تعرفت‪ ،‬عزيزي الدارس‪ ،‬من خالل الوحدة الخامسة على مكونات النظام العالئقي ومستويات‬
‫بنائه‪ ،‬ونموذج البيانات العالئقي والتطبيع العالئقي‪ .‬وعرفت كذلك أسلوب التعامل مع البيانات‪.‬‬

‫تبحث الوحدة التالية وهي السادسة من هذا المقرر التصميم المادي لقواعد البيانات حيث‬
‫تستعرض الوحدة طرق الوصول المادية والمنطقية‪ .‬وتتطرق الوحدة كذلك إلى بحث موضوع‬
‫التصميم المادي لنماذج قواعد البيانات‪ .‬ومن النماذج التي توضحها الوحدة النموذج الهرمي‪،‬‬
‫والنموذج الشبكي والنموذج العالئقي‬

‫وتبحث الوحدة السادسة‪ ،‬عزيزي الدراس‪ ،‬االعتبارات الفنية الخاصة بحجم الملفات ومساحة‬
‫التخزين‬

‫وتتطرق الوحدة‪ .‬كذلك‪ ،‬إلى وسائل قياس الزمن الالزم لتنفيذ عمليات المعالجة وإيجاد األداء‬
‫األمثل‪.‬‬

‫‪136‬‬

‫‪.9‬مسرد المصطلحات‬

‫‪ -‬التطبيع العالئقي (‪ :)Normalization‬عملية تجزئة تركيب البيانات المعقدة إلى عالقات‬


‫بسيطة وفقا إلى مجموعة من قوانين االرتباطات‪.‬‬

‫‪ -‬تعريف البيانات (‪ :)Data Definition‬إعداد قاعدة البيانات‪ ،‬أو تعريف البيانات‪ ،‬حيث تتعلق‬
‫بطريقة إنشاء صورة عامة ‪ Template‬لكل ملف من حيث اسم كل حقل‪ ،‬طول الحقل‪ ،‬ونوع‬
‫البيانات التي يحتويها الحقل‪.‬‬

‫‪ -‬الجبر العالئقي (‪ :)Relational Algebra‬لغة تعامل مع البيانات توفر مجموعة من‬


‫اإلجراءات للتعامل مع عالقة واحدة أو‬

‫عالقتين‪.‬‬

‫‪ -‬الحسابات العالئقية (‪ :)Relational Calculus‬لغة تعامل مع البيانات توفر مجموعة قياسية‬


‫من األوامر البنيوية للتعامل مع عالقة واحدة أو عالقتين‪ ،‬أو أكثر‪.‬‬

‫‪ -‬لغة التساؤل البنيوي (‪ :)SQL‬لغة بنيوية للتعريف القياسي للبيانات وكذلك لغة تعامل مع قواعد‬
‫البيانات العالئقية‪.‬‬
‫‪ -‬معالجة البيانات (‪ :)Data Manipulation‬عبارة عن طريقة التعامل مع البيانات بصورة‬
‫يسيرة‪ .‬ويتضمن التعامل مع الملفات إنشاء قواعد البيانات‪ ،‬وصيانة الملفات‪ ،‬والتساؤل‪ ،‬وإعداد‬
‫التقارير‪.‬‬

‫‪139‬‬

You might also like