Požadované vlastnosti E-R modelu korektnost (smysluplná a jednoznačná sémantika) klíče, kardinality snaha o minimalizaci E-R diagramu čitelnost E-R diagramu kontrola funkčních závislostí (později) Rada: Postupovat shora dolů – diagram postupně zjemňovat 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Datové modely Síťový databázový model Hierarchický databázový model Relační databázový model Objektově-relační databázový model Objektově-orientovaný databázový model 5.5.2019 Databázové systémy UIN010
Relační databázový model Každý datový model musí definovat: povolené datové struktury - povolené operace na nich - integritní omezení Datové struktury: n-ární relace (v podstatě tabulky) relace = množina prvků tvaru (a1, a2, … an) … n-tice n je řád relace ai dom (Ai), kde Ai je pojmenování atributu a dom označuje doménu atributu (množina hodnot, jichž může atribut Ai nabývat) ai - hodnota atributu Ai v dané n-tici atribut Ai dán dvojicí Ai: Dom(Ai) 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Schéma relace R(A1: D1, A2: D2, … An: Dn), Di = dom (Ai) pro i = 1, … n Zkrácený zápis schématu: R(A1, A2, … An) nebo pouze R(A) Pozn. Matematicky se jedná o podmnožinu kartézského součinu D1 D2 … Dn Relace nad schématem R = instance relace tj. {t; t = {<A1, a1>,... , <An, an>}, aiÎDi, i=1,...,n} Relační schéma databáze = konečná množina relačních schémat např. DB = {R1, R2, ..., Rk} Relační databáze nad schématem DB = instance relace tj. množina relací o k prvcích např. {S1 , S2 ,..., Sk}, kde Sj je relace nad schématem Rj 5.5.2019 Databázové systémy UIN010
Tabulková terminologie schéma relace záhlaví tabulky n-tice řádky tabulky atributy sloupce tabulky Pozor: V relaci nezáleží na pořadí řádků, ale v tabulce je vždy dané nějaké pořadí sloupců a řádků. Relace neobsahuje duplicitní n-tice, ale v tabulce se mohou vyskytovat duplicitní řádky. Tabulka je pouhou reprezentací databázové relace. 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Příklady Schéma relací KINO (Název_k: STRING(25), Adresa: STRING(50), Kapacita: INTEGER) FILM (Název_f: STRING(40), Rok: INTEGER, Země: STRING (30)) PROGRAM (Název_k: STRING(25), Název_f: STRING(40), Datum: STRING(10), Čas: STRING(5)) Relační schéma databáze {KINO, FILM, PROGRAM} Konkrétní n-tice z relace nad schématem KINO a FILM (instance relace) (Blaník, Václavské nám. 25, 420) (Gladiátor, 2000, USA), ale i (dhasudh, 18569, datdtyay) 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Integritní omezení tvrzení specifikující znalosti o datech v databázi v RMD logické podmínky, jež musejí být na datech splněny Instance relace vyhovující integritním omezením se označují jako přípustné. Důležitá integritní omezení Specifikace klíče schématu relace R Referenční integrita 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Specifikace klíče Definice: Klíč K schématu R(A) je minimální množina atributů z A, jejichž hodnoty budou jednoznačně určovat n-tice instance relace R. Důležité pojmy primární klíč nadklíč jednoduchý vs. složený klíč klíčový vs. neklíčový atribut 5.5.2019 Databázové systémy UIN010
Referenční integrita = integritní omezení popisující vztah mezi daty obsaženými ve dvou relacích týká se atribut označovaného jako cizí klíč Př. FILM (Jméno_f, Herec, Rok) PROGRAM (Název_k, Jméno_f, Datum) V jazyce SQL: FOREIGN KEY (Jméno_f) REFERENCES FILM (Jméno_f) Kontrola RI se uplatňuje při vkládání dat do závislé relace PROGRAM a při odstraňování záznamů z hlavní relace FILM. 5.5.2019 Databázové systémy UIN010
Transformace E-R schématu reprezentace silného entitního typu reprezentace vícehodnotových atributů reprezentace skupinových atributů reprezentace vztahů reprezentace slabého entitního typu reprezentace ISA-vztahu 5.5.2019 Databázové systémy UIN010
Reprezentace silného entitního typu transformace na relace resp. tabulky atributy tvoří schéma identifikátor se překládá na klíč (při složitém klíči se vyplatí zavést umělý klíč jednoduchý) Zaměstnanec Osobní_č Jméno Příjmení Zaměstnanec (Osobní_č, Jméno, Příjmení) 5.5.2019 Databázové systémy UIN010
Reprezentace vícehodnot. atributů je-li dáno maximum hodnot, lze zavést příslušný počet atributů do schématu relace (nevyužité mají hodnotu NULL) obvykle umisťujeme do samostatné tabulky s vhodně generovaným klíčem obsahujícím klíč odpovídajícího entitního typu Zaměstnanec Osobní_č Děti Zaměstnanec (Osobní_č, …) Děti (Osobní_č, Rodné_číslo_dítěte, …) 5.5.2019 Databázové systémy UIN010
Reprezentace skupin. atributů rozepisují se do atomických složek nebo se pro ně zavede samostatná tabulka Zaměstnanec Osobní_č Ulice, číslo Město PSČ Zaměstnanec (Osobní_č, …) Adresa (Osobní_č, Město, Ulice + číslo, PSČ) 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Reprezentace vztahu 1:1 reprezentace závisí na tom, zda je členství ve vztahu povinné či nikoli Nepovinném členství pro oba typy samostatná tabulka klíčovaná klíčem kteréhokoliv ze dvou zúčastněných typů Povinné členství pro jeden typ přidání atributů vztahu včetně klíče nezávislého typu do tabulky pro existenčně závislý (s povinným členstvím) Povinné členství pro oba typy jediné schéma pro oba entitní typy i vztah 5.5.2019 Databázové systémy UIN010
Reprezentace vztahu 1:1 Zaměstnanec (Osobní_č, Jméno, …) používá (0,1) Zaměstnanec (Osobní_č, Jméno, …) Vůz (SPZ, Výrobce, …) Používá (Osobní_č, SPZ, …) Zaměstnanec Vůz používá (1,1) (0,1) Zaměstnanec (Osobní_č, Jméno, …) Vůz (SPZ, Výrobce, …, Osobní_č) Zaměstnanec Vůz používá (1,1) Zaměstnanec (Osobní_č, Jméno, …, SPZ, …)
Reprezentace vztahu 1:N reprezentace závisí pouze na typu determinantu vztahu Povinné členství determinantu vztahu ke schématu determinantu přidáme atributy klíče druhého typu, primárním klíčem zůstává klíč determinantu Nepovinné členství determinantu vztahu nové schéma pro vztah obsahující vztahové atributy a identifikační atributy obou typů, primárním klíčem bude klíč determinantu 5.5.2019 Databázové systémy UIN010
Reprezentace vztahu 1:N Pacient Pokoj umístěn (x, N) (1,1) Pacient (Rodné_číslo, …, Číslo pokoje) Pokoj (Číslo_pokoje, Počet_lůžek, …) Pacient Pokoj umístěn (x, N) (0,1) Pacient (Rodné_číslo, …) Pokoj (Číslo_pokoje, Počet_lůžek, …) Umístěn (Rodné_číslo, Číslo_pokoje, …) 5.5.2019 Databázové systémy UIN010
Reprezentace vztahu M:N bez ohledu na typy členství tři schémata, třetí vztahové obsahuje klíče z obou typů a vztahové atributy, primárním klíčem je dvojice příslušných primárních klíčů Zaměstnanec Oddělení pracuje (x, M) (x, N) Zaměstnanec (Osobní_č, Jméno, …) Oddělení (Číslo_odd, Název, …) Pracuje (Osobní_č, Číslo_odd, Datum, …) 5.5.2019 Databázové systémy UIN010
Reprezentace n-árního vztahu bez ohledu na typy členství n+1 schémat, poslední vztahové obsahuje identifikační klíče všech typů a vztahové atributy primární klíč však nemusí obsahovat všechny zmíněné cizí klíče, závisí na poměrech v n-árním vztahu A B R N M C 1 A (A1, A2, …) B (B1, B2, …) C (C1, C2, …) R (A1, B1, C1) 5.5.2019 Databázové systémy UIN010
Reprezentace slabého entitního typu do tabulky se přidají identifikátory identifikačních vlastníků Exemplář Kniha (1,1) (0,n) Kniha (ISBN, Název, Autor, …) Exemplář (Č_exempláře, ISBN, Datum nákupu, …) 5.5.2019 Databázové systémy UIN010
Reprezentace ISA-vztahu obvykle schémata pro nadtyp i každý podtyp, podtyp dědí klíč z nadtypu ISA OSOBA UČITEL STUDENT Osoba (Osobní_č, Jméno, …) Učitel (Osobní_č, Titul, …) Student (Osobní_č, Obor, Ročník …) 5.5.2019 Databázové systémy UIN010
Databázové systémy UIN010 Funkční závislosti definována mezi dvěma množinami atributů v rámci jednoho schématu platí obecně Definice: Nechť A= {A1,...,An} je relační schéma, X,Y podmnožiny A. Řekneme, že Y funkčně závisí na X, značíme X->Y, jestliže pro každou instanci r nad A platí: t1,t2 r: (t1[X] = t2[X] t1[Y]= t2[Y]) Předmět Učitel Místnost Matematika Záruba S7 S1 Dějepis Hořká S2 Jeden předmět učí nejvýše jeden učitel, jeden učitel učí více předmětů Předmět –> Učitel 5.5.2019 Databázové systémy UIN010
Definice pojmů klíč, nadklíč Definice pojmu nadklíč a klíč s pomocí funkčních závislostí Nechť A={A1,...,An} je relační schéma. Nadklíčem schématu A rozumíme každou podmnožinu množiny A, na níž A funkčně závisí. Klíčem schématu A je takový nadklíč schématu A, jehož žádná vlastní podmnožina není nadklíčem A (tj. minimální nadklíč). 5.5.2019 Databázové systémy UIN010