Objektově orientované databáze Miroslav Beneš
Obsah přednášky z z z z z z z z z
Motivace Vlastnosti databázových systémů Logické datové modely Nevýhody modelů založených na záznamech 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 z z z z z
z
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í
Objektově orientované databáze
3
Vlastnosti databázových systémů z z
Nezávislost na aplikaci Efektivní přístup k datům. z
z
Bezpečnost z
z
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 z
z
Změna dat neporušuje podmínky stanovené návrhářem.
Odolnost z
z
Odolnost proti neautorizovanému přístupu a zneužití dat. Přístupová práva uživatelů.
Konzistence dat z
z
Použití vyhledávacích struktur (indexy).
Současná práce více uživatelů bez vzájemného ovlivňování.
Více pohledů na data z
Změna pohledu (organizace, úroveň podrobností) v závislosti na uživateli (manažer, účetní, …) Objektově orientované databáze
4
Vlastnosti databázových systémů z
z z
Uživatelské rozhraní Vhodné rozhraní pro širokou škálu uživatelů: z parametrická rozhraní – pro často opakované úkoly, neškolenou obsluhu, např. ATM z rozhraní pro ad hoc dotazy – dotazovací jazyk pro aktualizaci dat a jejich zpřístupnění z grafická rozhraní – využití grafů pro reprezentaci struktury dat, okna pro formuláře, techniky přímé manipulace (drag-and-drop) z programátorská rozhraní – přístup k datům z aplikací psaných ve vyšších programovacích jazycích z administrativní rozhraní - privilegovaný uživatel; definice struktury databáze, uživatelských práv atd. Integrita z Zavedení integritních omezení – definice sémantiky dat. Distribuce z Rozložení dat na více počítačů v rámci LAN nebo WAN Objektově orientované databáze
5
Logické datové modely z
Modely založené na záznamech z z
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ů)
z
Objektový model
z
Objektově relační model
Objektově orientované databáze
6
Nevýhody modelů založených na záznamech z
předpokládá se, že data lze popsat jednoduchými strukturami z z z
obvykle pouze číselné typy a řetězce chybí podpora strukturovaných dat BLOB --- pouze částečné řešení
z
neposkytují datové struktury odrážející přesněji strukturu informací v reálném světě z
např. identita objektů a reference na rozdíl od cizích klíčů Objektově orientované databáze
7
Nevýhody modelů založených na záznamech z
předpokládá se velký počet relativně malých databázových objektů z
z
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
z
obtížné ukládání obrazových a zvukových dat – BLOB
z
vyjadřuje se spíše struktura dat než jejich sémantika Objektově orientované databáze
8
Nevýhody modelů založených na záznamech z z
obtížné ukládání aplikačního kódu do databáze předpoklad jediné hodnoty datové položky z
z
nemožnost verzování dat
předpokládají se pouze krátké transakce z z
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 Objektově orientované databáze
9
Nevýhody modelů založených na záznamech z
souběžný přístup má spíše kompetitivní charakter z z
z
vyjádření složitých výpočtů pomocí kombinace programovacího a databázového jazyka z z
z
získání výlučného přístupu k~datům, izolace aplikací CASE, CAD – kooperativní přístup
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
10
Co potřebujeme modelovat? z
informace o~entitách reálného světa z
z
často nelze rozumně reprezentovat jediným záznamem tvořeným čísly a řetězci
vlastnosti entit z z z
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) Objektově orientované databáze
11
Co potřebujeme modelovat? z
vztahy mezi entitami z
z
z
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 z
obvykle odděleně od databáze
Objektově orientované databáze
12
Identifikace entit v relačních SŘBD z
přirozený klíč (jméno, rodné číslo, …) z nelze zajistit absolutní jednoznačnost (nově dodaná informace ji může porušit) z nelze zajistit existenci (informace může chybět) z systémy nelze spojovat, pokud jednoznačný identifikátor ztratí svou jednoznačnost (např. sloučení zaměstnanců dvou firem) z identifikátor nelze jednoduše aktualizovat (referenční integrita) Objektově orientované databáze
13
Identifikace entit v relačních SŘBD z
přidělený identifikátor (člověkem nebo počítačem) z nutnost generování nového identifikátoru člověkem, nebo z 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
14
Co je to objektová orientace? z
Identita objektů. Objekt je vybaven identifikací (OID): z z z z
z
Klasifikace objektů. z
z
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 Každý objekt je instancí určité třídy, která definuje jeho vlastnosti.
Zapouzdření. z
Součástí popisu třídy je i sada operací, které jsou s touto třídou spojeny. Objektově orientované databáze
15
Co je to objektová orientace? z
Ukrývání informací. z
z
Dědičnost. z
z
Některé části popisu jsou k dispozici pouze pro implementaci třídy. 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. z
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
16
Architektura OO SŘBD z
Správa objektů z
z
z
Správa operací z
z
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 zajišťuje volání operací, přenos parametrů, často formou virtuálního stroje (interpretu)
Správa katalogu z
zajišťuje přístup k metadatům Objektově orientované databáze
17
Architektura OO SŘBD z
Správa uživatelského rozhraní z
z
zajišťuje komunikaci s uživatelem
Podpůrné nástroje z
překladače, ladicí programy, reorganizační nástroje, …
Objektově orientované databáze
18
Problémy objektových SŘBD z
Pozůstalé systémy (legacy systems) z velké investice firem do relační technologie, problém migrace dat
z
Pojem objektově orientovaný datový model nereprezentuje jediný všeobecně přijatý model standardizace
Objektově orientované databáze
19
Problémy objektových SŘBD z
z z
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
20
Další typy pokročilých databázových systémů z
Historické SŘBD z Možnost ukládání minulého stavu databáze (více verzí dat), časové řezy.
z
Objektově relační SŘBD z 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.
z
Deduktivní SŘBD z Důraz na odvozená data a integritní omezení; vycházejí z jazyka Prolog - např. Datalog.
z
Perzistentní programovací jazyky z Vycházejí z konkrétního programovacího jazyka, který rozšíří o databázové prvky. Jednotná struktura dat - odstranění impedance.
Objektově orientované databáze
21
Další typy pokročilých databázových systémů z
z
z
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: z Geografické informační systémy} (GIS) Speciální metody ukládání dat, rozšířené dotazovací jazyky, 2D/3D uživatelská rozhraní z 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
22