Analýza a modelování dat 2. přednáška Helena Palovská
Databázové modely Způsoby logické organizace dat hierarchický síťový relační objektový (objektově-relační) multidimenzionální
Historie databázových modelů
Hierarchická organizace Typy záznamů Vazby rodič potomek mezi záznamy Nikdo nemá dva rodiče les stromů
Hierarchická organizace Konceptuální důvody: Celek část typ podtyp, množina podmnožina množina prvek Klasifikace Nadřízený zodpovídá za podřízené Následnost
Příklady hierarchické organizace Fyzická pošta, územní správa Internetové domény Firemní organizace File system LDAP Textové dokumenty XML
Příklad ceník <ceník> <název>počítačové komponenty</název> <platnost> <od>1.1.2009</od> <do>31.3.2009</do> </platnost> <dodavatel> <název>první hardwarová, s.r.o.</název> <adresa> <ulice>průmyslová</ulice> <město>praha 10</město> <psč>100 00</psč> <email>info@prhw.cz</email> </adresa> <nabídka> <kategorie> <název>polohovací zařízení</název> <produkt kód="pxbd-21"> <název>hyperoptická digitální myš</název> <cena měna="czk">850</cena> </produkt> CENÍK DODAVATEL KATEGORIE PRODUKT? hierarchické schéma
Příklad - objednávky <objednávka číslo=''2419''> <zákazník>chralouh</zákazník> <datumob>9.12.2009</datumob> <doprava>ppl</doprava> <platba>dobírka</platba> <položky> <položka> <zboží>pxbd-21</zboží> <množství>3</množství> <cena měna=''czk''>360</cena> </položka> <položka> <zboží>aha-57</zboží> <množství>2</množství> <cena měna=''czk''>1480</cena> </položka> </položky> </objednávka> OBJEDNÁVKA POLOŽKA
Přednosti hierarchického modelu Co patří k sobě je u sebe Lze efektivně serializovat
Přístupové cesty v hierarchii I Od kořene dolů Nadřazený prvek zná cesty k jemu podřízeným Využití např. při klasifikaci Od prvku k jemu nadřazenému? Ne vždy
Příklad oddělení ve firmě <oddělení cisodd=2> <šéf>jan Novák</šéf> <zaměstnanci> <zaměstnanec> <jméno>petr Novotný</jméno> <od>14.5.1999</od> </zaměstnanec> <zaměstnanec> <jméno>alena Černá</jméno> <od>3.6.2004</od> </zaměstnanec> </zaměstnanci> <místnosti> <místnost číslo=''45''> <počítače> <počítač idpoč=''24893''> <monitor idmonit=''5563''>. </monitor> ODDĚLENÍ ZAMĚSTNANEC Jaké budou nejčastější typy dotazů? MÍSTNOST POČÍTAČ hierarchické schéma
Subschéma hierarchického schématu Co kdo chce/může vidět (alà VIEW v SQL) Definováno odshora dolů, co vynechat, co vidět, co smět měnit Dotazy se definují jsou analogicky
Příklad kusovník Kosmická loď se skládá z mnoha dílů, jež mohou samy být složeny z dalších dílů. Je nutno, aby bylo možno sledovat, z čeho se který díl skládá, v libovolné úrovni kompozice.
Kusovník kosmická loď 6 8 5 4 3 2 7 9 12 11 10 14 15 13
kosmická loď 6 <kosmická loď> <díl id=6> <díl id=5></díl> <díl id=4> <díl id=3></díl> <díl id=2> </díl> </díl> </díl> <díl id=8> <díl id=7></díl> 8 5 4 3 2 7 9 12 11 10 14 15 13
kosmická loď 6 8 5 4 3 2 7 9 12 11 10 13 14 15 kosmická loď = díl 0 0 0.6 0.6.5 0.6.4 0.6.4. 0.6.4.3 0.6.4.2 0.6.4.2. 0.8 0.8.7 0.8.9 0.12 0.12.11 0.12.11.10 0.12.11.13 0.12.11.13. 0.12.14 0.12.15 0.
Kusovník, relační řešení Díl je složen z 0 až * dílů celek DÍL 0 6 8 12 část 5 4 3 2 7 9 ID data_o_dílu začleněn_do 0 kosmická loď - 6 0 5 6 4 6 2 4 3 4 8 0 7 8 9 8 12 0 11 12
Přístupové cesty v hierarchii II Rekurze Začít se dá kdekoli Přímý přístup podle ID, klíče, hodnoty? Nutné jsou indexy (ty jsou často hierarchické)
Příklad kategorie zboží Zboží v internetovém obchodu je řazeno do kategorií
Kategorie zboží zařazení ZBOŽÍ nadřízená kategorie KATEGORIE <kategorie název= chléb, pečivo > <kategorie název= housky /> <kategorie název= rohlíky > <kategorie název= rohlíky malé /> <kategorie název= rohlíky velké /> </kategorie> <kategorie název= chléb > <kategorie název= Šumava /> <kategorie název= Berounský /> </kategorie> </kategorie>
Příklad typový kusovník Jak se skládá rádio? (Typová skladba kompozitů ve více úrovních) TYP DÍLU část celek množstv í
Omezení hierarchického modelu Vztahy n:m obtížná normalizace někdy lze pomocí konstrukce odkazů Upřednostnění jednoho pohledu Jiné pohledy na data jsou ztížené Relativismus designu
Příklad rodokmen Každý jedinec má matku a otce, je nutno zaznamenávat tak, aby byly k vysledování rodové linie po meči i po přeslici.
Rodokmen dítě OSOBA dítě pohlaví otec MUŽ ŽENA matka
Síťový model Záznam může mít různé typy předchůdců otec, matka Průnikové typy záznamů umělé, pro vztah n:m např. účast, s předchůdci akce, osoba
konceptuální schéma Příklad účastníci akcí OSOBA účast AKCE OSOBA AKCE ÚČAST logické síťové schéma
Dvojice vlastník - člen Síťové schéma je složeno z typů záznamů a šipek mezi nimi Šipka spojuje člena s vlastníkem: OSOBA je vlastník (více) ÚČASTÍ AKCE je vlastník (více) ÚČASTÍ
Fyzická realizace Každá šipka je realizována spojovým seznamem AKCE1 ÚČAST4 ÚČAST3 ÚČAST2 ÚČAST1
AKCE1 ÚČAST4 ÚČAST3 ÚČAST2 ÚČAST1 AKCE2 ÚČAST7 ÚČAST6 ÚČAST5 OSOBA1 ÚČAST7 ÚČAST1 OSOBA2 ÚČAST12 ÚČAST3 ÚČAST5
Různé varianty Povinné/nepovinné členství Pevné/variabilní umístění Zapojení nového člena podle Ukazatele i zpět Ukazatele na vlastníka
Přednost síťového modelu Rychlost provádění navigačních dotazů
Problém integrity a normalizace AKCE1 ÚČAST4 ÚČAST3 ÚČAST2 ÚČAST1 AKCE2 ÚČAST7 ÚČAST6 ÚČAST5 OSOBA1 ÚČAST7 ÚČAST1 OSOBA2 ÚČAST12 ÚČAST3 ÚČAST5
Rodokmen síťový model OSOBA otec MUŽ ŽENA matka
Omezení síťového modelu Vztahy n:m Vztahy 1:1 Dědičnost (Ne)závislost na vztahu Dotazy a manipulace procedurální pouze podle předem definovaných vazeb