Procházet otázky :: SZZ na MFF UK

#

- Hlavní strana
- Okruhy
- Projít
- Stáhnout
- Co je potřeba
- Chci přispět
- Kredity

Hledat:

## Prohlížení státnicových textů

## ER-diagramy, metody návrhu IS

ER-diagramy jsou de-facto standard pro konceptuální datové modelování. Jsou vhodné hlavně pro plochá neformátovaná data, tj. hlavně pro relační, objektově-relační nebo objektové databáze. Nejsou vhodné pro multimediální nebo hierarchická data (jako např. XML). E-R v názvu znamená entity-relationship modelování, tedy modelování s pomocí (tříd) entit a jejich vztahů. ER model databáze definuje její konceptuální schéma. Jde vlastně o obdobu UML schémat v objektovém programování.

Entitní typ

Entitní typ (v diagramu se značí hranatým rámečkem) reprezentuje nějakou třídu entit (např. Zaměstnanec). Každý entitní typ má nějaké atributy (např. jméno), z nichž některé mohou být identifikátory, tj. takové, které jednoznačně určují instanci entity. Pokud nemá žádné identifikátory explicitně označené, jsou jimi všechny atributy dohromaty (tzv. složený identifikátor). Identifikátory mohou být i víceatributové.

Atributy entitních typů mohou být jednoduché nebo složené, povinné či nepovinné, případně jednohodnotové a vícehodnotové. Jejich zobrazení ukazuje následující obrázek:

(Entitní typ se všemožnými druhy atributů)

Vztahový typ

Vztahový typ (v diagramu značený kosočtvercem) popisuje vztahy mezi jednotlivými entitami - s těmi entitami, se kterými je v nějakém vztahu, je spojen čarou. Vztah může mít danou i kardinalitu (kolik entit z každé strany do vztahu vstupuje), která může být typu , , a je značená vedle čáry spojující vztahový typ s entitou. Entity ve vztahu mohou mít navíc povinné či nepovinné členství (vstupovat do něj vždy nebo jen někdy).

Vztahy mohou být buď binární nebo obecně -ární, ale více než ternární vztahy se většinou neobjevují. Vztahy mohou být i rekurzivní, tj. do vztahů vstupují entity stejného typu. Instance vztahového typu je jednoznačně určena identifikátory instancí entit ve vztahu. Některé entitní typy mohou být spoluidentifikovány (nebo přímo identifikovány) vztahem - pak se nazývají slabé entitní typy.

(Vztahové typy)
Obrázek ukazuje ternární vztah s různými kardinalitami - klientovi někdo dodává zboží jednou až -krát, pracovník dodává nula až -krát zboží (tj. jde o nepovinné členství ve vztahu, můžou existovat pracovníci, kteří nic nedodávají) a zboží je vždy někomu dodáváno právě jednou. Na zaměstnancích je zároveň ukázán rekurzivní binární vztah.

(Slabý entitní typ. Zdroj: slidy Dr. T. Skopala k Databázovým systémům)
Tento obrázek ukazuje, jak vypadá slabý entitní typ - automobil je identifikován svojí SPZ a zároveň státem, ve kterém je registrován.

ISA hierarchie

ISA hierarchie je rozšíření ER diagramů o dědičnost entit - tj. rozdělení entitních typů na subtypy (a přidání dalších vztahů nebo atributů pro subtypy). V ISA hierarchii se povoluje pouze jednonásobná dědičnost, navíc potomci nějakého entitního typu musí být jednoznačně identifikováni předkem (tj. všechny entity v hierarchii sdílí identifikátor).

(ISA hierarchie. Zdroj: slidy Dr. T. Skopala k Databázovým systémům)

Úpravy ER diagramů

V ER diagramu je možné provádět víceméně ekvivalentní úpravy (výsledný diagram reprezentuje stejný koncept databáze), např. pro odstranění vztahů s kardinalitou (převod na dva vztahy kardinalitami a průnikový entitní typ, který je vztahy určený, takže je slabý). Dalším důvodem úprav může být zbavení se ISA hierarchie. To se dá provést více způsoby, přičemž žádný z nich nefunguje úplně obecně:

- agregace atributů a vztahů potomka do předka a úprava kardinalit (převod na nepovinné atributy a nepovinné členství ve vztahu)
- odstranění předka a duplikace všech jeho atributů a vztahů v potomcích
- nahrazení ISA vztahu klasickým vztahem (z potomků vzniknou slabé entitní typy)

Jiná úprava je odstranění vícehodnotového atributu - převede se na vztah s kardinalitou a slabý entitní typ.

Korektní ER schéma

V korektním ER schématu všechny entity a vztahy splňují:

- Žádný entitní typ nemá více než jednoho ISA předka.
- ISA vztahy netvoří orientovaný cyklus.
- Identifikační vztahy netvoří orientovaný cyklus.
- Potomek v ISA hierarchii není identifikačně závislý na žádném entitním typu (je již identifikován předkem).
- Jména entitních a vztahových typů jsou jednoznačná.

TODO: Co je ksakru metody návrhů IS?