23
Databázové systémy Relační model

Databázové systémy

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

Page 1: Databázové systémy

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 --

Page 2: Databázové systémy

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 --

Page 3: Databázové systémy

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 --

Page 4: Databázové systémy

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 --

Page 5: Databázové systémy

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 --

Page 6: Databázové systémy

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 --

Page 7: Databázové systémy

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 --

Page 8: Databázové systémy

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 --

Page 9: Databázové systémy

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 --

Page 10: Databázové systémy

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 --

Page 11: Databázové systémy

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 --

Page 12: Databázové systémy

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 --

Page 13: Databázové systémy

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 --

Page 14: Databázové systémy

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 --

Page 15: Databázové systémy

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 --

Page 16: Databázové systémy

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 --

Page 17: Databázové systémy

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 --

Page 18: Databázové systémy

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 --

Page 19: Databázové systémy

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 --

Page 20: Databázové systémy

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 --

Page 21: Databázové systémy

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 --

Page 22: Databázové systémy

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 --

Page 23: Databázové systémy

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 --