V objektovo orientovaných databázach (OODB) môžu používatelia nastavovať operácie na konkrétnej databáze, ktorá sa skladá z objektov, ktoré môžu byť rôznych typov a pre ktoré sú nastavené operácie. Môžu efektívne spracovávať binárne informácie, ako sú multimediálne objekty. Ďalšou pridanou výhodou OODB je, že ho možno naprogramovať s malými procedurálnymi rozdielmi bez ovplyvnenia celého systému.
Predpoklady na vytvorenie štandardu
História objektovo orientovaných OODB databáz začína koncom minulého storočia. Boli vytvorené, aby vyhovovali potrebám nových aplikácií. Predpokladom bolo, že objektovo orientované databázy prinesú v 90. rokoch revolúciu v softvérových systémoch. Teraz je jasné, že to tak nie je. Oživenie tohto konceptu prostredníctvom komunít slobodného softvéru a identifikácia vhodných aplikácií preň však motivuje k preskúmaniu charakteristíkOODB, čo je alternatíva k všadeprítomným relačným databázam.
Objektovo orientované poskytuje flexibilitu na zvládnutie niektorých alebo všetkých požiadaviek a nie je obmedzené na typy údajov a dopytovacie jazyky tradičných databáz. Kľúčovou vlastnosťou OODB je schopnosť, ktorú poskytujú vývojárovi, čo mu umožňuje špecifikovať štruktúru zložitých objektov aj aplikačné operácie. Ďalším dôvodom pre vytváranie OODB je rastúce používanie jazykov na vývoj softvéru.
Databázy sa stali základom mnohých informačných systémov, ale tradičné databázy sa ťažko používajú, keď sú aplikácie, ktoré k nim pristupujú, napísané v C++, Smalltalk alebo Java. Napríklad objektovo orientované databázy 1C boli navrhnuté tak, aby sa dali priamo integrovať s aplikáciami používajúcimi objektovo orientované jazyky prijatím ich konceptov: Visual Studio. Net, C ++, C, Microsoft SQL Server a ostatné.
Hlavnou výhodou OODB je úplná eliminácia potreby RMs1 (impedancia) s následným zlepšením výkonu.
Chyby:
- Veľmi primitívne konzultačné mechanizmy, žiadna samoštandardná akceptovaná platforma.
- Procedúry sa nedajú uložiť, pretože objekty sú prístupné iba v klientovi.
- Nezrelosť na trhu.
- Žiadne fyzické zoskupovanie objektov.
Objektová paradigma
Objektovo orientované databázy sú programovateľné databázy, ktoré ukladajú komplexné dáta a ich vzťahy priamo bez priraďovania riadkov a stĺpcov, vďaka čomu sú vhodnejšie pre aplikácie, ktoré pracujú s veľkými dávkami. Objekty majú vzťahy mnoho k mnohým a sú prístupné pomocou ukazovateľov, ktoré sú s nimi spojené na vytvorenie vzťahov. Ako každý programovateľný program, OODB poskytuje prostredie na vývoj aplikácií a trvalé úložisko pripravené na využitie. Ukladá a manipuluje s informáciami, ktoré možno digitalizovať vo forme objektov, poskytuje rýchly prístup a poskytuje skvelé možnosti spracovania.
Základné koncepty používané v objektovo orientovanej databáze:
- object identity;
- typ konštruktéra;
- jazyková kompatibilita;
- typ hierarchie a dedenia;
- spracovanie zložitých objektov;
- polymorfizmus a preťaženie operátorov;
- vytváranie verzií.
Na úplné zváženie všetkých aspektov, ktoré charakterizujú objektovo orientovanú databázu, je dôležité si všimnúť všetky dôležité objektové paradigmy:
- Zapuzdrenie je vlastnosť, ktorá vám umožňuje skryť informácie pre iné objekty, čím sa zabráni nesprávnemu prístupu alebo konfliktom.
- Dedičnosť je vlastnosť, pomocou ktorej objekty dedia správanie v hierarchii tried.
- Polymorfizmus je vlastnosť operácie, na ktorú sa dá aplikovaťrôzne typy predmetov.
- Rozhranie alebo podpis operácie zahŕňa názov a dátové typy jej argumentov alebo parametrov.
- Implementácia alebo metóda operácie je špecifikovaná samostatne a možno ju zmeniť bez ovplyvnenia rozhrania. Používateľské aplikácie môžu pracovať s údajmi volaním špecifikovaných operácií prostredníctvom ich mien a argumentov, bez ohľadu na to, ako boli implementované.
Triedy a funkcie
Pri uvažovaní o koncepte tried v OODB je potrebné rozlišovať medzi pojmami „trieda“a „typ“. Typ sa používa na opis množiny objektov s podobným správaním. V tomto zmysle záleží na tom, aké operácie možno na objekte vyvolať. Trieda je zbierka objektov, ktoré zdieľajú rovnakú vnútornú štruktúru, takže definuje implementáciu, zatiaľ čo typ popisuje, ako ju používať.
Pojem inštancia sa vzťahuje na skutočnosť, že inštancia triedy môže byť použitá na vytvorenie množiny objektov, ktoré majú rovnakú štruktúru a správanie ako trieda.
Funkcia, ktorá je veľmi dôležitá pre evolúciu objektov je, že môže meniť svoju triedu vrátane atribútov a operácií, pričom si zachováva identitu. To by si vyžadovalo mechanizmus na spracovanie výslednej sémantickej integrity.
Dedenie objektovo orientovanej databázy organizácie umožňuje definovať triedu ako podtriedu už existujúcej nadtriedy. Od nich zdedí všetky atribúty a metódy a môže sa voliteľne definovaťvlastné. Tento koncept je dôležitým mechanizmom na podporu opätovného použitia. Rovnaké časti štruktúry dvoch rôznych tried môžu byť definované iba raz v spoločnej nadtriede, čím sa napíše menej kódu. Existujú niektoré systémy, ktoré umožňujú triede byť podtriedou viac ako jednej nadtriedy. Táto funkcia sa nazýva viacnásobné dedičstvo, nie jednoduché dedičstvo.
Príklad objektovo orientovanej databázy
Často je užitočné použiť rovnaký názov pre rôzne, ale podobné metódy nadtriedy médií z tried obrázkov a videa. Mnoho súborov si môžu prezerať rôzni používatelia. Často si potrebujú prezerať všetky fotografie a videá metódou „view“a treba spustiť príslušný program. Po zavolaní funkcie a odovzdaní odkazu na video sa spustí prehrávač médií. Pre implementáciu tejto funkcie je v prvom rade potrebné definovať operáciu „prezentácia“v bežnej mediálnej nadtriede z tried obrázkov a videa. Každá z podtried predefinuje operáciu vyhľadávania pre svoje špecifické potreby. Výsledkom sú rôzne metódy, ktoré majú rovnaký názov operácie. V tomto prípade má použitie tejto funkcie dôležitú výhodu.
Štruktúra OODB
Objektovo orientovaná paradigma je založená na zapuzdrení údajov a kódu súvisiaceho s každým objektom do jedného modulu. Koncepčne sa všetky interakcie medzi ním a zvyškom systému vykonávajú pomocou správ. Preto rozhraniemedzi nimi je určená povolenou množinou.
Vo všeobecnosti je každý objekt spojený s množinou:
- Premenné, ktoré obsahujú objektové dáta a zodpovedajú atribútom modelu ER.
- Správy, na ktoré odpovedá. Každý môže alebo nemusí mať parametre, jeden alebo viac.
- Metódy, z ktorých každá je kód, ktorý implementuje správy a ako odpoveď na ne vráti hodnotu.
Odosielanie správ v prostredí OO neznamená použitie fyzických SMS v počítačových sieťach. Naopak, odkazuje na výmenu požiadaviek medzi objektmi bez ohľadu na správne podrobnosti ich implementácie. Niekedy výraz volá metódu na spustenie skutočnosti, že správa bola odoslaná objektu, a používa vykonanie zodpovedajúcej metódy.
Identita objektu
Objektovo orientovaný databázový systém poskytuje jedinečnú identifikáciu pre každý nezávislý objekt uložený v databáze. Zvyčajne sa implementuje pomocou systémom generovaného jedinečného identifikátora objektu alebo OID. Hodnota OID je pre externého používateľa neviditeľná, ale systém ju používa interne na správu prepojení medzi objektmi.
Hlavnou vlastnosťou OID je byť nemenný. Hodnota OID pre konkrétny objekt by sa nikdy nemala meniť. To zachováva identitu reprezentovaného reálneho sveta. Je tiež výhodné, aby sa každé OID použilo iba raz, aj keď je odstránené z databázy, jeho OID by nemalo byť priradené inému. Často sa tiež považuje za nevhodné založiť ho na fyzickomadresu objektu v úložisku, pretože ich reorganizácia v databáze môže zmeniť OID. Niektoré systémy však používajú fyzickú adresu ako OID na zvýšenie efektívnosti získavania objektov. Objektovo orientovaný rámec automaticky ukladá relačné obmedzenia, zvyčajne vhodnejšie: doména, kľúč, integrita objektu a referenčná integrita.
Traja hlavní konštruktéri
V OODB môžu byť hodnoty alebo stavy zložitých objektov vytvorené z iných pomocou konštruktorov určitých typov. Jedným zo spôsobov, ako ich reprezentovať, je predstaviť si každý ako trojicu (i, c, v), kde i je jedinečný identifikátor objektu (OID), c je konštruktor, teda ukazovateľ na to, ako je hodnota objektu vytvorený a v je hodnota alebo stav objektu. V závislosti od dátového modelu a systému OO môže existovať viacero konštruktorov.
Tri základné objektovo orientované databázové konštruktory:
- atoms;
- n-tice;
- sady.
Ďalším bežnejším využitím sú zoznamy a grafy. Existuje aj doména D, ktorá obsahuje všetky základné atómové hodnoty priamo dostupné v systéme. Zvyčajne zahŕňajú celé čísla, reálne čísla, reťazce znakov, dátumy a akýkoľvek iný typ údajov, s ktorými systém priamo narába. Štruktúra objektov aj operácií sú zahrnuté v definíciách tried.
Kompatibilita s programovacími jazykmi
Základné koncepty objektovo orientovaných databáz sa používajú vako dizajnové nástroje a kodifikované na prácu s databázou.
Existuje niekoľko možných jazykov, do ktorých možno tieto koncepty integrovať:
- Rozšírenie jazyka na spracovanie údajov, ako je SQL, pridaním komplexných typov a OOP. Systémy poskytujú objektovo orientované rozšírenia relačných systémov, nazývané objektovo orientované relačné systémy.
- Používanie existujúceho objektovo orientovaného programovacieho jazyka a jeho rozšírenie na prácu s databázami. Nazývajú sa perzistentné programovacie jazyky a umožňujú vývojárom pracovať priamo s údajmi bez toho, aby museli prejsť jazykom na spracovanie údajov, ako je SQL. Nazývajú sa perzistentné, pretože údaje naďalej existujú aj po skončení programu, ktorý ich vytvoril.
Pri rozhodovaní o tom, ktorú možnosť použiť, majte na pamäti, že perzistentné jazyky majú tendenciu byť výkonné a je relatívne ľahké robiť programátorské chyby, ktoré poškodzujú databázu. Zložitosť jazykov sťažuje automatické optimalizácie na vysokej úrovni, ako je napríklad zníženie I/O disku. V mnohých aplikáciách je dôležitá schopnosť vytvárať deklaratívne dotazy, ale perzistentné jazyky v súčasnosti takéto dopyty bez problémov neumožňujú.
Hierarchia typov dedičnosti
Objektovo orientované databázové schémy zvyčajne vyžadujú veľký počet tried. Niektoré triedy sú si však navzájom podobné. Aby ste umožnili priamu reprezentáciu podobností medzi nimi, musíte daťdo hierarchie špecializácií. Tento koncept je podobný modelom ER. Špecializácie tried sa nazývajú podtriedy, ktoré definujú dodatočné atribúty a metódy pre existujúcu triedu. Objekty vytvorené s podtriedami zdedia všetko od rodiča. Niektoré z týchto zdedených charakteristík si možno sami požičali od tých, ktorí sú vyššie v hierarchii.
Objekty sa považujú za zložité, pretože vyžadujú veľké množstvo úložného priestoru a nie sú súčasťou štandardných dátových typov, ktoré zvyčajne ponúka Object Oriented Database Management (OODBS). Pretože veľkosť objektov je významná, SOOBMS môže prijať časť objektu a poskytnúť ju aplikácii pred získaním celého objektu. Môže tiež použiť metódy vyrovnávacej pamäte a vyrovnávacej pamäte na získanie častí objektu v predstihu, skôr než k nim bude mať prístup aplikácia.
OODB umožňuje používateľom vytvárať nové typy, ktoré zahŕňajú štruktúru aj operácie, v tomto prípade systém rozšíriteľných typov. Môžete vytvárať knižnice nových typov definovaním ich štruktúry a operácií. Mnohé z nich môžu ukladať a prijímať veľký štruktúrovaný objekt vo forme reťazcov a znakov alebo bitov, ktoré sa „tak ako sú“odovzdávajú aplikačnému programu na interpretáciu.
Metóda môže priamo pristupovať k atribútom cieľového objektu podľa názvu, vrátane akýchkoľvek zdedených od rodičovských tried, ale musí pristupovať k atribútom iných objektov so sekundárnymi signálmi. Tento koncept vám umožňuje priradiť rovnaké meno operátora alebo symboldve alebo viac rôznych implementácií v závislosti od typu objektov, na ktoré sa vzťahuje.
Building Apps
Mnohé databázové aplikácie používajúce OO systémy vyžadujú viacero verzií toho istého objektu. Činnosti údržby sa zvyčajne aplikujú na softvérový systém podľa toho, ako sa menia jeho požiadavky, a zahŕňa zmenu niektorých vývojových a implementačných modulov. Ak je systém už spustený a ak je potrebné zmeniť jeden alebo viacero modulov, vývojár musí vytvoriť novú verziu každého z nich vykonaním zmien.
Všimnite si, že môžu existovať viac ako dve verzie objektu v prípade, že sú potrebné dve verzie navyše k pôvodnému modulu. Vlastné verzie rovnakého softvérového modulu je možné aktualizovať súčasne. Toto sa nazýva paralelný objektovo orientovaný návrh databázy. Vždy však príde bod, kedy je potrebné ich zlúčiť, aby hybridná OODB začlenila zmeny, ktoré boli vykonané, aby boli kompatibilné.
Objektovo orientované podmienky
Všetky počítačové systémy musia mať vlastnosti svojej architektúry, aby sa zohľadnili. Napríklad systém musí mať tabuľky, aby mohol byť považovaný za relačný. OODB nie je výnimkou a obsahuje niektoré základné vlastnosti architektúry objektu. V reálnom svete sa však o mnohých z týchto vlastností diskutuje a niektoré, ako napríklad viacnásobná dedičnosť, sa považujú skôr za vylepšenia objektovo orientovaného databázového modelu akoako súčasť základnej línie. Napríklad v objektovo orientovanom jazyku Smalltalk nie je podporované viacnásobné dedenie, aj keď sa považuje za súčasť architektúry objektu.
Metódy pre triedu definujú množinu operácií, ktoré možno vykonať s objektom. Napríklad, keď sa aplikuje na objekt, buď vráti hodnotu, alebo vykoná nejakú operáciu na aktualizáciu hodnôt. Niekedy to metódy nevrátia. Ak by bola metóda navrhnutá tak, aby aktualizovala počet cestujúcich vo vozidle, nevrátila by sa žiadna hodnota, ale zmenil by ju dátový prvok v cieli.
Objekty sú základným pojmom v OODB. Objekty sú v podstate abstraktnou reprezentáciou vecí skutočného sveta, ktoré sú v ňom uložené. Objekt je inštanciou triedy v tom zmysle, že je vylúčený z jej definície.
Predmet si môžete predstaviť ako samostatný balík, ktorý má tri časti:
- Vlastné osobné informácie, hodnoty údajov.
- Súkromné procedúry, ktoré budú manipulovať s hodnotami prostredníctvom definície triedy.
- Otvoriť rozhranie, aby tento objekt mohol komunikovať s ostatnými.
Príklady OODB
Používanie OODB zjednodušuje konceptualizáciu, pretože je prirodzenejšie reprezentovať informácie, ktoré je potrebné uložiť. Na modelovanie štruktúry alebo logiky databázy vám použitie diagramov tried umožňuje zaviesť triedy s ich štrukturálnymi vzťahmi a dedičnosťou. S cieľom modelovať časť dynamiky, interakcie asprávanie medzi objektmi, na znázornenie interakcie medzi objektmi nachádzajúcimi sa v dočasnom vzťahu sa použije sekvenčný diagram, ktorý popisuje možné stavy, aby ich bolo možné nájsť vzhľadom na zmenený stav po výskyte udalosti.
Príklad objektovo orientovanej databázy je uvedený nižšie.
Majú meno a životnosť, ktorá môže byť dočasná alebo trvalá. Kľúč OODB je schopnosť, ktorú poskytujú vývojárovi, aby určil, koľko štruktúr a operácií sa na ne použije. Existuje flexibilita a podpora pre prácu s komplexnými typmi údajov. Môžete vytvárať triedy a podtriedy, napríklad klientska báza môže mať podtriedu odkazu tohto klienta a zdedí všetky atribúty a vlastnosti pôvodnej triedy, tento prístup vám umožňuje rýchlo a flexibilne spracovávať zložité dáta.