Obje ktovo – Orientovan é Datab ázy (ODBMS)

21
Objektovo – Orientované Databázy (ODBMS) Martin Janušek MFF UK Praha 26.11.2003

description

Obje ktovo – Orientovan é Datab ázy (ODBMS). Martin Janušek MFF UK Praha 26.11.2003. Príčiny vzniku ODBMS. Databáza ako fundamentálna komponenta softvérových systémov Potreba komplexnejších aplikácíí - PowerPoint PPT Presentation

Transcript of Obje ktovo – Orientovan é Datab ázy (ODBMS)

Page 1: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

Objektovo – Orientované Databázy (ODBMS)

Martin Janušek MFF UK Praha 26.11.2003

Page 2: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

Príčiny vzniku ODBMS

Databáza ako fundamentálna komponenta softvérových systémovPotreba komplexnejších aplikácííTradičné databázy neumožňovali špecifikovať štruktúru komplexných objektov a operácie s nimiRozvoj objektovo orientovaných programovacích jazykov

Page 3: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

História

Vznik prvých objektovo orientovaných databázových systémov (DBMS) OPENOODB – Texas Instruments ARDENT – Ardent Software ODE – AT&T Bell Labs …

Vznik štandardu ODMG-93 konzorciom ODMG (Object Database Management Group)

Page 4: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Objektový Model

Základné modelové primitivum – objektKategorizácia objektov – typy spoločné chovanie spoločný rozsah stavov

Definícia chovania na objekte – operácieStav objektu – skupina vlastností atribúty vzťahy

Page 5: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Objektový Model(2)

typ – jeden interface, viac implemntácií interface

vlastnosti operácie na danom type objektu

implementácie dátové štruktúry implementácia operácií

Page 6: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Typy

Definuje stav a chovanie (charakteristiku) inštancie objektu stav – množina vlastností chovanie – množina operácií

Dedičnosť abstraktné typy strom dedičnosti – acyklický graf

Page 7: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Objekty

koreňový typ - Denotable_Object hierarchia Object - nestály (mutable)

Atomic_Object - atomický (atomic) Structured_Object - štruktúrovaný

(structured) Literal - stály (immutable)

Atomic_Literal - atomický (atomic) Structured_Literal- štruktúrovaný (structured)

Page 8: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Objekty (2)

Typ Object identita (OID) pomenovanie popis

predikáty vlastnosti

Has_name?:Boolean name: Set<String> type: Type

Page 9: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Objekty (3)

operácie delete() same_as? (oid: Object_id) ->b:Boolean

životný cyklus procedúra proces databáza

Typ Literal atomické – integer, float, boolean, character štruktúrované – bit_string, char_string,

enumeration, date, time, dateTime, interval

Page 10: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Vlastnosti

Atribúty typ literal alebo množina literálov - bez

OID definované operácie – set_value,

get_value definujú abstraktný stav

Vzťahy definované medzi nestálymi objektmi pomenovaný každý smer vzťahu 1:1, 1:N, M:N

Page 11: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Operácie

definované na 1-objektových typoch signatúra operácie argumenty, typy, výnimky

preťažovanie operácií koreňový typ Výnimka

Page 12: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Štruktúrované objekty

Kolekcie (Collection) abstraktné typy typ Iterator T – Collection::create_iterator nepomenované pozície rovnaký typ

množina (set) – nezoradená, bez duplikátov batoh (bag) – nezoradená, duplikáty zoznam (list) – zoradená, duplikáty pole (array) – 1 dimenzia, variabilná veľkosť

Page 13: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Štruktúrované objekty (2)

Štruktúry pevná dĺžka pomenované pozície dvojica (názov, hodnota) pri kopírovaní sa vytvára „plytká“

kópia

Page 14: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Štruktúrované literály

po vytvorení sa nedajú meniť

Kolekcie neimplementujú operáciu remove() String, Bit_String

Štruktúry používajú sa ako návratové typy

dotazov Date, Time, DateTime

Page 15: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Kompatibilita, tran- sakcie,typ Database

Kompatibilita silne typová kontrola nedefinované konverzie medzi literálmi

TransakcieTyp Database open() close() contains_object? (oid:Object) ->b: Boolean lookup_object (oid:Object) ->b: Boolean

Page 16: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Defintion Language

(ODL)

ODL by mal podporovať všetky konštrukcie ODMG Objektového ModeluODL nie je programovací jazyk, ale špecifikácia jazyka pre signatúry interfacovODL je nezávislý na programovacom jazykuODL by mal byť kompatibilný s Interface Definition LanguageODL by mal byť rozšíriteľný

Page 17: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Defintion Language

(ODL) (2)

ODL je DDL pre objektové typy schéma pre definíciu objektových typov v akomkoľvek OOPJ pre aplikáciu zabezpečuje „izoláciu“ medzi programovacím jazykom a podkladovým ODBMS produktom

Page 18: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Defintion Language

(ODL) (3)

Špecifikácia typu<type definition> ::= Interface <type_name>

[<supertype_list> ]{[<type_property_list>][<property_list>][<operation_list>]};

Špecifikácie charakteristík, atribútov, vzťahov, operácií ...

Page 19: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Query Language

(OQL)

Založený na nasledujúcich princípoch a predpokladoch:OQL je dotazovací jazyk, ktorý sprostredkúva jednoduchý prístup k objektovej databáziOQL nie je výpočtovo kompletnýOQL umožňuje deklaratívny prístup k objektom

Page 20: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Query Language

(OQL) (2)

OQL závisí na ODMG Objektovom ModeleOQL má abstraktnú syntaxOQL má konkrétne syntaxe definované na prepojenie s programovacími jazykmiOQL nezabezpečuje explicitné update operátory, ale spolieha sa na definované operácie na objektoch

Page 21: Obje ktovo – Orientovan é  Datab ázy (ODBMS)

ODMG-93 Object Query Language

(OQL) (3)

Formálna sémantika OQL je ľahko definovateľnáOQL je ľahko optimalizovateľnýOQL ako samostatný jazyk používa konkrétnu syntax podobnú SQL