bik-dbsusers.fit.cvut.cz/~halaska/bik-dbs/prednaska/bik-dbs_4_relacni_m… · jaký je vztah...
TRANSCRIPT
![Page 1: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/1.jpg)
1
Databázové systémy
BIK-DBS
Ing. Ivan Halaška
katedra softwarového inženýrství
ČVUT FIT
Thákurova 9, m.č. T9:311
Kapitola
Relační model dat
![Page 2: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/2.jpg)
2
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
![Page 3: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/3.jpg)
3
Relační model dat Relace
– jména atributů A1, A2 …, An
– domény atributů, Di =dom(Ai); 1NF
– n-tice (a1,…,an) ai Ai
– množina n-tic D1 x D2 x...x Dn ~ relace
– schéma relace R(A1:D1,…,An:D2)= R(A)
– jméno schématu relace R
– aktuální doména atributu
![Page 4: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/4.jpg)
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})
UTR1 UTR2
1 1
1 2
2 1
2 2
3 1
3 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
![Page 5: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/5.jpg)
5
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}
UTR1 UTR2
2 1
3 1
3 2
Mezi vlastnostmi UTR1 a UTR2
platí relace UTR1 > UTR2
UTR1 UTR2
1 1
1 2
3 2
Mezi vlastnostmi UTR1 a UTR2
platí relace UTR1 ? UTR2
![Page 6: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/6.jpg)
6
Vztah daný film je dáván v daném kině
Schémata relací:
Kino (Název_k, Adresa, Jméno_v)
Film (Jméno_f, Herec , Rok)
Program(Název_k, Jméno_f, Čas)
Relační model dat příklad
Chceme sledovat více herců
daného filmu, co s tím?
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
Kino*
FILM JMÉNO_F HEREC ROK
Černí baroni Vetchý 94
Kmotr Brando 72
Top gun Cruise 86
Nováček Brando 90
Vzorec Brando 80
Film*
Jaký je vztah schématu FILM
na obrázku k relaci FILM* ?
![Page 7: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/7.jpg)
7
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
![Page 8: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/8.jpg)
8
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
![Page 9: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/9.jpg)
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
![Page 10: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/10.jpg)
10
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
![Page 11: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/11.jpg)
11
Relační model dat tabulková terminologie
Odlišnosti:
V relaci nezáleží na pořadí n-tic.
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
Relace neobsahují duplicitní n-tice.
![Page 12: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/12.jpg)
12
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 = { R1 ,R2 ,... ,Rk}, I ... množina IO
přípustná relační databáze se schématem (R,I) je množina relací R1
*, R2*, ... , Rk
* takových, že jejich n-tice vyhovují tvrzením v I.
![Page 13: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/13.jpg)
13
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].
![Page 14: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/14.jpg)
14
KINO(NÁZEV_K, ADRESA),
FILM(JMÉNO_F, HEREC, ROK)
MÁ_NA_PROGRAMU(NÁZEV_K, JMÉNO_F, DATUM)
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
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
MÁ_NA_PROGRAMU[NÁZEV_K] KINO[NÁZEV_K]
MÁ_NA_PROGRAMU[JMÉNO_F] FILM[JMÉNO_F]
![Page 15: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/15.jpg)
15
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
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)
![Page 16: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/16.jpg)
16
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
![Page 17: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/17.jpg)
17
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ů
![Page 18: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/18.jpg)
18
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
zadání dotazu v daném jazyku
algoritmus manipulačních operací zahrnuje
kontrolu dodržování IO
relační algebra, relační kalkul, SQL
![Page 19: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/19.jpg)
19
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í”
![Page 20: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/20.jpg)
20
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 Hvezda] ] )[Herec
![Page 21: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/21.jpg)
21
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 }
![Page 22: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/22.jpg)
22
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
![Page 23: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/23.jpg)
23
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
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’)
![Page 24: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/24.jpg)
24
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 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
R1:= MÁ_NA_PROGRAMU(NÁZEV_K = ‘Mír’)
![Page 25: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/25.jpg)
25
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
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
![Page 26: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/26.jpg)
26
Relační algebra příklad použití
R2 := R1[JMÉNO_F, DATUM]
R3 := FILM * R2
R2 JMÉNO_F DATUM
Nováček 10.03.94
Top gun 09.03.94
Kmotr 08.03.94
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
Nováček Brando 90 10.03.94
l
Top gun Cruise 86 09.03.94
Top gun McGi lis 86 09.03.94
Kmotr Brando 72 08.03.94
R3 JM É NO_F HEREC ROK DATUM
![Page 27: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/27.jpg)
27
R4:= R3[HEREC]
Česky: „Zadej dotaz, který vybere z databáze seznam herců, kteří
hrají ve filmech dávaných v kinu Mír".
Relační algebra příklad použití
R4 HEREC
Cruise
Brando
McGillis
R3 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
bez mezikroků:
{ MÁ_NA_PROGRAMU(NÁZEV_K=‘Mír’)[JMÉNO_F,DATUM]
* FILM } [HEREC]
MÁ_NA_PROGRAMU(NÁZEV_K=‘Mír’)[JMÉNO_F,DATUM]
MÁ_NA_PROGRAMU(NÁZEV_K=‘Mír’)[JMÉNO_F,DATUM]
* FILM
![Page 28: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/28.jpg)
28
Relační algebra -spojení
kde {<, >, =, }
Mějme relace se schématy R(A) a S(B)
R* [t1 t2] S* = { u | u[A] R*, u[B] S*, u.t1u.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.
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
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
![Page 29: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/29.jpg)
29
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*
![Page 30: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/30.jpg)
30
levé -antispojení, kde {<, >, =, },
mějme relace se schématy R(A) a S(B)
R* <t1 t2] S* = R* \ (R*<t1t2]S*)
pravé -antispojení, kde {<, >, =, },
mějme relace se schématy R(A) a S(B)
R* [ t1 t2> S* = S* \ (R*[t1t2>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*)
Relační algebra antispojení
![Page 31: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/31.jpg)
31
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]
![Page 32: BIK-DBSusers.fit.cvut.cz/~halaska/BIK-DBS/prednaska/BIK-DBS_4_Relacni_m… · Jaký je vztah tabulky FILM na obrázku k relaci FILM* Schéma relace záhlaví tabulky jméno atributu](https://reader030.vdocuments.pub/reader030/viewer/2022013010/5f06e09c7e708231d41a2e9f/html5/thumbnails/32.jpg)
32
D6. Dotaz, který vybere z databáze seznam kin, kde
nedávají žádný film s M. Brando".
Relační algebra příklad
KINO[NÁZEV_K]
Přepis D6: Dotaz, který vybere všechna kina s výjimkou těch,
která dávají některý film s M.Brando
{ FILM (HEREC=‘M.Brando’) [JMENO_F] *
MA_NA_PROGRAMU } [NAZEV_K]
D5. Dotaz, který vybere seznam kin, která hrají něco
s hercem ‘M.Brando’
D5 :=
\ D5