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)
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 Slabá 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. Adresa Telefon Kniha ISBN knihy Název knihy Obor Cena 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. Adresa Telefon Kniha ISBN knihy (KK) Název knihy Obor Cena 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í Výrobky Nápoje Maso Trvanlivé
Vztahy typu 1:1 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í.
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 Mezilehlá relace Entita 2
Vztah více k více Autor Kód autora (KK) Jméno Příjmení Kniha ISBN knihy (KK) Název knihy Obor Cena
Vztah více k více Autor Kód autora (KK) Jméno Příjmení Kniha - Autor Kód autora (KK) ISBN knihy (KK) Kniha ISBN knihy (KK) Název knihy Obor Cena
Modelování abstraktní relace Zaměstnanci Č. zaměstnance Příjmení Jméno Datum nar. Pozice Č. zaměstnance Č. prac. zařazení Datum zahájení Plat Prac. zařazení Č. prac. zařazení Plný název Person. stupeň
Modelování abstraktní relace Zaměstnanci Č. zaměstnance Příjmení Jméno Datum nar. Pozice Č. zaměstnance Č. prac. zařazení Datum zahájení Plat Prac. zařazení Č. prac. zařazení Plný název Person. stupeň
Modelování abstraktní relace Zaměstnanci Č. zaměstnance Příjmení Jméno Datum nar. Pozice Č. pozice Č. zaměstnance Č. prac. zařazení Datum zahájení Plat Prac. zařazení Č. prac. zařazení Plný název Person. 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ěstnance Příjmení Jméno Funkce Datum narození Adresa Telefon 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
Příklad notace ERD - Chen 1976
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