Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat).



Podobné dokumenty
Terminologie v relačním modelu

2. Konceptuální model dat, E-R konceptuální model

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

5. Formalizace návrhu databáze

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

5. Formalizace návrhu databáze

J. Zendulka: Databázové systémy 4 Relační model dat 1

4. Relační algebra. Databáze použité v příkladech. Operace. Selekce. jméno relace(selekční podmínka)

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Databáze I. Přednáška 2

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Hierarchický databázový model

Databázové systémy. Ing. Radek Holý

6. SQL složitější dotazy, QBE

Databázové systémy BIK-DBS

Databázové systémy trocha teorie

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Databáze. Logický model DB. David Hoksza

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

8.2 Používání a tvorba databází

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

Relační datový model. Integritní omezení. Normální formy Návrh IS. funkční závislosti multizávislosti inkluzní závislosti

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

S databázemi se v běžném životě setkáváme velmi často. Uvádíme běžné použití databází velkého rozsahu:

RELAČNÍ DATABÁZOVÉ SYSTÉMY

DBS Konceptuální modelování

Relace x vztah (relationship)

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Střední průmyslová škola Zlín

Databázové systémy. Cvičení 3

Databázové systémy. Přednáška 1

Analýza a modelování dat 3. přednáška. Helena Palovská

Kapitola 6: Omezení integrity. Omezení domény

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Databázové systémy. Vztahy a relace. 3.přednáška

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Úvod do databázových systémů 6. cvičení

Databáze I. Přednáška 6

Úvod do databázových systémů

10. blok Logický návrh databáze

Databázové systémy. Cvičení 2

Úvod do databázových systémů. Ing. Jan Šudřich

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databáze I. 1. přednáška. Helena Palovská

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Jiří Mašek BIVŠ V Pra r ha

Databázové systémy IDS

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Databáze I. 4. přednáška. Helena Palovská

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

5. POČÍTAČOVÉ CVIČENÍ

Úvod do databázových systémů 10. cvičení

Datové modelování II

Analýza dat a modelování. Přednáška 3

Konceptuální modelování. Pavel Tyl

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Objektově orientované databáze. Miroslav Beneš

Informační systémy ve zdravotnictví. 6. cvičení

Databázové systémy Cvičení 5.2

C8 Relační databáze. 1. Datový model

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Databáze v MS ACCESS

2 Konceptuální modelování a návrh databáze

Úvod do databázových systémů

Úvod do databázových systémů. Lekce 1

Metodika návrhu databáze

Funkční schéma Datové schéma Integrita modelu s realitou

Návrh databázového modelu

Databáze I. Přednáška 4

Relační model dat (Codd 1970)

Úvod do databázových systémů

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

Okruhy z odborných předmětů

DATOVÉ MODELOVÁNÍ ER MODEL

2 Konceptuální modelování a návrh databáze

Otázka č. 1 (bodů za otázku: 4)

Databáze I. 5. přednáška. Helena Palovská

Objektově relační databáze a ORACLE 8

DUM 12 téma: Příkazy pro tvorbu databáze

Databáze I. Přednáška 3

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

Relační databázová technologie

Access Tabulka letní semestr 2013

Zadání. Seznam typů entit včetně jejich atributů, vyznačte klíče a cizí klíče Seznam typů vztahu určený svým názvem a entitami do něj vstupujícími

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Transformace konceptuálního modelu na relační

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Data v informačních systémech

Transkript:

3. Relační model Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat). Příklad 3.1: Filmová databáze relace: FILM REŢISÉR ŢÁNR SPOLEČNOST HEREC ROLE Terminologie v relačním modelu relační model relační schéma relace (tabulka) řádek sloupec doména superklíč klíč primární klíč kandidátní klíč cizí klíč n-tice (n-tuple, tuple) atribut Relační schéma R označené jako R(A 1, A 2,...., A n ) je tvořeno jménem relace a seznamem atributů. Kaţdý atribut A i zastupuje určitou doménu D, kterou značíme dom(a i ). Počet atributů n určuje tzv. stupeň relace. Nezáleţí na pořadí atributů ani řádků. Příklad 3.2: ŢÁNR(id_ţánr, název) stupeň 2 REŢISÉR(id_reţisér, příjmení, jméno, stát) stupeň 4 FILM(id_film, název, reţisér, společnost, rok, délka, přístupno, ţánr) stupeň 8

Datový typ určující typy hodnot, kterých můţe atribut nabývat (které se tedy mohou objevit v konkrétním sloupci tabulky), se nazývá doména. Doména - mnoţina atomických hodnot (hodnot, které se dále nedělí, přesněji řečeno pro potřeby daného relačního modulu se tyto hodnoty uţ dále nedělí) Doména je tedy dána svým jménem, datovým typem a formátem, eventuelně můţe být doplněna o dodatečné informace ohledně např. měřící jednotky. Relace r (instance relace - tj. konkrétní výskyt relace) z relačního schématu R(A 1, A 2,..., A n ) se značí také jako r(r) a je to mnoţina n-tic r = { t 1, t 2,...., t m }. Kaţdá n-tice je uspořádaný seznam n hodnot t = < v 1, v 2,.... v n >, kde kaţdé v i, 1 i n, je prvkem domény dom(a i ) nebo je specielní hodnota null. Relace r(r) je podmnoţina kartézského součinu domén, které definují R r(r) ( dom(a 1 ) x dom(a 2 ) x.... x dom(a n ) ) Kartézský součin určuje všechny moţné kombinace hodnot z uvedených domén. Pokud označíme kardinalitu domény D jako D a předpokládáme, ţe všechny domény jsou konečné, potom celkový počet n-tic v kartézském produktu je dom(a 1 ) * dom(a 2 ) *.... * dom(a n ) Použitá notace relační schéma R stupně n R(A1, A2,..., An) n-tice t v relaci r(r) t = < v1, v2,.... vn >, kde vi je hodnota odpovídající atributu Ai hodnota atributu Ai vi =t[ai] relační jména R, S, Q,... relační stavy r, s, q,... n-tice t, u, v kvalifikovaná jména atributů STUDENT.Jméno, STUDENT.Příjmení,... aktuální relační stav STUDENT relační schéma STUDENT(Jméno, Příjmení,... ) Příklad 3.3: n-tice t=< Jana Bláhová, 765502/1234, Kaplice,null, 21, 3, 12> viz relace STUDENT (Jméno, Rod. číslo, Adresa, Telefon, Věk, Ročník, Obor) t Jméno = Jana Bláhová, t Ročník = 3

DB tabulka - vlastnosti má jednoznačné jméno charakterizuje jedinou entitu kaţdý sloupec (atribut) v tabulce má jednoznačné jméno všechny hodnoty daného sloupce jsou stejného typu nezáleţí na pořadí sloupců nezáleţí na pořadí řádků neobsahuje! duplicitní řádky všechny hodnoty jsou atomické má primární klíč Operace s tabulkami mnoţinové operace selekce podmnoţina řádků projekce podmnoţiny sloupců operace spojení kombinace více vyuţití operací výrokové logiky Omezení podmínky relačního modelu Podmínky pro domény hodnota kaţdého atributu musí být atomická hodnota a musí být prvkem mnoţiny dom(a). Datové typy pro doménu zahrnují standardní číselné datové typy (celočíselné short integer, integer, long integer, reálné typy jako float, double), dále řetězcové typy (řetězce pevné i proměnné délky), měnové, datumové, časové typy. Ostatní datové typy domén se definují jako podintervaly nebo výčtové typy výše uvedených typů. Klíčová omezení relace je dána jako mnoţina n-tic (záznamů, vět). Dle definice mnoţiny jsou všechny její prvky různé tj. i pro všechny záznamy v relaci musí platit, ţe jsou navzájem různé neboli ţe neexistují dvě n-tice, které mají tutéţ kombinaci hodnot atributů. Obvykle existují různé podmnoţiny atributů SK, které mají tu vlastnost, ţe ţádné dva záznamy nemají stejnou kombinaci hodnot atributů tj. pro libovolné dvě n-tice t 1 a t 2 v relaci r (relační schéma R) platí, ţe t 1 SK t 2 SK. Kaţdá takováto podmnoţina atributů je označována jako superklíč relačního schématu R. Kaţdá relace má nejméně 1 superklíč - mnoţinu všech atributů. Superklíč můţe obsahovat redundantní atributy, nicméně rozumná koncepce klíče je pochopitelně klíč bez nadbytečných atributů. Jako klíč K relačního schématu R tedy označíme superklíč schématu R, který má tu vlastnost, ţe odebereme-li libovolný atribut A z klíče K, zbyde mnoţina atributů K, která není superklíč. Tj. klíč je minimální superklíč - nemůţeme odebrat jediný atribut k zachování jednoznačnosti.

Příklad 3.4: Relace STUDENT (Stud_číslo, Rodné číslo, Jméno, Adresa, Ročník, Obor) Stud_číslo, Příjmení, Jméno, Ročník je superklíč, ne klíč Stud_číslo, Příjmení, Jméno je superklíč Stud_číslo, Příjmení je superklíč {Stud_číslo } je klíč Příjmení, Jméno, Ročník není superklíč, tedy ani klíč Rodné číslo je klíč Klíč musí obsahovat jedinečné hodnoty v rámci celé tabulky nesmí obsahovat NULL nesmí to být vícesloţkové pole jeho hodnota nesmí způsobit narušení bezpečnosti a únik informací jeho hodnota není ani částečně, ani jako celek volitelná skládá se z nejmenšího moţného počtu polí jeho hodnota musí jednoznačně identifikovat hodnoty všech polí daného záznamu klíč je časový invariant (jeho hodnota se mění zcela výjimečně) Relační schéma můţe mít víc klíčů, který z nich bude označen jako primární je v podstatě libovolné, ostatní klíče se pak označují jako kandidátní. Relační databázové schéma a integritní omezení Relační databázové schéma S je mnoţina všech relačních schémat S = R 1, R 2,..., R m a mnoţina integritních podmínek ( omezení ) IO. Instance relační databáze DB ze schématu S je mnoţina relačních instancí DB = r 1, r 2,.., r m, kde r i je instance R i a splňuje podmínky integritních omezení. Integrita dat Stanovení jistých pravidel na úrovni tabulek na úrovni polí na úrovni vztahů RI na úrovni business pravidel na úrovni pohledů

Integrita na úrovni tabulek tabulka obsahuje jedinečné záznamy tabulka neobsahuje duplicitní pole vypočítaná pole vícehodnotová pole vícesloţková pole duplicitní záznamy tabulka má primární klíč Integrita na úrovni polí Doménová integrita hodnoty kaţdého pole jsou platné, přesné hodnoty stejného typu jsou definovány stejně Referenční integrita Podmínky specifikované pro vztah dvou relací - uţívá se pro zachování konzistence mezi záznamy dvou relací. Záznam relace R 1, která je spojena s jinou relací R 2, se musí odkazovat na existující (odpovídající) záznam v R 2 Příklad 3.5: ŢÁK (Číslo, Jméno, Adresa, Třída ) TŘÍDA(Id třídy, Umístění, Třídní) Pojem cizí klíč se zavádí v souvislosti se vztahem dvou relací R 1 a R 2. Mnoţina atributů FK z relačního schématu R 1 je cizím klíčem R 1, pokud splňuje následující dvě pravidla : 1. Atributy zahrnuté v FK mají tutéţ doménu jako primární klíč PK v R 2, FK se odkazuje na PK. 2. Hodnota FK v záznamu t 1 z R 1 se buďto vyskytuje jako hodnota PK v nějakém záznamu t 2 v R 2 nebo je NULL t 1 FK = t 2 PK

Příklad 3.6: Cizí klíče TŘÍDA (Číslo třídy, Třídní, Umístění) UČITEL (Číslo, Příjmení, Jméno, Kabinet ) MÍSTNOST (Číslo, Název, Kapacita, Typ) TYP (Číslo, Označení) Bussiness pravidla Předchozí typy podmínek ovšem nezahrnují velké skupiny obecných podmínek tzv. podmínek sémantické integrity, které mohou být specifikovány na relační databázi a mohou ovlivňovat uloţená data. vycházejí z poţadavků uţivatele, logiky aplikace souvisejí se způsobem pořizovaní a zpracování dat, schodem firmy vymezení povolených hodnot v polích pomocí číselníků, matematických, logických, formátovacích pravidel vzájemné logické vazby polí vzájemné hierarchické vazby polí pravidla pro vztahy Příklad 3.7: Sportovní klub smlouva hráče je nejvýše na 3 roky v klubu smí působit nejvýše 5 cizinců Příklad 3.8: Firma kaţdý zaměstnanec je zařazen na právě jedno pracoviště plat zaměstnance musí být menší neţ plat vedoucího maximální počet hodin odpracovaných v týdnu < 56 hod roční počet přesčasů < 181 hod Příklad 3.9: Knihovna kniha je zařazena na jediné oddělení od kaţdé evidované knihy můţe být více výtisků délka výpůjčky knihy je 1 měsíc délka výpůjčky časopisu je 1 týden čtenář můţe mít půjčeno nejvýše 15 knih čtenář musí zaplatit roční poplatek nejpozději do 30 dnů po přihlášení

Potenciální chybové situace - aktualizační operace na relaci INSERT můţe nastat porušení podmínek na doménu porušení klíčových podmínek porušení entitních podmínek (klíč NULL) porušení RI podmínek porušení business pravidel DELETE můţe nastat porušení RI podmínek porušení business pravidel MODIFY jedná se vlastně o DELETE a INSERT, z toho vyplývají příslušné moţné porušení všech podmínek Transformace ER model do relačního DB modelu entitní typ = tabulka její sloupce odpovídají atributům vztahový typ kardinalita 1:1 není nutná další speciální tabulka je-li účast na vztahu oboustranná, lze provést sloučení do jediné tabulky kardinalita 1:N, N:1 není nutná další speciální tabulka do tabulky na straně N je nutné zahrnout cizí klíč kardinalita M:N, N:1 Coddova pravidla nutná další speciální (průniková, asociační) tabulka průniková tabulka obsahuje cizí klíče do obou tabulek a eventuelně další atributy vztahu 1. Pravidlo SŘBD: data spravována pouze pomocí relačních operací 2. Pravidlo informační: data reprezentována na logické úrovni jako hodnoty relačních tabulek 3. Pravidlo přístupu: kaţdý údaj logicky dosaţitelný pomocí kombinace názvu tabulky, sloupce a hodnoty primárního klíče 4. Pravidlo zpracovatelnosti neznámých hodnot: kaţdou neznámou hodnotu lze určit pomocí jiných známých hodnot 5. Pravidlo relačního katalogu: popis celé databáze je na logické úrovni reprezentován jako relační systémový katalog

6. Pravidlo pro jazyk: pro komunikaci se SŘBD: jazyk pro definici dat (DDL) jazyk pro manipulaci s daty (DML) jazyk pro definici integritní omezení (DCL) 7. Pravidlo pohledů: SŘBD musí umoţňovat konstrukci pohledů 8. Pravidlo operací: všechny relační operace pracují s tabulkami jako s celky 9. Pravidlo fyzické a logické nezávislosti dat 10. Pravidlo nezávislosti dat na integritních omezeních: výsledky operací musí být nezávislé na změnách IO 11. Pravidlo nezávislosti dat na distribuci: výsledky operací nesmí být ovlivněny konkrétním umístěním dat v distribuovaných databázích 12. Pravidlo nenarušitelnosti SŘBD: ţádný uţivatel nesmí obcházet nebo narušovat rozhraní SŘBD Příklady 3.10 3.16 Příklad 3.10: BANKA část databáze ÚČET Číslo účtu Číslo klienta Kód Datum Datum posled. měny zaloţení pohybu Zůstatek 124df45f12 0011245 CZK 12.05.2008 17.06.2010 28 000 125784h1g 0011245 USD 17.02.2006 25.09.2009 5 000 13254o1k8 0011445 GBP 11.03.2007 21.05.2010 125 000 KLIENT Číslo klienta Jméno klienta Adresa Podpisový vzor 0011245 Dvořák Petr Český Krumlov, Špičák 127 Petr Dvořák 0011235 ALFA s. r. o. Tábor, Praţská 1882 Peterka 0011445 Metrostav a. s. Praha, I. P. Pavlova 174 Svoboda Pavel

Příklad 3.11: KNIHOVNA část databáze ČTENÁŘ Id Datum Příjmení Jméno Město Ulice Psč čtenář registrace 0001 Adamec Petr Český Krumlov Fialková 5 381 01 25.09.96 0002 Dvořáková Jana Kaplice Luční 7 382 41 11.02.97 0003 Vávrová Alena Besednice Dlouhá 11 NULL 17.08.97 0004 Suchánek Jakub Kaplice Náměstí 8 382 41 15.05.97 ŢÁNR Id ţánr Ţánr 01 dětská literatura 02 dobrodruţství 03 sci-fi 04 cestopis 05 román 06 thriller 07 detektivky 08 literatura faktu VÝTISK Evidenční Datum Kniha číslo pořízení Cena 121212 22-031-79-13/33 04.11.1980 33,00 121245 80-204-0045-1 24.06.1990 16,00 123456 80-208-0178-2 12.09.1992 49,00 124512 80-205-0268-8 17.03.1993 39,00 VÝPUJČKA Čtenář Výtisk Datum Datum výpůjčky vrácení 0001 123456 12.09.2010 0001 124512 12.09.2010 0002 121245 10.09.2010 20.09. 2010 0002 121212 10.09.2010

Příklad 3.12: FIRMA ZAMĚSTNANEC Id_zam Příjmení Jméno Rod.číslo Adresa Oddělení ODDĚLENÍ Číslo Název Vedoucí Pracoviště PRACOVIŠTĚ Číslo pracoviště Název Místo PROJEKT Číslo projektu Název projektu Pracoviště PRACUJE_NA Projekt Zaměstnanec Počet hodin DÍTĚ Zaměstnanec Jméno Rodné číslo dítěte

Příklad 3.13: ZÁSILKOVÁ FIRMA ZÁKAZNÍK Číslo Jméno Osoba Adresa IČO DIČ DPH SKLAD Číslo zboţí Mnoţství CENÍK Číslo zboţí Název Měr. jednotka Cena za mj OBJEDNÁVKA Číslo Datum Zákazník Číslo účtu POLOŢKA_OBJ Číslo obj Název zboţí Mnoţství FAKTURA Číslo faktury Číslo obj Datum Splatnost POLOŢKA_FAK Číslo fak Název zboţí Mnoţství Cena za mj

Příklad 3.14: ZOO ZVÍŘE Číslo Jméno Pohlaví Druh Narození Umístění DRUH Číslo druhu Číslo třídy Číslo řádu Název TŘÍDA Číslo třídy Název ŘÁD Číslo řádu Název PAVILON Číslo pavilonu Název Vedoucí Umístění MÍSTO Číslo Číslo pavilonu ZAMĚSTNANEC Osobní číslo Jméno Adresa Rod. číslo Funkce FUNKCE Číslo funkce Název funkce PEČUJE Osobní číslo Číslo místa

Příklad 3.15: MUZEUM EXPONÁT Číslo Název Období Původ Místnost MÍSTNOST Číslo Číslo budovy Patro BUDOVA Číslo budovy Adresa Stát OBDOBÍ Číslo období Název EXPOZICE Číslo expozice Název UMÍSTĚNÍ Číslo expozice Místnost

Příklad 3.16: KNIHOVNA podrobněji ČTENÁŘ Příjmení Jméno Rod.číslo Adresa Datum Číslo průkazky VÝPŮJČKA Výtisk Vypůjčeno Vráceno Čtenář REZERVACE Číslo knihy Datum Čtenář KNIHA Číslo knihy Název Ţánr ŢÁNR Číslo ţánru Název VYDÁNÍ Číslo vydání Kniha Rok vydání Nakladatelství VÝTISK Evidenční číslo Vydání Cena Stav NAKLADATELSTVÍ Číslo Název Město Stát AUTOR Číslo Příjmení Jméno Národnost Narození AUTORSTVÍ Autor Kniha 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.