Lecture10 Objectorienteddatabasesystems1. المعطيات قواعد تصميم :المادةDBAR
التوجه غرضية المعطيات قواعد إدارة نظم :العاشر الفصل
Object-Oriented Database Systems
الكلمات:المفتاحية
غرضيةالتوجهObject Oriented،الغرضObject،الصفClass،نسخةالصف
Instance،أنماطالمعطياتالمجردة،ي زييّز مميةيالهوييرضيللغ)أورا فِّ ييمعُ(يةيالهوي
Identifier،الطرائييقMethods،الوراثييةInheritance،الكبسييلةأوالتغليييف
encapsulation،هرمييييةالصيييفوا فClass Hierarchy،ددييييةّز تعالكشيييكال
Polymorphism،صفأعلىSuperclass،صفج زئيSubclass،الوراثةالحادية
Single Inheritance،الوراثةددةّز المتعMultiple Inheritance،يادةيإعيفيالتعري
Redefinition،النسنادكرّز المبللنمطLate binding،النسنادخرّز المتأللنمطEarly
binding.
:ملخص
يرك زهذايليالفصيىيعليمينظإدارةيديقواعياتيالمعطييةّز ييغرض،جهّز يويالتي زاتييّز والم
يةّز النسانس.لها
أهداا ف:تعليمية
يهدا فهذاالفصلللتعرا ف:على
•لمحةعنتاريخقواعدالبياناتيةّز غرض.جهّز التو
•متىيجبانستخدامقواعدالبيانات.يةّز الغرض
•مي زاتقواعدالبياناتيةّز الغرضمقارنةمعقواعدالبيانات.يةّز العلئق
•مساوئقواعدالبياناتيةّز الغرضمقارنةمعقواعدالبيانات.يةّز العلئق
•تمثيلالغراضفيقاعدةبيانات.يةّز غرض
•المفاهيميةّز النسانسفيقواعدالمعطيات.يةّز الغرض
•مقارنةقواعدالمعطياتغرضيةالتوجهمعالنماذج.السابقة
1
2. 1: .مقدمة
تخ زنالمعطياتفيقواعدالبياناتيةّز العلئقضمنجداوليةّز ثنائالبعديألفيتتينيم
أنسطرثلّز تمالكياناتوأعمدةثلّز تمواصفاتالكيانالمتضمنفي.الجدول
ماّز ألتخ زينالغيراضقيدةّز المعفييقواعيدالمعطييات،ييةّز العلئقيجيبتوصييفها
بانستخدامأنماطبسيطةSimple Data Types)نسلنسل،يةّز محرف،أرقامتاريخ،(...
لً ا فمثالغرضObjectالذيثلّز يمطائرةيجبتج زيئهإلىجناحيهي)لياديأبعي زاتيومي
يوضع (أخرىفي،جدولر كّز ومحله )،انستطاعة،وزنيوضع (...فييدوليجيريآخ
.وهكذا
قديكونتج زيءالغراضقدةّز المعإلىأغراضأبسطلتخ زينهافيالجدولأمييرا
هداِد مجقدّز ويعالتعاملمعمجموعةالج زاءكغرض.واحد
ي زّز تتمقواعدالمعطياتيةّز غرضجهّز يويالتينيعيديقواعياتيالمعطييةييّز العلئقيةييّز بإمكان
تخ زين،الغراضيةّز وبإمكانتوصيفنسلو كالغراضمنخلليقيالطرائMethod،
إضافةإلىتوصيف.ي زاتهاّز مم
1984ولدةمفهومنظمإدارةقواعدالبياناتيةّز الغرضODBMS.
1989وضعتعريفددّز محليODBMS.
1990المنتجالول)ObjectStore, O2.(… ,
1991البدءبوضعمعاييرللتخاطبمعقواعدالبيانات.يةّز الغرض
بعدذلكيميتيويريتطيةيمجموعينيمياييريالمعلدارةيليوالتعاميعيميديقواعياتيالبيان
الغرضية:منها
ODMG (Object Database Management Group) release 1.2 …. 3.0
SQL3
…
2.متىيجبانستخدامقواعدالبياناتالغرضيّزة؟
منالمفيدانستخدامقواعدالبياناتيةّز غرضجهّز التوعندوجودأغراضقدةّز معيبييج
تمثيلهافيقاعدة،البياناتوعندوجودعلقاتقدةّز معبينهذه.الغراض
2
3. منجهةأخرىمنغيرالمفيدانستخدامقواعدالبياناتيةّز غرضجهّز يويالتيديعنيوديوج
حجومكبيرةمنالمعطياتالبسيطةتربطهاعلقاتبسيطةيمكنالتعبيرعنهامن
خللجداوليةّز ثنائالبعددون.قةّز مش
3.مي زاتقواعدالبياناتالغرضيةمقارنةمعقواعدالبيانات:العلئقية
1.الغراضليستبحاجةإلى،تج زيءومنثمتجميعيايلتخ زينه،يترجاعهايوانس
ممالصّز يقزمنالمعالجةلصّز ويقمنحجمالرمازCodeالمطلييوبكتييابته
فيالتطبيقالمرتبطبقاعدة.البيانات
2.تسمحبتضمينمعلوماتدلليةأكثرفيقاعدة،المعطياتوهذامايعطييي
واقعيةأكثرلتمثيلالغراضفيالعالم.الحقيقي
3.تجوالأنسهلبين.الغراض
4.إمكانيةيفيتعريياطيأنم،يدةيجدييايمميديي زيينيميائفيوظيديقواعياتيالمعطي
وإمكانيات.النمذجة
5.أكثرتطابقامعالواقعيليتعام )يعيميراضيأغيايلهيفاتيواصيلو كيونسيبطييض
علقتهامعالغراض.(الخرى
6.توصيفنسلو كالغراضالمتضمنةفييدةيقاعياتيالبيانيسيولييفاتهايمواص
.فقط
7.إعادةانستخداميفوا فيالصييييعطيةيإمكانييبريأكيويريللتطيريعيالسييانةيوالص
السهلةلقاعدةالمعطيات.ووظائفها
4.مساوئقواعدالبياناتالغرضيةمقارنةمعقواعدالبيانات
:العلئقية
1.أداءأبطأفيحالالمعطياتمنأنماط.بسيطة
2.ليوجدلغةانستعلمقيانسيةتتعامل.معها
3.يؤمنيتيديقواعياتيالمعطييةيالعلئقيلً ا حلً ا ياميكشيميميلتصيديقواعياتيمعطي
العمالواحتياجات،الدارةيايبينمليؤمنيييوذجيالنميييالغرضيوجهيالتيليمث
هذهالدوات.بعد
4.أدواتأقلمتوافرةللتعاملمعقواعدالبيانات.الغرضية
5.معاييرRDBMSمستقرةأكثر)أكثر.(نضوجا
3
5. ،لً ا فمثبانستخدامالنموذجالغرضييتمتمثيلالفاتورةيرضيبغيهيليةيثلثيائصيخص
بسيطةPropertiesهيالرقموالتاريخ،والجمالييافةيبالضيىيإليةيخاصيونيال زب
التيهيمننمطمركبومجموعة ()غرضأغراضمننمط.()قلم
تعطيقواعدالبياناتالغرضيةللمستخدمإمكانيةقراءةالغرضككتلة،واحييدةأو
قراءةأج زاء.منه
التعاملمعالغراضفيقاعدةالبياناتلهأكثرمنلغةقيانسيةيايمنهSQL3يتييال
تتألف:من
ODL object definition language. (Replacing DDL)
OIF object interchange Format. (Replacing DCL)
OQL object query language. (Replacing DML)
هذهاللغةمعقدةيبياينسيةيمقارنيعيمSQL،يييوهيةيبحاجيدةيلعياتيجلسيرحيلش
مفرداتهاوهذاخارجنطاقهذه.المحاضرة
6.المفاهيمالنسانسيةفيقواعدالمعطيات:الغرضية
الغرض)Object:(
يعرا فالغرضمنخللي زّز ممالهويةالخاصبهIdentifier،حيثيتميناديإنسيذايه
ي زّز الممللغرضلحظةإنشائهوليمكن،تغييرهويحذا فلحظةحذا ف.الغرض
برّز تعالواصفاتpropertiesعنهوية،الغرضوتتمي زنسخالغرضInstancesعن
بعضهامنخللقيمالواصفات)كلنسخةتحملقيممختلفةلواصفات.(الغرض
را فّز معالغرضObject Identity:
-وحيدبالنسبة،للغرض
-معطىمنالنظاملحظةإنشاء،الغرض
-ليمكنتغييرهتحتأيظرا فمن،الظروا ف
-يمكنحذفهإذامحيالغرض،نفسه
-ليمكنأبداإعادة.انستخدامه
واصفاتالغرضObject Properties:
5
6. واصفاتالغرضتحددهويته)الفاتورةلهامجموعةواصفات،الرقم :هي،التاريخ
،(...وقيمالواصفاتتميزنسخةمنالغرضعنغيرهامن.النسخ
يستخدميزّز ممالغرضللربطبين،غرضينالً و فمثواصفةالمادةيةّز الدرسفي
الغرضمنهاجتحويقائمةمميزاتالغرضمادة،للدللةعلىمحتوىالمنهاج
منالمواد)عالقة1-n.(
حالةالغرضObject state:
هيمجموعةالقيمالتيخذهاختأخخفاتخواصخرضخغخيخفختخوقخنخويمك .خنخيّز معأن
ولتغيير .يرّز تتغحالةغرضيرّز غقيم،واصفاتهولتغييرواصفاتهيجبخالخإرسخالةخرس
إلىالغرضعبراستدعاء.طرائقه
طرائقالغرض)Method:(
الطريقةهيرمازCodeيستخدمخذخلتنفيخةخيّز عملخةخينّز معدلّز خختعخيخفخمخقيخفاتخواص
خرضخالغProperties،خنخويمكخذختنفيخاتخيّز عملخىخعلخرضخالغخنخمخاللختدعاءخاس
.طرائقه
طرائقالغرضتحميواصفاتهمنالوصولغيرولّز المخ.إليها
ليمكنلغرضأنيصلللبنيةالداخليةلغرض،آخرويتمالتخاطبخنخبيخراضخالغ
عنطريقرسائلMessagesتتضمنطلباتتنفيذطرائق.معينة
يمكنللغراضتبادلالرسائلفيمابينها
يزّز يتمالنموذجالغرضيالتوجهObject Orientedبفكرةالتغليف( )الكبسلة
Encapsulationالتيققّز تحلً و عزلواصفاتالغرضPropertiesالتيددّز تحخالتهخح
6
7. State،لً و وعزلطرائقالغرضMethodالتيخددختحخلوكهخسBehaviorخالتغليفخف .
يضمنإخفاءتمثيلخاتخالبيانخقخوتحقيخقخالطرائMethods implementationخنخع
خارج.الغرض
الصفوف)Classes:(
يتمتجميعالغراضالتيتمتلكمعطياتمتشابهةفي،صفوففالصفهوعبخخارة
عنمجموعةمنالغراضالمتشابهةمعبنيةمتشابهةوسلوك ()واصفاتمتشخخابه
.()طرائق
ويحتويالصفعلىوصفلبنيةالمعطياتوتفصيلتحقيقالطرائقللغراضفي
ذلك.الصف
يدعىكلغرضمنالصفبخنسخةالصفInstance،وكلنسخةتملكيزّز مم
هويةفريدUnique Identifier)والذيندعوهأيضارفِّ معيةّز هو،(خدخفريخاخكمخاخنهّز أ
رفّز تعالصفالذيتنتمي.إليه
تدعىمجموعةرسائلالصفببرتوكولالصفProtocolحيثيملككلمنها
اسمايتم .يزاّز ممإرسالالرسائلغالباإلىخراضخأغخةخمعينخنخولكخضخبعخائلخالرس
ترسلمباشرةإلىالصف)مثالعلىطريقخةتابعخةللصخف،ةً و مباشخرطريقخةبنخاء
غرضجديدConstructor.(
هنالكنوعانلطرائقطرائق :الصفعامةPublicوطرائقخاصةPrivate،حيث
يمكنلغراضأخرىأنتطلبتنفيذخقخالطرائخةخالعام،خطخفقخاخبينملخاخيمكنهخداخأب
طلبتنفيذالطرائق.الخاصة
7
13. هنالكنوعانمنأنماط،المعطياتنمطمعطياتميطةمبسSimple Data Types
ونمطمعطياتمجردةAbstract Data Typesيتمتعريفهمنممملمةقب.متخدممالمس
ومنخللهذهالنماطيمكنتعريفأغراض،قدةّة معتحويواصفاتهيعبارة
عننسخمنصفوف.أخرى
كمايوجدنوعانمنإسنادالقيممنادمإس :للواصفاتمرممبكEarly bindingمنادموإس
متأخرLate binding:
فيالسنادالمتأخر،للنمطاليتممعرفةنمطمعطياتالواصفةحتىزمن،التنفيذ
ويمكنلنسختيغرضمختلفتينمننفسمفمالصأنمامتحويمتينمةقيممنممميمنمط
معطياتمختلفينلنفسبينما .الواصفةفيالسنادالمبكر،للمعطياتفإنمدةمةقاع
المعطياتتختبرنمطمعطياتالواصفةفيزمن.التعريف
الجدولINVENTORYباستخدامأنماطمعطياتأساسيةمسبقةالتعريف
13
15. كمايكافئالصفمجموعةالكياناتأوالجدولفيالنماذج،الخرى،ولكممنمىميبق
الصفأكثرةً م ةقولنهاليعطيمطمفقمفاموصمةملبني،ماتمالمعطيماموإنممفميصملوكمس
أغراضالصف.أيضا
برَ ر تَ ر يعٌع وتعريفالمستخدملنماطمجردةجديدةةً م أداةقويةمقارنةبالنماذج.الخرى
كمايتميزالنموذجالغرضي،التوجهبتنظيمهللصفوفممنمضمةمهرميمة؛موراثيمثمحي
يرثالصفجميع.آباقئه
ويتميزهذاالنموذجبفكرةالتغليفالذييحققالً م مزمعماتملمعطيمفمالصمهمولطراقئق
.الخاصة
كمااليوجدملممقابمزملمميمةمالهويماصمالخمالغرضمبميمفماذجمالنم،مرىمالخمثمحي
دمَ ر يستخُهذاالمميزلبناءعلةقاتبينالغراضبغضمرمالنظمنمعمةمحال،مرضمالغ
فيحينيستخدمالنموذجالعلقئقيةقيمةمعينةأوأكثرمنمممممةقيمفاتمواصمانمالكي
لبناءالعلةقاتمعالكيانات.الخرى
8.نظامإدارةةقواعدالمعطياتغرضية:التوجه
نظامإدارةةقواعدالمعطياتيّة غرضمومه :التوجهمارةمعبمنمعماممنظإدارةمدمةقواع
معطياتيكاملبينمنافعنظمالمعطيات،التقليديةوبينالقوةوالميزاتالبرمجية
لنموذجالمعطياتغرضي.التوجه
15
17. 2 STREET VARCHAR2(20),
3 CITY VARCHAR2(15),
4 STATE CHAR(2),
5 ZIP CHAR(5)
6 );
7 /
Type created
SQL > CREATE OR REPLACE TYPE T_JOB AS OBJECT (
2 CNAME VARCHAR2(20),
3 START_DATE DATE,
4 END_DATE DATE,
5 MONTHLYSALARY NUMBER(7, 2),
6 MEMBER FUNCTION MONTHSONJOB RETURN NUMBER,
7 MEMBER FUNCTION TOTALEARNED RETURN NUMBER
8 );
9 /
Type created
SQL > CREATE TABLE WORKER {
2 WRK_NUM NUMBER PRIMARY KEY,
3 WRK_LNAME VARCHAR2(15) NOT NULL,
4 WRK_FNAME VARCHAR2(15) NOT NULL,
5 WRK_ADDRESS T_ADDRESS,
6 WRK_PREVJOB T_JOB
7 };
8 /
Table created
17