2. Konceptuální model dat, E-R konceptuální model Úvod Databázový model souhrn prostředků, pojmů a metod, jak na logické úrovni popsat data a jejich strukturu výsledkem je databázové schéma. Databázové modely vysokoúrovňové modely nízkoúrovňové (fyzické) modely reprezentační či implementační databázové modely SŘBD poskytuje uživateli tzv. konceptuální reprezentaci dat - konceptuální schéma, které do určité míry formalizovaně, ale dostatečně srozumitelně a názorně popisuje danou aplikaci (reálný svět), nikoliv fyzickou reprezentaci dat. Konceptuální schéma je implementačně nezávislé a slouží jako společným základ pro: chápání objektů uživateli, projektanty integraci uživatelských pohledů a návrh implementace zobrazení mezi uživatelskými pohledy a fyzickým uložením dat Konceptuální model dat je používán návrháři (tvůrci) databáze v procesu návrhu databáze. 1. Shromáždění požadavků uživatelů a analýza - v tomto kroku je třeba, aby se návrháři databáze spojili s potenciálními uživateli databáze a zaznamenali jejich požadavky ohledně dat funkční požadavky na databázi. Výsledkem je množina uživatelských požadavků jak na data, tak i na operace s daty prováděné (transakce - aktualizace i výběr dat). 2. Konceptuální návrh databáze - vytváření konceptuálního schématu databáze s použitím vysokoúrovňového datového modelu. Konceptuální schéma představuje výstižný popis uživatelských požadavků na data a zahrnuje detailní popis datových typů, vztahů a integritních podmínek (omezení dat).(tento návrh nezahrnuje žádné detaily o implementaci dat - konceptuální schéma je srozumitelné i pro nepříliš technicky založené uživatele). 3. Logický návrh databáze neboli mapování datového modelu - aktuální implementace databáze s použitím SŘBD jejímž výsledkem je databázové schéma vyjádřené pomocí implementačního modelu SŘBD. 4. Fyzický návrh databáze - specifikace způsobu fyzického uložení dat, struktura a organizace souborů. Paralelně probíhá návrh aplikačních programů a implementace databázových transakcí.
Obrázek 2.1 popisuje návrh databáze
Základní principy konceptuálních modelů orientace na objekty - uvažuje se v objektech, nikoliv v identifikátorech funkcionální podstata vztahů - zahrnuje možnost definovat vztahy mezi objekty jako funkce ISA hierarchie - umožňuje práci s podtypy a nadtypy (ISA - IS A např. teacher is an employee), nadtyp - vozidlo, podtyp - motorové vozidlo, podtyp - osobní auto hierarchický mechanismus pro konstrukci objektů z jiných objektů - agregace, seskupování, skládání funkcí, vytváření tříd.. Druhy konceptuálních modelů - ER modely - síťové modely - hierarchické modely - OO modely U nás nejčastěji užívaný je sémantický entitně-relační model. Příklad 2.1 ER schéma znázorňující zjednodušenou databázi firmy viz obrázek 2.2 Entity: Zaměstnanec Oddělení Projekt Dítě
Obrázek 2.2
E-R konceptuální model E-R konceptuální model je množina pojmů, pomocí nichž se vyjadřuje na konceptuální úrovni struktura databáze. Je vhodný pro návrh schématu databáze metodou shora dolů. E-R model popisuje data jako entity, relace a atributy. Entita - samostatně existující objekt reálného světa. Může to být fyzický objekt - člověk, zvíře, rostlina, auto, dům, zaměstnanec, nebo nehmotný objekt - firma, práce, program, přednáška,. Každá entita má vlastnosti tzv. atributy, které ji popisují. (Zaměstnanec má jméno, adresu, datum narození, plat,...) Atributy nabývají hodnot z určité množiny hodnot, které se říká doména. Typy atributů jednoduché x složené jednohodnotové x vícehodnotové uložené x odvozené (vypočtené) Složené atributy - dají se rozdělit do menších částí (např. adresa). Atributy, které nejsou dále dělitelné, se označují jako jednoduché nebo atomické. Hodnota složených atributů je dána spojením hodnot odpovídajících jednoduchých atributů. Pokud se odkazujeme na složený atribut vždy jako na celek (tj. není nikdy potřeba ho dělit), můžeme ho brát jako jednoduchý. Většina atributů má jedinou hodnotu pro danou konkrétní entitu (pro instanci entity) - jednohodnotové atributy (věk, výška, hmotnost, ). Někdy s jedinou hodnotou nevystačíme např. barva auta, email, telefon - chápeme jako vícehodnotový atribut. Uložený atribut - je součástí databáze, kdežto odvozený atribut není nikde uložen, je vlastně zjištěn, vypočítán z jednoho nebo více uložených atributů. (věk a datum narození se dá odvodit z rodného čísla) Vztah (relace) - vazba mezi dvěma nebo více entitami. Druhy typů E ntitní typ jm é no typ u ( klíč ), atribu t V ztahový typ jm é no typ u jm éno ent. (, typu_ 1 jm éno ent. typu_ 2 )
Lineární textový zápis E-R schématu Příklad 2.2 : E: STUDENT (RODNÉ ČÍSLO,... ) PŘEDMĚT (KÓD PŘEDMĚTU,... ) R: MÁ ZAPSÁN (STUDENT, PŘEDMĚT ) Typový E-R diagram Binární vztah Ternární vztah Příklad 2.3: STUDENT má zapsán PŘEDMĚT
Výskytový diagram zobrazuje jednotlivé instance (výskyty entit) Příklad 2.4: STUDENT MÁ_ZAPSÁN PŘEDMĚT S1 Souček P2 Matematika P7 Fyzika P9 Programování S2 Peterka P4 Ekonomie P5 Účetnictví P6 Databáze P8 Finanční řízení Entitní typ definuje množinu entit se stejnými atributy. Příklad 2.5: JMÉNO ENTIT. TYPU : STUDENT UČITEL ATRIBUTY : jméno, rod.číslo, ročník jméno, os. číslo, katedra s 1 u 1 (Jan Souček, 7508131234, 3) (Petr Bláha, 12, fyzika) s 2 u 2 (David Zikeš, 7611303214, 2) (Josef Šedivý, 14, matematika) s 3 u 3 Vícenásobné hodnoty se zapisují do složených závorek {} Složené atributy se zapisují do kulatých závorek ( ) Příklad 2.6: Motorové vozidlo Majitel (jméno, adresa ( ulice, město, psč)), SPZ,tovární značka, model, rok, {barva} (Pavel Dvořák, (Luční 15, Č.Krumlov, 381 01)), CKA25-25, Škoda,120 LX,1988,{červená} (Domstav, (Luční 1112, Kaplice, 382 41)), CKB11-36, Nissan, Maxima,1994, {černá, žlutá} Null - specielní hodnota, kterou použijeme tehdy, pokud hodnotu urč. atributu neznáme nebo pro danou konkrétní instanci entitního typu neexistuje ( např. u zaměstnanců telefonní číslo - někdo nemá telefon, u jiného číslo neznáme )
Atribut se dá chápat i jako funkce přiřazující entitám nebo vztahům určitou hodnotu - matematicky vyjádřeno atribut A entitního typu E, jehož množina hodnot je V, můžeme definovat jako fci A : E P(V), kde P(V) je množina všech podmnožin (tzv. mocnina množiny) Tj. můžeme označit hodnotu atributu A pro entitu e jako A(e) Hodnota NULL je reprezentována prázdnou množinou, hodnoty atomických atributů jsou jednoprvkové množiny, pro složené atributy je V kartézský součin V = P(V 1 ) x P(V 2 ) x...x P(V n) Klíčový atribut entitního typu - tzv. identifikační klíč - atribut (ev. skupina atributů), který jednoznačně určuje entitu. U některých entit může existovat více kandidátů na roli identifikačního klíče např. u zaměstnanců rodné číslo, osobní číslo, příjmení a jméno plus eventuelně číslo pracoviště.. Vztahový typ R mezi entitními typy E 1, E 2,, E n - množina vztahových instancí r i, kde každá r i spojuje n entit e 1, e 2,..., e n (každý zúčastněný entitní typ je zastoupen právě jednou entitou) a každá entita e j v r i je entitního typu E j pro všechna 1 j n. Říkáme, že každý z entitních typů E 1, E 2,, E n je členem vztahového typu R. Každá instance vztahového typu r i reprezentuje fakt, že členské entity v r i jsou spojeny spolu navzájem tak, že to odpovídá skutečnosti v reálném světě. Vztahový typ je matematická relace na E 1, E 2,, E n. Vztahový typ se též dá definovat jako podmnožina kartézského součinu E 1 x E 2 x x E n. Kardinalita vztahu jedna z důležitých charakteristik vztahu. Vyjadřuje, kolik různých instancí (výskytů entit) se může vyskytovat ve vztahové množině R(E 1, E 2, E n ). U binárních vztahů rozlišujeme kardinality: 1 : 1 1 : N M : N
Příklad 2.7 a) UČITEL 1 1 učí PŘEDMĚT b) UČITEL 1 N učí PŘEDMĚT c) UČITEL N 1 učí PŘEDMĚT d) UČITEL M učí N PŘEDMĚT Pro charakteristiku vztahu používáme také pojmy jako determinace neboli funkční závislost, rovněž tak rozlišujeme povinné či nepovinné členství ve vztahu. Funkční závislost existuje ve vztazích 1 : N (a samozřejmě 1 : 1), kdy entita na straně 1 je jednoznačně určena (determinována) entitou na straně N ve vztahu R(Učitel, Předmět) s kardinalitou 1 : N je učitel jednoznačně určen předmětem. Členství ve vztahu povinné (obligatorní) a nepovinné další z integritních omezení udávající, nakolik je jeden ze členů povinen účastnit se vztahu
Příklad 2.8: Ternární vztah R (UČITEL, PŘEDMĚT, TŘÍDA) učitel učí předmět v určité třídě a) b) c) U T U T U T 1 N 1 1 1 N 1 N O P P P d) U M N T O P Příklad 2.9 : Povinné členství ZAMĚSTNANEC ve vztahu s ODDĚLENÍM zaměstnanec musí být zařazen na oddělení ZAMĚSTNANEC 1 N je zařazen ODDĚLENÍ Existenční závislost entita s povinným členstvím ve vztahu je existenčně závislá na druhé entitě. Slabé entitní typy nemají vlastní identifikační klíč, jsou existenčně závislé na jiné entitě, s níž jsou v identifikačním vztahu. Příklad 2.10 : Slabé entitní typy DÍTĚ ve vztahu R (ZAMĚSTNANEC, DÍTĚ) DIPL_PRÁCE ve vztahu R (LEKTOR, DIPL_PRÁCE) KAPITOLA ve vztahu R (KNIHA, KAPITOLA)
Příklad 2.11 : Podmnožina databáze zdravotní evidence viz obr. 2.3 Obrázek 2.3
Příklad 2.12 : Podmnožina databáze praktického lékaře viz obr 2.4 Obrázek 2.4
Příklad 2.13 : Podmnožina databáze evidence hotelu viz obr 2.5 Obrázek 2.5
Literatura: [1] ELMASRI, R., NAVATHE, S., B. Fundamentals of Database Systems, 5th edition. Addison- Wesley, 2007. ISBN 978-03-213-6957-4. [2] SILBERSCHATZ, A., KORTH H. F., SUDARSHAN S. Database System Concepts, 5 th edition, New York: McGraw-Hill, 2006. ISBN 978-0-07-295886-7 [3] CONOLLY, T., BEGG, C., HOLOWZAK R. Profesionální průvodce tvorbou databází. Praha: Computer Press, a. s., 2009. ISBN 978-80-251-2328-7. [4] HERNANDEZ, M., J. Návrh databází. Praha: Grada, 2006. ISBN 80-247-0900-7. [5] POKORNÝ, J. Databázová abeceda. Veletiny: Science, 1998, ISBN 80-86083-02-2. [6] POKORNÝ, J., HALAŠKA, I. Databázové systémy, 2. vydání. Praha Vydavatelství ČVUT, 2003, ISBN 80-01-02789-9.