PB007 7. cvičení Lucie Fabriková Fl MU, podzim 2012 9. 11. 2012 PB007 ERD ERD (entity-relationship diagram) - datový model, který zachycuje statickou strukturu dat. Součásti: • entity a jejich typy • vztahy a jejich typ • atributy a jejich domény PB007 Diagram tříd vs. ERD Diagram tříd • třídy obsahují data i operace • různé druhy vztahů - asociace s násobností, dědičnost, kompozice, agregace, závislosti,... • operace nad daty řešeny interakcí objektů ERD • modeluje pouze data (uložení dat v tabulkách) • řádky tabulky jsou záznamy, sloupce typy • tabulky propojeny pouze jednoduchými vazbami -kardinalita vazeb • primární/cizí klíče • operace nad daty prováděny pomocí relační algebry (SQL) PB007 ORM Object-relational mapping - technika pro konverzi dat mezi relační databází a objektově orientovaným přístupem • třída definuje entitní množinu (tabulku) • objekt definuje entitu (záznam, řádek tabulky) • atributy třídy se stávají atributy entity (sloupce tabulky) • klíč je vybrán z atributů nebo je vytvořen nový • asociace/agregace/kompozice tříd definuje relaci -tj. propojení tabulek cizími klíči Odlišnosti mezi diagramem tříd a ERD: • jedna třída může být namapováno na více entit, • více tříd může být namapována na jednu entitu, • ne všechny třídy musí být perzistentní PB007 ORM - mapování vazeb » 1:1- jedna z entit bude mít mezi atributy primární klíč druhé entity (jako cizí klíč) » 1:N - entita z části vztahu „N" bude obsahovat primární klíč druhé entity • M:N - vytvoření asociativní entity která obsahuje primární klíče obou tříd PB007 0RM-1:N, M:N Diagram tried: ERD: ( Zákazník ^ zafcaxn&IC : í* meno adresa email OI$Kfa«vfca -meno - •nastav -adresa -doprava ■popis mpfSvilUdäŕsO ♦ztettLktojeO ......................... Objednávka ofej*dtiftvkaí& doprava T. 1 ' ftodlM ^ í 1 PB007 ORM - dědičnost Dědičnost tříd lze modelovat více způsoby: • mapování 1:1 • zahrnutí do nadtřídy • rozpuštění do podtříd PB007 ORM - dědičnost 1:1 Každá třída se stává tabulkou Všechny tabulky mají stejný primární kííč Diskriminátor se stává atributem ■ prohledávají se pouze tabulky příslušné psctřídy Jedna instance třídy je uložena v několika tabulkách ■ složitější pnstup k datům PB007 ORM - dědičnost - nadtřída ■ Všechny atributy podtříd jsou zahrnuty do jedné tabulky ^ Některé atributy mohou obsahovat hodnotu NULL • porušení čtvrté normální formy < Vhodné v případě menšího počtu podtříd s máto atributy PB007 ORM - dědičnost - podtřídy Customs rWtí ^Account : red it tlceAduresb earŕíNumbeľ custo TnsrtCi name add res? phone credit InvQicoArtdress customerlD name address pfione vatidity type tardNumber - Atributy nadtřídy jsou přeneseny do tabulek pro všechny neabstraktní podtřídy - Vhodné při: ■ Nadtřída má málo atributů - Existuje mnoho podtříd (košatý strom větvení) ' Podtřídy mají hodně atributů PB007 70 Normální formy Vytvořeny za účelem zlepšení návrhu databází, eliminují: • anomální updaty inserty delety (pokud je informace zbytečně na více řádcích, dojde k nekonzistenci) • minimalizace nutnosti redesignu při rozšiřování struktury databáze • zpřehlednění dat PB007 1. NF 1. Normální forma Relace je v 1. NF, pokud žádný záznam neobsahuje opakující prvky. / Article ^ Auttiorl Q Auttioú Article \ True J Aut horsOfArtcie ^Síj ArlitíolD Q Author PB007 2. NF 2. Normální forma Relace je v 2. NF, pokud je v 1. N F a každý neklíčový atribut je plně funkčně závislý na každém kandidátním klíči, a to celém (ne na vlastní podmnožině jeho atributů). Cena závisí na součástce i dodavateli, údaje a název dodavatele závisí pouze na dodavateli. PB007 3. Normální forma Relace je v 3. NF, pokud je v 2. N F a každý neklíčový atribut relace je netranzitivně závislý na každém kandidátním klíči; tj. všechny neklíčové atributy musí být navzájem nezávislé. 4. NF 4. Normální forma Relace je v 4. NF, pokud je v 3. NF a neobsahuje podmíněné funkční závislosti (tj. NULL hodnoty). PrsKMWZaradenle ■j 2«H»a1nan«c ,: kv»Sf»scla Ne«»nožmije zachytit' kvdlftiktictit zca. ktorý iietná pridelami zanwfttnafHK: fevaŠf&aala PB007 Domácí úkol č. 6 • Opravit případné chyby v diagramu tříd. a Na základě analytického modelu třid vytvořte prvotní ERD (prakticky identický - s eliminací dědičnosti), se kterým se bude dál pracovat. • U entit doplňte atributy. a Vztahy M:N rozložte pomocí vztahových entit. • U všech entit identifikujte jejich klíče, snažte se o maximální úspornost (tj. nevytvářet umělá id kde nejsou nutná, u vztahových entit identifikovat klíči původních entit - to lze i když atributy všech entit nebudou kompletní). • Normalizujte model do 4. normální formy • do středy 14.11. 2012, 20:00, odevzdávárna PB007 — Týden 07 « ve formátu cisloSkupinky_erd.pdf PB007