3.1 KiB
3.1 KiB
E-R-A modely
Co znamená E-R-A
- E – Entity (entita)
- R – Relationship (relace, vazba)
- A – Attribute (atribut)
Entita
- reprezentuje objekt z reálného světa
- popsána relevantními atributy
- může být v nějakém vztahu k jiné entitě
- zakresluje se jako obdélník
Atributy
- entitu popisujeme pomocí hodnot atributů
- atributy mají datový typ, formát, povinnost výskytu a výchozí hodnotu
- klíč
- jednoznačně určuje entitu
- měl by být podtržen nebo označen předponou PK (primary key)
- v případě nutnosti je uměle tvořený (id), nenese informaci ale je unikátní
Vazby (Relace)
- vazba vyjadřuje vztah mezi entitami
- kardinalita určuje počet entit, které se na vztahu podílejí (1:1, 1:N, M:N)
- povinnost výskytu určuje, zda se entita musí nebo nemusí na vztahu podílet
Realizace entit a vazeb v tabulkách
- entitu realizujeme tabulkou, kde každý řádek představuje entitu
- vazba 1:1 musí být oprávněná
- Proč nemůžeme spojit obě entitní množiny dohromady?
- vazba 1:N se realizuje pomocí cizího klíče FK (Foreign Key)
- vazba M:N se může realizovat pomocí pomocné entitní množiny (tabulky)
- vazba může mít atribut, řešeno pomocnou tabulkou
- mezi dvěma entitami může existovat více vazeb
- zaměstnanec je vedoucím oddělení a zároveň zaměstnán na oddělení
- vazba může mít aritu (n-ární)
- vazby s aritou 3 a více řešit rozkladem jako u M:N
- unární vazba - vazby mezi stejnou entitní množinou
Datový model formulářů
- formuláře obsahují hlavičku a položky
- např. faktura, skladový lístek
- mezi hlavičkou a položkami je vazba 1:N
- klíč položky může být unikátní
- v rámci systému (nedoporučuje se)
- v rámci formuláře (dvojice id formuláře a id položky)
Fan Trap
- situace, kde kvůli neklíčovým vazbám dochází k chybě v modelu
- mějme: pracovníci <N:1> katedra <1:N> oddělení
- není možné zjistit, na jakém oddělení pracuje pracovník
- řešením může být přidání dalších vazby nebo změna cizího klíče (u pracovníka)
- při návrhu modelu je důležité předejít "fan trap" a zajistit konzistenci dat
Cykly v E-R-A modelech
- příklad: komentář <1:N> uživatel <1:N> příspěvek <1:N> komentář
- komentář - uživatel: napsal uživatel
- komentář - příspěvek - uživatel: napsal příspěvek
- snaha o eliminaci cyklů a udržení konzistence
Chasm trap
- v řetězu vazeb 1:N vyskytuje se alespoň jedna vazba s nepovinným výskytem
- příklad: katedra <1:N> pracovníci <1:N(0)> majetek
- nezjistíme, jaký majetek patří které katedře
- řešení: nová vazba (1:N) mezi nedostupné entitní množiny (katedra <1:N> majetek)
Rozšířený E-R-A model
- EER - Enhanced Entity-Relationship Modeling
- zavádí prvky OOP do datového modelování
- nadtřídy, podtřídy, dědění atributů a vztahů
- dovoluje použití komplexních datových typů
- využívá agregace, kompozice, generalizace a specializace