Objektový datový model
Objektový datový model jsou data uložené ve objektové struktuře. Jde většinou o objektovou mezivrstvu mezi kódem a databazi, do které se nasypou data, s kterými pak aplikace pracuje a nezatěžuje dotazy DB server.
ADT abstraktní datový typ adresa
CREATE TYPE Adresa AS OBJECT( ulice VARCHAR(50), mesto VARCHAR(50), psc VARCHAR(5), )
Objektově relační datový model
Objektově-relační datový model, je klasická tabulková databáze rozšířená o abstraktní datové typy (ADT). ADT jsou uživatelem definované typy skládající se z základních datových typů databáze. Čímž porušuje 1NF??
- Objektové rysy jsou dnes implementovány ve všech velkých SŘBD.
- Objektové typy a jejich metody jsou uloženy spolu s daty v databázi, programátor tedy nemusí vytvářet podobné struktury v každé aplikaci.
- Programátor může přistupovat k množině objektů jako by se jednalo o jeden objekt.
- Objekty mohou jednoduše reprezentovat vazby kdy jedna entita se skládá z jiných entit (bez nutnosti použít vazeb).
- Metody jsou spouštěny na serveru – nedochází k neefektivnímu přenosu dat po síti.
Objektové datové typy
- mohou obsahovat:
- data – atributy
- operace – metody
- Specifické pro ORŠRBD je to, že se na data můžeme dívat jak z relačního (záznamy, operace) tak objektového pohledu (objekty, metody).
- pak definujeme těla metod:
- Objektové datové typy může používat při definici atributů podobně jako SQL datové typy.
- Záznam vložíme pomocí SQL INSERT:
Typy metod:
● Členské metody – jsou volány nad konkrétním objektem.
● Statické metody – jsou volány nad datovým typem.
● Konstruktor – pro každý objektový typ je definován implicitní konstruktor.
XML
- značkovací jazyk - W3C standart
- Data jsou uložena v xml souboru formou stromu.
- Logika a význam dat je součástí xml souboru.
- Skládá se z hlavičky, kořenového elementu (právě jeden), vnořených elementů, atributů a textu vnořené uvnitř (ukládané informace)
Dotazovací jazyky jsou:
- XQuery -
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- XPath -
//zboží[@sleva >= @cena div 2]
, který najde všechny elementyzboží
, jejichž atributsleva
má hodnotu nejméně poloviny hodnoty atributucena
Příklad XML:
<?xml version="1.0" encoding="UTF-8" ?> <recept jméno="chleba" čas_přípravy="5 minut" čas_vaření="3 hodiny"> <přísada množství="3" jednotka="šálky">Mouka</přísada> <přísada množství="0,25" jednotka="unce">Kvasnice</přísada> <přísada množství="1,5" jednotka="šálku">Horká voda</přísada> <přísada množství="1" jednotka="kávová lžička">Sůl</přísada> <instrukce> <krok>Smíchejte všechny přísady dohromady a dobře prohněťte.</krok> <krok>Zakryjte tkaninou a nechejte hodinu v teplé místnosti.</krok> <krok>Znovu prohněťte, umístěte na plech a pečte v troubě.</krok> </instrukce> </recept>