34
Databázové systémy Vztahy a relace 3.přednáška

Databázové systémy - cvut.cz

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Databázové systémy - cvut.cz

Databázové systémy

Vztahy a relace

3.přednáška

Page 2: Databázové systémy - cvut.cz

Terminologie - vztahy

• Účastníci vztahu

• Stupeň vztahu– počet relací účastnících se na vztahu

– Unární

– Binární

– Ternární

Page 3: Databázové systémy - cvut.cz

Terminologie - vztahy

• Kardinalita vztahu– Žádný vztah – nesouvisející údaje

– 1:1

– 1:n

– m:n (využití mezilehlé tabulky)

Page 4: Databázové systémy - cvut.cz

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

Page 5: Databázové systémy - cvut.cz

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

Page 6: Databázové systémy - cvut.cz

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

Page 7: Databázové systémy - cvut.cz

Modelování vztahů

• Do cizí relace doplňujeme atributy, které tvoří kandidátní klíč primární relace

• cizí (nevlastní) klíč

Page 8: Databázové systémy - cvut.cz

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.

Page 9: Databázové systémy - cvut.cz

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

Page 10: Databázové systémy - cvut.cz

Vztahy typu 1:1

• Každou libovolnou instanci entity X je možno asociovat pouze s jedinou instancí entity Y

Page 11: Databázové systémy - cvut.cz

Podtřídy entit

• Využívají vztahů 1:1

• Obecná entita je primární relací, podtřída cizí relací

Nápoje

Výrobky

TrvanlivéMaso

Page 12: Databázové systémy - cvut.cz

• 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

Page 13: Databázové systémy - cvut.cz

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

Page 14: Databázové systémy - cvut.cz

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í

Page 15: Databázové systémy - cvut.cz

Vztahy 1:N

• Příklad – Načrtněte realizaci vazby mezi entitami (tabulkami) Oblečení a Skříň.

Page 16: Databázové systémy - cvut.cz

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)

Page 17: Databázové systémy - cvut.cz

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

Page 18: Databázové systémy - cvut.cz

Vztah „více“ k „více“

Entita 1 Entita 2

Entita 1 Entita 2Mezilehlá relace

Page 19: Databázové systémy - cvut.cz

Vztah „více“ k „více“

Autor

Kód autora (KK)Jméno

Příjmení

Kniha

ISBN knihy (KK)Název knihy

OborCena

Page 20: Databázové systémy - cvut.cz

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)

Page 21: Databázové systémy - cvut.cz

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ň

Page 22: Databázové systémy - cvut.cz

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ň

Page 23: Databázové systémy - cvut.cz

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ň

Page 24: Databázové systémy - cvut.cz

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.

Page 25: Databázové systémy - cvut.cz

Unární vztahy

• Mají pouze jednoho účastníka

• Relace je spojena sama se sebou

Page 26: Databázové systémy - cvut.cz

Unární vztah - příklad

Zaměstnanci

Č. zaměstnancePříjmeníJménoFunkce

Datum narozeníAdresaTelefon

FotoČ. nadřízeného

Page 27: Databázové systémy - cvut.cz

Ternární vztahy

• Mají obvykle tvar: X dělá Y pro Z

• Pro jejich modelování neexistuje žádný jednoznačný předpis

Page 28: Databázové systémy - cvut.cz

Notace

• Chen

• Barker

• Information Engineering

• IDEF1X

• UML – Object Diagram

Page 30: Databázové systémy - cvut.cz

Richard Barker notace – „vraní nohy“

Page 31: Databázové systémy - cvut.cz

Notace Information Engineering

Page 32: Databázové systémy - cvut.cz

Crow‘s Foot notace

Page 33: Databázové systémy - cvut.cz

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

Page 34: Databázové systémy - cvut.cz

Konec