Tuesday, June 21, 2011

SW: Logicke databazove modely

Logicky pohlad sa vztahuje ku konkretnemu datovemu modelu a pouziva jeho konstrukcne dotazovacie a manipulacne prostriedky. Modeluje entity ako struktury v konkretnom logickom modele. Konceptualny model tu dostava konkretnu podobu, ale efektivna implementacia nas stale netrapi. Patri sem relacny, objektovo-relacny a objektovy model.


K logickym databazovym modelom patri

  • sietovy model 
  • hierarchicky model 
  • relacny model (vyuziva SQL)
  • objektovy model (vyuziva OOL)
  • objektovo relacny model 
  • XML model (Xpath, Xquery)
  • volba databazoveho modelu typicky urcuje tiez prostriedky pre vytvaranie struktury DB (DDL), prostriedky pre tvorbu aplikacii (DML, TCL, DCL a dotazovaci jazyk)
Sietovy model pozna datovy typ Record, ktory sa podoba typu field. Dalej pouziva typ Set, ktory sa podoba na zoznam. Record je E-R modele entita a Set je v E-R modele vztah. 


Hierarchicky model je specialnym typom sietoveho modelu. 








Relacny DB model pouziva konstrukt Relace R, ktora ma schema a meno a atributy A so specifikovanou domenou D. Prvky domen su atomicke hodnoty v 1. normalnej forme ( iste? ). Formalny zapis relacie je R(A1:D1, ... ,An:Dn), napriklad Kino(Nazev_k:Char(15), Adresa:Char(25))


Nad relacnym modelom mozme vykonavat mnozstvo operacii 
  • pridanie relace (tabulka)
  • pridanie n-tice do relace (pridanie riadkov do tabulky)
  • vymazanie n-tice z relace
  • vytvorenie novej relace 
  • modifikacia n-tic z relace 
  • mnozinove operacie nad relacemi
Tu si je potreba uvedomit, ze pracujeme nad matematickym modelom a operacie robime tiez nad matematickym modelom. Hovorit o tabulkach a riadkoch a dotazoch je vhodne pre predstavu, ale zavadzajuce. Viac v dalsom prispevku o relacnom modele. 

Relacny model konecne uz zavadza aj integritne obmedzenia (IO). IO su tvrdenia vymedzujuce korektnost DB. Definuju sa na konceptualnej aj logickej (databazovej urovni). Z prikladu vyssie, nazev_k jednoznacne urcuje n-ticu relacie Kino (alebo riadky kina).

Objektovy datovy model vyuziva vo svojich schemach objekty a ich vyhody. Objekt je datovy typ, ktoremu sa budeme venovat neskor. Medzi objektami existuje skladanie, dedenie, zavislost .. a tak nie je treba rozdelovat strukturovane informacie takym sposobom, ako v relacnom modele. Objektovy model vyuziva dotazovaci jazyk, ktoremu sa nadava Object Query Language a casto krat nie je potreba zlozitych dotazovacich vyrazov, nakolko objekt mozme ziskat cez "systemove" pointre a s nim aj pridruzene objekty. Kluce su internou zalezitostou systemu.


Poslednym modelom je XML model, ktory sa podoba hierarchickemu modelu. Pouziva silne standardizovane dotazovacie jazyky ako XPath, XQuery a jeho datovy model obsahuje elementy a atributy. Reprezentaciou je XML document so stromovou strukturou DOM (document object model).