FAV-ZCU/KIV DB1/03. E-R-A modely.md

3.1 KiB
Raw Blame History

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