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 n titn í ty p
jm é n o ty p u
(
k líč
)
,
a trib u t
V z ta h o v ý ty p
jm é n o ty p u
(
jm én o en t. ty p u _ 1
,
jm én o en t. ty p u _ 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: MÁ_ZAPSÁN
STUDENT S1 Souček
PŘEDMĚT 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 : ATRIBUTY :
STUDENT
UČITEL
jméno, rod.číslo, ročník
jméno, os. číslo, katedra
s1 (Jan Souček, 7508131234, 3) s2 (David Zikeš, 7611303214, 2) s3 …
u1 (Petr Bláha, 12, fyzika) u2 (Josef Šedivý, 14, matematika) u3 …
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(V1) x P(V2) 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 E1 , E2 , , En - množina vztahových instancí ri , kde každá ri spojuje n entit e1 , e2 , ..... , en (každý zúčastněný entitní typ je zastoupen právě jednou entitou) a každá entita ej v ri je entitního typu Ej pro všechna 1 j n. Říkáme, že každý z entitních typů E1 , E2 , , En je členem vztahového typu R. Každá instance vztahového typu ri reprezentuje fakt, že členské entity v ri jsou spojeny spolu navzájem tak, že to odpovídá skutečnosti v reálném světě. Vztahový typ je matematická relace na E1 , E2 , … , En . Vztahový typ se též dá definovat jako podmnožina kartézského součinu E1 x E2 x … x En . 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(E1, E2, …En). U binárních vztahů rozlišujeme kardinality: 1 : 1 1 : N M : N
Příklad 2.7 a)
1
1 učí
UČITEL
PŘEDMĚT
b) 1
N učí
UČITEL
PŘEDMĚT
c) N
1 učí
UČITEL
PŘEDMĚT
d) M
UČITEL
N učí
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)
U
T 1
c)
U
N
T 1
U
1
1
T 1
N
N
P
O
P
P
d)
U
T M
N
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í 1
ZAMĚSTNANEC
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. AddisonWesley, 2007. ISBN 978-03-213-6957-4. [2]
SILBERSCHATZ, A., KORTH H. F., SUDARSHAN S. Database System Concepts, 5th 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.