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).
CREATE TYPE person_type AS OBJECT ( idno NUMBER, first_name VARCHAR2(20), last_name VARCHAR2(25) , MAP MEMBER FUNCTION get_idno RETURN NUMBER);
  • pak definujeme těla  metod:
CREATE TYPE BODY person_type AS MAP MEMBER FUNCTION get_idno RETURN NUMBER IS BEGIN RETURN idno ; // vraci id END; END;
  • Objektové datové typy může používat při definici atributů podobně jako SQL datové typy.
CREATE TABLE contacts ( contact person_type , contact_date DATE);  
  • Záznam vložíme pomocí SQL INSERT:
INSERT INTO contacts VALUES ( person_type (65, ’Verna’ , ’Mills’) , ’ 24 Jun 2003 ’ ) ;

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 elementy zboží, jejichž atribut sleva má hodnotu nejméně poloviny hodnoty atributu cena

 

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>
Kam dál?