OODBS (objektovo orientované databázy)
OODBS (objektovo orientované databázy)
Úvod do OODBS
Po úspechu databázových systémov v klasických oblastiach sa objavili požiadavky na ich uplatnenie aj v „nových“ oblastiach aplikácie: navrhovanie artefaktov (navrhovanie strojárskych komponentov, elektronických obvodov veľmi vysokej integrácie...), riadenie výroby (v strojárskom, chemickom a inom závode), spracovanie dokumentov (hypertexty, grafická dokumentácia, automatizácia kancelárskych prác ...), softwarové inžinierstvo (CASE systémy), vedecké databázy (medicína, organická chémia ...).
Tieto aplikácie charakterizuje: • zložitá štruktúra dát a komplikované algoritmy • použitie siete výkonných počítačov (pracov. staníc) a distribuovaných databáz.
Objektovo-orientovaná technológia programovania umožňuje kvalitnejšiu tvorbu komplexných a distribuovaných softwarových systémov. Uvedené tvrdenie sa vzťahuje aj na databázové aplikácie. Objektovo-orientované DBMS (ďalej ODBMS) priniesli oproti relačným DBMS (RDBMS) kvalitnejšie: • dátové modelovanie • procedurálne modelovanie.
Prejavuje sa predovšetkým nasledujúcimi charakteristikami:
Spájanie príbuzných dát ODBMS umožňujú prirodzenejšiu reprezentáciu zložitejších dátových štruktúr (pri grafickej dokumentácii sa napríklad využívajú vektory, pri riadiacich systémoch robotov matice a pod.). Dáta, ktoré navzájom súvisia v realite, sa spolu („blízko seba“) uchovávajú aj v externých pamätiach.
Spájanie dát s funkciami ODBMS poskytujú tradičné objektovo-orientované črty: spájanie dát s funkciami, ukrývanie dát, používateľsky definovateľné typy, typové dedenie, polymorfizmus.
Spájanie databázového a programovacieho jazyka ODBMS, na rozdiel od SQL relačných DBMS, ponúkajú výpočtovo úplný jazyk. Snažia sa tiež integrovať databázové prostredie s programovacím prostredím.
V porovnaní s RDBMS znížila: • jednoduchosť • matematická precíznosť.
Od novej generácie DBMS sa tiež očakáva väčšia podpora distribuovanosti a reprezentácia multimediálnych dát.
ODBMS vznikali historicky dvojakým spôsobom: • pridávaním databázových čŕt do O-O programovacích jazykov Takýmto spôsobom na báze jazyka smalltalk vznikol ODBMS GemStone, z jazyka C++ systémy ObjectStore, Ontos, Objectivity, rozšírením lispu systém Orion a iné. • rozšírením relačných DBMS o O-O črty Uvedené systémy sa preto niekedy nazývajú tiež „postrelačné DBMS“. Autori relačného DBMS Ingres vyvinuli na jeho základe ODBMS Postgres, ako iný príklad slúži systém Starbust.
Komerčné ODBMS prvého typu sa objavili na trhu v druhej polovici osemdesiatych rokov, kým rozšírené relačné DBMS väčšinou až v deväťdesiatych rokoch. Produkty oboch typov vznikali spočiatku „živelne“ - bez existencie prijatého štandardu. Práce na štandardizácii sa odštartovali až začiatkom deväťdesiatych rokov. V rámci zoskupenia objektovo-orientovaných firiem OMG (Object Management Group) bol prvý štandard pod názvom ODMG-93 vytvorený v roku 1993. Štandardizácia ODBMS druhého typu prebieha na pôde ANSI: rozširovaním dotazovacieho jazyka SQL2.
Charakteristiky nových aplikácií
Relačné databázy vychádzajú z jednoduchej myšlienky manipulácie s tabuľkami. Poskytujú deklaratívny dotazovací jazyk SQL, ktorý umožňuje pohodlné vyhľadávanie údajov v databáze. Odbremeňujú programátora od poznania fyzického uloženia dát v externých pamätiach. Uvedené výhody spolu s prepracovanými softwarovými prostriedkami zabezpečili relačným databázovým systémom úspech v agendových typoch aplikácií, s relatívne jednoduchou štruktúrou dát a algoritmov. Tieto typy aplikácií doposiaľ prevládajú na softwarovom trhu. Na rozdiel od tradičných, agendových, ich charakterizuje:
Zložitejšia štruktúra dát : Štruktúra dát v agendových aplikáciách, napriek potenciálnemu uchovávaniu veľkého množstva dát, je relatívne jednoduchá. Štruktúra dát v nových aplikáciách je výrazne zložitejšia.
Zložitejšie algoritmy Aplikačné algoritmy v agendových aplikáciách sú relatívne jednoduché. Nové aplikácie často inherentne obsahujú komplikované algoritmy, napríklad na spracovanie grafických informácií alebo na vedecko-technické výpočty. Funkcie realizujúce uvedené algoritmy úzko súvisia s dátami, ktoré spracúvajú.
Sprístupňovanie záznamov rôzneho typu V agendových aplikáciách sa naraz (v transakcii) sprístupňuje obvykle malé množstvo dát. Tieto dáta bývajú väčšinou jedného, resp. iba niekoľkých typov (z niekoľkých tabuliek).
Dlhé transakcie V bankových, rezervačných a podobných systémoch sa síce naraz sprístupňuje pomerne malé množstvo dát, ale vznikajú časté konflikty pri pokuse o súčasnú aktualizáciu rovnakých dát rôznymi používateľmi (transakciami). V nových aplikáciách nedochádza tak často ku konfliktom, na druhej strane však transakcie trvajú rádovo dlhšie. V našom príklade s daným diagramom a jeho objektmi pracuje väčšinou iba jeden používateľ, ale zvyčajne dlhý čas (minúty až hodiny).
Výkonné pracovné stanice Tradičné databázové aplikácie sa väčšinou prevádzkujú na jednom centrálnom výkonnom počítači (server). Služby centrálneho počítača využívajú viacerí používatelia prostredníctvom terminálovej siete. Vďaka rastu výkonnosti pracovných staníc a osobných počítačov sa v nových aplikáciách čoraz viac spracovania, týkajúceho sa predovšetkým grafických používateľských interfejsov, presúva na klientovské počítače (a k architektúre klient/server). Centralizovaný počítač plní iba úlohu „skladníka“ perzistentných dát. Prejavujú sa tiež trendy k distribuovaným databázam (databázam uloženým na viacerých serveroch).
Objektovo-orientované databázy vznikli tak v dôsledku rozšírenia objektovo-orientovaného programovania, ako aj v dôsledku požiadaviek nových typov databázových aplikácií. V porovnaní s relačnými databázami ich charakterizuje:
1. Spájanie príbuzných dát ODBMS automaticky priraďujú objektom identifikátory a umožňujú tak priamočiare odkazovanie medzi objektmi pomocou referenčných atribútov. Pri načítaní objektov do operačnej pamäte možno identifikátory konvertovať na smerníky a dosiahnuť tak väčšiu efektívnosť ako pri relačných databázach. ODBMS navyše poskytujú, okrem tabuľky, ďalšie typy komplexných objektov, ktoré môžu byť aj hodnotami atribútov. Mnohé komerčné systémy dokonca ponúkajú programátorovi možnosť na logickej úrovni ovplyvňovať umiestňovanie objektov v externej pamäti a optimalizovať tak výkonnosť aplikácie.
2. Spájanie dát s funkciami ODBMS poskytujú objektovo-orientované črty známe z O-O programovacích jazykov: používateľsky definovateľné typy, zahŕňajúce ukrývanie dát, spájanie dát s funkciami a hierarchizáciu. Oproti relačným databázam tak umožňujú dosahovať logickú dátovú nezávislosť, rozšíriteľnosť základných typov systému a väčšiu znovupoužiteľnosť.
3. Spájanie databázového a programovacieho jazyka ODBMS ponúkajú nielen dotazovací, ale tiež výpočtovo úplný programovací jazyk. Mnohé systémy obsahujú dokonca jednotné databázové a programovacie prostredie a odbremeňujú tak programátora od transformácie dát a riadenia výpočtu medzi dvoma prostrediami. Komerčné ODBMS sa začali objavovať na trhu koncom osemdesiatych rokov. Historicky vznikali dvojakým spôsobom: • pridávaním databázových čŕt do O-O programovacích jazykov • rozšírením relačných DBMS o O-O črty.
Z prvej skupiny zaujali predovšetkým systémy ObjectStore firmy Object Design a GemStone firmy Servio Corporation. Prvý z nich zažiaril medzi ODBMS, vychádzajúcimi z jazyka C++, kým druhý dominoval v triede smalltalkovských ODBMS. Systém ObjectStore charakterizuje jeho vysoká efektívnosť, založená na filozofii identifikátorov objektov ako smerníkov do veľkej virtuálnej pamäte. Systém GemStone naopak zachováva vysokú flexibilnosť jazyka smalltalk za cenu nižšej efektívnosti. Identifikátory sa v ňom konvertujú na fyzické adresy objektov prostredníctvom „hashovacej“ tabuľky. Oba systémy výrazne ovplyvnili štandard ODMG-93. Medzi pozoruhodné ODBMS z druhej skupiny patrí experimentálny systém Postgres, vyvinutý autorom populárneho RDBMS Ingres. Systém Postgres ponúka v súčasnosti azda najbohatší dotazovací jazyk, ktorý pripomína SQL3, ale nie je s ním kompatibilný. Ide o jediný ODBMS, ktorý popri relačných a objektovo-orientovaných črtách, poskytuje aj produkčné pravidlá.
Napriek určitým úspechom však ODBMS prvej generácie nesplnili všetky očakávania. ODBMS prvého typu väčšinou obsahovali potrebné O-O charakteristiky, ale postrádali niektoré vlastnosti kvalitnejších databázových systémov: kompatibilný dotazovací jazyk, konfigurovateľnosť systému a iné. Smerovali najmä do nových aplikačných oblastí a nepodarilo sa im získať výraznejšiu časť trhu relačných DBMS. ODBMS druhého typu často poskytovali iba podmnožinu požadovaných O-O čŕt a nevzbudili prílišný záujem v objektovo-orientovanej komunite.
Vo všeobecnosti však prevláda názor, že ODBMS môžu priniesť kvalitatívny posun vo vývoji databázových systémov. Očakáva sa to od druhej generácie ODBMS, ktorá by mala nielen vylepšiť ich technické parametre, ale aj obsiahnuť vypracované štandardy ANSI SQL3 a ODMG-93.
|