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

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

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

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

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

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

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

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

Databázové systémy BIK-DBS

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

Relační model dat (Codd 1970)

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

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

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

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

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

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. Logický model DB. David Hoksza

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

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

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

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

DBS Konceptuální modelování

Terminologie v relačním modelu

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

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

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

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

Databáze I. Přednáška 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.

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

Hierarchický databázový model

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.

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

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

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

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

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

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

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

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

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

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

DBS Transformace konceptuálního schématu na

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

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

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

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

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í

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

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

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

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

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

5. Formalizace návrhu databáze

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

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

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

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

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

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

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

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

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

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í databázová technologie

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

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

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

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

Relace x vztah (relationship)

Diagram výskytů a vztahů

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

5. Formalizace návrhu databáze

Databázové systémy. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního

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

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

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

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

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

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

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

Relační databázová technologie

Microsoft. Access. Databáze s více tabulkami. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

RELACE, OPERACE. Relace

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

4IT218 Databáze. 4IT218 Databáze

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

TEORIE ZPRACOVÁNÍ DAT

DBS Databázové modely

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

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

Databázové systémy IDS

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

6. blok část C Množinové operátory

KIV/ZIS cvičení 6. Tomáš Potužák

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

Operátory ROLLUP a CUBE

Modelový příklad Knihovna Vypracovaný příklad ze cvičení včetně komentářů k řešení

Normální formy. Zdeněk Kouba

Transkript:

Databáze I Přednáška 2

Transformace E-R modelu do relačního modelu (speciality) zaměříme se na dva případy z předmětu Analýza a modelování dat reprezentace entitního podtypu hierarchie ISA reprezentace výlučných vztahů a ještě reprezentace n-árního vztahu (n>2) a vztahu mezi entitami téhož entitního typu

Reprezentace entitního podtypu RČ JMÉNO OSOBA MUŽ ŽENA VĚK DELKA_PRAXE 3 možnosti transformace

1. Jedna relace relace obsahující atributy zdroje relace a všech podtypů, speciální atribut rozlišující podtyp, event. cizí klíče ze vztahů 1:N, 1:1 OSOBA(RČ,JMÉNO,TYP_OS, VĚK, DELKA_PRAXE) jedna z hodnot atributů VĚK nebo DÉLKA_PRAXE budou u každého prvku relace (záznamu) mít hodnotu NULL

2. Relace pouze pro podtypy relace pro každý podtyp, obsahující atributy podtypu a atributy zdroje hierarchie (nadtypu) včetně atributu odpovídající klíči zdroje MUŽ(RČ,JMÉNO,VĚK) ŽENA(RČ,JMÉNO,DELKA_PRAXE)

3. Relace pro všechny typy v hierarchii relace pro každý nadtyp a podtyp, obsahující klíče zdroje a pouze vlastní atributy OSOBA(RČ,JMÉNO) MUŽ(RČ,VĚK) ŽENA(RČ,DELKA_PRAXE)

Reprezentace slabého entitního typu KOPIE (1,1) JE_OD (0,n) FILM ČÍSLO_KOPIE JMÉNO FILM(JMÉNO) KOPIE(ČÍSLO_KOPIE,JMÉNO)

Reprezentace výlučného vztahu nejprve obecně 2 možnosti transformace

1. Pomocí společných domén pouze, mají-li identifikační klíče K2 a K3 stejnou doménu E1(K1,ID,K,A) E2(K2,B) E3(K3,C) ID je atribut rozlišující typ vztahu, K je atribut pro hodnoty typu K2, K3

2. Pomocí cizích klíčů nemají-li K2 a K3 společné domény, je nutné mít v E1 dva cizí klíče E1(K1,K2,K3,A) E2(K2,B) E3(K3,C) v relaci E1 nesmí být prvek (v tabulce řádek), který by měl současně neprázdnou hodnotu atributu K2 a K3 (jeden z nich musí být NULL), toto je nutné zajistit speciálním integritním omezením (prakticky triggerem)

Příklad VSTUPENKA(CISLO,JMENO_F,NAZEV,JMENO_F1,STATUS) PREDSTAVENI(JMENO_F,NAZEV,DATUM) FILMECEK(JMENO_F)

Příklad Poznámka: PREDSTAVENI je slabý entitní typ, identifikačně závislý na entitním typu KINO, proto je klíčem relace dvojice (JMENO_F,NAZEV)

Reprezentace více-árního vztahu IDZ ZÁKAZNÍK DATUM ČERPÁ SLUŽBA PROVOZOVNA IDS ČP

Reprezentace více-árního vztahu ZÁKAZNÍK(IDZ) PROVOZOVNA(ČP) SLUŽBA(IDS) ČERPÁ(IDZ,ČP,IDS,DATUM)

Reprezentace více-árního vztahu JMÉNO DODÁVÁ NÁZEV OBCHODNÍK ZBOŽÍ IDO KAT_Č DODÁVÁ(IDO_KDO,IDO_KOMU,KAT_Č)

OBCHODNÍK IDO JMÉNO 1 Potkan & syn 2 Návnada, nástraha, past ZBOŽÍ KAT_Č Název 1 Pastička 2 Jed na potkany DODÁVÁ IDO_KDO IDO_KOMU KAT_Č 1 2 1

Reprezentace binárního vztahu mezi entitami stejného typu NÁZEV JE_SOUČÁSTÍ N DÍL ID_D 1 SE_SKLÁDÁ vztah 1:N do relace DÍL přidám cizí klíč: DÍL(ID_D,NÁZEV,ID_PATŘÍ)

DÍL ID_D NÁZEV ID_PATŘÍ 1 Čerpadlo NULL 2 Hřídel 1 3 Lopatkové kolo 1 4 Ložisko 6202 1

Relační algebra množina operací, které přiřazují relaci (relacím) jinou relaci důsledek: výsledek jedné operace může být argumentem další operace na DB relace aplikujeme základní operace: kartézský součin (x) sjednocení (U) rozdíl (-) projekce selekce přirozené a théta spojení

Proč relační algebra? relační algebra jako matematický kalkul je silný prostředky pro manipulaci dat je základem dotazovacího jazyka SQL jsou vypracovány vhodné metody návrhu schémat relační databáze normální formy relací databáze mají pak dobré vlastnosti

Projekce relace R se schématem R(A) na schéma B, B A značení R[B] výsledkem je relace se schématem B z relace vybere atributy podle schématu B vymaže duplicitní n-tice tabulkově: vybere sloupce podle seznamu B vymaže duplicitní řádky

Příklad: ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ): 521006/5678 Josef Novák 541212/1234 Josef Houska 320612/1234 Franta Kuldanů projekce na množinu atributů JMÉNO: ČTENÁŘ[JMÉNO] Josef Franta

Selekce relace R se schématem R(A) podle podmínky značení R( ) výsledkem je relace se schématem A z relace vybere n-tice, které splňují podmínku, je boolský výraz ve výrazu je možné použít logické spojky and, or, tabulkově: vybere řádky, které splňují podmínku vymaže duplicitní řádky

Příklad: ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ): 521006/5678 Josef Novák 541212/1234 Josef Houska 320612/1234 Franta Kuldanů selekce dle jména: ČTENÁŘ(JMÉNO= Franta ) 320612/1234 Franta Kuldanů

Přirozené spojení relace R se schématem R(A) a relace S se schématem S(B) značení R*S výsledkem je relace se schématem A B u R*S iff u[a] R(A) a u[b] S(B) spojím přes co největší množinu společných atributů (přirozené spojení) tabulkově: spojí řádky, které mají shodné hodnoty společných sloupců

Příklad: KNIHA(AUTOR, TITUL, ISBN) EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN) Němcová Babička 80-85190-38-9 Jirásek U nás 80-11111-22-3 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 největší množina společných atributů je ISBN výsledek operace spojení bude mít atributy: PŘÍR_Č, CENA, D_NÁK, ISBN, AUTOR, TITUL

spojím každý řádek relace KNIHA s každým řádkem relace EXEMPLÁŘ, do výsledku dám jenom ty, které mají shodnou hodnotu atributu ISBN; atribut ISBN je ve výsledné relaci pouze jednou (vyplývá z operace sjednocení atributů) KNIHA*EXEMPLÁŘ 1 105 12.1.1990 80-85190-38-9 Němcová Babička 2 100 20.3.1990 80-85190-38-9 Němcová Babička 3 103 21.3.1990 80-11111-22-3 Jirásek U nás

Θ spojení relace R se schématem R(A) a relace S se schématem S(B) značení R[DΘF]S výsledkem je relace se schématem A B Θ je podmínka spojení, D A, F B u R*S iff u[a] R(A) a u[b] S(B) a u[r.d] Θ u[s.f] spojím n- tice, které splňují danou podmínku tabulkově: spojím řádky, u kterých je splněna podmínka Θ

Příklad: Relace R: A1 A2 A3 1 A 2 2 X 6 Relace S: B1 B2 B3 4 8 Ahoj 5 4 Zdar Relace R[A3<B2]S: A1 A2 A3 B1 B2 B3 1 A 2 4 8 Ahoj 1 A 2 5 4 Zdar 2 X 6 4 8 Ahoj

Příklad: Jak zapíši přirozené spojení relací KNIHA a EXEMPLÁŘ pomocí Θ spojení? KNIHA(AUTOR, TITUL, ISBN) EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN) podmínka Θ bude rovnost hodnot atributů ISBN KNIHA*EXEMPLÁŘ KNIHA[KNIHA.ISBN = EXEMPLÁŘ.ISBN]EXEMPLÁŘ = D Θ F

operace relační algebry mohu aplikovat na stejnou relaci, tj. relaci mohu spojit i samu se sebou, provést jejich kartézský součin příklad Θ spojení relace DÍL se sebou: DÍL(ID_D,NÁZEV,ID_PATŘÍ) DÍL[ID_PATŘÍ=ID_D]DÍL

ID_D NÁZEV ID_PATŘÍ ID_D NÁZEV ID_PATŘÍ 1 Čerpadlo NULL 2 Hřídel 1 1 Čerpadlo NULL 3 Lopatkové kolo 1 1 Čerpadlo NULL 4 Ložisko 6202 1 1 Čerpadlo NULL

užitečná je i operace přejmenování atributu nebo přejmenování relace

Kartézský součin x relace R se schématem R(A) a relace S se schématem S(B) značení R x S výsledkem je relace se schématem, které má všechny atributy obou relací (společné atributy se vyskytují vícekrát) spojím každou n-tice s každou tabulkově: spojím každý řádek s každým

Příklad: KNIHA(AUTOR, TITUL, ISBN) EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN) Němcová Babička 80-85190-38-9 Jirásek U nás 80-11111-22-3 1 105 12.1.1990 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 3 103 21.3.1990 80-11111-22-3

výsledek operace kartézský součin EXEMPLÁŘ x KNIHA bude mít atributy: použiji přejmenování atributů: PŘÍR_Č, CENA, D_NÁK, ISBN_1, AUTOR, TITUL, ISBN_2 použiji tečkovou notaci a názvy relací PŘÍR_Č, CENA, D_NÁK, EXEMPLÁŘ.ISBN, AUTOR, TITUL, KNIHA.ISBN

spojím každý řádek relace EXEMPLÁŘ s každým řádkem relace KNIHA EXEMPLÁŘ x KNIHA 1 105 12.1.1990 80-85190-38-9 Němcová Babička 80-85190-38-9 1 105 12.1.1990 80-85190-38-9 Jirásek U nás 80-11111-22-3 2 100 20.3.1990 80-85190-38-9 Němcová Babička 80-85190-38-9 2 100 20.3.1990 80-85190-38-9 Jirásek U nás 80-11111-22-3 3 103 21.3.1990 80-11111-22-3 Němcová Babička 80-85190-38-9 3 103 21.3.1990 80-11111-22-3 Jirásek U nás 80-11111-22-3

přirozené spojení lze zapsat pomocí kartézského součinu a operací selekce a projekce takto: KNIHA * EXEMPLÁŘ = (KNIHA x EXEMPLÁŘ) (KNIHA.ISBN=EXEMPLÁŘ.ISBN) [PŘÍR_Č, CENA, D_NÁK, KNIHA.ISBN, AUTOR, TITUL]

Průnik, sjednocení, rozdíl relace jsou množiny, lze tyto operace aplikovat i na relace za předpokladu schémata relací jsou stejná (tabulky mají stejné sloupce) domény jsou stejné průnik u R S iff u R a u S výsledkem jsou řádky, které jsou současně v obou tabulkách

sjednocení u R U S iff u R nebo u S data ze dvou tabulek sloučím do jedné rozdíl u R - S iff u R a u S vyberu řádky, které jsou v R a nejsou v S

ČTENÁŘ RČ JMÉNO PŘÍJMENÍ 320612/1234 František Kuldanů 521006/5678 Josef Novák KNIHA ISBN TITUL AUTOR 80-11111-22-3 U nás A. Jirásek 80-85190-38-9 Babička B. Němcová EXEMPLÁŘ PŘÍR_Č CENA 1 100 2 100 3 150 D_NÁK 25.3.1990 25.3.1990 26.3.1990 ISBN 80-85190-38-9 80-85190-38-9 80-11111-22-3

SI_VYPŮJČIL RČ PŘÍR_Č DAT 320612/1234 1 10.11.2005 521006/5678 3 20.11.2005

Příklad: jméno a příjmení čtenáře, kteří mají vypůjčenu Babičku (((((KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ)[PŘÍR_Č]) *SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ] jinak ((KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ* SI_VYPŮJČIL*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ]

rozebereme výraz (((((KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ)[PŘÍR_ Č])*SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ] KNIHA(TITUL= Babička ) je selekce, tj. z relace knihy vybereme n-tice, kde atribut titul má hodnotu Babička ; výsledkem je relace: 80-85190-38-9 Babička B. Němcová KNIHA(TITUL= Babička )[ISBN] zde je k selekci přidána projekce, tj. vybereme pouze sloupec ISBN; výsledkem je relace, označme ji S: 80-85190-38-9

(KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ) je o spojení relace S (viz předchozí blána) s relací EXEMPLÁŘ, tj. spojíme každý řádek relace S (obsahuje pouze jeden řádek) s řádky relace EXEMPLÁŘ přes největší množinu společných atributů (zde ISBN); spojíme ty řádky, které mají v relaci S a EXEMPLÁŘ stejnou hodnotu atributu ISBN; výsledek je relace R: PŘÍR_Č CENA D_NÁK ISBN 1 100 25.3.1990 80-85190-38-9 2 100 25.3.1990 80-85190-38-9

(KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ)[PŘÍR_Č] je aplikace projekce na modrou relaci R z předchozí blány; vybere se pouze přírůstkové číslo a vymažou se duplicitní řádky; výsledek je relace P: PŘÍR_Č ((KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ)[PŘÍR_Č])*S I_VYPŮJČIL je spojení předcházející relace P s relací SI_VYPŮJČIL, tj. spojí se řádky, které mají shodnou hodnotu atributu PŘÍR_Č; vznikne relace T 1 2

RČ PŘÍR_Č DAT 320612/1234 1 10.11.2005 ((((KNIHA(TITUL="Babička")[ISBN]*EXEMPLÁŘ)[PŘÍR _Č])*SI_VYPŮJČIL)*ČTENÁŘ je spojení relace T s relací čtenář, tj. spojí se řádky, které mají shodnou hodnotu atributu RČ RČ JMÉNO PŘÍJMENÍ PŘÍR_Č DAT 320612/1234 František Kuldanů 1 10.11.2005

(((((KNIHA(TITUL= Babička )[ISBN]*EXEMPLÁŘ)[PŘÍR _Č])*SI_VYPŮJČIL)*ČTENÁŘ)[JMÉNO,PŘÍJMENÍ] nakonec se provede projekce na atributy JMÉNO, PŘÍJMENÍ, tj. vyberou se tyto sloupce : JMÉNO František PŘÍJMENÍ Kuldanů

Referenční integrita mějme dvě relace R(A), S(B), společná množina atributů C A, C B referenční integrita: platí příklad: S[C] R[C] ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ) SI_VYPŮJČIL(RČ, PŘÍR_Č, DAT_VYP) cizí klíče

referenční integrita: aby byla splněna referenční integrita, musí platit: SI_VYPŮJČIL[RČ] ČTENÁŘ[RČ] srozumitelně: v tabulce SI_VYPŮJČIL ( podřízené ) se nesmí v poli RČ vyskytnout žádná hodnota (žádné takové rodné číslo), která by nebyla v tabulce ČTENÁŘ ( nadřízené ) cizí klíč RČ ve SI_VYPŮJČIL by jinak odkazoval na neexistujícího čtenáře v ČTENÁŘ

databázové stroje umějí automaticky zajistit referenční integritu při výmazu čtenáře se smažou všechny jeho výpůjčky při změně hodnoty primárního klíče (rodného čísla) v tabulce ČTENÁŘ se automaticky změní i rodná čísla v tabulce SI_VYPŮJČIL