select - Univerzita Karlova v Praze

Transkript

select - Univerzita Karlova v Praze
RNDr. Jakub Lokoč, Ph.D.
RNDr. Michal Kopecký, Ph.D.
Katedra softwarového inženýrství
Matematicko-Fyzikální fakulta
Univerzita Karlova v Praze
1
Relační algebra / Relational Algebra
2




Kino(Jmeno, Mesto, Sedadel)
Film(Nazev, Reziser, Zeme)
Program(
Jmeno, Nazev, Den, Listku
)

Operace:

R(podmínka) … selekce
R[A1, A2,…, Ak] … projekce
R*S, R[podmínka]S

R[A1B1,…, AkBk]
… přejmenování



Cinema(Name, City, Places)
Movie(Title , Director, State)
Plays(
Name, Title, When, Tickets
)
Operations:

R(condition) … selection
R[A1, A2,…, Ak] … projection
R*S, R[condition]S

R[A1B1,…, AkBk]
… renaming
3

Překlad jednoduchého SQL
do RA

Translation of simple SQL
to RA
SELECT
sloupce
FROM spojení
WHERE podmínka
SELECT
columns
FROM join
WHERE condition
(spojení)(podmínka)[sloupce]
(join)(condition)[columns]
4

Najděte seznam všech kin v Brně

Find list of all cinemas in Boston
SQL:
SELECT *
FROM Kino
WHERE Mesto='Brno'
SQL:
SELECT *
FROM Cinema
WHERE City='Boston'
RA:
Kino(Mesto='Brno')
K(M='Brno')
RA:
Cinema(City='Boston')
C(C='Boston')
5

Najděte seznam názvů všech
francouzských filmů

Find list of titles of all French
movies
SQL:
SELECT Nazev
FROM Film
WHERE Zeme='FR'
SQL:
SELECT Title
FROM Movie
WHERE State='FR'
RA:
Film(Zeme='FR')[Nazev]
F(Z='FR')[N]
RA:
Movie(State='FR')[Title]
M(S='FR')[T]
6

Najděte seznam názvů všech
francouzských filmů, které
promítali v Brně

Find list of titles of all French
movies that were played in
Boston
RA:
(K*P*F)(Z='FR'  M='Brno')[N]
RA:
(C*P*M)(S='FR'  C='Boston')[T]
nebo například
or for example
(K(M='Brno')*P*F(Z='FR'))[N]
(C(C='Boston')*P*M(S='FR'))[T]
7

Najděte seznam jmen všech kin,
která promítla alespoň jeden
francouzský film
RA:
(P*F)(Z='FR')[J]

Find list of name of all cinemas
that have played at least one
French movie
RA:
(P*M)(S='FR')[N]
8

Najděte seznam jmen všech kin,
která nepromítla žádný
francouzský film

Find list of name of all cinemas
that have not played any French
movie
RA:
všechna kina bez těch,
která promítla alespoň jeden
K[J](P*F)(Z='FR')[J]
RA:
all cinemas except those
that have played at least one
C[N](P*M)(S='FR')[N]
Mírně jiný výsledek dává
P[J](P*F)(Z='FR')[J]
kvůli kinům,
která vůbec nepromítala
Slightly different result gives
P[N](P*M)(S='FR')[N]
due to cinemas
that have played nothing
9

Najděte seznam jmen všech kin,
která promítal pouze
francouzské filmy

Find list of name of all cinemas
that have played only
French movies
RA:
všechna kina bez těch,
která promítla alespoň jeden jiný
K[J](P*F)(Z<>'FR')[J]
RA:
all cinemas except those
that have played at least one other
C[N](P*M)(S<>'FR')[N]
Mírně jiný výsledek dává
P[J](P*F)(Z<>'FR')[J]
kvůli kinům,
která vůbec nepromítala
Slightly different result gives
P[N](P*M)(S<>'FR')[N]
due to cinemas
that have played nothing
10

Najděte seznam jmen všech kin,
která promítla všechny
francouzské filmy

Find list of name of all cinemas
that have played all
French movies
RA:
příklad pro operaci dělení
P[J,N]F(Z='FR')[N]
RA:
example for division operator
P[N,T]M(S='FR')[T]
„Kino promítlo film“

„všechny francouzské filmy“
“Cinema have played movie”

“all French movies”
Nějvětší X[J] takové, že
X[J]  F(Z='FR')[N]  P[J,N]
The largest X[N] such that
X[N]  M(S='FR')[T]  P[N,T]
11

Najděte seznam názvů filmů,
která se promítala ve všech
kinech

Find list of titles of movies that
have been played in all
cinemas
RA:
příklad pro operaci dělení
P[N,J]K[J]
RA:
example for division operator
P[T,N]C[N]
„Film byl promítnut v kině“

„všechna kina“

„Film byl promítnut ve všech
kinech“
“Movie has been played in cinema”

“all cinemas”

“Movie has been played in all
cinemas”
12

Najděte seznam názvů filmů,
která se promítala ve všech
kinech bez operace dělení

Find list of titles of movies that
have been played in all
cinemas without division operator
1) Vyřešit opačný dotaz Q:
Najděte seznam názvů filmů,
která se nepromítala ve všech
kinech a potom použít řešení
1) Solve the inverse queryQ:
Find list of titles of movies that
have not been played in all
cinemas and then use result
F[N]Q
M[T]Q
13

Najděte seznam názvů filmů,
která se promítala ve všech
kinech bez operace dělení

Find list of titles of movies that
have been played in all
cinemas without division operator
2) Pro vyřešení Q najít všechny
protipříklady X[N,J], které říkají:
„Film N nebyl promítán v kině J“
a potom použít řešení
F[N]Q = F[N]X[N]
2) To solve Q find all
counterexamples X[T,N] that say:
“Movie T was not played in cinema
N” and then use solution
M[T]Q = M[T]X[T]
X[N,J] := F[N]K[J]P[N,J]
X[T,N] := M[T]C[N]P[T,N]
Celkově:
F[N](F[N]K[J]P[N,J])
Finally:
M[T](M[T]C[N]P[T,N])
14

Najděte seznam jmen kin, která
promítala všechny Filmy
RA:
příklad pro operaci dělení
P[J,N]F[N]

Find list of name of cinemas that
have played all movies
RA:
example for division operator
P[N,T]M[T]
15

Najděte seznam jmen kin, která
promítala všechny Filmy
promítané v jejich městě

Find list of name of cinemas that
have played all movies
played in their city
RA:
operaci dělení tady nejde použít!
Kritérium se pro různá kina liší!
RA:
division operator cannot be used!
The criterion differs for different
cinemas!
1) Řešit opačný dotaz Q
2) Najít protipříklady X[J,M,N],
kde: Kino J je z města M,
V městě M promítali film N,
V kině J nepromítali film N
1) Solve inverse query Q
2) Find counterexamples X[N,C,T],
where: Cinema N is from city C,
It was played movie T in city C,
Cinema N has not played movie T
16

X[J,M,N],
kde: Kino J je z města M,
V městě M promítali film N,
V kině J nepromítali film N

X[N,C,T],
where: Cinema N is from city C,
It was played movie T in city C,
Cinema N has not played movie T
X1 := K[J,M]
X2 := (K*P)[M,N]
X3 := K[J]F[N]P[J,N]
X1 := C[N,C]
X2 := (C*P)[C,T]
X3 := C[N]M[T]P[M,T]
X := X1*X2*X3
Q:=X[J]
X := X1*X2*X3
Q:=X[N]
Celkem
K[J]Q = K[J]X[J]
Finally
C[N]Q = C[N]X[N]
17

Najděte seznam jmen kin, která
promítala alespoň dva
francouzské filmy

Find list of names of cinemas that
have played at least two French
movies
RA:
(
(P*F)(Z='FR')[J,N][NN1]
*(P*F)(Z='FR')[J,N][NN2]
)(N1<N2)[J]
RA:
(
(P*M)(S='FR')[N,T][TT1]
*(P*M)(S='FR')[N,T][TT2]
)(T1<T2)[N]
Přehledněji:
U := (P*F)(Z='FR')[J,N]
(U[NN1]*U[NN2])(N1<N2)[J]
More clear:
U := (P*M)(S='FR')[N,T]
(U[TT1]*U[TT2])(T1<T2)[N]
18

Najděte seznam jmen kin, která
promítala alespoň tři
francouzské filmy
RA:
U := (P*F)(Z='FR')[J,N]
(U[NN1]
*U[NN2]
*U[NN3])(N1<N2  N2<N3)[J]

Find list of names of cinemas that
have played at least three
French movies
RA:
U := (P*M)(S='FR')[N,T]
(U[TT1]
*U[TT2]
*U[TT3])(T1<T2  T2<T3)[N]
19

Kdy naposledy promítali v Brně
film Titanic?

When was the last time played
Titanic in Boston?
RA:
Vytvoříme seznam dvojic
datumů promítání, kde D<Dx
Ani jedno z D nemůže být
poslední
RA:
We create list of couples of dates,
where W<Wx
No one of W can be the last one
U := (K*P*F)
(M='Brno'  N='Titanic')[D]
U := (C*P*M)
(C='Boston'  T='Titanic')[W]
U[D](U[D<Dx](U[DDx]))[D]
U[W](U[W<Wx](U[WWx]))[W]
20

Podobné dokumenty

Excel - příklady - Univerzita Karlova

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

Více

Kolmá axonometrie

Kolmá axonometrie nárysu event. bokorysu (tj. průmětů v Mongeově projekci) také průměty v axonometrii, anebo v perspektivě. Technické objekty mají obvykle tři význačné navzájem kolmé směry nebo tří významné navzájem...

Více

Vlastnosti logaritmu Jiná definice logaritmu: Další vlastnosti

Vlastnosti logaritmu Jiná definice logaritmu: Další vlastnosti Důkaz: Pro n∈ℕ je evidentní: Součet n sčítanců log a x a podle pravidla 1 toto pravidlo platí Pro n∈ℝ podle definice levá strana log a x n=r ⇔ a r= x n ; podle definice pravá strana n⋅log a x=s (co...

Více

web- SK Katalog 2008.vp

web- SK Katalog 2008.vp Literární předloha: Naguib Mahfouz, držitel Nobelovy ceny za literaturu původní znění – anglické titulky

Více

slajdy - Sorry

slajdy - Sorry 1.3.1.spočítej pomocí kombinační funkce váhu cw(C,Ant) naskládanou z vah pravidel v bázi KB aplikovatelných na Ant 1.3.2.pokud se platnost implikace P(C|Ant) signifikantně liší (na základě 2 testu)...

Více

prezentaci služeb v oblasti životního prostředí

prezentaci služeb v oblasti životního prostředí společnostmi s více než 50 000 zaměstnanci ve 100 zemích na celém světě. Integrační proces do globální skupiny AECOMu vyvrcholil v roce 2009 přejmenováním Earth Tech CZ na AECOM CZ.

Více

Nedbalost, či neznalost

Nedbalost, či neznalost Klaus tudíž vybírá určité věty z jednostránkového shrnutí a kritizuje je mimo kontext. To způsobuje, že se ve svých argumentech často zásadně mýlí. Když například jako protiklad staví výrok polskéh...

Více

Pastor Steven J. Cole Flagstaff

Pastor Steven J. Cole Flagstaff hájili, věřili, že zachránění početně převáží nad zavrženými. (Viz C. H. Spurgeon: Autobiography [Banner of Truth], sv. 1, str. 171, a B. B. Warfield: Biblical and Theological Studies [P & R], str....

Více

newsletter 7-8|2011 11 |2010 - Velvyslanectví USA v České republice

newsletter 7-8|2011 11 |2010 - Velvyslanectví USA v České republice arrived for a two-week visit to the Czech Republic. Feustel was a crew member of the second to last space shuttle flight. At the Prague Airport he was welcomed by U.S. Ambassador Norman Eisen and A...

Více