Systém řízení báze dat SŘBD programový systém umožňující vytvoření, údržbu a použití báze dat databáze program Database engine (databázový stroj, databázový motor, databázové jádro) funkce: přenos (načítání) dat z místa jejich uložení do místa jejich zpracování data database engine jazyky pro definici, manipulaci a řízení dat Místo uložení dat (např. pevný disk) Operační paměť datový slovník (metadata) Databázová aplikace Typy SŘBD podle způsobu práce s daty databázový systém souborové data SŘBD aplikační program klient/server 1
souborové SŘBD program (aplikace) manipuluje přímo se soubory dat při víceuživatelském přístupu není možnost koordinace SŘBD klient/server oddělení SŘBD a databázové aplikace: program (aplikace) komunikuje s procesem (serverem), který obhospodařuje databázi a manipuluje s daty úloha serveru: manipulace s daty (podle požadavků klientských programů) koordinace víceuživatelského přístupu program 1 data program 2 program 1 server data program 3 program 2 program 3 Hierarchie datových struktur Kritéria pro srovnávání efektivnosti datových struktur databáze soubor záznam, věta (record) pole, položka (field) datové struktury datové typy Jak odpovídají reálným objektům, jež znázorňují (možnost vyjádřit vztahy 1:1, 1:N, N:1, N:M) Obtížnost návrhu Obtížnost dodatečných změn v uspořádání dat Efektivnost vyhledávání dat rychlost přístupu k datům vícekriteriální vyhledávání Míra redundance 2
Lineární (sekvenční) struktura Lineární (sekvenční) struktura Užití lineárních struktur zálohy dat (sekvenční ukládání na magnetickou pásku) fulltextové systémy (doplněné indexovými soubory) Lineární struktura klady a zápory možnost vyjádřit pouze vztahy 1:1 jednoduchý návrh obtížnost dodatečných změn v uspořádání dat rychlost přístupu k datům: malá sekvenční prohledávání vícekriteriální vyhledávání nelze redundance nutná při vyjádření vztahů 1:N a N:M 3
Stromová (hierarchická) struktura Stromová (hierarchická) struktura Užití stromových struktur Stromová struktura klady a zápory indexové soubory HTML a XML dokumenty objektově orientovaná technologie možnost vyjádřit jednosměrné vztahy 1:N obtížný návrh obtížnost dodatečných změn v uspořádání dat rychlost přístupu k datům: vysoká přímý přístup (navigace) vícekriteriální vyhledávání nelze redundance nutná při vyjádření vztahů N:M 4
Síťová struktura Síťová struktura Užití síťových struktur Síťová struktura klady a zápory hypertext World Wide Web možnost vyjádřit vztahy N:M obtížný návrh obtížnost dodatečných změn v uspořádání dat rychlost přístupu k datům: vysoká přímý přístup (navigace) vícekriteriální vyhledávání nelze redundance žádná 5
Nevýhoda lineárních, stromových a síťových datových struktur Relační struktura procedurálnost aby systém provedl požadovanou operaci s daty, je třeba mu přesně určit procedury, kterými to má realizovat trvalost vztahů vztahy mezi záznamy nelze v průběhu aktualizace systému ani v průběhu vyhledávání měnit Edgar F. Codd: Relační SŘBD je takový systém, který má 2 vlastnosti: 1. databáze je uživatelem chápána jako množina relací (a nic jiného) 2. jsou k dispozici minimálně operace selekce, projekce a spojení, aniž by se vyžadovaly explicitně předdefinované přístupové cesty pro realizaci těchto operací Kartézský součin spojení prvků různých množin stylem "každý s každým" výsledek: upořádané n-tice (relace) na pořadí prvků v n-ticích nezáleží doména: množina hodnot stejného významového typu (např. jména čtenářů), použitá v kartézském součinu 6
Kartézský součin Vznik relace kartézským součinem nad doménami 1 M x N = {[A,X],[A,W],[B,X],[B,W],[C,X],[C,W]} Vznik relace kartézským součinem nad doménami 2 Relační databáze = množina relací (relačních tabulek) 7
Relační struktura Srovnání databázových struktur možnost vyjádřit vztahy N:M jednoduchý návrh snadné dodatečné změny v uspořádání dat rychlost přístupu k datům: malá vícekriteriální vyhledávání lze redundance minimální Cíl návrhu informačního systému převést realitu do počítače Fyzický svět reálné objekty ("skutečné" i abstraktní) Počítačový svět reprezentace reálných objektů v podobě softwarových a datových objektů 8
ERA model Peter Pin Shan Chen 1976 typ konceptuálního modelu množina pojmů sloužící k statickému (datovému) popisu systému Cíl návrhu (modelu) databáze mít v systému všechna potřebná data nemít v systému žádná nepotřebná data vyjádřit vztahy mezi daty popsat transformaci dat v systému ERA model entita jakýkoli objekt, prvek, který nás zajímá atribut charakteristika (vlastnost) entity vymezuje hodnoty, kterých mohou nabývat její instance vztah sémantické spojení mezi dvěma nebo více prvky modelu Entitně relační diagram (ERA, E R, ER, ERD) 1. ENTITA (entity) 2. ATRIBUT (attribute) 3. VZTAH (relationship) 9
Kardinalita (mohutnost) počet prvků množiny určení počtu prvků nějakého vztahu kolik výskytů jedné entity má vztah k výskytu druhé entity? Kardinalita vztahu Kardinalita vztahu 1:1 role herců v nastudované divadelní hře 1:N role herců v divadelní sezóně N:M role herců v několika sezónách a divadlech spolupráce herců např. v jedné divadelní hře HEREC ROLE 10
Způsoby vyjádření kardinality Vladimír Koutecký z Prahy 4 si 14. října 2004 půjčil na tři týdny "Tajný deník Laury Palmerové" (signatura A1586) a) grafické vyjádření Vladimír Koutecký z Prahy 4 si 14. října 2004 půjčil na tři týdny "Tajný deník Laury Palmerové" (signatura A1586) b) lineární textový zápis E: ČTENÁŘ (Jméno, Adresa) KNIHA (Signatura, Název) R: VÝPŮJČKA (Datum, Lhůta) 11
ERA diagram pro pojišťovnu Pojišťovna nabízí klientům různé produkty (např. životní pojištění, pojištění domácnosti, povinné ručení, cestovní pojištění, úrazové pojištění ) Rozhodne-li se klient pro určitý produkt, uzavře s pojišťovnou pojistnou smlouvu. K uzavřeným pojistným smlouvám pak pojišťovna přiřazuje evidenci plateb sjednaných pojistných částek a dále evidenci pojistných událostí a jejich vyřízení. Entita 1. Popsatelný objekt (odlišitelný od okolí) atributy 2. Jednoznačně identifikovatelný objekt identifikátory Primární klíč (primary key) Pole nebo kombinace polí, jejichž hodnoty jednoznačně identifikují každý z řádků tabulky je jednoznačný nesmí mít 2x stejný obsah je minimální žádné pole z něj nelze vypustit musí vždy obsahovat hodnotu 12
Primární klíč pro seznam umělců Vstupenky do divadla Alternativní verze jména (např. v různých jazycích) Datum narození Muž / žena Národnost Pořadové číslo v seznamu Rodné jméno Rodné příjmení Umělecké jméno Umělecký obor Životopis Primární klíč pro vstupenky do divadla Cena Název představení Řada Sedadlo Termín (datum a čas) Umístění (přízemí balkón galerie) Primární klíč v Paradoxu ve struktuře tabulky musí být klíčová pole na prvním místě tabulka se automaticky setřídí podle klíčových hodnot vytvoří se indexový soubor s příponou.px v případě dodatečného definování primárního klíče budou záznamy s duplicitními hodnotami v klíčovém poli přemístěny do dočasné tabulky KEYVIOL 13
Odkazy v síťových databázích pointery (fyzické vazby) Odkazy v relačních databázích cizí klíče (logické vazby) Cizí klíč (foreign key) odkaz na primární klíč rodičovského záznamu prostřednictvím zopakování jeho hodnoty v dětském záznamu herec B hraje roli A (role odkazuje na herce) herec C hraje roli D (herec odkazuje na roli) pk fk HERCI B C pk fk ROLE A D Referenční integrita všechny odkazy z jednoho záznamu do druhého jsou kontrolovány na správnost správné je, když: hodnota či existence atributu v jednom záznamu (odkazujícím, dětském) závisí na hodnotě či existenci téhož atributu v jiném záznamu (odkazovaném, rodičovském) 14
Podstata omezení daného referenční integritou zabránění vzniku osiřelých záznamů sirotek: záznam, ke kterému chybí doplňující informace, jež má být obsažena v druhém (rodičovském) záznamu týká se vkládání dat, aktualizace i rušení dat Terminologie referenční integrity v Paradoxu Týká se záznamů nebo tabulek parent master rodič child detail dítě Referenční integrita 1. Pole společné oběma záznamům (propojovací primární a cizí klíč) musí být stejného datového typu a velikosti 2. Vazbu definujeme pro dětský záznam Referenční integrita 1. Rodičovská tabulka musí mít primární klíč propojovací pole musí být součástí primárního klíče ve složeném primárním klíči musí být propojovací pole na prvním místě 2. Dětská tabulka musí mít primární klíč propojovací pole (cizí klíč) může být umístěno kdekoli ve struktuře tabulky 15
Referenční integrita v Paradoxu Referenční integrita v Paradoxu Co se stane, když 1) Definujeme referenční integritu pro dětské záznamy, které mají v cizích klíčích hodnoty neodpovídající primárnímu klíči v rodičovském záznamu? Co se stane, když 2) Vložíme do cizího klíče hodnotu neodpovídající primárnímu klíči žádného rodičovského záznamu? vytvoří se tabulka KEYVIOL záznam se nepodaří uložit (master record missing) Referenční integrita v Paradoxu Referenční integrita v Paradoxu Co se stane, když 3) Při editaci cizího klíče stiskneme kombinaci kláves Ctrl Shift Mezerník? Co se stane, když 4) Definujeme referenční integritu jako Cascade? Objeví se pohled na rodičovské záznamy s možností výběru a vložení hodnoty Při změně hodnoty primárního klíče v rodičovském záznamu se automaticky změní hodnoty odpovídajících cizích klíčů 16
Referenční integrita v Paradoxu Referenční integrita v Paradoxu Co se stane, když 5) Definujeme referenční integritu jako Prohibit? Má-li rodičovský záznam odpovídající cizí klíče v dětském záznamu, nelze provést změnu jeho hodnoty (master has detail records) Co se stane, když 6) Budeme chtít smazat rodičovský záznam? LZE nejsou-li v dětských záznamech odpovídající cizí klíče NELZE jsou-li v dětských záznamech odpovídající cizí klíče (master has detail records) 17