Databázové systémy BIK-DBS

Podobné dokumenty
Relační model dat (Codd 1970)

Michal Valenta DBS Databázové modely 2. prosince / 35

DBS relační DB model, relační algebra

DBS Databázové modely

DBS Normální formy, normalizace

Různé úrovně pohledu na data

DBS Databázové modely

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

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

Kvalita relačního schématu, normalizace

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

Databázové systémy BIK-DBS

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

Normalizace rela ního schématu

Databáze. Logický model DB. David Hoksza

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

Diagram výskytů a vztahů

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

Databázové modely. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 2

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

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

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

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

Jazyk SQL 1. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c Michal Valenta, 2012 BI-DBS, ZS 2011/12

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

Dotazování v relačním modelu a SQL

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

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

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

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

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 Cvičení 5.3

Hierarchický databázový model

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

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

UČEBNÍ TEXTY OSTRAVSKÉ UNIVERZITY. Přírodovědecká fakulta RELAČNÍ DATABÁZE (DISTANČNÍ VÝUKOVÁ OPORA) Zdeňka Telnarová. Aktualizovaná verze 2006

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

NORMALIZACE Část 2 1

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í

5. Formalizace návrhu databáze

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

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

DBS Konceptuální modelování

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

Jazyk SQL 2. Michal Valenta. Katedra softwarového inženýrství FIT České vysoké učení technické v Praze c M.Valenta, 2011 BI-DBS, ZS 2011/12

5. Formalizace návrhu databáze

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Terminologie v relačním modelu

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

DBS Transformace konceptuálního schématu na

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

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

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

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

Integrace relačních a grafových databází funkcionálně

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

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

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

Databázové systémy úvod

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.

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

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

Databáze v MS ACCESS

Řešené příklady STUDENT(RČ, JMÉNO, SPECIALIZACE) PŘEDMĚT(KÓD, NÁZEV, SYLLABUS, GARANT) ZÁPIS(RČ, KÓD, SEMESTR, ZNÁMKA)

Operátory ROLLUP a CUBE

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

Databáze SQL SELECT. David Hoksza

DBS Konceptuální modelování

Databázové systémy úvod

přirozenými prostředky pro manipulaci s relacemi budou množinové operace.

Maturitní témata Školní rok: 2015/2016

Databázové systémy IDS

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

Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE

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

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Konceptuální modelování

Úvod do databázových systémů. Cvičení 12 Ing. Martin Zwierzyna

Databázové systémy. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 3) Základní relační operace Databázové systémy 1 / 37

TEORIE ZPRACOVÁNÍ DAT

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

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

POKROČILÉ POUŽITÍ DATABÁZÍ

prof. RNDr. Čestmír Burdík DrCs. prof. Ing. Edita Pelantová CSc. BI-ZMA ZS 2009/2010

Databázové systémy trocha teorie

Výroková a predikátová logika - VII

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Základní pojmy teorie množin Vektorové prostory

4IT218 Databáze. 4IT218 Databáze

Okruhy z odborných předmětů

Normální formy. Zdeněk Kouba

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

Databázové systémy Tomáš Skopal

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

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

1 Báze a dimenze vektorového prostoru 1

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

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

2. přednáška - PRAVDĚPODOBNOST

Transkript:

Databázové systémy BIK-DBS Ing. Ivan Halaška katedra softwarového inženýrství ČVUT FIT Thákurova 9, m.č. T9:311 ivan.halaska@fit.cvut.cz Kapitola Relační model dat 1

3. Relační model dat (Codd 1970) Formální abstrakce nejjednodušších souborů, Relační kalkul a relační algebra Metodika pro posuzování kvality relačního schématu Metodika pro návrh kvalitního relačního schématu 2

Relační model dat Relace jména atributů A 1, A 2, A n domény atributů, D i =dom(a i ); 1NF n-tice (a 1,,a n ) a i A i množina n-tic D 1 x D 2 x...x D n ~ relace schéma relace R(A 1 :D 1,,A n :D 2 )= R(A) jméno schématu relace R aktuální doména atributu 3

Relační model dat Chceme sledovat množinu utrovidů, u kterých nás zajímají vlastnosti UTR1 a UTR2. UTROVID(UTR1:{1,2,3}, UTR2{1,2}) Maximální množina utrovidů = UTR1 x UTR2 V závislosti na reálné množině utrovidů, může některý řádek chybět UTR1 UTR2 1 1 1 2 2 1 2 2 3 1 3 2 4

Relační model dat Chceme sledovat množinu utrovidů, u kterých nás zajímají vlastnosti UTR1 a UTR2. UTROVID(UTR1:{1,2,3}, UTR2{1,2} Mezi vlastnostmi UTR1 a UTR2 platí relace UTR1 > UTR2 UTR1 UTR2 2 1 3 1 3 2 UTR1 UTR2 1 1 1 2 3 2 Mezi vlastnostmi UTR1 a UTR2 platí relace UTR1? UTR2 5

Relační model dat příklad Kino* KINO NÁZEV_K ADRESA Blaník Václ. n. 4 Vesna V olšinách 6 Mír Strašnická 3 Domovina V dvorcích Film* FILM JMÉNO_F HEREC ROK Černí baroni Vetchý 94 Kmotr Brando 72 Top gun Cruise 86 Nováček Brando 90 Vzorec Brando 80 Schémata relací: Kino (Název_k, Adresa, Jméno_v) Film (Jméno_f, Herec, Rok) Program(Název_k, Vztah daný film je dáván Jméno_f, v daném Čas) kině Chceme sledovat více herců daného filmu, co s tím? Jaký je vztah schématu FILM na obrázku k relaci FILM*? 6

Relační model dat Chceme sledovat více herců daného filmu, co s tím? JMENO_F HEREC ROK Černí baroni Vetchý,Brando 1994 Kmotr Brando,Cruise 1972 Top Gun Cruise,Vetchý 1986 Nováček Brando 1990 Vzorec Brando 1980 7

Relační model dat Chceme sledovat více herců daného filmu, co s tím? JMENO_F HEREC HEREC2 ROK Černí baroni Vetchý Brando 1994 Kmotr Brando Cruise 1972 Top Gun Cruise Vetchý 1986 Nováček Brando 1990 Vzorec Brando 1980 8

Relační model dat Chceme sledovat více herců daného filmu, co s tím? JMENO_F HEREC ROK Černí baroni Brando 1994 Černí baroni Vetchý 1994 Kmotr Cruise 1972 Kmotr Brando 1972 Nováček Brando 1990 Top Gun Vetchý 1986 Top Gun Cruise 1986 Vzorec Brando 1980 9

Relační model dat Chceme sledovat více herců daného filmu, co s tím? JMENO_F HEREC ROK Černí baroni Brando 1994 Černí baroni Vetchý 1994 Kmotr Cruise 1972 Kmotr Brando 1972 Nováček Brando 1990 Top Gun Vetchý 1986 Top Gun Cruise 1986 Vzorec Brando 1980 10

Relační model dat tabulková terminologie Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu jméno sloupce atribut sloupec relace tabulka n-tice relace řádek tabulky Odlišnosti: V relaci nezáleží na pořadí n-tic. Relace neobsahují duplicitní n-tice. 11

Relační model dat integritní omezení je nutné zajistit, aby se do relací dostala pouze "správná" data - přípustné n-tice úplná definice relačního schématu: (R,I)... schéma relační databáze R = { R 1,R 2,...,R k }, I... množina IO přípustná relační databáze se schématem (R,I) je množina relací R 1*, R 2*,..., R k * takových, že jejich n- tice vyhovují tvrzením v I. 12

Relační model dat, integritní omezení Definice 3.3.1. Klíč K schématu R(A) je minimální množina atributů z A, která jednoznačně určí n-tice relace R*. Tvrzení 3.3.1. Nechť K je klíč schématu R(A). Pak pro každou přípustnou relaci R* platí: jsou-li u a v dvě různé n-tice z R*, pak u[k] v[k]. 13

Relační model dat integritní omezení Příklad: KINO(NÁZEV_K, ADRESA), FILM(JMÉNO_F, HEREC, ROK) MÁ_NA_PROGRAMU(NÁZEV_K, JMÉNO_F, DATUM) IO1: primární Klíče IO2: Cizí klíče MÁ_NA_PROGRAMU[NÁZEV_K] KINO[NÁZEV_K] MÁ_NA_PROGRAMU[JMÉNO_F] FILM[JMÉNO_F] IO3: V kinech se nehraje více, něž dvakrát týdně IO4: Jeden film se nedává více, než ve třech kinech 14

Relační model dat, Příklad IO KNIHA (ISBN, AUTOR, TITUL) EXEMPLAR (ISBN, INV_C, D_NAKUPU, CENA,...) CTENAR(C_CT, JMENO, D_ZPET) VYPUJCKA(INV_C, C_CT, D_ZPET) REZERV(ISBN,C_CT, D_REZ) IO1: primární klíče IO2: cizí klíče IO3: knihu lze rezervovat, jsou-li všechny exempláře půjčeny 15

Relační model dat Ošetření IO jak definovat IO nad schématem úložiště? jak zajistit dodržování daného IO? Vyjádření IO: deklarativní procedurální na straně klienta procedurální na straně serveru 16

Relační model dat dotaz databázový dotaz nad schématem S je výraz, který vrací odpověď se schématem T def. oborem jsou všechna úložiště se schématem S oborem hodnot jsou všechny relace se schématem T data v odpovědi pocházejí z databáze odpověď nezávisí na fyzickém uložení dat dotazovací jazyk je množina všech použitelných výrazů 17

Relační model dat manipulace s relacemi vložení n-tice do dané relace zrušení/změna daných n-tic v dané relaci algoritmus manipulačních operací zahrnuje kontrolu dodržování IO zadání dotazu v daném jazyku relační algebra, relační kalkul, SQL 18

Relační model dat souhrn relace (tabulky) jsou v 1NF, tj. komponenty jejich n-tic (řádků) jsou atomické (dále nedělitelné) přístup k prvkům relace (řádkům tabulky) dle obsahu jedinečné n-tice (řádky), jde o zdůraznění množinového myšlení v RMD abstrakce je nezávislá na fyzickém uložení dat existují silné prostředky pro manipulaci s daty existují metody návrhu schématu úložiště v relační databázi, které vedou na schéma dobrých vlastností 19

Dotazovací jazyk Relační algebra Předpoklady: relace se schématy R(A), S(B) selekce (restrikce) R* podle podmínky Značení: R*( ) = { u u R* a (u)} kde je (t1 t2) nebo (t1 a) projekce R* na množinu atributů C, kde C A Značení: R*[C] = { u[c] u R*} přirozené spojení R a S se schématy R(A) resp. S(B) Značení: T(C)=R* S* = { u u[a] R* a u[b] S*} kde C=A přejmenování atributů, značení: t1 alias Př.: ( MA_NA_PROGRAMU(Název_k = Mír )[Jméno_f, Čas] Film )[Herec] Hvezda] 20

Relační algebra dotazovací jazyk Množinové operace: sjednocení průnik rozdíl \ kartézský součin Minimální množina operací: B = {kartézský součin, selekce, projekce, přejmenování, sjednocení, rozdíl } 21

Relační algebra Programování vs. relační algebra relační algebra je jazyk velmi vysoké úrovně Dotazovací jazyk, který umožňuje realizovat relační algebru se nazývá relačně úplný. Komerční svět: SQL, jazyky formulářů, obrázkové jazyky 22

Relační algebra příklad použití KINO(NÁZEV_K, ADRESA) FILM(JMÉNO_F, HEREC, ROK) MÁ_NA_PROGRAMU(NÁZEV_K, JMÉNO_F, DATUM) R1:= MÁ_NA_PROGRAMU(NÁZEV_K = Mír ) MÁ_NA_PROGRAMU NÁZEV_K JMÉN_F DATUM Blaník Top gun 29.03.94 Blaník Kmotr 08.03.94 Mír Nováček 10.03.94 Mír Top gun 09.03.94 Mír Kmotr 08.03.94 23

Relační algebra příklad použití KINO(NÁZEV_K, ADRESA) FILM(JMÉNO_F, HEREC, ROK) MÁ_NA_PROGRAMU(NÁZEV_K, JMÉNO_F, DATUM) R1:= MÁ_NA_PROGRAMU(NÁZEV_K = Mír ) R1 NÁZEV_K JMÉNO_F DATUM Mír Nováček 10.03.94 Mír Top gun 09.03.94 Mír Kmotr 08.03.94 24

Relační algebra R2 := R1[JMÉNO_F, DATUM] příklad použití R1 NÁZEV_K JMÉNO_F DATUM Mír Nováček 10.03.94 Mír Top gun 09.03.94 Mír Kmotr 08.03.94 R2 JMÉNO_F DATUM Nováček 10.03.94 Top gun 09.03.94 Kmotr 08.03.94 25

Relační algebra příklad použití R2 := R1[JMÉNO_F, DATUM] R2 JMÉNO_F DATUM Nováček 10.03.94 Top gun 09.03.94 Kmotr 08.03.94 R3 := FILM * R2 FILM JMÉNO_F HEREC ROK Černí baroni Vetchý 94 Černí baroni Landovský 94 Top gun Cruise 86 Top gun McGillis 86 Kmotr Brando 72 Nováček Br ando 90 Vzorec Brando 80 R3 JM É NO_F HEREC ROK DATUM Nováček Brando 90 10.03.94 Top gun Cruise 86 09.03.94 Top gun McGi l lis 86 09.03.94 Kmotr Brando 72 08.03.94 26

Relační algebra příklad použití R3 R4:= R3[HEREC] JMĚNO_F HEREC ROK DATUM Top gun Cruise 86 09.03.94 Kmotr Brando 72 08.03.94 Nováček Brando 90 10.03.94 Top gun McGillis 86 09.03.94 R4 HEREC Cruise Brando McGillis bez mezikroků: { MÁ_NA_PROGRAMU(NÁZEV_K= Mír )[JMÉNO_F,DATUM] * FILM } [HEREC] Česky: Zadej dotaz, který vybere z databáze seznam herců, kteří hrají ve filmech dávaných v kinu Mír". 27

Relační algebra kde {<, >, =, } -spojení Mějme relace se schématy R(A) a S(B) R* [t1 t2] S* = { u u[a] R*, u[b] S*, u.t1 u.t2} Příklad: Mějme R(A, B, C) a S(B, C, D, E), schéma T značí výsl. operace R[A < B] S. R A B C S B C D E 8 2 3 3 4 2 3 1 2 3 3 3 2 3 2 1 4 1 4 5 6 3 6 7 2 3 4 7 3 8 9 Hotovo T A R.B R.C S.B S.C D E 1 2 3 3 4 2 3 1 2 3 3 3 2 3 1 2 3 2 3 4 7 2 1 4 3 4 2 3 2 1 4 3 3 2 3 28

Relační algebra polospojení levé -polospojení, kde {<, >, =, }, mějme relace se schématy R(A) a S(B) R* < t1 t2] S* = (R* [t1 t2] S*)[A] pravé -polospojení, kde {<, >, =, }, mějme relace se schématy R(A) a S(B) R* [ t1 t2> S* = (R* [t1 t2] S*)[B] levé přirozené polospojení R(A), S(B) Značení: R* < S* = (R* S*) pravé přirozené polospojení R(A), S(B) Značení: R* S* = (R* S* 29

Relační algebra antispojení levé -antispojení, kde {<, >, =, }, mějme relace se schématy R(A) a S(B) R* <t1 t2] S* = R* \ (R*<t1 t2]s*) pravé -antispojení, kde {<, >, =, }, mějme relace se schématy R(A) a S(B) R* [ t1 t2> S* = S* \ (R*[t1 t2>s*) levé přirozené antispojení R(A), S(B) Značení: R* < S* = R* \ (R* < S*) pravé přirozené antispojení R(A), S(B) Značení: R* S* = S* \ (R * >S*) 30

Relační algebra příklad D1. Dotaz, který vybere seznam kin, která něco hrají. R := MA_NA_PROGRAMU [NÁZEV_K] D2. Dotaz, který vybere seznam kin, která nic nehrají. KINO [NÁZEV_K] \ MA_NA_PROGRAMU [NÁZEV_K] D3. Dotaz, který vybere seznam kin, která hrají film Top Gun. MA_NA_PROGRAMU (JMENO_F = Top Gun ) [NÁZEV_K] D4. Dotaz, který vybere seznam filmů, které hraje kino s adresou Zvonková { KINO (ADRESA= Zvonková ) [NAZEV_K] * MA_NA_PROGRAMU } [JMENO_F] 31

Relační algebra příklad D5. Dotaz, který vybere seznam kin, která hrají něco s hercem M.Brando D5 := { FILM (HEREC= M.Brando ) [JMENO_F] * MA_NA_PROGRAMU } [NAZEV_K] D6. Dotaz, který vybere z databáze seznam kin, kde nedávají žádný film s M. Brando". Přepis D6: Dotaz, který vybere všechna kina s výjimkou těch, která dávají některý film s M.Brando KINO[NÁZEV_K] \ D5 32