sinf ierarxiyasi Bu holda supersinf deb ataladigan har bir sinf o'z kichik sinfiga ega bo'lish imkoniyatini nazarda tutadi. Quyidagi zanjirni misol qilib keltirish mumkin: korxonaning barcha dasturchilari uning xodimlaridir, shuning uchun OODM doirasida PROGRAMMER sinfining ob'ekti bo'lgan har bir dasturchi, o'z navbatida, u ham xodimdir. , EMPLOYEES sinfining ob'ekti hisoblanadi. Shunday qilib, PROGRAMMERLAR kichik sinf, STAFF esa yuqori sinf bo'ladi. Ammo dasturchilarni tizimli va amaliy dasturchilarga ham ajratish mumkin. Shunday qilib, PROGRAMMERS SIS_PROGRAMMERS va APPLIC_PROGRAMMERS kichik sinflari uchun supersinf bo'ladi. Ushbu zanjirni davom ettirsak, biz sinf ierarxiyasiga ega bo'lamiz, unda har bir kichik sinf ob'ekti o'zgaruvchilarning namunalarini va mos keladigan yuqori sinf usullarini meros qilib oladi.
Merosning bir necha turlari mavjud - bitta, ko'p va tanlab. Singular meros - bu pastki sinflar ko'pi bilan bitta yuqori sinfdan meros bo'lganda. Ko'p merosxo'rlik - bir nechta yuqori sinfdan meros. Tanlangan meros kichik sinfga o'zining yuqori sinfidan cheklangan miqdordagi xususiyatlarni meros qilib olish imkonini beradi.
O'zgaruvchan misol merosi deyiladi tizimli meros, usul merosi - xulq-atvor merosi, va turli sinflar uchun bir xil usulni qo'llash, to'g'rirog'i, turli sinflar uchun bir xil nomdagi turli usullarni qo'llash qobiliyati deyiladi. polimorfizm.
Ob'ektga yo'naltirilgan arxitektura yana bir ierarxiya turiga ega - konteyner ierarxiyasi. Bu shuni anglatadiki, ba'zi ob'ektlar kontseptual ravishda boshqalarida bo'lishi mumkin. Shunday qilib, BO'LIM klassi ob'ekti bo'lim boshlig'iga mos keladigan HODIM klassi ob'ektiga havola bo'lgan HEAD umumiy o'zgaruvchisini o'z ichiga olishi kerak, shuningdek, ushbu sohada ishlaydigan xodimlarga mos keladigan ob'ektlarga havolalar to'plamiga havolani o'z ichiga olishi kerak. bu bo'lim.
Ba'zi ob'ektga yo'naltirilgan tizimlarda sinf ham ob'ekt bo'lib, o'z atributlari va usullariga ega. Sinfning umumiy xususiyatlari uning atributlari bilan tavsiflanadi. Ob'ektlar sinfining usullari real dunyodagi ob'ektlar xususiyatlarining o'ziga xos analogidir. Muayyan sinfga tegishli bo'lgan har bir ob'ekt ushbu xususiyatlarga ega. Shuning uchun, ob'ekt yaratilganda, unga xos xususiyatlarni aniqlash uchun unga tegishli bo'lgan sinfni e'lon qilish kerak.
Foydalanuvchi va ob'ekt xabarlar orqali o'zaro ta'sir qiladi. Har bir xabarga javoban tizim mos keladigan usulni bajaradi.
Ob'ekt modelidagi barcha munosabatlar odatda OID sifatida amalga oshiriladigan mos yozuvlar atributlari yordamida amalga oshiriladi.
Relyatsion ma'lumotlar bazasidagi munosabatlar birlamchi va tashqi kalitlarning mos kelishi bilan ifodalanadi. Ma'lumotlar bazasida jadvallar o'rtasida assotsiatsiyalar yaratish uchun tuzilmalar mavjud emas, havolalar jadvallarni ulashda kerak bo'lganda foydalaniladi. Bundan farqli o'laroq, munosabatlar ob'ektga yo'naltirilgan ma'lumotlar bazasining asosidir, chunki har bir ob'ekt o'zi bilan bog'langan ob'ektlarning identifikatorlarini o'z ichiga oladi.
OOMDda nafaqat an'anaviy havolalar, balki meros orqali bog'lanishlar ham amalga oshirilishi mumkin.
Yakkama-yakka munosabat (1:1) A va B ob'ektlari o'rtasida A ob'ektiga B ob'ektiga havola atributini va (yo'naltiruvchi yaxlitlikni saqlash uchun) B ob'ektiga A ob'ektiga mos yozuvlar atributini qo'shish orqali amalga oshiriladi.
Birdan ko'pga munosabat (1:M) A va B ob'ektlari o'rtasida A ob'ektiga B ob'ektiga havola atributini va B ob'ektiga A ob'ektiga havolalar to'plamini o'z ichiga olgan atributni qo'shish orqali amalga oshiriladi (masalan, B mos yozuvlar atributi (OID2, OID3 ...) qo'shiladi. A ob'ektiga va OID2, OID3, ... bilan B ob'ektining misollari A mos yozuvlar atributi qo'shiladi: OID1.
Ko'pdan ko'pga munosabat (M:N) A va B ob'ektlari o'rtasida har bir ob'ektga havolalar to'plamini o'z ichiga olgan atributni qo'shish orqali amalga oshiriladi.
OODM da siz bir sinf ob'ekti uning qismlari sifatida boshqa sinf ob'ektlarini o'z ichiga olganligini tavsiflovchi "butun qism" munosabatidan foydalanishingiz mumkin. Ishlab chiqarish ma'lumotlar bazasida PRODUCT sinfi bilan QISM va YIG'LASH sinflari o'rtasida "butun qism" munosabati bo'ladi. Bu munosabat maxsus semantikaga ega bo'lgan ko'p-ko'p munosabatlarining bir variantidir. Butun qism munosabati boshqa har qanday ko'p-ko'p munosabatlari kabi, bog'langan ob'ekt identifikatorlari to'plami bilan amalga oshiriladi. Biroq, u odatiy ko'p-ko'p munosabatlaridan farqli o'laroq, boshqa semantik ma'noga ega.
Ob'ektga yo'naltirilgan paradigma merosni qo'llab-quvvatlaganligi sababli, OODMda "is" munosabatlaridan va "kengaytiruvchi" munosabatlardan foydalanish mumkin. Umumlashtirish-ixtisoslashuv munosabati sifatida ham tanilgan “is” munosabati meros ierarxiyasini yaratadi, unda kichik sinflar yuqori sinflarning maxsus holatlari hisoblanadi. Bu qayta meros qilib olingan xususiyatlarni tasvirlamaslik imkonini beradi. "Kengaytiradi" munosabatidan foydalanganda, pastki sinf o'zining maxsus holati bilan cheklanib qolmasdan, balki yuqori sinfning funksionalligini kengaytiradi.
Keling, OOMD da yaxlitlik cheklovlari va ma'lumotlar bilan operatsiyalar kabi komponentlar qanday amalga oshirilishini ko'rib chiqaylik.
Ushbu komponentlarning xususiyatlari modelning o'ziga xos xususiyatlari bilan belgilanadi. OOMDdagi bu o'ziga xoslik, birinchi navbatda, ob'ektni inkapsulyatsiya qilish, ya'ni ichki tuzilmaning maxfiyligi, ma'lumotlarga faqat oldindan belgilangan usullar orqali kirish, sinf ierarxiyasi va konteyner ierarxiyasi kabi ichki tushunchalar bilan belgilanadi.
OOMD ning o'ziga xos xususiyatlari, shuningdek, ob'ektning o'ziga xos xususiyatlari bilan belgilanadi. U ob'ektlarni sinflarga guruhlash zaruratida namoyon bo'ladi. Har bir ob'ekt vazifaga qarab u yoki bu sinfga kiritiladi va bitta ob'ekt bir vaqtning o'zida bir nechta sinflarga tegishli bo'lishi mumkin (masalan, DASTURLAR va YUQORI maoshli oilalar). Ob'ektning yana bir o'ziga xos xususiyati shundaki, u bir sinfdan (kichik sinf) ikkinchisiga "ishlay oladi". Shunday qilib, TIZIM DASTURchisi oxir-oqibat AMALIY DASTURchiga aylanishi mumkin. Shunday qilib, sinf ierarxiyasi avvalgidek tuyulishi mumkin bo'lgan ierarxik modelga o'xshamaydi, lekin tizimdan sinf ierarxiyasidagi har bir ob'ektning joylashishini o'zgartirish imkoniyatini talab qiladi, masalan, ichida "yuqoriga" yoki "pastga" siljiydi. berilgan ierarxiya. Ammo murakkabroq jarayon ham mumkin - tizim ob'ektni istalgan vaqtda ierarxiyaning o'zboshimchalik bilan yuqori qismiga biriktirish (ajratish) qobiliyatini ta'minlashi kerak.
OODM da havola yaxlitligi cheklovlari muhim rol o'ynaydi. Ob'ektga yo'naltirilgan DMdagi havolalar ishlashi uchun havolaning ikkala tomonidagi ob'ekt identifikatorlari mos kelishi kerak. Misol uchun, agar XODIMLAR va ularning FARZANDLARI o'rtasida bog'liqlik mavjud bo'lsa, u holda bolani tavsiflovchi ob'ekt xodimni ifodalovchi ob'ektga kiritilganda, xodimning shaxsiy guvohnomasi mos keladigan ob'ektga qo'shilishi uchun qandaydir kafolat bo'lishi kerak. Relyatsion ma'lumotlar modelidagi referent yaxlitligiga biroz o'xshash bo'lgan bu turdagi havola yaxlitligi orqa havolalar yordamida o'rnatiladi. Bog'lanishlarning yaxlitligini ta'minlash uchun dizaynerga ob'ektning teskari identifikatorining joylashishini belgilash uchun zarur bo'lgan maxsus sintaksis taqdim etiladi. Aloqalarning yaxlitligiga (shuningdek, relyatsion ma'lumotlar bazasida havola yaxlitligiga) cheklovlar o'rnatish dizaynerning javobgarligidir.
OOMD da ma'lumotlarni tavsiflash ham, ularni manipulyatsiya qilish ham bir xil ob'ektga yo'naltirilgan protsessual til yordamida amalga oshiriladi.
ODMG (Object Database Management Group) ob'ektlar ma'lumotlar bazalari texnologiyasini standartlashtirish muammolari bilan shug'ullanadi. U ma'lumotlar bazasi ob'ektlari semantikasining standart modelini belgilaydigan ob'ekt modelini ishlab chiqdi (ODMG 2.0 1997 yil sentyabrda qabul qilingan). Ushbu model muhim ahamiyatga ega, chunki u ob'ektga yo'naltirilgan DBMS (OODBMS) tushunadigan va amalga oshirishi mumkin bo'lgan o'rnatilgan semantikani belgilaydi. Ushbu semantikadan foydalanadigan kutubxonalar va ilovalarning tuzilishi berilgan ob'ekt ma'lumotlar modelini qo'llab-quvvatlaydigan turli OODBMSlar orasida portativ bo'lishi kerak. ODMG arxitekturasining asosiy komponentlari quyidagilardir: Ob'ekt modeli (OM), Ob'ektni aniqlash tili (ODL), Ob'ektga so'rovlar tili (OQL) va C++, Java va Smalltalk bilan bog'lanish qobiliyati.
ODMG 2.0 standartiga muvofiq ob'ekt ma'lumotlar modeli quyidagi xususiyatlar bilan tavsiflanadi:
Asosiy qurilish bloklari ob'ektlar va harflardir. Har bir ob'ekt o'ziga xos identifikatorga ega. Literal o'z identifikatoriga ega emas va ob'ekt sifatida alohida mavjud bo'lolmaydi. Literallar har doim ob'ektlarga ko'milgan bo'lib, ularga alohida murojaat qilib bo'lmaydi;
Ob'ektlar va harflar turiga ko'ra farqlanadi. Har bir tur o'z domeniga ega bo'lib, u turdagi barcha ob'ektlar va literallar tomonidan taqsimlanadi. Turlarning xatti-harakati ham bo'lishi mumkin. Agar tur qandaydir xatti-harakatlarga ega bo'lsa, u holda bu turdagi barcha ob'ektlar bir xil harakatga ega. Amalda, tip ob'ekt yaratilgan sinf, interfeys yoki oddiy ma'lumotlar turi (masalan, butun son) bo'lishi mumkin. Ob'ektni turning namunasi sifatida ko'rish mumkin;
Ob'ektning holati xususiyatlar to'plami tomonidan amalga oshiriladigan joriy qiymatlar to'plami bilan belgilanadi. Bu xususiyatlar ob'ektning atributlari yoki ob'ekt va bir yoki bir nechta boshqa ob'ektlar o'rtasidagi munosabatlar bo'lishi mumkin;
Ob'ektning xatti-harakati ob'ekt ustida yoki ob'ektning o'zida bajarilishi mumkin bo'lgan operatsiyalar to'plami bilan belgilanadi. Operatsiyalar kirish va chiqish parametrlari ro'yxatiga ega bo'lishi mumkin, ularning har biri qat'iy belgilangan turga ega. Har bir operatsiya terilgan natijani ham qaytarishi mumkin;
Ma'lumotlar bazasi ta'rifi Ob'ektni aniqlash tilida (ODL) yozilgan sxemada saqlanadi. Ma'lumotlar bazasi ob'ektlarni saqlaydi, bu ularni turli foydalanuvchilar va ilovalar o'rtasida almashish imkonini beradi.
OODM ga asoslangan ma'lumotlar bazasi ob'ektga yo'naltirilgan DBMS (OODBMS) deb ataladi. Ushbu ma'lumotlar bazasi 3-avlod ma'lumotlar bazasi deb ataladi* (* Ma'lumotlarni saqlash modellarining rivojlanish tarixi ko'pincha uch bosqichga (avlodlarga) bo'linadi: birinchi avlod (1960 yil oxiri - 70-yillarning boshi) - ierarxik va tarmoq modellari; ikkinchi avlod (taxminan 1970-1980 yillar) - relyatsion model; uchinchi. avlod (1980-yillar - 2000-yillarning boshlari) - ob'ektga yo'naltirilgan modellar.).
Bugungi kunda ob'ektga yo'naltirilgan ma'lumotlar bazalari turli tashkilotlarda keng ko'lamli muammolarni hal qilish uchun qo'llaniladi. Axborot texnologiyalari ma'lumotlari sohasida to'plangan tajribani tahlil qilish va umumlashtirish ob'ektga yo'naltirilgan ma'lumotlar bazalaridan foydalanish asosli bo'lgan ilovalarni aniqlash imkonini berdi:
Ilova ko'p sonli o'zaro ta'sir qiluvchi qismlardan iborat. Ularning har biri boshqalarning xatti-harakatlariga bog'liq bo'lgan o'z xatti-harakatlariga ega;
Tizim katta hajmdagi tuzilmagan yoki murakkab ma'lumotlar strukturasini qayta ishlashi kerak;
Ilova ma'lumotlarga bashorat qilinadigan kirishni amalga oshiradi, shuning uchun ob'ektga yo'naltirilgan ma'lumotlar bazalarining navigatsiya xususiyati sezilarli kamchilik bo'lmaydi;
Rejadan tashqari so'rovlarga bo'lgan ehtiyoj cheklangan;
Saqlangan ma'lumotlarning tuzilishi ierarxik yoki o'xshash xususiyatga ega.
Hozirgi vaqtda dasturiy ta'minot bozorida ko'plab ob'ektga yo'naltirilgan DBMS mavjud. Jadvalda. 10.6 ushbu sinfning ba'zi tijorat tizimlarini ko'rsatadi.