78
" ﺍﶈﺎﺿﺮﺓ ﺍﻷﻭﱃ" : ﺍﻟﻤﺤﺘﻮﻯ ﺍﻟﺘﻌﺮﻳﻒ ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺃﻫﻤﻴﺘﻬﺎ ﻭﺧﺼﺎﺋﺼﻬﺎ ﻭﻣﻴﺰﺍﺗﻬﺎ(ﺃﻧﻮﺍﻋﻬﺎ ، ﻋﻴﻮﺑﻬﺎ، ﻣﺸﺎﻛﻠﻬﺎ) ﺃﻧﻈﻤﺔ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻘﻠﻴﺪﻳﺔ ﺍﻟﻘﺪﻳﻤﺔ) ﻧﻈﻢ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕDB systems ﻭﺍﻟﻔﺮﻕ ﺑﻴﻨﻬﺎ ﻭﺑﻴﻦ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻘﺪﻳﻤﺔ( ﻧﻈﺎﻡ ﺇﺩﺍﺭﺓ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ(Database Management System DBMS)

__2 database

  • Upload
    -

  • View
    328

  • Download
    1

Embed Size (px)

DESCRIPTION

database

Citation preview

Page 1: __2 database

"احملاضرة األوىل"

المحتوى:

التعريف بقواعد البيانات وأهميتها وخصائصها وميزاتها •

أنظمة الملفات التقليدية القديمة(أنواعها ، عيوبها، مشاكلها) •

) والفرق بينها وبين الملفات القديمةDB systemsنظم قواعد البيانات( •

(Database Management System DBMS)نظام إدارة قواعد البيانات •

Page 2: __2 database

مقدمة في أنظمة قواعد البيانات1.1

أصبحت قواعد البيانات و تطبيقاتها عنصرا جوهريا في تسيير أمور الحياة اليومية في المجتمع •المعاصر ، حيث أن جميع األنشطة التي يمارسها أفراد المجتمع من تسجيل مواليد ووفيات و نتائج دراسية و وثائق السفر و العمليات البنكية و غيرها الكثير يجب فيها التعامل مع احد قواعد البيانات

.كافة األنشطة السابقة تدخل في نطاق التطبيقات التقليدية لقاعدة البيانات • توجد حاليا تطبيقات متقدمة لقواعد البيانات مثل استخدام الذكاء االصطناعي و التجارة االلكترونية •

عريف قاعدة البيانات :ت -

يعرف مصطلح قواعد البيانات بأنة عبارة : عن مجموعة من األدوات(جداول ، استعالمات، عالقات......) التي تكون البيئة المناسبة لتخزين البيانات بطريقة نموذجية يتم فيها تحاشي التكرار عن طريق ترابط

الجداول بعالقات محددة حسب الحاجة . عن المعالجة الخاصة المسئولة نسبي عن البرامج باستقاللو تتميز البيانات المخزنة داخل قواعد البيانات

الهيكلة عند وإعادة ، األنظمةبها ، وتشكل االستقاللية عن البرامج نقطة هامة يستفاد منها عند تطوير . متطلبات جديدة أوبناء نظام جديدإلىالحاجة

: أهمية قواعد البيانات -

.تعتبر قواعد البيانات ذات أهمية كبيرة لتقدم أي مجتمع خصوصا ونحن نعيش عصر التقنية والمعلوماتيةوالمحافظة عليها (والتي أصبحت في عصرنا كبيرة ومتنوعة)وبالتالي فنحن بحاجة إلى آلية لتنظيم البيانات

.من التلف وضمان أمنها

سهولة إدارتها

سهولة في التخزين واإلضافة والتعديل

وسرعة في البحث واالستعالم

التحليل اإلحصائي سهولة وسرعة استخراج التقارير

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

أي إنها تمثل حالة من حاالت البيانات التي تصف موضوع حقيقي .تمثل بعض مظاهر العالم الحقيقي • تمثل مجموعة من البيانات المتالصقة منطقيا وتحتوي على معنى ضمني • يتم تصميمها و تخزين البيانات فيها من أجل غرض معين •

مميزات قواعد البيانات : -- تحاشي تكرار البيانات : بحيث يتم الوصول الى صيغة يكون فيها التكرار مسيطرا علية ويقتصر التكرار 1

على الجوانب الخاصة بأتصال البيانات بعضها ببعض .

- تجانس البيانات: ويقصد بها السيطرة على عمليات االضافة والحذف والتعديل بشكل يحافظ على بنية 2متجانسة داخل قواعد البيانات .

- قابلية التطور عند وجود متطلبات جديدة أوبناء نظام جديد . 3

- استقاللية البيانات عن البرامج . 4

Page 3: __2 database

- سهولة استرجاع البيانات بالشكل الذي تفرضة رؤية المستخدم ومتطلبات النظام. 5

مشاركة أكثر من مستخدم في الوصول الى البيانات والتعامل معها . إمكانية- 6

اتصال أكثر من نظام بقاعدة البيانات . إمكانية- 7

- السرية والتحكم . 8

بعد التحدث عن مميزات قواعد البيانات نأتي الى موضوع أنظمة الملفات التقليدية الذي كان سائدا استخدامة . قبل استخدام قواعد البيانات

(File Systems) نظم ملفات البيانات 2.1

: أنظمة الملفات التقليدية - اليدوية في الوصول الى متطلبات المؤسسات بجميع أنواعها ، فقد تم استخدام أنظمة األنظمةنظرا لقصور

الملفات التقليدية وهو نظام محوسب يعتمد على تخزين البيانات في ملفات مستقلة بحيث تكون البيانات معزولة عن بعضها البعض .

مثال على ذلك :

لدينا نظام فية مجموعة من المدرسين ومجموعة من الطالب ، وكانت بــيانات الطالب التالي (رقم الطالب ، اسم الطالب ، عمر الطالب ) . مخزنة في ملف الطالب ، وبيانات المدرسي التالي ( رقم المدرس ، اسم

المدرس ، عمر المدرس ، راتب المدرس ، .......... الــــــــخ ) مخزنة في ملف المدرسين . نالحظ من المثال أن نسترجع أسماء أردنا فإذاالسابق أن بيانات الطالب موجودة في ملف مستقل عن ملف المدرسين ،

المدرسين اللذين يدرسون طالبا واحدا أو أردنا أن نسترجع أسماء الطالب اللذين يدرسون عند مدرس معين ، سنجد صعوبة من خالل تطبيق أنظمة الملفات التقليدية وذلك بسبب عدم وجود ارتباط ( بيانات مشتركة ) بين

ملف ثالث فيه أسماء الطالب وأسماء المدرسين مما إنشاءالملفين، فيتم اللجوء هنا الى التكرار من خالل بإنشاءيعرضنا لبذل مزيد من الجهد والوقت ، وغالبا مايقع هذا الجهد على المبرمجين اللذين يقومون

البرامج التي تتعامل معها . وإنشاءالملفات

تعاني من أنها إال اليدوية ، األنظمة أن أنظمة الملفات التقليدية تشكل نقلة نوعية مقارنة مع فيهمما الشك بعض القصور ،،، ومن أهم جوانب هذه القصور مايلي :-

التكرار :-

تكرار أسماء الطالب وأسماء المدرسين في ملف ثالث إلى اضطررنانالحظ من مثال الطالب والمدرسين أننا مما يسبب تكرار غير مسوغ .

عدم توافقية البيانات : -

بسبب التكرار ( وجود نفس البيانات في أكثر من موقع ) ، فقد يتعرض النظام الى مجموعة من التعديالت ، تتم في وقت واحد مما يسبب عدم توافقية البيانات . وهذه التعديالت قد ال

مثال على ذلك :

تم حذف طالب من ملف الطالب ، ولم يحذف الملف المشترك بين الطالب والمدرسين ، فستكون بيانات إذا . اآلخر موجودة في ملف وغير موجودة في الملف حذفهالطالب اللذي تم

Page 4: __2 database

: األنظمةزيادة زمن بناء -

إلعادةالحاجة المستمرة و ملفات كثيرة لتحقيق المتطلبات المختلفة لالنظمة إنشاء إلىوذلك بسبب اللجوء بشكل شبة شمولي في حال ظهور متطلبا جديدا بسبب اعتمادية البرامج على طبيعة هيكلة البرامج والملفات

الوقت والجهد . إضاعةالملفات المستخدمة بالنظام مما يتسبب في

:أنواع الملفات -

.يتم تخزين سجالت البيانات بشكل تتابعي بنفس ترتيب وصولها للملف سجل بعد سجل :ملف تتابعي • .السترجاع البيانات تجري عملية قراءة السجالت من أول سجل إلى أخر سجل و بشكل تتابعي

يتم تخزين سجالت البيانات بشكل عشوائي مع معرفة موقع أو عنوان كل سجل :ملف عشوائي • .بيانات، و تتم قراءة البيانات مباشرة عن طريق العنوان

يستخدم فهرس أشبه بفهرس الكتاب من خالله يتم الوصول إلى أي سجل بيانات، يتم :ملف مفهرس • .عمل الفهرس من خالل احد حقول البيانات

:مشاكل الملفات -

.تكرار البيانات في أكثر من ملف مما يضيع حيز التخزين و الجهد و الوقت :تكرار البيانات •نفس المعلومة تكون مخزنه في أكثر من ملف عند تعديلها قد ال :عدم تجانس أو توافق البيانات •

.نعدلها في الملفات األخرى .عملية التعديل و الحذف تتطلب جهد و وقت و كلفة عالية:عدم المرونة • .االفتقار إلى المواصفات القياسية • معدل منخفض إلنتاج البرامج •

.مشاركة محدودة جدا بين البرامج المختلفة و ملفات البيانات • .صعوبة الصيانة أي تعديل لملف يلزم تعديل كافة البرامج الخاصة به • .امن سرية المعلومات تكون على نطاق محدود •

نظم قواعد البيانات3.1

نشأت قواعد البيانات و نظم قواعد البيانات من اجل إيجاد بديل لملفات البيانات و نظم معالجتها •بحيث تحل كافة المشكالت و القيود و الصعوبات التي يواجهها المستخدمون في تعاملهم مع

.الملفاتهي كافة البيانات المطلوب إدخالها أو االستعالم عنها ، حيث كل بيان يمثل عنصر مستقل :البيانات •

(....اسم المريض ، رقم الغرفة ، العنوان ، )مثل .هي البيانات التي تمت معالجتها و وضعها في صورة مالئمة و مفهومة للمستخدم :المعلومات •نظم قواعد البيانات هي أسلوب محدد لتنظيم البيانات يبسط كيفية إدخالها و تعديلها و استخراجها •

اما بنفس الشكل المدخل أو مجمعة في صورة إحصائية أو تقارير أو شاشات استعالم مع التحكم في .كل عملية

.تصميم قاعدة البيانات يشمل تحديد أنواع البيانات و التراكيب و القيود على كافة البيانات • .بناء قاعدة البيانات هو عملية تخزين البيانات نفسها في وسط تخزين تتحكم به نظم قواعد البيانات • .عند تصميم قاعدة بيانات يجب تحديد المستخدمين و التطبيقات الذين سيستخدمون قاعدة البيانات •

Page 5: __2 database

أمثلة نظم إدارة قواعد البيانات -

يمكن إنتاج و معالجة قاعدة البيانات باستخدام الحاسب اآللي بواسطة مجموعة من البرامج التطبيقية :مثل (DBMS)المصممة خصيصا لهذا الغرض أو بواسطة نظم إدارة قواعد البيانات

• MS-Access • Oracle • MS-Sql • Sybase • Power Builder • Informix

الفرق بين نظم قواعد البيانات ونظم الملفات التقليدية -

:يوجد العديد من الخواص الموجودة في نظم قواعد البيانات والغير متوفرة في نظم الملفات التقليدية وهي

:(Self-Description Nature)الوصف الذاتي للبيانات

تحتوى قواعد البيانات علي البيانات ووصف البيانات وذلك عن طريق إنشاء فهرس البيانات والذي يحتوي (Meta-data)على ما يسمى

:(Program/Data Insulation)الفصل بين البرامج والبيانات

ال تحتوى البرامج على وصف البيانات بل يوجد فصل بينهما مما يتيح إمكانية تعديل شكل البيانات بدون .الحاجة لتعديل البرامج

Data Sharing and Multi-user) المشاركة في البيانات والتعامل مع العديد من المستخدمينsystem):

تتيح قواعد البيانات المشاركة في استخدام البيانات وكذلك تعطي إمكانية تعامل العديد من المستخدمين مع نفس قواعد البيانات في نفس الوقت بدون مشاكل

إمكانية التقليل إلى حد كبير من تكرار البيانات والفهرسة

مما يتيح سهولة البحث والتوفير في المساحة التي تشغلها البيانات في الذاكرة

Page 6: __2 database

(Database Management System DBMS) نظام إدارة قواعد البيانات 4.1

.هو مجموعة من البرامج التي يمكن استخدامها في إنشاء و معالجة قاعدة بيانات :نظام إدارة قواعد البيانات

.ويمكن لنا أن تصمم قاعدة بيانات واحدة تستخدم مع العديد من البرامج والتطبيقات

نظم إدارة قواعد البيانات بنظم قواعد البيانات +تسمى قواعد البيانات

)نظم إدارة قواعد البيانات ← نظم قواعد البيانات +قواعد البيانات (

(Database (DB) + DBMS → Database System (DBS))

Page 7: __2 database
Page 8: __2 database

مكونات نظام قاعدة البيانات: -

يتكون نظام قاعدة البيانات من أربعة مكونات أساسية هي:

.البيانات: 1

تتوافر قواعد البيانات على الحاسبات الصغيرة والشخصية كما تتوافر على الحاسبات الكبيرة وتعتمد كفاءة النظام على قدرة وإمكانيات الكيان اآللي للحاسب، فالحاسبات الشخصية توفر قاعدة بيانات لمستخدم واحد بينما الحاسبات الكبيرة توفر قاعدة بيانات لعدد من المستخدمين يشاركون على البيانات المتاحة،يجب أن

تتصف البيانات بالتكاملية و عدم التكرارية وإمكانية المشاركة عليها،و عموما دون بيانات دقيقة ومنطقية وصحيحة فال معنى لقاعدة البيانات.

.المعدات: 2

ترتكن قواعد البيانات على األقراص المغناطيسية ارتكانا كبيرا عالوة على وحدات من الشرائط الكثيفة احتياطية لتخزين البيانات للظروف الطارئة. BACK UPكوحدات

: (نظم إدارة قواعد البيانات).البرامج3

وهي الطبقة الوسيطة بين البيانات المخزنة في الملفات أعلى األقراص و بين مستخدمي قاعدة البيانات، وهو عبارة عن برنامج بالغ التعقيد باهظ الثمن DBMSوأبرز هذه البرامج برنامج مدير قاعدة البيانات

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

.مستخدمو قواعد البيانات: 4

وينقسمون إلى ثالث فئات:

• مخططو البرامج الذين يكتب برامجهم و يستخدمون إمكانيات قاعدة البيانات.

• مختصو قواعد البيانات ، و هم المسئولون عن صيانة و تشغيل قاعدة البيانات.

• المستخدمون لقواعد البيانات الذين يتعاملون مع قاعدة البيانات عبر النهايات الطرفية.

:(DBA)مدير قواعد البيانات

.يقوم بإدارة قواعد البيانات والتحكم في صالحيات العمل ومراقبة النظام وتحسين أداء قواعد البيانات

:(DB Designer)مصمم قواعد البيانات

.يقوم بتصميم قواعد البيانات ليتم إنشائها وبنائها بطريقة ذات كفاءة عالية طبقا لمتطلبات المستخدم

Page 9: __2 database

:(End User)مستخدم قواعد البيانات

بعض المستخدمين يكون لديهم الخبرة الكافية إلعداد االستفسارات المطلوبة بلغة االستفسارات، وبعض .المستخدمين ليس لديهم الخبرة فيتم إنشاء برامج خاصة لهم يقومون بتشغيلها للحصول على المطلوب

:(Analyst & Programmer)محلل النظم ومبرمج النظم

.يقوم بتحديد متطلبات المستخدم وتطوير هذه المواصفات المطلوبة لتحديد المطلوب من قواعد البيانات-

بينما يقوم مبرمج النظم بتنفيذ المتطلبات إلنشاء التطبيقات المناسبة-

هندسة النظم هي عملية تحليل النظام باإلضافة لعملية إنشاء البرامج التطبيقية-

مهندس النظم) ←مبرمج النظم +محلل النظم (

( Analyst + Programmer → Software Engineer)

متى ال نستخدم قواعد البيانات؟

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

أشخاص يتعاملون مع قواعد البيانات بطريقة غير مباشرة

:هؤالء ال يهتمون بقواعد البيانات ذاتها ولكنهم يقدمون لمستخدم قواعد البيانات البيئة الالزمة لهم وهم

:مصمموا ومنفذوا نظم إدارة قواعد البيانات

.)ms-accessيقومون بتصميم وتنفيذ نظم إدارة قواعد البيانات نفسها(

:مطوروا البرامج المساعدة

يقومون بتطوير البرامج المساعدة مثل برامج تحليل النظم، تصميم النظم، إنشاء وتطوير التطبيقات، إنشاء .التقارير وواجهات التطبيق

:المشغلون وأفراد الصيانة

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

Page 10: __2 database

بعنوان "احملاضرة الثانية

هيكلية نظم إدارة قواعد البيانات

Architecture of DBMS

المحتوى:

أنواع نظم إدارة قواعد البيانات •

أنواع البيانات •

(DB System)هيكلية نظم قواعد البيانات •

(Data Independence)استقاللية البيانات •

لغات نظم إدارة قواعد البيانات •

Page 11: __2 database

: أنواع نظم إدارة قواعد البيانات.2.1 . هناك ثالثة أنواع شائعة من نظم إدارة قواعد البيانات وهي

Hierarchical DBMS نظم إدارة قواعد البيانات الهرمية Network DBMS نظم إدارة قواعد البيانات الشبكية Relational DBMS نظم إدارة قواعد البيانات العالئقية

: Hierarchical DBMS نظم إدارة قواعد البيانات الهرمية-

تقوم بتنظيم البيانات على شكل هرمي Hierarchical DBMS قواعد البيانات الهرمية أو النظم الهرميةأو علي شكل شجرة مقلوبة أي جذرها في القمة وتخرج منها الفروع . شأن هذه التركيبة شأن شجرة األسرة

وهذا شكل . فلها جد واحد و الجد له عدة أبناء و األبناء هم أباء األحفاد ويستحيل وجود حفيد له اكثر من أب توضيحي ليوضح لك النظم الهرمية وتفرعاتها

والملفات الهرمية هي ملفات لها نفس البناء الشجري ولها نفس العالقات بين السجالت مثاال لبعض أنواع السجالت التي يمكن أن تتواجد في تكوين هرمي فهناك سجالت مبيعات متعددة لكل بائع حيث يوجد سجل

إحصائيات واحد لكل عملية جارية كما يوجد أيضا سجالت عديدة للعمالء لكل بائع حيث أن كل بائع له عمالء محددين ويمكن أن يكون لكل عميل عدة سجالت حسابات مدينين سجل واحد لكل عملية شراء لم يتم تسديد

. ثمنها

ومن المهم أن نفهم انه ليس من الضروري أن تتصل كل الملفات الموجودة في قاعدة البيانات مع بعضها . . وكل ما هو مطلوب أن تتصل الملفات التي تستخدم كمجموعة مع بعضها في التطبيقات

عبارة عن مجموعة من Set وسجالت المبيعات السابقة لها مثل هذه العالقة المنطقية تسمى فئة . و الفئة

. السجالت متصلة مع بعضها منطقيا

. وعلى هذا تصبح قاعدة البيانات الهرمية عبارة عن تجميع لملفات وفئات ملفات متصلة مع بعضها منطقيا

التكوين الهرمي وهو من اكبر نظم إدارة IBM الذي أعدته شركة IMS ويستخدم نظام إدارة المعلوماتالموجودة حاليا واعقدها . ولهذا السبب فأنة يتطلب مستوى رفيع من الخبرة DBMS قواعد البيانات

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

. االتصاالت

: Network DBMS نظم إدارة قواعد البيانات الشبكيةرغم أن كلمة الشبكة استخدمت كثيرا في شبكات الحاسب ومعالجة البيانات فقد وجد من األفضل استخدام

. رغم أن مسمى قواعد البيانات الشبكية الزال شائع االستخدام Plex مسمى قواعد البيانات الضفيرة

Page 12: __2 database

ويتغلب هيكل بيانات التركيب الشبكي على معوقات التكوين الهرمي الذي ال يسمح لالبن أن يكون له اكثر من ) عائالن هما 4أب واحد ويظهر ذلك في الشكل التوضيحي للتكوين الشبكي حيث نالحظ أن للسجل رقم (

. (3)) و السجل رقم 2السجل رقم (

ومثل هذا النوع من قواعد البيانات حل كثيرا من مشاكل العالقات فإذا فرضنا أن هناك اكثر من مورد يورد قطع غيار فإن كل مورد قادر على توريد اكثر من نوعية قطعة غيار وبالتالي فإن كل قطعة غيار يوردها اكثر

من مورد مما يحتم لفهم المثال عرض العالقة بين قطعة الغيار و الموردون على النحو الموضح في الشكل . التالي

. ويوضحها بدرجة اكبر الشكل التالي

Page 13: __2 database

. ولتبسيط هذه العالقة يجب إعادة رسم العالقات في االتجاهين كما هو موضح في الشكل التالي

ق) ترمز إلى قطع الغيار(

م) ترمز للمورد(

ومن هذا الشكل يتضح لنا بما ال يقبل الشك أن تبسيط العالقة الشبكية إلى عالقة هرمية أوجد تعقيدات اكثر

. حيث حولها إلى نوعين من شجرة العالقات وفي هذا جهد إضافي في التنفيذ

إن ما عرضنا حول العالقات الشجرية ( الهرمية ) وقواعد البيانات الشبكية يؤكد أن كالهما يمكن تحقيقه وان كانت بعض حزم إدارة قواعد البيانات يمكنها التعامل فقط من الشكل الشجري كما أن البعض اآلخر يمكنه

التعامل مع النوع الشبكي كما أن هناك تنوع من برامج إدارة قواعد البيانات فبعض برامج إدارة قواعد . البيانات الهرمية ال تتعامل مع العالقات البسيطة و البعض يمكنه التعامل مع العالقات المعقدة

واوجه التشابه بين نظم قواعد البيانات الشبكية و نظم قواعد البيانات الهرمية إنها تتطلب إلى ذاكرات ذات

Page 14: __2 database

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

. توفر بناء على طريقة تنظيم البيانات التي تتبعها مساحات كبيرة من وسائط تخزين البيانات Relational DBMS نظم إدارة قواعد البيانات العالئقية-

أثبتت األيام صحة القول الشائع أن األبسط هو األجمل واألكفأ . فكلما كان سكنك بسيط وكلما عشت في بساطة و بعدت عنك المشاكل وكلما كانت اآللة بسيطة سهلت إدارتها وصيانتها . وهذا ما أكده التعامل مع قواعد

البيانات الهرمية و الشبكية التي تعقدت ملفاتها وأساليب إدارتها لدرجة كادت تؤدي بها كلما أضيفت تطبيقات . جديدة أو متطلبات جديدة تحتاج مؤشرات جديدة مما ضخم منها وعقدها : وهذه المشاكل كانت المنطلق للبحث عن حلول تحقق جملة أهداف منها

. يمكن فهم قاعدة البيانات لمن لم يدرسوا علوم الحاسب .1 . يمكن تعديل وإضافة وحذف بيانات دون تغيير المخطط المنطقي للقاعدة .2 . تتيح للمستخدم اعلي درجة من المرونة في التعامل مع البيانات .3

أسلوبا لتنظيم وفرز بيانات قواعد البيانات . وهي قواعد البيانات E.E.Codd أستحدث1970في عام . العالئقية

أن هذا ال يتحقق أال برص البيانات على هيئة جداول الن اإلنسان E.E.Codd وقد وجد العالم األمريكي . تعود على الجداول منذ طفولته بداية من جدول الحصص إلى جدول الضرب إلى كشف األسماء و الدرجات

وهذه النظم تتعامل مع اكثر من ملف في نفس الوقت وتعامل البيانات داخل الملف كما لو كانت جدوال مكونا وتسمى Fields وتمثل أعمدة الجدول حقول قاعدة البيانات Relation من صفوف و أعمدة ويسمى عالقة

و النظام العالئقي Tuples بينما تمثل صفوفها سجالت قاعدة البيانات وتسمى Attributes أيضاRelation يقوم بربط البيانات بين العالقات بناء على حقل مشترك بينهما .

قية في الرياضيات وقد بدأ تطبيقها على الحاسبات الكبيرة ئو النظم العالئقية قامت أساسا علي النظريات العال

مثل PCs ثم ظهرت عدة نظم عالئقية على الحاسبات الشخصية SQL . ORACLE أوال مثل . DBaseII . DBaseIII . DBaseIII+ . DBaseIV . FoxBase . FoxProبرامج

ويمكن القول عن هذا النوع من قواعد البيانات مايلي

تنظيم البيانات في قواعد البيانات العالئقية في جداول ذات بعدين ويمكن اعتبار كل جدول ملف ويستخدم . الن محتويات الملف مرتبة على محورين س ، ص فقط Flat File مصطلح ملف مسطح

نشأت مجموعة جديدة من المصطلحات تستخدم في وصف قواعد البيانات العالئقية هذه المصطلحات التي تستخدم في وصف قواعد البيانات الهرمية أو الشبكية ففي النموذج العالئقي يستخدم مصطلح نموذج بيانات

بدال من المخطط Relational Data Submodel or View عالقية جزئي أو رؤية لبيانات عالقية . مناسب فهو لجزء المستفيد من قاعدة البيانات View ومصطلح رؤية Subschema الجزئي

كما استخدمت باإلضافة إلى ذلك أسماء لوصف مكونات الملفات المسطحة ويوضح الجدول التالي عينة لملف والى الصفوف بأنها مسطح أفقي و الجدول عبارة عن ( ويشار إلى أعمدة الملف بأنها مسطح رأسي ( نطاق

تجميع من المسطحات األفقية خاصة بموضوع معين و الجدول خاص بالبائعين ويمكن استخدامه في توفير . أسمائهم ومبيعاتهم منذ بداية العام

Page 15: __2 database

وقد وضحنا المشاكل السابق ذكرها نظرا ألنه أمكن تجنبها في قواعد البيانات العالئقية فالتكوين العالئقي بدال من استخدامه لعالقات Implicit Relationshipsتكوين منطقي بحيث يستخدم عالقات ضمنية

. وهي التي تستخدم في كل من قواعد البيانات الهرمية و الشبكية Explicit Relationships صريحةوحتى نوضح مفهوم العالقات الضمنية بين ملفات قاعدة البيانات العالئقية وكيفية استخدامها في تجميع

البيانات مع بعضها من ملفات منفصلة عن بعضها نفرض أن لدينا جدولين في قاعدة البيانات جدول [ أ ] يعرف منطقة المبيعات لكل بائع باستخدام رقم البائع كحقل مفتاحي و الجدول [ ب [وجدول [ ب ] . جدول [ أ

] يحدد اسم كل بائع و الجدوالن منفصالن عن بعضهما أي ال يوجد أي اتصال طبيعي بينهما وتحدد العالقة . ضمنيا وذلك بإدخال حقل رقم البائع في كل من الجدولين

أنواع البيانات: ٢.٢

يمكن تعريف البيانات أو المعطيات على أنها سلسلة غير مترابطة من الحقائق الموضوعية التي يمكن الحصول عليها عن طريق المالحظة أو عن طريق البحث والتسجيل

وبشكل عام فالبيانات هي مجموعة من الحروف أوالكلمات أو األرقام أوالرموز أوالصور (الخام) المتعلقة فهذه الجملة مكونة من حروف وأرقام makkah 1433 الجملة التالية :بموضوع معين، ومثال ذلك

ومعالجة هذه الحروف واألرقام أعطانا معلومة مفهومة من قبلنا علما بأن الحاسوب يقوم بتحويل جميع هذه .Unicod وذلك بمساعدة الجدول العالمي (...000110111)البيانات أيا كان نوعها إلى النظام الثنائي

تتكون البيانات مجموعة من المواد األولية(الخام) التي، في صورتها الحالية، ال يمكن االستفادة منها ولكن .عن طريق المعالجة بالكمبيوتر تتحصل المعلومة

Page 16: __2 database

يتم تحويل البيانات إلى معلومات عن طريق المكونات العامة للحاسب حيث تقوم وحدات اإلدخال بإدخال البيانات وتقوم وحدات التخزين المؤقتة بتجهيزها للمعالجة ومن ثم يقوم المعالج بدوره بتحويل البيانات إلى

المعلومات المطلوبة ويجب أن ال ننسى أن هذه المكونات تعمل بشكل متزامن مع البرمجيات الالزمة التي نقوم نحن كمبرمجين بتصميمها مثال توضيحي: نستطيع تصميم برنامج بسيط لحساب مساحة مستطيل وعند

البيانات األولية)و )تشغيل هذا البرنامج يطلب منا إدخال عن طريق لوحة المفاتيح طول و عرض المستطيل .يقوم المعالج بحساب النتيجة (المعلومات المطلوب) على الشاشة

:أنواع البيانات

أنواع: األرقام ، الحروف ، الرموز، األصوات ، الصور5يمكن لنا تصنيف البيانات ضمن

:تمثيل البيانات

false or true ويأخذ إحدى الحالتين إما :(Boolean)منطقي

:النوع الرقم

جميع ما يخص األرقام الصحيحة والعشرية

integer :بايت أي نستطيع تمثيل األرقام 2ويحجز مساحة في الذاكرة وقدرها لتمثيل األعداد الصحيحة .32764 إلى +32764من المجال -

:long بايت 4لتمثيل األعداد الصحيحة ويحجز مساحة في الذاكرة وقدرها

Float: بايت4لتمثيل األعداد العشرية ويحجز مساحة في الذاكرة وقدرها .

: double بايت8لتمثيل األعداد العشرية ويحجز مساحة وقدرها .

:النوع النصي

:كل ما يخص النصوص ويجب التنويه إلى أن النص ممكن أن يحتوي على أرقام أو رموز مثال [email protected]

: char مخصص لتخزين حرف واحد

:string لتخزين كلمات أو جمل قصيرة

enumerations تحتوي على مجموعة من العناصر تمثل حاالت وقيم مختلفة داخل البرنامج .

هو استخدامها في حالة لموديالت السيارات ، لنفترض لدينا ثالث انواع من Enum ابسط مثال على ال في 2 و 1 ، 0، لو كنا نقوم بتخزينهم على شكل قيم FIAT واخيرا Toyota ،Nissanالسيارات ،

اسمها والذي إدخال رقم كل سيارة ، بل يمكنه إدخالقاعدة البيانات مثال ، فإننا ال نريد ان نجبر المبرمج على . سيتم ترجمته الحقا إلى الرقم المناظر له

: النوع الزمني

المعني بالتعبير عن الوقت والتاريخ

Page 17: __2 database

:date مخصص لتخزين بيانات من النوع الزمني.

(DBMS Architecture) : هيكلية نظم إدارة قواعد البيانات 3.2

: (Centralized system )النظام المركزي .١

وفيه تتواجد جميع وظائف قواعد البيانات والنظم التطبيقية وواجهات التعامل مع المستخدم وغيرها من .البرامج في نظام واحد مركزي

:(Client-Server)نظام الخادم ـ العميل .٢

النظم التطبيقية وواجهات التعامل مع المستخدم (يكون عادة عبارة عن حاسب شخصي)وفيه يحتوي العميل وفي بعض النظم الحديثة قد يقوم العميل ببعض وظائف قواعد )بينما يقوم الخادم بوظائف قواعد البيانات

(البيانات

(Instances)حاالت قواعد البيانات -

هي البيانات المتواجدة داخل قواعد البيانات في لحظة معينة تسمي “حالة قواعد البيانات أو الوضع الحالي (DB State or Current Set of Occurrence or Instance)لقواعد البيانات

يتم إنشاء الوضع االبتدائي لها عند إدخال البيانات ألول مرة ثم يتغير وضعها عند إجراء العمليات • حذف – تعديل) –المختلفة على البيانات (إضافة

“Extension” تسمى حالة البيانات هذه •

(DB System) هيكلية نظم قواعد البيانات 4.2

تحتوي نظم قواعد البيانات على ثالث مستويات من المخططات وذلك لدعم الخواص التي يجب أن • :تقدمها نظم إدارة قواعد البيانات

(The External or View Level)مستوى البيانات الخارجي .١ (The Conceptual Level)المستوى المفاهيمي .٢ (Internal Level)المستوي الداخلي .٣

:The External or View Levelمستوى البيانات الخارجي .١

هو الجزء الذي يستهدف المستخدمين العاملين على برامج تطبيقية إلدخال البيانات

أو استدعائها من قاعدة البيانات

The Conceptual Level:المستوى المفاهيمي .٢

– التي تصف بناء البيانات في قواعد البيانات Conceptual Schemaيحتوي علي - نموذج البيانات المنطقي

يقوم بإخفاء التفاصيل الخاصة بالبناء الفعلي للبيانات - يقوم بوصف الكيانات، نوع البيانات، العالقات، القيود و كذلك العمليات التي يعرفها المستخدم -

Page 18: __2 database

Representation data modelأو Conceptual data modelيمكن استخدام - في بناء هذا المستوي و يطلق عليه مرحلة التصميم

:(Internal Level)المستوى الداخلي .3

وهو يحتوي علي المخطط الداخلي والذي يقوم بوصف التخزين الفعلي لقواعد البيانات وعملية إنشاء قاعدة - .البيانات

مرتبط باألجهزة و البرامج -

الذي يركز على تمثيل (Physical Data Model)هذا المخطط الداخلي يتم وصفه باستخدام نموذج - .وإنشاء قواعد البيانات المصممة على جهاز الحاسب و يطلق عليه مرحلة التنفيذ

(The Three-Schema Architecture):شكل يوضح الثالث مستويات لمخططات قواعد البيانات

(Data Independence) استقاللية البيانات 5.2

هي المقدرة علي تغيير مخطط البيانات في مستوي معين بدون وجوب تغير المخطط في المستويات • األخرى

بين (mapping)عند تغيير المخطط في مستوى معين فإن الذي يتغير هو طرق التحويل • المستويات

:يوجد نوعان من استقاللية البيانات و هما •o االستقالل المنطقي(Logical Data Independence) o االستقالل الفعلي(Physical Data Independence)

:(Logical Data Independence)االستقالل المنطقي •

Page 19: __2 database

بدون (Conceptual Level)هي المقدرة علي تغيير مخطط البيانات في المستوي الثاني •وكذلك بدون تغيير البرامج (External Level)الحاجة إلى تغيير المخطط في المستوي الثالث

التطبيقيةيكون التغيير في المستوي الثاني لكي تستوعب قواعد البيانات التغيرات التي قد تحدث في المخطط •

نتيجة زيادة أو حذف عناصر بياناتالتطبيقات التي تتعامل مع العناصر التي تغيرت هي فقط التي يتم تعديلها أما باقي التطبيقات فال •

تتغير

:(Physical Data Independence)االستقالل الفعلي •بدون الحاجة إلى ((Internal Levelهي المقدرة علي تغيير مخطط البيانات في المستوي األول •

(Conceptual Level)تغير المخطط في المستوي الثاني بسبب التغيرات التي قد تحدث نتيجة (Internal Level)يكون التغيير في المستوي األول •

استخدام أساليب جديدة في تنظيم الملفات من أجل تحسين أداء النظامالتطبيقات التي تتعامل مع العناصر التي تغيرت هي فقط التي يتم تعديلها أما باقي التطبيقات فال •

تتغير

لغات نظم إدارة قواعد البيانات6.2

:(Data Definition Language DDL)لغة وصف البيانات •

وكذلك مصمم قواعد البيانات لتعريف بناء قواعد البيانات (DBA)تستخدم بواسطة مدير قواعد البيانات -

وذلك لترجمة هذه اللغة وإنتاج برامج يتم تنفيذها لتقوم بإنشاء (DDL Compiler)يوجد مترجم للغة التعريف - .(DB Catalog)مخططات البيانات وتخزينها داخل فهرس قواعد البيانات

:(View Definition Language VDL)لغة تعريف األشكال •

تستخدم في بعض نظم إدارة قواعد البيانات التي تستخدم هيكل قواعد البيانات الثالثي بطريقة حقيقية وذلك GUIالرسومية Formsالنماذج (External Level)لتعريف مخطط البيانات في المستوي الخارجي

menuالتفاعل من خالل القوائم

:(Data Manipulation Language DML )لغة التعامل مع البيانات •

.تستخدم السترجاع وإدخال وحذف وتعديل البيانات

مالحظات على لغات قواعد البيانات •

DDL,VDL,DMLنظم إدارة قواعد البيانات الحالية تستخدم لغة واحدة شاملة تحتوي علي لغات -

هي لغة تستخدم مع نموذج البيانات العالئقي و تحتوي علي لغات (SQL)لغة االستفسار الهيكلية -DDL,VDL,DML وكذلك الجمل الخاصة بتعديل مخطط البيانات

بيئة نظم قواعد البيانات

نظم إدارة قواعد البيانات هي نظم معقدة وتحتوي على العديد من الوحدات التي تدعم ما يحتاجه المستخدم من :وظائف ومنها

:(DDL Compiler)مترجم لغة تعريف البيانات •

لترجمة تعريف مخطط البيانات والتأكد من صحته ثم تخزين هذا التعريف داخل فهرس النظام

Page 20: __2 database

:(Run-Time DB processor)منفذ قواعد البيانات •

يقوم بالتعامل مع قواعد البيانات عند تشغيل أي أمر خاص بقواعد البيانات

:(Query Compiler)مترجم لغة االستفسارات •

يتعامل مع االستفسارات عن طريق فهم األوامر وترجمتها ثم إرسالها إلى منفذ قواعد البيانات لتنفيذها

خدمات تقدمها نظم إدارة قواعد البيانات

تقوم بعض نظم إدارة قواعد البيانات بتقديم خدمات إضافية تساعد المستخدم في إدارة نظم قواعد البيانات :مثل

:(Loading)تحميل البيانات •

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

المساعدة والتي تقوم بتحويل البيانات من الشكل القديم التي كانت عليه الى الشكل الجديد و المالئم لقواعد البيانات المصممة حديثا

:(Backup)النسخ االحتياطية •

عملية إنشاء نسخ احتياطية للبيانات الموجودة بهدف تأمين البيانات من األعطال التي قد تؤدي لضياعها

:(File reorganization)تنظيم الملفات •

عملية إعادة تنظيم الملفات علي أسطوانات التخزين بهدف تحسين أداء النظام

:(Performance monitoring)مراقبة األداء •

اإلحصائيات الالزمة (DBA)تستخدم لمراقبة وتسجيل أداء قواعد البيانات وبذلك تقدم لمدير قواعد البيانات (بعض النظم تقدم أيضا حلول لرفع األداء)لتحليل أداء النظام ودراسة كيفية تحسينه

أدوات تدعم عمل مستخدم قواعد البيانات

• CASE tools (أدوات مساعدة هندسة النظم):

تستخدم في مراحل تصميم قواعد البيانات ويوجد العديد من األدوات التي تقوم بتنفيذ الكثير من المراحل - .التي يمر بها تصميم النظام

:أدوات تطوير النظم •

تستخدم عند تطوير نظم قواعد البيانات سواء أكانت لتصميم قواعد البيانات أو واجهات التعامل مع المستخدم .أو تعديل وإنشاء االستفسارات علي البيانات وكذلك أثناء إنشاء البرامج التطبيقية

:برامج االتصال عبر الشبكات •

وتستخدم لتقديم إمكانية التعامل مع قواعد البيانات عبر الشبكات

Page 21: __2 database

بعنوان "احملاضرة الثالثة

أساليب التوصيل

احملتوى:

تقنيات الوصول إىل قواعد البيانات •

UDA أنظمة •

Page 22: __2 database

تقنيات الوصول إلى قواعد البيانات1.3

وهي عبارة عن مكتبة تحتوي ActiveX Data Objects هي اختصار لجملة ADO كلمة SQL أو Oracle أو Access على كل ما نحتاجه للوصول إلى قاعدة البيانات، سواء كانت

Server ..

و ... و ... الخ، ولكننا ال نعلم ما هي هذه ODBC و DAO و ADO دائما ما نسمع عن الكلمات؟ وما الفروق بينها؟

:فيما يلي سنحاول أن نلقي نظرة بسيطة على كل هذه الكلمات وتاريخ نشأتها

جميعنا نعرف أنه يوجد العديد من البرامج التي يمكننا أن نستخدمها في بناء قاعدة بيانات، على الخ، وقديما كان لزاما ... / SQL Server / FoxPro Database / Oracle DB سبيل المثال

على المبرمجين أن يمتلكوا نسخة من البرنامج الخاص ببناء قاعدة البيانات، وكذلك هو الحال بالنسبة للمستخدمين للبرنامج، ألن تقنية التعامل مع قواعد البيانات وقتها كان يتم من خالل

.الخاصة بهذا البرنامج، والتي تتفاعل مباشرة معه APIsاستخدام الـ APIs وباإلضافة إلى ذلك كانت هناك مشكلة أخرى، وهي أن لكل برنامج من هذه البرامج الـ

الخاصة بالبرامج األخرى، وبالتالي فإن APIs الخاص بها، والتي تختلف عن غيرها من الـليس بالضرورة أن يجيد التعامل مع SQL Server DB APIs الشخص الذي يجبد التعامل مع

. Oracle OCI APIs الـ

؟APIما هو

أي بالعربي (واجهة برمجة Application Programming Interface االختصار يعني )التطبيقات

هي عبارة عن (غالف) لتغليف APIولكن هذه الترجمة الحرفية ال تعبر عن المعنى الصحيح ، وهذا كمفهوم ولكن كيف يطبق في البرمجة . شئ صعب من الداخل وجعله سهل من الخارج

!!!؟

يجب أن يبدأ بـــ cأي برنامج في لغة

#include <iostream> #include <stdlib.h>

الجاهزة والمعنية بالتعامل مع وحدات اإلدخال واإلخراج API أحد دوال iostream حيث أن وإذا ما اتضطلعنا على محتوى هذه الدالة فسنجد عشرات األسطر البرمجية والتي تم تغليفها

وجعلها سهلة اإلستعمال وذلك من خالل استدعائها .

برامج 3تخيل معي أن لدينا شركة تخزن بيانات المبيعات والتسويق، وبيانات األفراد باستخدام

، ولكي يتم االتصال بقاعدة Oracle و SQL Server و FoxPro مختلفة من قواعد البياناتبيانات من هذه القواعد يجب أن تملك البرنامج الخاص ببناء هذه القاعدة، كما أنه يجب أن يكون

المبرمج على دراية تامة بكيفية التعامل مع هذه البرامج المختلفة، وكيفية كتابة الكود لكل منها ...

Page 23: __2 database

.. وال يخفى ما في ذلك من الصعوبة والكلفة العالية

Universal وسرعان ما بدأت تظهر الحلول لهذه المشكلة، فظهر مفهوم قاعدة البيانات العامةDatabaseوالتي تعني تجميع كل البيانات في نوع واحد من قواعد البيانات، وليكن على سبيل المثال ،

SQL Server ..

Page 24: __2 database

ورغم أن هذا الحل يعتبر من الناحية النظرية ممكنا، إال أنه يظل من الناحية العلمية مقيدا، وال يصلح لكل ..الحاالت

وتعني الوصول للبيانات العامة، اختصارا لجملة UDA ظهرت بعد ذلك طريقة أخرى ناجحة وهيUniversal Data Access وبدال من تجميع البيانات في قاعدة بيانات واحدة، تظل البيانات في ،أماكنها، ويتم إضافة مستوى جديد، مهمته التواصل بين المستخدم والبرامج المصدرية لقواعد البيانات

المختلفة، بحيث يكون كل تعامل المستخدم مع هذا المستوى، والذي يحمل على عاتقه التعامل مع مختلف .األنواع من قواعد البيانات

Page 25: __2 database

Resized to 90% (was 678 x 650) - Click image to enlarge

UDAنظمةأ2.3

اختصارا لجملة ODBC طرحت شركة مايكروسوفت نظام وصول للبيانات العامة يسمى1992في عام Open DataBase Connectivity وكان بداية جيدة إلرساء مفهوم ،UDA ولن نخوض هنا في ،

تفاصيل هذا النظام، ولكن ما يهمنا هو أن البرمجة ال زالت صعبة ومعقدة، ولذلك طرحت مايكروسوفت النظام وكان هو اآلخر تقدما جيدا في مجال الوصول Data Access Objectاختصارا لجملة DAO المسمى

اختصارا ADO لقواعد البيانات، واستكماال لمسيرة التقدم والتطوير طرحت شركة مايكروسوفت بعدها نظام، والذي قام بتسهيل عملية التعامل مع قواعد البيانات بشكل ActiveX Database Object لجملة

:كبير، وأصبح الشكل النهائي للوصول لقاعدة البيانات كالتالي

Page 26: __2 database

، ورغم ADO.Net جدير بالذكر أنه ظهرت تقنية جديدة كليا في الوصول إلى البيانات، وذلك من خالل الـألنها ADO.Net لفترة طويلة سيكون لديهم األفضلية في تعلم الـ ADO ذلك فإن الذين تعاملوا مع مكتبة الـ

.. تعتمد على نفس المفاهيم تقريبا

Page 27: __2 database

بعنوان "احملاضرة الرابعة

قواعد البيانات العالئقية

Relational Databases

احملتوى:

مبادئ قواعد البيانات العالئقية •

قيةئمفاهيم أساسية في قواعد البيانات العال •

(درجاتها ، أنواعها، قيودها) Relationshipsالعالقات •

الكيانات وأنواعها وطرق تمثيلها •

Page 28: __2 database

مبادئ قواعد البيانات العالئقية1.4

أصبحت هي النوع (Relational Database Management System (RDMS))نظرا لقوة - الوحيد المستخدم حاليا، لما تقدمه من قوه و كفاءة و أدوات مساعدة للمبرمجين

تعتمد قاعدة البيانات العالئقية في تصميمها على المفاهيم الطبيعية الموجودة في بيانات نموذج العالم - .المصغر الذي تمثله قاعدة البيانات

أساس قواعد البيانات العالئقية هو العالقات الرابطة بين البيانات و التي تعتبر الجزء األهم و الذي يمثل - .اغلب التعامالت مع قاعدة البيانات

)قاعدة بيانات لمستشفى(نموذج قاعدة بيانات بسيطة :مثال

هو نموذج يبين لنا صورة كاملة لنظام المعلومات و (Database Model)نموذج قاعدة البيانات - .الوظائف و القيود الموجودة داخل قاعدة البيانات و يركز على التكامل بين البيانات

لتعريف قاعدة البيانات يجب تحديد تركيب السجالت التي يمكن تخزينها في كل ملف و تحديد األنواع - .المختلفة لعناصر البيانات

كل سجل يحتوي على بيانات تمثل مثال رقم المريض و اسم المريض و الطبيب و الجنس و رقم الغرفة - (المثال السابق)

-:يجب أن نحدد نوع البيانات لكل عنصر بيانات داخل السجل مثل -

o سلسلة حروف اسم المريض o يكون رقم صحيحرقم المريض

يجب أن يكون هنالك رابط بين السجالت المختلفة حيث نجد معلومات عن مريض محدد مثال احمد في ملف - .“يعالج بواسطة”و “دواء”و معلومات عن الدواء و من يعالجه في ملفي “مريض”

Page 29: __2 database

الكثير من العالقات في قواعد البيانات تربط انواع مختلفة من السجالت مع بعضها البعض و يطلق عليها - . “ العالقات الرابطة “

مفاهيم أساسية في قواعد البيانات العالئقية2.4

هي أي حدوث للبيانات التي تصف أي كائن : “Data”البيانات -

هي البيانات التي تصف البيانات المخزنة وصفا دقيقا و يطلق عليها : “Metadata” البيانات الوصفية -Data about data

العالقة/الكينونة نموذج

(high-level conceptual data model)البيانات، بناء بعرض يقوم المستوي عالي نموذج هو (Conceptual Model) األولى للنموذج المفاهيمي التصميم مرحلة أثناء النموذج هذا استخدام ويتم

البيانات قاعدة مخطط بتصميم نقوم طريقة عن ، والذيالبيانات لقاعدة أألولي النموذج ذلك عن وينتج،database schema ،سهلة رسومية إشكال باستخدام عليها المطلوبة والقيود بناء البيانات تمثيل ويتم

.ومحددة

هي وحدة معلومات تمثل فئة أو مجموعة من األشياء أو الكائنات أو األنشطة، هذه : “Entity” الكينونة -تصفها و تخصصها و تعبر عن مجموعة الكائنات التي تنتمي إليها، هذه (خصائص)الوحدة لها مواصفات

.المجموعة هي أمثلة أو حاالت أو نماذج أو كائنات تتبع هذا الكيان

.و في اغلب األحيان يكون اسم الكيان اسما مفردا -

.مريض ، دواء ، يعالج بـ :أمثلة على الكيان من األمثلة السابقة -

:“Relationships“العالقة الرابطة

.هي العالقة التي تربط بين الكيانات و تمثل رابطة العالم المصغر الذي تمثله قاعدة البيانات -

تعبر العالقات الرابطة عن الروابط بين البيانات في الواقع و تمثل في اغلب األحوال بفعل مضارع أو فعال - مبني للمجهول

أمثلة على العالقات الرابطة

الكيان طالب و الكيان مدرس و مقرر دراسي يوجد بينهم عدة عالقات رابطه منها

الطالب يدرس مقرر درسي

.المدرس يدرس المقرر الدراسي

.المدرس يدرس الطالب المقرر الدراسي

.المدرس يرشد الطالب إلى المقرر المناسب

Page 30: __2 database

.الطالب يرشد بواسطة المدرس

(Attribute):الصفة - مرتب الطالب، عمر ، الموظف اسم مثلERDمخطط في له تابعة وتكون الكيان تصف معينة صفة هي

.معينا كيانا أو كينونة تتبع صفة كل أن الحظ لمقرر، الدراسية الساعات عدد طالب، درجة موظف، متعددة صفة أو – القيمة أحادية تكون أن يمكن الصفة مركبة، صفة أو – بسيطة صفة تكون أن يمكن الصفة المشتقة الصفة لدينا وكذلك الكيان، مفتاح تمثل التي الصفات أو الصفة اسم تحت خط ويوضع القيم،

derived attribute عمر الصفة مثل أخرى، بسيطة صفة من عليها الحصول يمكن بسيطة صفة وهي عليها الحصول يمكن التي الطالب معدل الصفة أو الميالد، تأريخ من عليها الحصول يمكن التي الطالب تمثيلها يتم القيم متعددة والصفة بيضاوي، شكل باستخدام الصفة تمثيل يتم المعروفة، الحسابية بالطرقبالشكل موضح هو كما المزدوج البيضاوي بالشكل

أمثلة على الصفات:

:“Data Item” عنصر البيانات •

المشتقة الصفةderived

صفة متعددة القيمMultivalve Attribute

صفة مركبةComposite Attribute

Simple بسيط صفة Attribute

طالب اسم مثل البسيطة الصفة )العائلة اسم – األول االسم(الطالب اسم مثل المركبة الصفة

)رأكث أو اثنين أو هاتف له يكون (قدفموظ فالكيان هواتف،و ألوان مثل القيم متعددة الصفة )األلوان من عدد أي أو واحد لون من تكون قد(سيارة والكيان

Page 31: __2 database

، اسم الطالب احمد حيث احمد و الرقم 1000هو اقل وحدة بيانات مثل قيمه مخصصة مثال رقم الطالب .هي عناصر بيانات 1000

: “Data aggregate” عنصر بيانات مجمع •

حيث (محمد احمد عبدا هللا )هو عنصر بيانات يتكون من عناصر بيانات بسيطة اصغر مثال اسم الطالب و يمكن تقسيمها إلى .أن االسم هنا مجمع من ثالث بيانات اصغر هي االسم األول و اسم األب و العائلة

.ثالث حقول مختلفة تمثل جميعها االسم الكامل للطالب

: “Record”سجل •

:مثال .هو تجميع لعناصر بيانات تمثل احد أمثلة أو حاالت كيان محدد

o ) اسم و رقم و تخصص) كل طالب له o وبالتالي مثال لسجل طالب:

، حاسوب ) 1000(احمد ، ، علوم ) 2500(عبدا هللا ،

.كل قيمة من قيم السجل تمثل عناصر بيانات لخاصية من خواص الكيان •

Relationships العالقات3.4

هي مجموعة تمثل (E1,E2, ...En)بين مجموعة من الكيانات ( R )العالقة :(Relation)العالقاتهي عبارة عن اتحاد أو ارتباط بين الكيانات (R)االرتباطات بين هذه الكيانات، كل وحدة في العالقة

.المرتبطة بهذه العالقة، بحيث أن هذه الوحدة تمثل بصف واحد من كل كيان مشارك في العالقة

(Degree of Relationship):العالقة درجة

... - )ثالثية – ثنائية( العالقة بهذه المرتبطة الكيانات بعدد الدرجة هذه وتتحد درجة، عالقة لكل .الثنائية بالعالقات أكثر يلي فيما وسنهتم ،

كيانات ثالثة بين ثالثية عالقة كيانين بين ثنائية عالقة

المصطلح يعني نسبة االرتباط بين وحدات الكيان، التي :(Cardinality Ratio)نوع العالقة .١ ترتبط بنفس العالقة، وفي العالقة الثنائية بين كيانين،

في العالقة التي يمكن أن يشترك فيها الكيان وهي (Instances)نوع العالقة هو عدد الوحدات .٢ :ثالثة أنواع

Page 32: __2 database

وفيها ترتبط وحدة واحدة من الكيان األول بوحدة واحدة (one-to-one):واحد-الى -عالقة واحد .١ 1:1من الكيان اآلخر على األكثر، ويرمز لها بالرمز

وفيها يمكن أن ترتبط وحدة واحدة من أحد الكيانات (one-to-many) :كثير-الى -عالقة واحد .١ N:1بأكثر من وحدة في الكيان اآلخر، والعكس غير صحيح، ويرمز لها بالرمز

وفيها يمكن أن ترتبط أكثر من وحدة من الكيان (many-to-many) :كثير-الى -عالقة كثير .١األول بأكثر من وحدة في الكيان اآلخر، والعكس، أي يمكن ألي وحدة في الكيان اآلخر أن ترتبط بأي

M:Nوحدة في الكيان األول، ويرمز لها بالرمز

كما أوضحنا سابقا فالعالقات تختلف :Relationship Constraintsأنواع القيود على العالقاتفيما بينها، وكذلك شروط العالقة تختلف حسب طبيعة العالقة، وحسب الكيانات المرتبطة، وقيد العالقة

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

نقول أن العالقة عالقة االشتراك الكلي ، إذا كان كل وحدة :(Total participation)االشتراك الكلي .1في الكيان أألول يجب أن ترتبط بوحدة من الكيان اآلخر ضمن العالقة، يسمي هذا القيد بقيد ”ارتباط الوجود”

(سجل االكاديمي)، أي أن وجود وحدة من كيان ما يستلزم ارتباطها بوحدة من كيان آخر،ومثال ذلك كيان لطالب في نظام معلومات الجامعة، إذ ال بد أن يرتبط أي قيد في السجل الطبي بطالب ما في كيان الطالب، وإال

.فال معنى للعالقة هذه

Page 33: __2 database

ويتم تمثيل قيد االشتراك الكلي، برسم خط مزدوج، يربط الكيانات المرتبطة بهذه العالقة، من جهة .١ الكيان المعتمد على االشتراك الكلي

نقول أن العالقة عالقة اشتراك جزئي، إذا كانت بعض :(Partial participation)االشتراك الجزئي .2الوحدات في الكيان المشترك بالعالقة ترتبط ببعض الوحدات في الكيان اآلخر ضمن العالقة، ويتم تمثيل قيد

.االشتراك الجزئي برسم خط مفرد يربط الكيانات المرتبطة

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

درجة الجدول

Page 34: __2 database

: “Key”المفتاح •

من خصائص الكيان تستخدم الختيار سجل أو أكثر من (عدة خصائص مجتمعه)هو خاصية واحدة أو -:سجالت ذلك الكيان و يوجد منها ثالث أنواع

المفتاح األساسي لكيان هو احد خصائص هذا الكيان و قيمته :“Primary Key” المفتاح الرئيسيفي أي سجل أخر من نفس الكيان ، و يجب كذلك أن (Unique)تكون وحيدة في كل سجل و ال تتكرر

تحتوي على قيمة و ال يجوز تركها فارغة مثل رقم الطالب في جدول طالب ، حيث كل طالب يجب أن .يكون له رقم مختلف عن زمالئه ، و يوضع خط مستقيم أسفل الحقل للداللة على انه مفتاح رئيسي

هو عبارة عن خاصية عادية من ضمن خواص الكيان و موجودة :“Foreign Key” المفتاح األجنبي .كخاصية مفتاح أساسي في كيان آخر ، نميز هذا المفتاح بوضع خط متقطع أسفل اسم الخاصية

ليس بالضرورة أن يكون اسمي الحقلين متشابهين في الكيانين •

المفتاح الخارجي يستخدم للربط بين الكيانات الستخراج بيانات ذات صلة بين كيانين مختلفين، مثل • .استخراج اسم القسم و الكلية التي يدرس فيها الطالب

هو أي خاصية يمكن استخدامها الختيار سجالت معينة من بين :“Secondary Key” المفتاح الثانوي السجالت الموجودة في الكيان

Page 35: __2 database
Page 36: __2 database

هو ذلك الكيان الذي ليس لديه مفتاح رئيسي يميز بياناته عن بعضها : (Weak Entity)الكيان الضعيفالبعض، وعادة ما يقترن الكيان الضعيف بكيان قوي عن طريق عالقة تعريف تقويه، ويتم تمثيل الكيان

الضعيف بمستطيل مزدوج

مثال توضيحي:

هو أي خاصية ممكن استخدامها مع مفتاح أجنبي كمفتاح لكيان ضعيف : (Partial key)المفتاح الجزئي ال يملك مفتاح رئيسي

رقم الموظف اسم الولد

(مفتاح أجنبي)

العمر

12 11 محمد 15 7 علي

14 9 محمد

Page 37: __2 database

بعنوان "احملاضرة اخلامسة

املطور EERخمطط

(EER-MODEL)) (Enhanced Entity Relationship

احملتوى:

EERتعريف •

: (Generalization)التخصيص •

:(Generalization)التعميم •

(Constraints) القيود •

نشاء خمطط الكينونات من النماذج والتقاريرإ •

Page 38: __2 database

EERتعريف ) 5.1

السابق وتتلخص هذه التطورات بإضافة مفاهيم األنواع األصلية ERوهو النموذج المطور من (Super class) ) واألنواع الفرعيةSubclass وكذلك مفهوم(

. (Inheritance)الوراثة

على ذلك نوع الكينونة السيارة يمكن أن تمثل نوع كينونة أصلية أما نوع الكينونة سيارة مثالشحن ، سيارة ركاب ، سيارة سباق ، هي أنواع كينونة فرعية .

كذلك فإن الكينونة الفرعية يمكن أن ترث صفة او أكثر من نوع الكينونة األصلية .

ويتم تمثيل مفهوم الكينونات األصلية والفرعية على الشكل التالي :

كينونة أصلية

كينونة فرعية 1

كينونة فرعية ن كينونة فرعية 2

وكل كينونة فرعية يعني أن الكينونة الموجود على الخط الواصل بين أن الرمز الفرعية هي مجموعة جزئية من الكينونة األصلية . وهذا الرمز هو اختياري ألن مفهوم

المجموعة الجزئية واضحة في هذا الموضوع .

: افترض في شركة معينة وجود ثالث أنواع من الموظفين ( المهندس ، الفني ، السكرتير ) مثال

وأن خصائص كل من هؤالء الموظفين هي كما يلي :

Page 39: __2 database

- المهندس : رقم الموظف . اسمه ، العنوان ، التخصص .

- الفني : رقم الموظف ، اسم الموظف . العنوان . الخبرة .

- السكرتير : رقم الموظف ، اسمه ، العنوان ، سرعة الطباعة .

نالحظ أن جميع أنواع الموظفين لهم خصائص متشابهة عدا بعض الخصائص .

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

يمكن توضيح ذلك كما يلي

الموظف

المهندس

سكرتيرالفني

التخصص

سرعة الطباعةالخبرة

االسم

رقم الموظف

العنوان

نالحظ هنا أننا وضعنا خط مزدوج يربط بين الموظف ونوع الكينونات الفرعية ( المتشابهة الكلية ) وهذا للداللة على أن الموظف يجب أن يكون واحد من األنواع

الثالثة من الموظفين وال يجوز أن يكون موظفا ليــس من احد هؤالء األنواع . أما إذا وضعنا خط واحد فهذا يعني (مشاركة جزئية ) أي أنه يمكن أن يكون هنالك موظف

ليس من احد أنواع الموظفين الثالث .

Page 40: __2 database

: (Generalization)التخصيص ) 2.5

التخصيص هي عمليه من أعلى إلى أسفل وهي على عكس التعميم والتي هي من أسفل ألعلى ونقصد بالتخصيص هي أنواع فرعية للنوع األصلي في .... أصلي // فرعي

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

المادة ، اسم المادة ، الكمية،البلد . يتم توضيح ذلك .

: في نظام ما مجموعة الكينونات األشخاص يمكن تخصيصها إلى مجموعة مثال وهي عالمة من أعلى ISAكيانات (موظف،زبون) . ويشار إلى هذه العالقة بعالقة

إلى أسفل .

المادة

مادة مصنعة محليامادة مستوردة

رقم خط االنتاج

الكمبة

البلد

االسم

رقم المادة

d

يوردالمورد

1

رقم المورد

االسم

سعر الصرف

N

Page 41: __2 database

الشخص

الموظف

الزبون

موظف عادي

الراتب

سرعة الطباعة

الرقم

االسمالعنوان

ISA

ISA

سكرتير

عدد ساعات العمل

المحاسب

رقم الصندوق

نقاط البيع

وكذلك فإن مجموعة كينونات يمكن تخصيصها إلى مجموعة كيانات سكرتير والمحاسب هي عالمة التخصيص ( من أعلى إلى أسفل ) ISAوالموظف العادي ، وعالمة

سرعة الطباعة

عدد ساعات العمل

Page 42: __2 database

:(Generalization)التعميم ) 3.5

هي بالتعميم ونقصدخصيص وهي على عكس الت إلى أعلى هي عمليه من أسفلعميمالت .Sub classesمن Super classاستنتاج

مثال:

Page 43: __2 database

:(Constraints) ) القيود4.5

تحديد القيود على عالمة من النوع األصلي // الفرعي يتم

.قيد التعريف : الذي يرشدنا من الكينونة األصلية إلى الكينونة الفرعية التي يجب اختيارها 1

مثال : افترض في شركة ما هنالك مجموعة من الموظفين ، حيث إن الموظف له خاصية نوع . بناء على خاصية نوع الوظيفة يمكن تحديد العضوية في النوع ) (job typeالوظيفة

الفرعي . فعلى سبيل المثال يمكن تحديد العضوية في النوع الفرعي " سكرتير" secretary موظف له فيه أي وذلك خالل وضع الشرط ................. ،وبالتالي فإن

نوع الوظيفة "سكرتير " يجب أن ينتمي إلى النوع الفرعي سكرتير فقط .

) : Competence Constraintsقيد اإلتمام ( .٢ : نوعينوقيد اإلتمام له

التخصيص الكامل : هذا يعني أن كل كينونة من كينونات النوع األصلي يجب أن تكون واحد .‌أ . ويعبر عن ذلك بخط مزدوج ،من الكينونات في النوع الفرعي

Page 44: __2 database

مثال : في شركة معينة هنالك مجموعة من الموظفين . وهؤالء الموظفين إما أن يكونوا من الموظفين الدائمين الذين يحصلون على راتب شهري او لموظفين المياومة وال يمكن أن يكون

موظفا غير هؤالء الصنفين .

الموظف

موظف دائم موظف مياومة

الراتب الشهري أجرة اليوم

االسم

رقم الموظف

نوع العمل

"م" "د"

تاريخ الميالد

d

التخصيص الجزئي : يعني أن تكون بعض من كينونات النوع األصلي ال تنتمي ألي من .‌ب كينونات الفرعي .

مثال : في نظام المركبات ، هنالك مركبات تدعى مركبة تقل أشخاص وهناك نقل بضاعة كما هو موضح بالشكل التالي

Page 45: __2 database

الركبات

سيارة نقل أشخاص سيارة نقل بضاعة

عدد االشخاص الحمولة

رقم المركبةحجم الماتور

السعر

d

في هذا المثال يمكن أن تكون مركبات نوع دراجة وهي ليست من أي نوع من نوع الكينونات الفرعية . ولذلك سميت هذه بالتخصيص الجزئي ولذلك حدد الخط الواصل بين المركبات

والحلقة بخط واحد .

)overlapping) وقيد التداخل(disjointقيد التفكيك( .١يعني قيد التفكيك أن كل كينونة في نوع كينونة أصلي يمكن أن تنتمي إلى نوع كينونة فرعية

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

لقيد التداخل بالرمز O

في قيد التفكيك . d داخل الحلقة بدال من

مثال : في نظام الجامعة . هناك مجموعة األشخاص ويصنف هؤالء األشخاص مع تمثيل مجموعات موظفين و طالب . حيث يمكن للطالب أن يكون موظف في الجامعة يمثل هذا كما

يلي :

Page 46: __2 database

الشخص

الموظف الطالب

الراتب القسم

رقم الهويةالعنوان

االسم

تاريخ العمل

الراتب

O

Page 47: __2 database
Page 48: __2 database

نشاء مخطط الكينونات من النماذج والتقارير: ) إ5.5

يمكننا توضيح كيفية تحويل النماذج والتقارير إلى مخططات كينونات بأمثلة متنوعة:

- إذا كأن تقرير يحتوي على المعلومات التالية: 1

Page 49: __2 database

يمكن تمثيل ذلك على شكل نوع كينونة كما يلي:

EQUIPMENT

Equipment number

descriptionAcquisition date

Purchase cost

إذا كأن هناك نموذج على الشكل التالي: -١

فيمكن تمثيله بمخطط الكينونات التالي:

Page 50: __2 database

FISHING-LICENSE

License number

name citystreet

state

telephone

COMMERCIAL-LICENSE SPORT-LICENSE

dVessel numbername

type

taxid

numberyearsatthisaddress

prioryearlicensenumber

إذا أعطيت النموذج التالي -٢

Page 51: __2 database

نموذج الكينونات كما يلي: فيمكن تحويله إلى

CUSTOMERSALES PERSON

SALES-ORDER

ORDER-LINE-ITEM ITEM

HASHAS

CONTAIN

HAS

NAMEADDRESS

STATE

CITY

ZIP

PHONE

SALESPERSONNAME

SALESPERSONCODE

SALESORDERNUMBER

DATE

SUBTOTAL

TAXTOTAL

LINE NUMBER

QUANTITY

UNIT PRICEEXTENDED

PRICE

ITEM NUMBER

UNIT PRICE DESCRIPTION

المصطلحات

Associatetive entityالكينونة التجميعية Binary relationshipالعالقة الثنائية

cardinalityعدد الكينونات المشتركة بالعالقة Database objectكائن في قاعدة البيانات

Data diagramمخطط البيانات Data modelنموذج البيانات

Identifierالمحدد Many-to-Many binary relationshipعالقة متعدد-إلى-متعدد One-to-Many binary relationshipعالقة واحد-إلى-متعدد One-to-One binary relationshipعالقة واحد-إلى-واحد

Page 52: __2 database

Primary keyمفتاح رئيس Referential integrityالتكامل المرجعي

Ternary relationshipالعالقة الثالثية Unary relationshipالعالقة األحادية

competence constraintsفيد اإلتمام recursive relationshipالعالقة الدائرية super classالنوع األصلي subclassالنوع الفرعي

inheritanceالتوارث Entity typeنوع الكينونة

Strong entityنوع كينونة قوي Weak entityنوع كينونة ضعيف

specializationالتخصيص generalizationالتعميم

Conceptual modelالنموذج ألمفاهيمي Logical modelالنموذج المنطقي Physical modelالنموذج الفيزيائي

Page 53: __2 database

احملاضرة السادسة

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

Design of Relational Database

احملتوى:

Database Life Cycle (DBLC)دورة حیاة قاعدة البیانات •

التحويل من خمطط الكيان العالئقي إىل خمطط قواعد بيانات •

)Mapping Algorithmباستخدام (

(خمطط الكيان العالقة جلامعة)1 مثال •

(خمطط الكيان العالقة لشركة) 2 مثال •

التحويل من خمطط الكيان العالئقي إىل خمطط قواعد بيانات •

)Normalization نظرية تسوية البيانات(

Page 54: __2 database

Database Life Cycle (DBLC)) دورة حياة قاعدة البيانات 1.6

إن عملية تطوير قاعدة البيانات تمر بمجموعة من المراحل،هذه المراحل المتتالية تسمى بدورة حياة قاعدة هذه المراحل أو دورة الحياة تمر بصورة متزامنة ضمن مراحل دورة حياة نظام المعلومات، كما ,البيانات

يوضح الشكل التالي

:دورة حياة قاعدة البيانات من المراحل التالية تتكون

مرحلة التحليل وتنقسم إلى قسمين

وهي مرحلة جزئية ضمن جمع مواصفات تحديد المواصفات والمتطلبات الخاصة بقاعدة البيانات، .١ .ومتطلبات نظام المعلومات في مرحلة التحليل

إعداد قاعدة البيانات األولية، وفيها يتم تصميم نموذج اولي للبيانات بواسطة مخططات الكيان العالقة .٢E-RD).(

مرحلة التصميم وتتم من خالل أحد الخيارين التاليين:

العالقة إلى مخطط االسكيما ، وذلك بإتباع قواعد /تحويل قاعدة البيانات األولية، أو مخطط الكيان .١ التحويل.

التي تهدف Normalizationوذلك بتطبيق قواعد تطبيع البيانات ، تحسين قاعدة البيانات المنطقية .٢ .إلى تقليل تكرارية البيانات، من أجل رفع كفاءة قاعدة البيانات ما أمكن

مرحلة التنفيذ

وفي هذه المرحلة يتم كتابة أكواد إنشاء قاعدة physical database:قاعدة البيانات الفيزيائية تنفيذ، ويحدد فيها بنية الجداول ونوع بيانات الحقول والمفاتيح األساسية واألجنبية وباقي SQLالبيانات بلغة

,oracleمناسب، مثل DBMSشروط تصميم قاعدة البيانات، ثم تنفيذ ذلك ضمن مدير قاعدة بيانات Access, sqlserver, MySQL …. etc.))

Page 55: __2 database

Database Schemaمخطط قواعد البيانات

هو مخطط يصف قاعدة البيانات بشكل رسومي تمهيدا لبنائه على شكل جداول في نظام إدراة قواعد Mapping و ينتج عن عملية إخضاع مخطط الكيان العالقة لخوارزمية التحويلDBMSبيانات

Algorithm

) التحويل من مخطط الكيان العالقة إلى مخطط قواعد بيانات2.6Mapping ERD to DB schema

Mapping، بتطبيق مجموعة من الخطوات البسيطة، تسمى خوارزمية لتحويلERDتتم عملية تحويل مخطط Algorithm وتتكون هذه الخطوات من جميع الحاالت البسيطة المحتملة، التي قد تكون موجودة في النموذج ،

األولى، ويتم تطبيق هذه الخوارزمية كاملة، مع تجاوز الحاالت التي لم تظهر في النموذج األولي

:(Mapping Algorithm)خوارزمية التحويل

تحويل الكيانات العادية (القوية) • تحويل الكيانات الضعيفة • 1:1تحويل العالقات الثنائية من النوع • N:1تحويل العالقات الثنائية من النوع • N:Mتحويل العالقات الثنائية من النوع • تحويل الصفات متعددة القيم • تحويل العالقات فوق الثنائية •

يتم هنا تحويل جميع الكيانات العادية، أي الكيانات غير الضعيفة، :تحويل أنواع الكيانات العادية .١ويتم تحديد أحد مفاتيح الكيان، وتسميته .بإنشاء جدول يتكون من الحقول التي تقابل صفات ذلك الكيان

وإذا كانت الصفة التي تمثل المفتاح من النوع المركب فإن primary key(PK)بالمفتاح الرئيسي .المفتاح الرئيسي سيكون مجموعة الحقول التي تنشأ من الصفة المركبة

يتم تحويل كل واحدة من الكيانات الضعيفة، بإنشاء جدول يتكون من :تحويل الكيانات الضعيفة .٢الحقول التي تقابل صفات ذلك الكيان، كما يجب إضافة المفتاح الرئيسي للكيان القوي الذي يتبعه ذلك

للجدول الجديد، عبارة عن مفتاح مركب مكون من PKالكيان الضعيف، ويكون المفتاح الرئيسي .الخاص به (Partial Key)باإلضافة إلى المفتاح الجزئي FKالمفتاح األجنبي

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

ألحد الجدولين إلى الجدول اآلخر كمفتاح أجنبي ويفضل أن يكون الجدول الذي المفتاح الرئيسي االشتراك )يحتوي على المفتاح األجنبي، هو الجدول الذي يكون نوع قيد اشتراكه في العالقة، من نوع

(الكلييتم هنا إنشاء جدولين لتمثيل الكيانين المرتبطين، على أن :(N:1)تحويل العالقات الثنائية من النوع .٤

المفتاح الرئيسي للجدول من جهة العالقة طريقة المفتاح األجنبي السابقة، وذلك بإضافة يتم تطبيق (N) إلى الجدول اآلخر المرتبط بالعالقة( 㿋بغض النظر عن نوع قيد االشتراك ،.

في هذا النوع من العالقات، يتم استحداث جدول جديد، :(N:M)تحويل العالقات الثنائية من النوع .٥فيكون الناتج من هذه العالقة ثالثة جداول، جدولين لتمثيل الكيانين المرتبطين بالعالقة ويضم الجدول

Page 56: __2 database

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

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

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

من صفات أخرى، فال داعي لوجودهافي حاالت نادرة تظهر لدينا عالقات :تحويل العالقات غير الثنائية، كالعالقة الثالثية وما فوقها .٧

والرباعية وما فوقها، وتعالج هذه الحالة بطريقة معالجة (بين ثالثة كيانات)معقدة، كالعالقة الثالثية حيث يتم إنشاء جدول جديد، وإضافة N:M))حالة تحويل العالقات الثنائية من النوع )الحالة الخامسة

المفاتيح الرئيسية للجداول المشتركة، حسب عددها، إلى الجدول الجديد كمفاتيح أجنبية مكونة .بمجموعها، مفتاحا مركبا يمثل المفتاح الرئيسي للجدول

Database التالي إلى ما يقابله من مخطط قواعد البيانات حول كل من نموذج كيان العالقة :1تمرين

:نبدأ بتحويل الكيان العادي •

بشكل المستطيل أحادي اإلطار، ويحتوي مخطط الكيان العالئقي السابق (القوي)يتم تمثيل الكيان العادي :على ثالث كيانات هي

(Student)الطالب

(Instructor)المحاضر

(Course)المقرر

وتتم عملية تحويل الكيانات القوية بتمثيل كل منها بجدول يحمل إسم الكيان ، ويحتوي حقوال تمثل .بالكيان (االرتباط يمثل بخط مستقيم)المرتبطة (تمثل الصفات بالشكل البيضاوي)الصفات

Page 57: __2 database

يتم أخذ األجزاء المكونة )شكل بيضاوي مرتبط بأشكال بيضاوية جزئية(في حالة الصفة المركبة - .للصفة المركبة

بسبب القدرة على اشتقاقها بجملة يتم تجاهل الصفة المشتقة(تمثل بشكل بيضاوي متقطع اإلطار) - .استعالم

فيتم إنشاؤها في جدول مستقل )تمثل بشكل بيضاوي مزدوج اإلطار(أما الصفة متعددة القيمة -يحمل اسم الكيان والصفة متعددة القيمة، ويحتوي حقوال تمثل الصفة متعددة القيمة وصفة المفتاح

.الرئيسي للكيان

نالحظ في هذا المثال أن كل الصفات من النوع البسيط

للجدول هو مجموعة صفات المفتاح الرئيسي المرتبطة بالكيان(Primary Key)ويكون المفتاح الرئيسي

:وينتج عن عملية التحويل الجداول التاليةSTUDENT sid name program

INSTRUC iid name dept title

COU cours title sylla Cre

:تحويل الكيان الضعيف .2

يتم تمثيل الكيان الضعيف بشكل مستطيل مزدوج اإلطار، وسبب ضعف الكيان ، ينتج من عدم وجود صفة :مفتاح رئيسي له، ولكن يحتوي على صفة مفتاح جزئي، ولدينا في هذا المثال كيان ضعيف واحد هو

(Course-Offerings)كيان الشعب الفصلية المقترحة

:ويحتوي هذا الكيان على صفات المفتاح الجزئي التالية

(Year)السنة - (Semester)الفصل - (Section-no)رقم الشعبة -

ويجب أن يرتبط الكيان الضعيف بكيان قوي بواسطة عالقة تعريف(تمثل عالقة التعريف بشكل معين مزدوج .اإلطار)، وذلك في سبيل تقوية الكيان الضعيف

وتتم عملية تحويل الكيان الضعيف بتحويله إلى جدول يحمل اسم الكيان الضعيف،ويحتوي حقوال من الصفات المرتبطة به ، باإلضافة إلى حقل المفتاح الرئيسي من جدول الكيان القوي المرتبط معه بعالقة تعريف،وفي حال

ويكون المفتاح الرئيسي للجدول هو مفتاح .وجود أي صفة على عالقة التعريف، يتم تمثيلها بحقل في الجدول .الكيان القوي باإلضافة إلى المفاتيح الجزئية في الكيان الضعيف

:وينتج عن عملية التحويل الجدول التالي

Page 58: __2 database

بوجود (Course)بجدول المقرر (Course-Offerings)وبذلك يرتبط جدول الشعب الفصلية المقترحة (courseno)رقم المقرر (Foreign Key)المفتاح األجنبي

(جداول)تحويل مخطط الكيان العالقة لجامعةإلى ما يقابله من مخطط قواعد البيانات

:تحويل العالقات

يتم تمثيل العالقة بشكل معين أحادي اإلطار

:في هذه الحالة يتم التعامل مع العالقة حسب نوعها كل على حده، حيث تصنف العالقات إلى األنواع التالية

(One-to-One Relationship)عالقة واحد إلى واحد • (One-to-Many)عالقة واحد إلى كثير • (Many-to-Many)عالقة كثير إلى كثير •

، النه تم بناؤها مسبقا عند تحويل الكيان الضعيف(شكل معين مزدوج اإلطار)يتم تجاهل عالقة التعريف

:تحويل عالقة واحد إلى واحد

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

ويفضل أن يكون الجدول الذي يحتوي على المفتاح األجنبي، هو الجدول الذي يكون نوع قيد اشتراكه في وفي حال وجود صفة على العالقة يتم إضافتها كحقل إضافي مع المفتاح .(االشتراك الكلي)العالقة، من نوع

.األجنبي

واحد -إلى -في هذا المثال التوجد عالقة من النوع واحد

:تحويل عالقة واحد إلى كثير

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

.األجنبي

وكيان الشعب الفصلية (Instructor)بين كيان المحاضر(teaches)في هذا المثال لدينا عالقة يدرس ، (Course-Offerings)المقترحة

Page 59: __2 database

وكيان الشعب الفصلية (Instructor)بين كيان المحاضر (teaches)في هذا المثال لدينا عالقة يدرس .(Course-Offerings)المقترحة

كونه طرف العالقة واحد ، ويضاف كمفتاح Instructorمن جدول (iid)وعليه يتم أخذ المفتاح الرئيسي ليصبح بالشكل Course-Offerings، وبالتالي يتم تعديل جدول course-offeringsأجنبي في جدول

:التالي

(Instructor)بجدول المحاضر (Course-Offerings)وبذلك يرتبط جدول الشعب الفصلية المقترحة (iid)بوجود المفتاح األجنبي رقم المحاضر

:تحويل عالقة كثير إلى كثير

في هذا النوع من العالقات يتم إنشاء جدول جديد يحمل إسم العالقة، وتكون حقوله هي حقول المفتاح الرئيسي من كال الجدولين المشاركين في العالقة مكونة المفتاح الرئيسي للجدول الجديد، وفي حال وجود صفة على

العالقة يتم إضافتها كحقل إضافي في الجدول

:في هذا المثال، يوجد لدينا عالقتين من نوع كثير إلى كثير، هما

(enrols)عالقة يسجل •

Page 60: __2 database

:ينتج عن هذه العالقة الجدول التاليENROLS sid courseno secno year semester grade

(Requires)عالقة يتطلب (2

Page 61: __2 database

:وينتج عن هذه العالقة الجدول التاليREQUIRES maincourseno prerequisiteno

(course)مع جدول المقرر (Requires)وبذلك يرتبط جدول يتطلب

، وهو على الشكل (1)وبذلك نكون قد أنشأنا مخطط قواعد البيانات الناتج عن التحويل للمثال رقم • :التالي

Page 62: __2 database

نالحظ االرتباط الوثيق بين جداول قاعدة البيانات، فال يجوز أن يكون هناك جدول دون عالقة بباقي • الجداول، أو بمعزل عن الجداول األخرى في قاعدة البيانات

:2التمرين

:نبدأ بتحويل الكيان العادي •

Page 63: __2 database

:يحتوي مخطط الكيان العالئقي السابق على ثالث كيانات عادية هي

(Employee)الموظف • (Department)القسم • (Project)المشروع •

(Employee)أ.كيان الموظف

والتي تتكون من الصفات الجزئية االسم (Name)نالحظ في هذا الكيان وجود صفة مركبة هي صفة اإلسموكما أوضحنا سابقا ، فإن .(Fname)، واالسم األخير (Minit)، و حرف االسم األوسط (Fname)األول

الصفة المركبة في عملية التحويل تدرج بصفاتها الجزئية فقط

:وينتج عن عملية التحويل الجدول التالي

Page 64: __2 database

(Department)ب.كيان القسم

، وذكرنا سابقا (Number of employees)نالحظ في هذا الكيان وجود صفة مشتقة هي عدد الموظفين أننا في عملية التحويل نتجاهل هذه الصفة ،ليتم بناؤها الحقا بجملة إستعالم

وذكرنا سابقا أن الصفة متعددة القيمة يتم (locations)كما نالحظ وجود صفة متعددة القيمة وهي المواقع تحويلها إلى جدول مستقل مع المفتاح الرئيسي للكيان ،ويكون اسم الجدول مكون من اسم الكيان مضافا إليه اسم

.الصفة متعددة القيمة

:وينتج عن عملية التحويل الجدولين التاليين

:كيان المشروع) (ج.

Page 65: __2 database

:هذا الكيان يحتوي على صفات بسيطة فقط،وبالتالي ينتج عن عملية التحويل الجدول التاليProj Number Name Location

:تحويل الكيان الضعيف .١

:في هذا المثال كيان ضعيف واحد هو

.، حيث يصف هذا الكيان أفراد عائلة الموظف المعتمدين عليه في إعالتهم(Dependent)كيان المعتمد على

:،التالية(Name)ويحتوي هذا الكيان على صفة المفتاح الجزئي االسم

بواسطة عالقة التعريف يعتمد على (Employee)و يرتبط هذا الكيان الضعيف بكيان قوي هو كيان الموظف (Dependent_of).

،ويحتوي (Dependent)وتتم عملية تحويل الكيان الضعيف بتحويله إلى جدول يحمل إسم الكيان الضعيف (Employee)حقوال من الصفات المرتبطة به ، باإلضافة إلى حقل المفتاح الرئيسي من جدول الكيان القوي

ويكون المفتاح الرئيسي للجدول هو مفتاحا للكيان .(Dependent-of)المرتبط معه بعالقة التعريف .(Dependent-Name)باإلضافة إلى المفتاح الجزئي في الكيان الضعيف (Empoyee-Ssn)القوي

:وينتج عن عملية التحويل الجدول التالي

Page 66: __2 database

بوجود المفتاح األجنبي رقم الموظف (Employee)بجدول (Dependent)وبذلك يرتبط جدول

(Employee-Ssn).

:. تحويل العالقات3

:تحويل عالقة واحد إلى واحد .أ.3

بين كيان (Manages)واحد ،وهي عالقة -إلى -في هذا المثال توجد عالقة من النوع واحدالموظف،وكيان القسم، والعالقة ذات إشتراك كلي من جهة القسم ، مع وجود الصفة

(start_date ) على العالقة.

، (Employee_Ssn)وبناءا علي النقطة السابقة ، يتم أخذ نسخة من المفتاح الرئيسي لجدول الموظف ، (department)، ووضعهما كتعديل على جدول القسم(start_date)مضافا إليها الصفة على العالقة

، وبالتالي (Manager)ويفضل إعادة تسمية المفتاح الرئيسي ليدل على العالقة وهي عالقة ادارة ، فهو مدير Manager_Ssnتصبح التسمية Employee_Ssnبدال من التسمية

:ليصبح بالشكل التالي(Department)وعليه يتم التعديل على جدول القسمDepartm Number Name Manager-Ssn Start_date

Page 67: __2 database

بوجود المفتاح األجنبي رقم الموظف (Employee)بجدول (Department)وبذلك يرتبط جدول (Employee-Ssn).

:تحويل عالقة واحد إلى كثير .ب.3

:في هذا المثال لدينا ثالث عالقات من نوع واحد إلى كثير وهي

(Works_for)عالقة موظف يعمل في قسم.

ليحتوي على رقم (Employee)نتيجة لهذه العالقة يتم التعديل على جدول الموظف :بالشكل التالي (Employee)الذي يعمل فيه، ليصبح جدول الموظف (Department_Number)القسم

وعليه تتوثق العالقة بين جدول الموظف والقسم، بإضافة مفتاح أجنبي جديد، وهو رقم القسم في جدول :الموظف، كما يظهر في الشكل التالي

Page 68: __2 database

(Controls)عالقة قسم يتحكم بمشروع

ليحتوي على رقم (Project)نتيجة لهذه العالقة يتم التعديل على جدول المشروع بالشكل (Project)الذي يتحكم في المشروع، ليصبح جدول المشروع (Department_Number)القسم :التالي

Project Number Name Location Department_Number

(Department-Number)وعليه يرتبط جدول القسم بجدول المشروع بواسطة المفتاح األجنبي رقم القسم :الذي تم إضافته إلى جدول المشروع ، كما يظهر في الشكل التالي

:(Supervision)عالقة إشراف موظف على موظف

.هذه العالقة هي عالقة أحادية ذات تغذية راجعة،أي عالقة كيان على نفسه

Page 69: __2 database

،وهو حقل يعبر عن رقم (Supervisor)نتيجة هذه العالقة أن يتم إضافة حقل جديد هو حقل المشرف

الحقل يتم إضافته إلى جدول الموظف .الموظف، مع إعطائه خصوصية كونه مشرفا على غيره من الموظفين(Employee) ليصبح بالشكل التالي:

:تحويل عالقة كثير إلى كثير ج..3

في هذا المثال، يوجد لدينا عالقة واحدة من نوع كثير إلى كثير، هي عالقة موظف يعمل على مشروع (Works_on)

، ونقوم بأخذ المفتاح الرئيس من كل (Works-on)وفي هذه الحالة يتم إنشاء جدول جديد تحت إسم العالقة (Hours)، باإلضافة إلى الصفة عدد الساعات (Project)والمشروع (Employee)الجدولين ، الموظف

:المرتبطة بالعالقة، ويصبح لدينا الجدول التالي

عن طرق الجدول الجديد (Project)وجدول المشروع (Employee)وبذلك يرتبط جدول الموظف (Works_on) عن طريق المفاتيح األجنبية رقم الموظف(Employee-Ssn) من جدول

(Project)من جدول المشروع (Project-Number)، ورقم المشروع Employeeالموظف

Page 70: __2 database

:، وهو على الشكل التالي(2)وبذلك نكون قد أنشأنا مخطط قواعد البيانات الناتج عن التحويل للمثال رقم

Page 71: __2 database

٢٤

:Normalization rulesقواعد التطبیع. ٥

.ھي عملیة تقسیم البیانات إلى مجموعة من العالقات التي تتسم بالتجانس واالعتمادیة المتبادلة والخالیة من التكرارلطبع فإن القضاء على التكراریة تماما أمر غیر ممكن، وما یتم دائما ھو تقلیل التكراریة ما أمكن كما سیأتي، إن وبا

relationsقواعد التطبیع ھي مجموعة المعاییر المتبعة في تصمیم قواعد البیانات، وھي خطوات لتجزئة العالقات .، إلى عالقات أصغر)الجداول(

ة البیانات في مخطط كینونة عالقة، أو ما یسمى بقاعدة البیانات األولیة، فإن تطبیع البیانات أو ورغم اھمیة عملیة نمذجإن تطبیع البیانات كما ھو واضح من االسم ھو . قواعد تسویة البیانات ال تقل أھمیة عنھا في نظریة قواعد البیانات

.اليعملیة جعل البیانات طبیعیة أكثر مقارنة بالنموذج الریاضي المث

:?Why Normalizationلماذا نقوم بتطبیع البیانات .لمعرفة وفھم المعنى الكامن في البیانات التي تحتویھا قاعدة البیانات-لمعرفة وفھم العالقات واإلعتمادیات المتبادلة بین البیانات، ویقصد باإلعتمادیات المتبادلة كون معالجة بیانات -

.مد على معالجة بیانات أخرىتعت) إدخال تعدیل أو حذف(معینة .والتناقض الذي قد یحصل بینھا) data redundancy(لتقلیل تكراریة البیانات -لحمایة البیانات من المشاكل التي قد تطرأ عند معالجتھا، أي عند إجراء إدخال بیانات جدیدة أو تعدیل بیانات -

.موجودة أو حذفھا:Normalization Advantagesممیزات تطبیق قواعد التطبیع

:یمكن إجابة السؤال السابق عن طریق إجابة سؤال آخر، ما ھي ممیزات تطبیق قواعد التطبیع؟، كما یليتقلیل تكراریة البیانات من خالل تصمیم جداول قاعدة البیانات الفیزیائیة، وذلك یؤدي إلى تقلیل مساحة التخزین -

.على القرص الصلب) inconsistencyالتضارب ھو عدم التجانس .(لبیاناتتقلیل التضارب الحاصل بین ا-.تقلیل تكلفة تحدیث البیانات ومعالجتھا-.one-to-many، وذلك بتحویلھا إلى عالقات من نوع many-to-manyإلغاء العالقات التي من نوع -.زیادة وتطویر مرونة النظام-

:عیوب تطبیع البیانات:یق قواعد التطبیع ممیزات، فإن لھ عیوبا منھاو كأي شيء في الحیاة، فكما أن لتطب

.إلى استخدام الفھارس التي تعقد عملیة المعالجة وإن كانت ترفع من كفاءتھا) أحیانا(االضطرار -.زیادة تعقیدات النظام-تقلیل كفاءة بعض أوامر استرجاع البیانات، خاصة العالقات المعقدة، التي یتم عمل ارتباطات كثیرة لھا عند -

. سترجاعاال.Demoralizationوبسبب ھذه العیوب، یتم في بعض األحیان، تطبیق قواعد التطبیع العكسیة، أو ما یسمى

؟وضح بمثال؟Demoralizationما ھي قواعد عكس التطبیع : تمرین للبحث

:Functional Dependenciesاالعتمادیة الوظیفیة.، أو بین مجموعتین من الصفات)دینعمو(two attributesھي وجود قید بین صفتین

:في نفس الجدول فإننا نرمز لذلك بـAیعتمد وظیفیا على العمود Bفعندما نقول أن العمود )Aیعتمد على B، أو العمود Bیحدد العمود Aالعمود (

، كما studentIDمود یحتوي على الحقول أو األعمدة األربعة التي تعتمد على العstudentفي المثال التالي، الجدول .ھو موضح أدناه

shir
مربع النص
3
Page 72: __2 database

٢٥

:یحدد مجموعة األعمدة كما ھو موضح بالصیغةstudentIDالعمود

وبطبیعة الحال یمكن كتابة الجملة السابقة بطریقة اعتمادات وظیفیة منفصلة، بحیث نشیر إلى أن رقم الطالب یحدد اسم ..الطالب، وھكذا

:عتمادیة الوظیفیة الجزئیةاالعندما یكون ھناك عمود معتمد وظیفیا على مفتاح رئیسي مركب، فإن االعتمادیة الجزئیة تعني أن العمود معتمد على

.جزء من الفتاح الرئیسي، ولیس كلھ:ویعبر عن ذلك كالتالي

:بحیث أنD، وكان لدینا العمود A=BCمفتاحا رئیسیا مركبا، بحیث أن Aإذا كان العمود AD فإننا نقول أن ،D یعتمد جزئیا علىA إذا كان العمود ،C فقط ھو الذي یحددD.

.معاDیحددان Cو B، إذا كان كال من العمودین Aیعتمد كلیا على Dونقول أن العمود

:االعتمادیة الوظیفیة الكلیة أو الكاملة:تكون ھناك اعتمادیة كاملة في حالتین

.لذي یحدد األعمدة األخرى غیر مركبا، أي مفرداكان المفتاح ا-.أو كان المفتاح مركبا، وكل مكوناتھ تحدد األعمدة األخرى معا-

:االعتمادیة الوظیفیة المتعدیةإعتمادیة متعدیة، ألنھا نتجت عن AC، فإننا نسمي الجملة Cیحدد Bوكان العمود Bیحدد العمود Aإذا كان العمود

.BC، و ABالجملة

:Normal Formsاألشكال الطبیعیة ، والتي تنتج من تطبیق قواعد بسیطة متعلقة باالعتمادیة )الجدول(relationھي حاالت أو حالة خاصة بالعالقة

.الوظیفیة على تلك العالقة، والثالث یعتمد في وقواعد التطبیع ھي مجموعة من الشروط المتتالیة، بحیث ال یعتبر الثاني محققا إال بعد تحقق األول

تحققھ على الثاني، أي على تحقق األول والثاني معا، وھكذا، تقدم ھذه الشروط مجموعة خصائص یفترض تحققھا في :كل قاعدة، وھذه القواعد ھي

· 1st Normal Form (1NF)· 2nd Normal Form(2NF)· 3rd Normal Form(3NF)· Boyce-Codd Normal Form(BCNF)· 4th Normal Form(4NF)· 5th Normal Form(5NF)

):first normal form)1NFالشكل الطبیعي األول -القاعدة األولى إلى الصیغة أو الشكل الطبیعي األول، منع وجود القیم المتعددة ) أو الجدول(تشترط ھذه القاعدة من أجل وصول العالقة

عین ومنع وجود القیم المركبة أو القیم المشتقة في أي حقل، وبالتالي یجب أن تكون القیم في مجال الحقل قیما في حقل م.بمعنى تكون بسیطة وغیر قابلة للتفككأولیة،Atomicذریة

):second normal form)2NFالشكل الطبیعي الثاني -القاعدة الثانیة :إلى الصیغة الطبیعة الثانیة) أو العالقة(الجدول تشترط ھذه القاعدة من أجل الوصول

.في الشكل الطبیعي األول) الجدول(أن تكون العالقة )١

Page 73: __2 database

٢٦

.أن ال تكون ھناك أي اعتمادیة وظیفیة جزئیة، بمعنى أن أي اعتمادیة وظیفیة یجب أن تكون كاملة كما سیأتي)٢

):third normal form)3NFالشكل الطبیعي الثالث-القاعدة الثالثة :إلى الصیغة الطبیعة الثالثة) أو العالقة(تشترط ھذه القاعدة من أجل الوصول الجدول

.أن تكون العالقة في الشكل الطبیعي الثاني)١.أن ال تكون ھناك أي اعتمادیة وظیفیة متعدیة، بحیث یتم تحویل االعتمادیة المتعدیة إلى متعدیة كاملة)٢

:القواعد األخرى:اسة القواعد الثالث االساسیة مع العلم بوجود قواعد أخرى أكثر تعقیدا ھيسنكتفي فیما یلي بدر

.، وقاعدة الشكل الطبیعي الرابع، والشكل الطبیعي الخامسBCNFكود-قاعدة بویس

ما ھي المخرجات الناتجة عن تطبیق قواعد التطبیع؟على أن تكون على األقل في الشكل الطبیعي المخرجات الناتجة ھي قاعدة بیانات منطقیة سلیمة وخالیة من العیوب،

الثالث، وتكون حقول أو أعمدة كل جدول معتمدة كلیا على عمود واحد أو عدة أعمدة تمثل المفتاح االساسي فقط ال .غیر

:مالحظة ھامةانات، وفھم قواعد تطبیع البیانات لیست مجرد قواعد ریاضیة صارمة فقط، فتطبیقھا یعتمد أساسا على فھم قاعدة البی

طبیعة كل عمود في العالقة وطبیعة البیانات التي تخزن فیھ، وھذه شيء یعود دائما على مصمم قاعدة البیانات ومدى .فھمھ لمرحلة تحلیل النظام

أمثلة توضیحیة حول قواعد التطبیع:1NFالقاعدة األولى)١

أنھا في الشكل الطبیعي صفر ونرمز لذلك بـ إذا كانت العالقة غیر مطابقة للشكل الطبیعي األول، فإننا نقول-0NF.

نقوم بفحص العالقة في الشكل الطبیعي صفر، ونقوم بتحویل العمود ذو القیم المركبة أو متعددة القیم إلى قیم -بسیطة، إما بتحویل العمود الواحد إلى عدة أعمدة، أو بعمل عالقة جدیدة تحوي القیم المتعددة أو المركبة،

.لى مفتاح أجنبي یمثل الجدول األصلي بالطبعباإلضافة إ، ھذا 0NFمن الشكل EMPاللذین یجعالن العالقة genderو childrenالمثال التالي یوضح وجود الحقلین -

.الذي یحتوي كما ھو واضح على قیمة مشتقة، ھي عدد األطفالNun_childrenباإلضافة إلى الحقل

، نقوم بتحویل الحقلین متعددي القیم إلى أكثر من حقل، 1NFل الطبیعي األول إلى الشكEMPوللعودة بالعالقة -.ونقوم بحذف العمود ذا القیمة المشتقة

:كالتاليEMPفیصیر الجدول -

Page 74: __2 database

٢٧

.1NFصار في الشكل الطبیعي األول EMPوھكذا نحكم أن الجدول -

:2NFالقاعدة الثانیة)٢الطبیعي الثاني، ان نقوم بالتأكد من تحقق الشكل الطبیعي األول، أي علینا دائما قبل التحقق من شروط الشكل -

.1NFأن العالقة تحقق القاعدة .نھدف دائما في الشكل الطبیعي الثاني ان نحول أي اعتمادیة جزئیة إلى اعتمادیة كاملة-.إعتمادیة جزئیةإذا كان المفتاح االساسي في العالقة مكونا من عمود واحد فھذا یعیني بالضرورة عدم وجود-وفي حالة وجود مفتاح رئیسي مركب فإننا نبدأ في التأكد من عدم وجود إعتمادیة جزئیة كما یوضح المثال -

.التالي.الجدول أدناه یمثل اسماء مجموعة من االشخاص الذي یشترون أسھم تابعة لشركات مختلفة-

تاح المركب المكون من الحقلین رقم الزبون نالحظ أن المفتاح االساسي المناسب للجدول أعاله، ھو المف-cust_ID وجھة السھمstock)الشركة التي تبیع السھم.(

:وإذا قمنا بفحص االعتمادیة نالحظ التالي-- Cust_ID Name,Addr (Partial FD)

.مادیة جزئیةاعت) ........االسم، والعنوان(یحدد العمودین ) رقم الزبون(العمود -- Stock Curr_price,Dividend (Partial FD)

.اعتمادیة جزئیة) ... الربح(و ) السعر الحالي(العمود جھة السھم یحدد العمودین -

- Cust_ID,Stock Shares (full FD)

وھذه فقط ھي االعتمادیة .. دد االسم المفتاح األساسي المركب من رقم الزبون وجھة السھم یحدد العمود ع-.الكاملة

وبالطبع نحذف االعتمادیات الوظیفیة الجزئیة محولین الجدول السابق إلى ثالثة جداول، یحتوي الجدول -األصلي على االعتمادیة الكاملة، ویظھر جدولین بكل واحد منھما االعتمادیة الجزئیة التي تصیر عند فصلھا

.اعتمادیة كاملة

Page 75: __2 database

٢٨

:ذف األعمدة الجاھزة ینتج لدینا الجداول الثالثة التالیةوبح-

.2NFفي الشكل الطبیعي الثاني relationsالجداول أو العالقات السابقة -

:3NFالقاعدة الثالثة)٣.بعد أن تحقق من كون العالقة في الشكل الطبیعي الثاني نبدأ بالتحقق من تحقق الشكل الطبیعي الثالث-الطبیعي الثالث القضاء على أي إعتمادیة متعدیة، وتحویل العالقة إلى االعتمادیة الكاملة، نھدف في الشكل -

.ویكون ذلك غالبا بفصل أعمدة االعتمادیة المتعدیة عن العالقة األولىعلینا أن نتأكد من كون كل االعمدة تعتمد على المفتاح االساسي مباشرة، وال تعتمد علیھ عن طریق عمود -

.آخر) يغیر مفتاح(في المثال التالي العالقة تمثل جدوال یتكون من رقم الصنف كمفتاح اساسي، واسم الصنف والشركة المصنعة -

.وبلد الشركة المصنعة كأعمدة غیر مفتاحیة

واضح تماما أن المفتاح االساسي یحدد اسم الشركة المصنعة، وأن اسم الشركة یحدد بلد الشركة، وعلیھ فإن -.یحدد بلد الشركة المصنعة) رقم المنتج(دیة ھي كون المفتاح االساسي العالقة المتع

Page 76: __2 database

٢٩

:یجب إلغاء العالقة المتعدیة بتحویل الجدول السابق إلى جدولین یتكون كل واحد من إعتمادیة كاملة كما یلي-

ت فیھ ، إلى جدولین ھما المنتج و جدول الشركا)المنتج(كما ھو واضح من الشكل السابق تم فصل الجدول -، بحیث یكون مفتاح اجنبیا في جدول المنتج، والذي یظل المفتاح االساسي بھ Mfrالمفتاح االساسي اسم الشركة

.كما كان سابقا

Page 77: __2 database

٣٠

:تمرین للطالب، 0NFعلى الجدول التالي، الذي یظھر أنھ في الشكل الطبیعي الصفري normalizationقم بتطبیق قواعد التطبیع .CDs، علما أنھ یمثل قاعدة بیانات نظام تأجیر أقراص مدمجة 3NFالطبیعي الثالث حتى وصولھ إلى الشكل

:وأن قاموس بیانات الجدول كالتاليالبیانإسم العمودReceiptرقم إیصال اإلستالم الذي یأخذه المستأجر معھ.

Dateتأریخ عملیة التأجیر.PIDرقم الزبون الذي قام بعملیة االستئجار.

Pnameاسم الزبون.Phoneرقم ھاتف الزبون.

Cityالعنوان ـ المدینةStateالعنوان ـ الوالیةVIDأرقام االفالم التي في األقراص المستأجرة.

Vnameاسماء االفالم المستأجرة.Typeنوع الفیلم أو نوع القرص؟.Daysعدد ایام االیجار لكل فیلم.Costو المبلغ الذي على الزبون دفعھتكلفة االستئجار وھ.

Page 78: __2 database

المحاضرة السابعة بعنوان

( لغة تعريف البياناتDDL: Data Definition Languageولغة (DML: Data Manipulation Language معالجة البيانات

MS-SQL SERVER2000 باستخدام لغة قواعد البياناتالمحتوى:

PDF قاعدة البیانات الفیزیائیة Integrity Enhancement Featureمیزة تعزیز سالمة البیانات

create statement Alter Statement

Select Statement Where Statement Insert Statement

Update Statement Delete Statement

Order By And or between

AliasFunction