Databázové systémy
Vztahy a relace
3.přednáška
Terminologie - vztahy
• Účastníci vztahu
• Stupeň vztahu– počet relací účastnících se na vztahu
– Unární
– Binární
– Ternární
Terminologie - vztahy
• Kardinalita vztahu– Žádný vztah – nesouvisející údaje
– 1:1
– 1:n
– m:n (využití mezilehlé tabulky)
Slabá entita
Terminologie - vztahy
• Slabá entita– Nemá KK
– Parciální klíč je množina atributů, která od sebe odlišuje entity slabé množiny
– KK slabé množiny je tvořen KK silné množiny, na níž je tato množina závislá a parciálním klíčem této skupiny
• Slabá entita má povinnou (úplnou) účast ve vztahu, nemůže existovat bez vztahu se silnou entitou.
• Silná (regulérní) entita má nepovinnou (volitelnou) účast ve vztahu. Může existovat i bez vztahu se slabou entitou.
• Př.: Zaměstnanec -- Prodejce
Regulérní entita
Modelování vztahů
• Počet účastníků vztahu = stupeň vztahu
• Pokud mezi 2 entitami existuje vztah, je třeba ho namodelovat.
• Princip: Zahrnout příslušné atributy z jedné relace (tzv. primární) i do druhé relace (tzv. cizí nebo nevlastní relace)
• Tzn. kopírujeme KK z primární relace do cizí relace
Modelování vztahů-příklad
Nakladatelství
Kód nakl.Jméno nakl.
AdresaTelefon
Kniha
ISBN knihyNázev knihy
OborCena
Kód nakl.
Vztahy nemají samy o sobě žádný název
Modelování vztahů
• Do cizí relace doplňujeme atributy, které tvoří kandidátní klíč primární relace
• cizí (nevlastní) klíč
Modelování vztahů
• Vztah 1:více modelujeme: relace na straně 1 je vždy primární relací, zatímco relace na straně více je vždy cizí relací.
• Tzn. KK z relace na straně 1 doplníme jako cizí klíč do relace na straně více.
Modelování vztahů-příklad
Nakladatelství
Kód nakl. (KK)Jméno nakl.
AdresaTelefon
Kniha
ISBN knihy (KK)Název knihy
OborCena
Kód nakl. (cizí k.)
Vztahy nemají samy o sobě žádný název
Vztahy typu 1:1
• Každou libovolnou instanci entity X je možno asociovat pouze s jedinou instancí entity Y
Podtřídy entit
• Využívají vztahů 1:1
• Obecná entita je primární relací, podtřída cizí relací
Nápoje
Výrobky
TrvanlivéMaso
• Příklad – Načrtněte realizaci vazby mezi entitami (tabulkami) Zaměstnanec a Pracovní stůl. Každý zaměstnanec může mít jeden pracovní stůl, ale nemusí.
Vztahy typu 1:1
Vztah 1:1 – volba primární relace
• Relace na nepovinné straně (regulérní entita) vztahu je primární relací
• Slabá entita představuje cizí relaci
• Dále jako u předchozích případů:
Kopírujeme KK z primární relace do cizí relace
Vztahy 1:N
• Entita na straně 1 tvoří vždy primární relaci, její KK se zkopíruje do relace na straně „více“, která je cizí relací
Vztahy 1:N
• Příklad – Načrtněte realizaci vazby mezi entitami (tabulkami) Oblečení a Skříň.
Vztahy typu M:N
• Nelze jednoduše použít postup z předešlých dvou případů
• Na obou stranách vazby M:N je více objektů, nelze ani do jedné z tabulek umístit cizí klíč
• U jednoho záznamu jedné tabulky by bylo třeba mít odkaz na více záznamů druhé tabulky a naopak
• Např. student - předmět – student studuje více předmětů nemůžu dát klíč předmětu jako cizí klíč ke studentovi (potřebuji více než jeden)
Vztahy typu M:N
• Speciální mezilehlá relace, která má s každým z účastníků vztah 1:N
• Každá z původních entit se pak stává primární relací, mezilehlá relace (spojovací tabulka) cizí relací, přičemž z obou původních relací převezme jejich KK
Vztah „více“ k „více“
Entita 1 Entita 2
Entita 1 Entita 2Mezilehlá relace
Vztah „více“ k „více“
Autor
Kód autora (KK)Jméno
Příjmení
Kniha
ISBN knihy (KK)Název knihy
OborCena
Vztah „více“ k „více“
Autor
Kód autora (KK)
Jméno Příjmení
Kniha
ISBN knihy (KK)Název knihy
OborCena
Kniha - Autor
Kód autora (KK)ISBN knihy (KK)
Modelování abstraktní relace
Zaměstnanci
Č. zaměstnancePříjmeníJménoDatum nar.
Pozice
Č. zaměstnanceČ. prac. zařazeníDatum zahájeníPlat
Prac. zařazení
Č. prac. zařazeníPlný názevPerson. stupeň
Modelování abstraktní relace
Zaměstnanci
Č. zaměstnancePříjmeníJménoDatum nar.
Pozice
Č. zaměstnanceČ. prac. zařazeníDatum zahájeníPlat
Prac. zařazení
Č. prac. zařazeníPlný názevPerson. stupeň
Modelování abstraktní relace
Zaměstnanci
Č. zaměstnancePříjmeníJménoDatum nar.
PoziceČ. poziceČ. zaměstnanceČ. prac. zařazeníDatum zahájeníPlat
Prac. zařazení
Č. prac. zařazeníPlný názevPerson. stupeň
Vztahy typu M:N
• Příklad – Načrtněte realizaci vazby mezi entitami (tabulkami) Číšník a Stůl, když 1 stůl může být obsluhován více číšníky.
Unární vztahy
• Mají pouze jednoho účastníka
• Relace je spojena sama se sebou
Unární vztah - příklad
Zaměstnanci
Č. zaměstnancePříjmeníJménoFunkce
Datum narozeníAdresaTelefon
FotoČ. nadřízeného
Ternární vztahy
• Mají obvykle tvar: X dělá Y pro Z
• Pro jejich modelování neexistuje žádný jednoznačný předpis
Notace
• Chen
• Barker
• Information Engineering
• IDEF1X
• UML – Object Diagram
Richard Barker notace – „vraní nohy“
Notace Information Engineering
Crow‘s Foot notace
Procvičení
• Příklad – Nakreslete ER diagram s vazbou M:N, po rozkladu vazby M:N a načrtněte realizaci vazeb v databázi pro entity Jídlo a Ingredience
Konec