select - Univerzita Karlova v Praze
Transkript
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[A1B1,…, AkBk] … 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[A1B1,…, AkBk] … 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][NN1] *(P*F)(Z='FR')[J,N][NN2] )(N1<N2)[J] RA: ( (P*M)(S='FR')[N,T][TT1] *(P*M)(S='FR')[N,T][TT2] )(T1<T2)[N] Přehledněji: U := (P*F)(Z='FR')[J,N] (U[NN1]*U[NN2])(N1<N2)[J] More clear: U := (P*M)(S='FR')[N,T] (U[TT1]*U[TT2])(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[NN1] *U[NN2] *U[NN3])(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[TT1] *U[TT2] *U[TT3])(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[DDx]))[D] U[W](U[W<Wx](U[WWx]))[W] 20
Podobné dokumenty
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
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...
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...
web- SK Katalog 2008.vp
Literární předloha: Naguib Mahfouz, držitel Nobelovy ceny za literaturu
původní znění – anglické titulky
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)...
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.
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...
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....
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...