Upload
holly-wynn
View
55
Download
2
Embed Size (px)
DESCRIPTION
Databázové systémy. Relační model. Relační model. E.F.Codd : „ A relational data model for large shared data banks “ - 1970 Vlastnosti: Oddělení logické struktury dat od implementace, Transparentnost přístupových metod při manipulacích s daty, - PowerPoint PPT Presentation
Citation preview
Databaacutezoveacute systeacutemy
Relačniacute model
EFCodd
bdquoA relational data model for large shared data banksldquo - 1970
VlastnostiOdděleniacute logickeacute struktury dat od implementaceTransparentnost přiacutestupovyacutech metod při manipulaciacutech s daty Poskytnutiacute matematickeacute podpory pro manipulaci s datyPoskytnutiacute matematickeacute podpory k omezeniacute redundance při naacutevrhu
logickeacute struktury databaacuteze
Relačniacute model
jde o model uchovaacutevaacuteniacute entit vztahů v tabulkaacutech 1 tabulka na entitniacutevztahovyacute typ
sloupec tabulky reprezentuje atribut (A) entity řaacutedek tabulky reprezentuje datovou entituvztah (E)
scheacutema tabulky ndash popis struktury tabulky (všeho kromě dat)N(AiTi) ndash kde N je naacutezev tabulky Ai jsou atributy a Ti jejich
typy buňka tabulky na pozici (xy) uchovaacutevaacute hodnotu atributu A(x) v
kontextu entityvztahu E(y)
scheacutema relačniacute databaacuteze ndash množina scheacutemat tabulek (+integritniacute omezeniacute)
Relačniacute model
Tabulkoveacute vyjaacutedřeniacute relace a jejiacute vlastnosti
Atribut2 Atribut3 Atribut nAtribut1
zaacuteznam
položka
Struktura tabulky
Naacutezev bdquorelačniacute modelldquo a bdquorelačniacute databaacutezeldquo je odvozen od faktu že relace je zaacutekladniacutem abstraktniacutem pojmem modelu a jedinou strukturou databaacuteze na logickeacute uacuterovni
Integritniacute pravidla v relačniacutem modelu
Integritniacute pravidla jsou omezeniacute plynouciacute z reality reprezentovaneacute daty v daneacute databaacutezi
Typy integritniacutech omezeniacute 1048766 bullobecnaacute ndash musiacute platit v každeacute databaacutezi daneacuteho typu bullspecifickaacute ndash pro konkreacutetniacute aplikaci 1048766
Obecnaacute integritniacute omezeniacute neexistujiacute 2 stejneacute řaacutedky (unikaacutetniacute identifikace entit)
každyacute řaacutedek je identifikovatelnyacute (odlišitelnyacute od ostatniacutech) jedniacutem nebo viacutece pevně určenyacutemi atributy v raacutemci tabulky - kliacuteč tabulky
skupina atributů kteraacute existuje i v jineacute (tzv referenčniacute) tabulce a tam tvořiacute kliacuteč - ciziacute kliacuteč
rozsah hodnot atributu je daacuten typem (typovaneacute atributy) tabulka neobsahuje praacutezdneacute buňky - všechny hodnoty jsou definovaneacute
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
EFCodd
bdquoA relational data model for large shared data banksldquo - 1970
VlastnostiOdděleniacute logickeacute struktury dat od implementaceTransparentnost přiacutestupovyacutech metod při manipulaciacutech s daty Poskytnutiacute matematickeacute podpory pro manipulaci s datyPoskytnutiacute matematickeacute podpory k omezeniacute redundance při naacutevrhu
logickeacute struktury databaacuteze
Relačniacute model
jde o model uchovaacutevaacuteniacute entit vztahů v tabulkaacutech 1 tabulka na entitniacutevztahovyacute typ
sloupec tabulky reprezentuje atribut (A) entity řaacutedek tabulky reprezentuje datovou entituvztah (E)
scheacutema tabulky ndash popis struktury tabulky (všeho kromě dat)N(AiTi) ndash kde N je naacutezev tabulky Ai jsou atributy a Ti jejich
typy buňka tabulky na pozici (xy) uchovaacutevaacute hodnotu atributu A(x) v
kontextu entityvztahu E(y)
scheacutema relačniacute databaacuteze ndash množina scheacutemat tabulek (+integritniacute omezeniacute)
Relačniacute model
Tabulkoveacute vyjaacutedřeniacute relace a jejiacute vlastnosti
Atribut2 Atribut3 Atribut nAtribut1
zaacuteznam
položka
Struktura tabulky
Naacutezev bdquorelačniacute modelldquo a bdquorelačniacute databaacutezeldquo je odvozen od faktu že relace je zaacutekladniacutem abstraktniacutem pojmem modelu a jedinou strukturou databaacuteze na logickeacute uacuterovni
Integritniacute pravidla v relačniacutem modelu
Integritniacute pravidla jsou omezeniacute plynouciacute z reality reprezentovaneacute daty v daneacute databaacutezi
Typy integritniacutech omezeniacute 1048766 bullobecnaacute ndash musiacute platit v každeacute databaacutezi daneacuteho typu bullspecifickaacute ndash pro konkreacutetniacute aplikaci 1048766
Obecnaacute integritniacute omezeniacute neexistujiacute 2 stejneacute řaacutedky (unikaacutetniacute identifikace entit)
každyacute řaacutedek je identifikovatelnyacute (odlišitelnyacute od ostatniacutech) jedniacutem nebo viacutece pevně určenyacutemi atributy v raacutemci tabulky - kliacuteč tabulky
skupina atributů kteraacute existuje i v jineacute (tzv referenčniacute) tabulce a tam tvořiacute kliacuteč - ciziacute kliacuteč
rozsah hodnot atributu je daacuten typem (typovaneacute atributy) tabulka neobsahuje praacutezdneacute buňky - všechny hodnoty jsou definovaneacute
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
jde o model uchovaacutevaacuteniacute entit vztahů v tabulkaacutech 1 tabulka na entitniacutevztahovyacute typ
sloupec tabulky reprezentuje atribut (A) entity řaacutedek tabulky reprezentuje datovou entituvztah (E)
scheacutema tabulky ndash popis struktury tabulky (všeho kromě dat)N(AiTi) ndash kde N je naacutezev tabulky Ai jsou atributy a Ti jejich
typy buňka tabulky na pozici (xy) uchovaacutevaacute hodnotu atributu A(x) v
kontextu entityvztahu E(y)
scheacutema relačniacute databaacuteze ndash množina scheacutemat tabulek (+integritniacute omezeniacute)
Relačniacute model
Tabulkoveacute vyjaacutedřeniacute relace a jejiacute vlastnosti
Atribut2 Atribut3 Atribut nAtribut1
zaacuteznam
položka
Struktura tabulky
Naacutezev bdquorelačniacute modelldquo a bdquorelačniacute databaacutezeldquo je odvozen od faktu že relace je zaacutekladniacutem abstraktniacutem pojmem modelu a jedinou strukturou databaacuteze na logickeacute uacuterovni
Integritniacute pravidla v relačniacutem modelu
Integritniacute pravidla jsou omezeniacute plynouciacute z reality reprezentovaneacute daty v daneacute databaacutezi
Typy integritniacutech omezeniacute 1048766 bullobecnaacute ndash musiacute platit v každeacute databaacutezi daneacuteho typu bullspecifickaacute ndash pro konkreacutetniacute aplikaci 1048766
Obecnaacute integritniacute omezeniacute neexistujiacute 2 stejneacute řaacutedky (unikaacutetniacute identifikace entit)
každyacute řaacutedek je identifikovatelnyacute (odlišitelnyacute od ostatniacutech) jedniacutem nebo viacutece pevně určenyacutemi atributy v raacutemci tabulky - kliacuteč tabulky
skupina atributů kteraacute existuje i v jineacute (tzv referenčniacute) tabulce a tam tvořiacute kliacuteč - ciziacute kliacuteč
rozsah hodnot atributu je daacuten typem (typovaneacute atributy) tabulka neobsahuje praacutezdneacute buňky - všechny hodnoty jsou definovaneacute
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Tabulkoveacute vyjaacutedřeniacute relace a jejiacute vlastnosti
Atribut2 Atribut3 Atribut nAtribut1
zaacuteznam
položka
Struktura tabulky
Naacutezev bdquorelačniacute modelldquo a bdquorelačniacute databaacutezeldquo je odvozen od faktu že relace je zaacutekladniacutem abstraktniacutem pojmem modelu a jedinou strukturou databaacuteze na logickeacute uacuterovni
Integritniacute pravidla v relačniacutem modelu
Integritniacute pravidla jsou omezeniacute plynouciacute z reality reprezentovaneacute daty v daneacute databaacutezi
Typy integritniacutech omezeniacute 1048766 bullobecnaacute ndash musiacute platit v každeacute databaacutezi daneacuteho typu bullspecifickaacute ndash pro konkreacutetniacute aplikaci 1048766
Obecnaacute integritniacute omezeniacute neexistujiacute 2 stejneacute řaacutedky (unikaacutetniacute identifikace entit)
každyacute řaacutedek je identifikovatelnyacute (odlišitelnyacute od ostatniacutech) jedniacutem nebo viacutece pevně určenyacutemi atributy v raacutemci tabulky - kliacuteč tabulky
skupina atributů kteraacute existuje i v jineacute (tzv referenčniacute) tabulce a tam tvořiacute kliacuteč - ciziacute kliacuteč
rozsah hodnot atributu je daacuten typem (typovaneacute atributy) tabulka neobsahuje praacutezdneacute buňky - všechny hodnoty jsou definovaneacute
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Integritniacute pravidla v relačniacutem modelu
Integritniacute pravidla jsou omezeniacute plynouciacute z reality reprezentovaneacute daty v daneacute databaacutezi
Typy integritniacutech omezeniacute 1048766 bullobecnaacute ndash musiacute platit v každeacute databaacutezi daneacuteho typu bullspecifickaacute ndash pro konkreacutetniacute aplikaci 1048766
Obecnaacute integritniacute omezeniacute neexistujiacute 2 stejneacute řaacutedky (unikaacutetniacute identifikace entit)
každyacute řaacutedek je identifikovatelnyacute (odlišitelnyacute od ostatniacutech) jedniacutem nebo viacutece pevně určenyacutemi atributy v raacutemci tabulky - kliacuteč tabulky
skupina atributů kteraacute existuje i v jineacute (tzv referenčniacute) tabulce a tam tvořiacute kliacuteč - ciziacute kliacuteč
rozsah hodnot atributu je daacuten typem (typovaneacute atributy) tabulka neobsahuje praacutezdneacute buňky - všechny hodnoty jsou definovaneacute
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Indexy
Jsou takoveacute prvky dat podle nichž lze jednoznačně určit i ostatniacute atributy teacutehož zaacuteznamuIndexy podstatně urychlujiacute vyhledaacutevaacuteniacute v databaacutezi
Unikaacutetniacute - jednoznačnyacute index - hodnoty v indexu se nesmiacute opakovat
Primaacuterniacute - stejnyacute jako unikaacutetniacute index může byacutet pouze jeden v tabulce - tento kliacuteč jednoznačně identifikuje zaacuteznam
Neunikaacutetniacute - hodnoty se smějiacute libovolně opakovat
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Primaacuterniacute kliacuteč- atribut kteryacute jednoznačně identifikuje n-tici v relaci
Atribut K relace R se nazyacutevaacute kandidaacutetniacutem kliacutečem když maacute tyto dvě časově nezaacutevisleacute vlastnosti 1jednoznačnost 2minimalita (neredukovatelnost)
Primaacuterniacutem kliacutečem PK je jeden (vybranyacute) z kandidaacutetniacutech kliacutečů zbyacutevajiacuteciacute kandidaacutetniacute kliacuteče se nazyacutevajiacute alternativniacute-způsob vyacuteběru primaacuterniacuteho kliacuteče neniacute v relačniacutem modelu specifikovaacuten
Každaacute n-tice baacutezoveacute relace musiacute byacutet v každeacutem okamžiku jednoznačně identifikovatelnaacute hodnotou primaacuterniacuteho kliacuteče
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Ciziacute kliacuteč
Atribut FK baacutezoveacute relace R2 se nazyacutevaacute ciziacute kliacuteč praacutevě když splňuje tyto časově nezaacutevisleacute vlastnosti
1 Každaacute hodnota FK je buď plně zadanaacute nebo plně nezadanaacute 2 Existuje baacutezovaacute relace R1 s primaacuterniacutem kliacutečem PK takovyacutem že
každaacute zadanaacute hodnota FK je identickaacute s hodnotou PK nějakeacute n-tice relace R1
Pravidlo referenčniacute integrity DB nesmiacute obsahovat žaacutednou nesouhlasnou hodnotu ciziacuteho kliacuteče
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Přiacuteklad 1
Naacutezev Autor Cena Skladem
Biacutedniacuteci Hugo Victor 150- 10
Temno Jiraacutesek Alois 120- 16
Baacutesně Wolker Jiřiacute 125- 15
Koacutema Cook Robert 190- 32
Infekce Cook Robert 170- 20
RUR Čapek Karel 90- 36
Jmeacuteno Adresa Žije
Čapek Karel Praha NE
Jiraacutesek Alois Plzeň NE
Wolker Jiřiacute Praha NE
Cook Robert USA ANO
May Karel Německo NE
Hugo Victor Francie NE
prim kliacuteč
prim kliacuteč
ciziacute kliacuteč (kliacuteč v tabulce Autor)
Kniha (Naacutezev text Autor text Cena čiacuteslo Skladem čiacuteslo) Naacutezev je primaacuterniacute kliacuteč Autor je ciziacute kliacuteč do tabulky Autor(Jmeacuteno)
Autor (Jmeacuteno text Adresa text Žije anone) Jmeacuteno je primaacuterniacute kliacuteč
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Přiacuteklad 2
Jmeacuteno Přiacutejmeniacute MK SPZ
Jan Novyacute CZ 5B62345
Petr Novaacutek CZ 1Z22543
Vaacuteclav Novaacuteček CZ 3A85461
Ivan Novotnyacute SK BA456Z
Adam Novickyacute RU BU0124
Mezinaacuterodniacute koacuted SPZ Značka
CZ 1Z22543 Škoda
CZ 3A85461 Peugeot
CZ 5B62345 Volvo
D A156Z VW
RU BU0124 Dacia
SK BA456Z Kia
složenyacute kliacuteč
složenyacute kliacuteč
složenyacute ciziacute kliacuteč (kliacuteč v tabulce Auto)
Řidič (Jmeacuteno text Přiacutejmeniacute text MK text SPZ text) Jmeacuteno a Přiacutejmeniacute je kliacuteč MK a SPZ je ciziacute kliacuteč do tabulky Auto(Mezinaacuterodniacute koacuted SPZ)
Auto (Mezinaacuterodniacute koacuted text SPZtext Značka text) Mezinaacuterodniacute koacuted a SPZ je kliacuteč
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Převod ER diagramu Vyacutestupem z ER diagramů je seznam tabulek do kteryacutech budou
uloženaacute data obsahujiacuteciacute naacutezvy sloupců zachovaacuteniacute integritniacutech omezeniacute (pokud možno 11)
Převod obecně silnyacute entitniacute typ ndash tabulka
kliacutečem je identifikaacutetor entity slabyacute entitniacute typ ndash tabulka
kliacutečem je smiacutešenyacute (externiacute) identifikaacutetor vztahovyacute typ ndash tabulka
počet tabulek a jejich sdiacuteleniacute vztahu a entit se řiacutediacute kardinalitami vztahu do něhož tyto entity vstupujiacute
integritniacute omezeniacute ve formě kliacutečů tabulek n-aacuterniacute vztahy se převaacutedějiacute v principu stejně jako binaacuterniacute
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (11) (11)
jedinaacute tabulka ndash kliacutečem může byacutet identifikaacutetor libovolneacute z entit (nebo oba)
Relačniacute scheacutema
OsobaMobil(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (11) (01) dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetorkliacuteč z T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute seacuterioveacute čiacuteslo)Mobil(seacuterioveacute čiacuteslo model vyacuterobce )
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (01) (01) tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute dva kliacuteče odpoviacutedajiacuteciacute identifikaacutetorům obou entitniacutech typů kliacuteče jsou zaacuteroveň ciziacute kliacuteče do entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (0 nebo 1n) (11) podobně jako u (11) (01) ndash dvě tabulky T1 a T2
T1 existuje nezaacutevisle na T2 T2 obsahuje identifikaacutetor T1 kteryacute je zde ciziacutem kliacutečem do T1 reprezentace vztahu je bdquoukrytaacuteldquo v tabulce T2
Relačniacute scheacutema
Osoba(RČ jmeacutenopřiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce RČ)
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (0 nebo 1n) (01) podobně jako (01) (01) ndash tři tabulky ndash dvě entitniacute a jedna vztahovaacute
vztahovaacute tabulka maacute jeden kliacuteč odpoviacutedajiacuteciacute identifikaacutetoru jednoho z entitniacutech typů identifikaacutetor druheacuteho entitniacuteho typu je pouze ciziacutem kliacutečem
kliacuteč je zaacuteroveň ciziacute kliacuteč do jedneacute z entitniacutech tabulek
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Kardinality (0 nebo 1n) (0 nebo 1n) nejobecnějšiacute situace ndash tři tabulky
dvě entitniacute a jedna vztahovaacute kliacuteč ve vztahoveacute tabulce je složenyacute z identifikaacutetorů obou entitniacutech typů všechny čaacutesti kliacuteče vztahoveacute tabulky jsou ciziacutemi kliacuteči do tabulek vaacutezanyacutech
Relačniacute scheacutema
Osoba(RČ jmeacuteno přiacutejmeniacute )Mobil(seacuterioveacute čiacuteslo model vyacuterobce )Vlastniacute(RČ seacuterioveacute čiacuteslo)
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Transformace ER diagramu na tabulky relačniacute databaacuteze
Hlavniacute probleacutemy špatneacuteho naacutevrhu- opakujiacuteciacute se informace (redundance) - cyklickeacute struktury ndash nesplňujiacute předpoklad jednoznačnosti- nemožnost reprezentovat určitou informaci- složitaacute kontrola integritniacutech omezeniacute
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Pravidla transformace
Odstraněniacute složenyacutech a viacutecehodnotovyacutech atributů
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Pravidla transformace
Viacutecehodnotovyacute atribut rarr naacutehrada opakovaacuteniacutem nebo slabaacute entitniacute množina
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Přiacuteklad ndash Rezervace
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Přiacuteklad ndash Rezervace-- Skript pro vytvoreni schematu databaze ---- Vytvoreni tabulek ndash
CREATE TABLE Zakaznik (Id Integer NOT NULLAdresa Varchar(100) NOT NULLTelefon Varchar(12) NOT NULLCONSTRAINT pk_Zakaznik PRIMARY KEY (Id))
CREATE TABLE Predstaveni (Id Integer NOT NULLDatum Date NOT NULLNazev Varchar(50) NOT NULLCONSTRAINT pk_Predstaveni PRIMARY KEY (Id))
CREATE TABLE Sedadla (Stav Integer NOT NULLSedadlo Integer NOT NULLRada Integer NOT NULLSekce Integer NOT NULLId Integer NOT NULLpatri_Id Integer NOT NULLCONSTRAINT pk_Sedadla PRIMARY KEY (Id patri_Id)CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id))
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --
Přiacuteklad ndash Rezervace
CREATE TABLE Rezervuje (Sedadla_Id Integer NOT NULLSedadla_patri_Id Integer NOT NULLZakaznik_Id Integer NOT NULLCONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id Sedadla_patri_Id)CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id Sedadla_patri_Id) REFERENCES Sedadla(Idpatri_Id)CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id))
-- Konec skriptu --