Objektově orientované databáze Miroslav Beneš Obsah přednášky Motivace Vlastnosti databázových systémů Logické datové modely Co potřebujeme modelovat? Identifikace entit v~relačních SŘBD Co je to objektová orientace? Problémy objektových SŘBD Další typy pokročilých databázových systémů Objektově orientované databáze 2 Motivace Hlavní princip databázových systémů: Oddělení dat od aplikace Základní úloha: Transformace složité struktury modelované reality na jednoduchou databázovou strukturu Řešení: obtížné omezená výrazová schopnost datových struktur, ztráta mnoha detailů Mnoho informací se udržuje mimo SŘBD, neboť je nelze rozumně reprezentovat Další obory mají zájem využívat SŘBD pro ukládání velkých objemů dat CAD, CASE, OIS, GIS, hypermediální systémy Vzniká potřeba nového typu SŘBD založených na úspěchu současných systémů, ale s lepší podporou správy komplexních informací Vlastnosti databázových systémů Nezávislost na aplikaci Efektivní přístup k datům. Použití vyhledávacích struktur (indexy). Bezpečnost Odolnost proti neautorizovanému přístupu a zneužití dat. Přístupová práva uživatelů. Konzistence dat Změna dat neporušuje podmínky stanovené návrhářem. Odolnost Chyby technického nebo programového vybavení nezpůsobí nekonzistenci databáze, při havárii se může ztratit jen několik posledních změn. Souběžný přístup Současná práce více uživatelů bez vzájemného ovlivňování. Více pohledů na data Změna pohledu (organizace, úroveň podrobností) v závislosti na uživateli (manažer, účetní, ) Objektově orientované databáze 3 Objektově orientované databáze 4 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 1
Vlastnosti databázových systémů Uživatelské rozhraní Vhodné rozhraní pro širokou škálu uživatelů: parametrická rozhraní pro často opakované úkoly, neškolenou obsluhu, např. ATM rozhraní pro ad hoc dotazy dotazovací jazyk pro aktualizaci dat a jejich zpřístupnění grafická rozhraní využití grafů pro reprezentaci struktury dat, okna pro formuláře, techniky přímé manipulace (drag-and-drop) programátorská rozhraní přístup k datům z aplikací psaných ve vyšších programovacích jazycích administrativní rozhraní - privilegovaný uživatel; definice struktury databáze, uživatelských práv atd. Integrita Zavedení integritních omezení definice sémantiky dat. Distribuce Rozložení dat na více počítačů v rámci LAN nebo WAN Objektově orientované databáze 5 Logické datové modely Modely založené na záznamech Síťový model kolekce podobných záznamů vytvářejí seznamové struktury se záhlavím Relační model kolekce podobných záznamů jsou uloženy ve formě tabulek (množin záznamů) Objektový model Objektově relační model Objektově orientované databáze 6 předpokládá se, že data lze popsat jednoduchými strukturami obvykle pouze číselné typy a řetězce chybí podpora strukturovaných dat BLOB --- pouze částečné řešení neposkytují datové struktury odrážející přesněji strukturu informací v reálném světě např. identita objektů a reference na rozdíl od cizích klíčů předpokládá se velký počet relativně malých databázových objektů typicky např. miliony záznamů ve 20 relacích se záznamy o délce kolem 200B aplikace CAD mnoho relací s málo záznamy obtížné ukládání obrazových a zvukových dat BLOB vyjadřuje se spíše struktura dat než jejich sémantika Objektově orientované databáze 7 Objektově orientované databáze 8 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 2
obtížné ukládání aplikačního kódu do databáze předpoklad jediné hodnoty datové položky nemožnost verzování dat předpokládají se pouze krátké transakce přesun peněz z jednoho konta na druhé, rezervace volného místa v letadle apod. CASE, CAD dlouhé transakce transakce např. zahrnuje úpravu výkresu v editoru souběžný přístup má spíše kompetitivní charakter získání výlučného přístupu k~datům, izolace aplikací CASE, CAD kooperativní přístup vyjádření složitých výpočtů pomocí kombinace programovacího a databázového jazyka impedance mismatch problem nutnost konverze mezi různými reprezentacemi dat (kolekce x kurzor) špatná integrace výpočtů a dat obtížnější zajištění konzistence kódu s daty Objektově orientované databáze 9 Objektově orientované databáze 10 Co potřebujeme modelovat? informace o~entitách reálného světa často nelze rozumně reprezentovat jediným záznamem tvořeným čísly a řetězci vlastnosti entit nejsou pouze textové a numerické nemusí být pouze jednohodnotové jedna vlastnost může mít více typů (vlastníkem automobilu může být firma nebo osoba) Co potřebujeme modelovat? vztahy mezi entitami modelují se ukazateli (síťový model) nebo cizími klíči (relační model) problém modelování obecných vztahů typu M:N operace nad entitami obvykle odděleně od databáze Objektově orientované databáze 11 Objektově orientované databáze 12 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 3
Identifikace entit v relačních SŘBD přirozený klíč (jméno, rodné číslo, ) nelze zajistit absolutní jednoznačnost (nově dodaná informace ji může porušit) nelze zajistit existenci (informace může chybět) systémy nelze spojovat, pokud jednoznačný identifikátor ztratí svou jednoznačnost (např. sloučení zaměstnanců dvou firem) identifikátor nelze jednoduše aktualizovat (referenční integrita) Identifikace entit v relačních SŘBD přidělený identifikátor (člověkem nebo počítačem) nutnost generování nového identifikátoru člověkem, nebo vytvoření klíče bez sémantické hodnoty, jenž leží ve stejném konceptuálním prostoru jako další informace nesoucí význam Objektově orientované databáze 13 Objektově orientované databáze 14 Co je to objektová orientace? Identita objektů. Objekt je vybaven identifikací (OID): generovaná systémem, unikátní pro konkrétní objekt, invariantní po celou dobu života objektu, není viditelná pro programátora nebo koncového uživatele Klasifikace objektů. Každý objekt je instancí určité třídy, která definuje jeho vlastnosti. Zapouzdření. Součástí popisu třídy je i sada operací, které jsou s touto třídou spojeny. Co je to objektová orientace? Ukrývání informací. Některé části popisu jsou k dispozici pouze pro implementaci třídy. Dědičnost. Nová třída může být definována jako rozšíření již existující třídy (jedné nebo více). Přetěžování a pozdní vazba. Při použití dědičnosti lze předefinovat některé definice, obvykle operace. Při vyvolání operace se vybere implementace odpovídající skutečnému typu objektu. Objektově orientované databáze 15 Objektově orientované databáze 16 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 4
Architektura OO SŘBD Správa objektů Správa interní reprezentace objektů zajišťuje přenos dat mezi vnější a vnitřní pamětí, obvykle využívá stránkování, bez znalosti vnitřní struktury objektu Správa externí reprezentace objektů přístup k vlastnostem objektu v paměti, tranzientní a perzistentní objekty Správa operací zajišťuje volání operací, přenos parametrů, často formou virtuálního stroje (interpretu) Správa katalogu zajišťuje přístup k metadatům Architektura OO SŘBD Správa uživatelského rozhraní zajišťuje komunikaci s uživatelem Podpůrné nástroje překladače, ladicí programy, reorganizační nástroje, Objektově orientované databáze 17 Objektově orientované databáze 18 Problémy objektových SŘBD Pozůstalé systémy (legacy systems) velké investice firem do relační technologie, problém migrace dat Pojem objektově orientovaný datový model nereprezentuje jediný všeobecně přijatý model - standardizace Problémy objektových SŘBD Systémy založené na záznamech jsou po 20 letech intenzivního výzkumu značně efektivní, pro OO SŘBD je třeba tyto efektivní techniky teprve vyvinout. OO model je složitější a tedy i jeho realizace je náročnější. Uživatelská rozhraní OO SŘBD nedosahují kvality současných produktů v relační oblasti. Objektově orientované databáze 19 Objektově orientované databáze 20 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 5
Další typy pokročilých databázových systémů Historické SŘBD Možnost ukládání minulého stavu databáze (více verzí dat), časové řezy. Objektově relační SŘBD Relační technologie umožňující práci se strukturovanými položkami (tabulky jako hodnoty). V současné době jsou velmi populární - možnost využití stávající relační technologie. Deduktivní SŘBD Důraz na odvozená data a integritní omezení; vycházejí z jazyka Prolog - např. Datalog. Perzistentní programovací jazyky Vycházejí z konkrétního programovacího jazyka, který rozšíří o databázové prvky. Jednotná struktura dat - odstranění impedance. Další typy pokročilých databázových systémů Aktivní SŘBD Operace mohou být zahájeny v závislosti na nějaké změně v databázi nebo jiné události (triggers). Doménově specifické SŘBD Prosazují se zejména v následujících oblastech: Geografické informační systémy} (GIS) Speciální metody ukládání dat, rozšířené dotazovací jazyky, 2D/3D uživatelská rozhraní Temporální databáze Zavedení pojmu času do databáze, rozšířené dotazovací jazyky, pojem platného času a transakčního času. Lze očekávat, že budoucí objektové SŘBD budou pokrývat více uvedených technologií současně. Objektově orientované databáze 21 Objektově orientované databáze 22 (c) Miroslav Beneš, Katedra informatiky FEI VŠB-TU Ostrava 6