Databázové systémy. Ostatní typy spojení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 1 / 34

Save this PDF as:
 WORD  PNG  TXT  JPG

Rozměr: px
Začít zobrazení ze stránky:

Download "Databázové systémy. Ostatní typy spojení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 1 / 34"

Transkript

1 Databázové systémy Ostatní typy spojení Vilém Vychodil KMI/DATA1, Přednáška 5 Databázové systémy V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 1 / 34

2 Přednáška 5: Přehled 1 Vlastnosti přirozeného spojení: úplné spojení a bezeztrátová dekompozice, vztah přirozeného spojení a dalších operací, θ-spojení, spojení na rovnost. 2 Související problémy: kompozice a tranzitivní uzávěr, rekurzivní dotazy. 3 Problematika vnějších spojení: definice, úskalí, vztah k relačnímu modelu, formalizace pomocí tříhodnotových logik, jiné možnosti přístupu k problému. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 2 / 34

3 Věta (Další vlastnosti přirozeného spojení) Mějme D 1, D 2 a D 3 na schématech R 1, R 2 a R 3 = R 2. Pak platí: 1 je isotonní; 2 σ y=d (D 1 D 2 ) = σ y=d (D 1 ) σ y=d (D 2 ) pokud y R 1 R 2 ; 3 σ y=d (D 1 D 2 ) = σ y=d (D 1 ) D 2 pokud y R 1 a y R 2 ; 4 D 1 (D 2 D 3 ) = (D 1 D 2 ) (D 1 D 3 ); 5 D 1 (D 2 D 3 ) = (D 1 D 2 ) (D 1 D 3 ) = D 1 D 2 D 3 ; 6 D 1 (D 2 \ D 3 ) = (D 1 D 2 ) \ (D 1 D 3 ). Důkaz. 1 plyne z isotonie konjunkce; 2 je zřejmé; 3 plyne analogicky jako předchozí bod; 4 je důsledkem distributivity konjunkce a disjunkce; 5 plyne z idempotence konjunkce; 6 platí, protože rst D 1 (D 2 \ D 3 ) p. k. rs D 1 a st D 2 \ D 3 p. k. rs D 1, st D 2 a st D 3 p. k. rs D 1, st D 2 a rs D 1, st D 3 p. k. rst D 1 D 2 a rst D 1 D 3 p. k. rst (D 1 D 2 ) \ (D 1 D 3 ). V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 3 / 34

4 Úplné spojení motivace: V některých spojeních jsou všechny n-tice z výchozích tabulek spojitelné s některými n-ticemi z ostatních tabulek vede na pojem úplné spojení nespojitelná n-tice, angl.: dangling tuple Mějme relace D 1,..., D 2 na schématech R 1,..., R n. Pak n-tice r i D i se nazývá nespojitelná vzhledem k n i=1 D i pokud neexistují žádné r j D j (j i) tak, že r 1 r n n i=1 D i. úplné spojení, angl.: complete join Relace D 1,..., D 2 na schématech R 1,..., R n mají úplné spojení, pokud žádná D i neobsahuje nespojitelnou n-tici vzhledem k n i=1 D i. poznámka: D 1 a D 2 mají úplné spojení p. k. D 1 D 2 = D 1 a D 2 D 1 = D 2. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 4 / 34

5 Věta (Charakterizace úplných spojení) Mějme relace D 1,..., D n na schématech R 1,..., R n. Pak platí: 1 π Rj ( n i=1 D i ) Dj pro každé j = 1,..., n; 2 π Rj ( n i=1 D i ) = Dj pro každé j = 1,..., n p. k. D 1,..., D n lze úplně spojit; 3 n i=1 D i = n j=1 π Rj ( n i=1 D i ) pro každé j = 1,..., n; 4 π Rj ( n k=1 π Rk ( n i=1 D i )) = πrj ( n i=1 D i ) pro každé j = 1,..., n. Důkaz. Bod 1 plyne z toho, že pokud r n i=1 D i, pak r(r j ) D j. V případě 2 ukážeme obměnou: D 1,..., D n nelze úplně spojit pokud existuje r j D j, která je nespojitelná vzhledem k n i=1 D i ; to je p. k. r(r j ) r j pro každou r n i=1 D i a to je p. k. ( ) ( ) r j π Rj n i=1 D i p. k. existuje j tak, že πrj n i=1 D i Dj. Pro dokázání inkluze bodu 3 vyjdeme z toho, že pokud r n i=1 D i, pak r = r 1 ( r n, kde ) r(r j ) = r j pro každé j. To jest r j π Rj ( n i=1 D i ) a tedy r n j=1 π Rj n i=1 D i. Opačná inkluze plyne z 1 a isotonie. Bod 4 je triviální důsledek 3. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 5 / 34

6 Příklad (Úplné spojení) relace, které nemají úplné spojení: D 1 D 2 D 1 D 2 D 1 D 2 D 2 D 1 FOO BAR BAZ BAR BAZ QUX FOO BAR BAZ QUX FOO BAR BAZ BAR BAZ QUX 444 ghi def ghi abc 101 abc 111 zzz def 102 www def 102 yyy ghx 103 xxx ghi 103 ttt ghi 103 uuu ghi 103 vvv 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv 444 ghi def ghi 103 def 102 www def 102 yyy ghi 103 ttt ghi 103 uuu ghi 103 vvv dle předchozího tvrzení: relace D 3 = D 1 D 2 a D 4 = D 2 D 1 mají úplné spojení D 1 D 2 = D 3 D 4 V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 6 / 34

7 Bezeztrátová dekompozice relace motivace: Duální pojem k pojmu úplné spojení: Je možné vyjádřit výchozí relace pomocí spojení některých jejich projekcí? bezeztrátová dekompozice, angl.: nonloss decomposition Relace D na schématu R 1 R n má bezeztrátovou dekompozici vzhledem k množině schémat {R 1,..., R n } pokud D = n i=1 π Ri (D). existence dekompozic: každá D na R má (jednoprvkovou) bezeztrátovou dekompozici vzhledem k {R} (triviální případ; hledáme dekompozice vzhledem k větším množinám schémat) další typy dekompozic: horizontální/vertikální typy dekompozic, faktorové dekompozice,... V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 7 / 34

8 Věta (Vlastnosti bezeztrátových dekompozic) Mějme relaci D na schématu R 1 R n. Pak platí 1 D n i=1 π Ri (D); 2 n i=1 π Ri (D) = n j=1 π Rj ( n i=1 π Ri (D) ). Důkaz. Pro dokázání 1 vezměme r D. Vzhledem ke schématům R 1,..., R n lze r chápat jako n-tici ve tvaru r 1 r n, kde r i = r(r i ) pro každé i = 1,..., n. Zřejmě tedy r i π Ri (D) pro každé i = 1,..., n a tím pádem r n i=1 π Ri (D). Tvrzení 2 je speciálním případem bodu 3 předchozí věty pro D i = π Ri (D). důsledek: n i=1 π Ri (D) má bezeztrátovou dekompozici vzhledem k {R 1,..., R n } V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 8 / 34

9 Příklad (Bezeztrátová dekompozice) D π {FOO,BAR,BAZ} (D) π {BAZ,QUX} (D) π {BAR,QUX} (D) π {FOO,BAR} (D) FOO BAR BAZ QUX FOO BAR BAZ BAZ QUX BAR QUX FOO BAR 100 aaa 444 GGG 100 aaa 444 HHH 200 bbb 555 III 300 ccc 555 III 100 aaa bbb ccc GGG 444 HHH 555 III aaa GGG aaa HHH bbb III ccc III 100 aaa 200 bbb 300 ccc platí například: D = π {FOO,BAR,BAZ} (D) π {BAZ,QUX} (D) D = π {FOO,BAR,BAZ} (D) π {BAR,QUX} (D) D = π {FOO,BAR,BAZ} (D) π {FOO,BAR} (D) ale například: D π {FOO,BAR} (D) π {BAZ,QUX} (D) poznámky (k tomtuto konkrétnímu příkladu): neexistuje dekompozice na dvě dvouprvková schémata celkem 60, 672 možných dekompozic (složených z vzájemně různých schémat) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 9 / 34

10 Odvozené operace: θ-spojení motivace: Chceme spojovat data ze dvou tabulek tak, aby kritérium spojitelnosti nebylo dáno pouze rovností na určitých hodnotách, ale obecnou podmínkou vztahující se na hodnoty n-tic z obou tabulek. Definice (θ-spojení, angl.: θ-join) Mějme relace D 1 a D 2 na schématech R a T takových, že R T = a nechť θ je skalární výraz typu pravdivostní hodnota, který může obsahovat jména atributů z R T. Pak θ-spojení D 1 a D 2 splňující θ je relace σ θ (D 1 D 2 ) a označujeme ji D 1 θ D 2. poznámky: θ je definováno jako restrikce z kartézského součinu podle definice σ θ a : D 1 θ D 2 = {rt r D 1 a r D 2 tak, že rt splňuje θ}. V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 10 / 34

11 Odvozené operace: Spojení na rovnost motivace: Speciální případ θ-spojení, ve kterém je podmínka θ formulována jako konjunkce podmínek vyjadřující rovnost hodnot atributů stejných typů. Definice (spojení na rovnost, angl.: equijoin) Mějme relace D 1 a D 2 na schématech R a T takových, že R T = a nechť {y 1,..., y n } R, {y 1,..., y n} T tak, že atributy mají y i a y i stejný typ. Pak θ-spojení D 1 a D 2, kde θ je va tvaru y 1 = y 1 c c y n = y n nazýváme spojení D 1 a D 2 na rovnost (atributů y 1, y 1 až y n, y n) a označujeme jej D 1 y1 =y 1,...,yn=y n D 2. Tutorial D: ( relační-výraz 1 JOIN relační-výraz 2 ) WHERE podmínka SQL: SELECT * FROM jméno 1, jméno 2 WHERE podmínka V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 11 / 34

12 Vzájemná zastupitelnost operací pozorování: Spojení na rovnost lze vyjádřit pomocí přirozeného spojení a restrikce, protože na disjunktních schématech přechází přirozené spojení v kartézský součin. otázka: Lze naopak vyjádřit přirozené spojení pomocí spojení na rovnost? úvaha: Přirozené spojení lze chápat jako spojení na rovnost, ve kterém nejprve vhodně přejmenujeme atributy a provedeme dodatečnou projekci. Pro relace D 1 a D 2 nad schématy R S a S T tak, že R T = a S = {y 1,..., y k }, s použitím přejměnování y 1,..., y k na y 1,..., y k máme: D 1 D 2 = π R S T ( D1 y1 =y 1,...,y k=y k ρ y 1 y 1,...,y k y k (D 2) ) = π R S T ( σy1 =y 1,...,y k=y k( D1 ρ y 1 y 1,...,y k y k (D 2) )). V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 12 / 34

13 Obecné formule pro restrikce na rovnost motivace: Ve spojení na rovnost je θ vyjádřená jako konjunkce atomických formulí (tzv. identit). Snadno lze úvahy rozšířit na libovolně složité formule konstruované z identit a výrokových spojek. Definice (formule definující podmínky pro restrikce) Mějme relační schéma R obsahující atributy y R typů D y. Pak formule pro restrikce nad R definujeme takto: 1 pokud jsou y 1, y 2 R, pak y 1 = y 2 je (atomická) formule; 2 pokud je y R a d D y, pak y = d je (atomická) formule; 3 pokud jsou ϕ a ψ formule, pak jsou nϕ a (ϕ i ψ) formule. přijímáme konvenci o vynechávání vnějších závorek formulí (ϕ e ψ) (ϕ c ψ), (ϕ d ψ) chápeme jako zkratky (běžným způsobem) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 13 / 34

14 Věta (Rozšíření spojení na rovnost) Nechť R je relační schéma a θ je formule pro restrikci nad R. Pak existuje posloupnost relačních operací zahrnující pouze restrikce na rovnost, sjednocení a rozdíl tak, že pro každou D nad R je výsledek aplikace těchto operací roven σ θ (D). Důkaz. Nejprve nahládněme, že podle předchozí definice lze θ chápat jako formuli, ve které se vyskytují pouze spojky n a i. Použitím známého faktu, že ϕ i ψ je sémanticky ekvivalentní nϕ d ψ, můžeme θ chápat jako formuli obsahující n a d jako základní spojky. Dále můžeme využít faktu, že pro každou D nad R zřejmě platí následující σ nθ (D) = {r D r nesplňuje θ} = D \ σ θ (D), σ θ1 dθ 2 (D) = {r D r splňuje θ 1 nebo r splňuje θ 2 } = σ θ1 (D) σ θ2 (D). To jest, σ θ (D) pro libovolně složitou θ lze vyjádřit konečně mnoha aplikacemi \ a pouze za použití výchozí relace D. poznámka: spojení na rovnost je dost obecná relační operace V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 14 / 34

15 Intermezzo: Tranzitivní uzávěr tranzitivní uzávěr relace na množině, angl.: transitive closure Mějme binární relaci R A A. Pak tranzitivním uzávěrem R, rozumíme binární relací R A A splňující následující podmínky: 1 R R, 2 R je tranzitivní, 3 R je nejmenší relace splňující 1 a 2. konstruktivně lze R vyjádřit jako přitom platí: R = n=1 Rn = n=1 } R {{ R }, n-krát pokud je R konečná, pak existuje index m tak, že R = m n=1 Rn pokud je navíc R reflexivní, pak R = R m V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 15 / 34

16 Příklad (Tranzitivní uzávěr binární relace na konečné množině) uvažujme binární relaci R = { a, c, b, d, c, b, d, b } na množině A tranzitivní uzávěr relace R nalezneme takto: R 1 = { a, c, b, d, c, b, d, b } R 2 = { a, b, b, b, c, d, d, d } R 3 = { a, d, b, d, c, b, d, b } R 4 = { a, b, b, b, c, d, d, d } R = { a, b, a, c, a, d, b, b, b, d, c, b, c, d, d, b, d, d } graficky: a b a b c d c d V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 16 / 34

17 Příklad (Tranzitivní uzávěr v relačním modelu) motivace: Binární relaci R na množině A z předchozího příkladu můžeme formalizovat jako relaci D nad schématem {x, y} tak, že D = { { x, a, y, b } a, b R }. Pak můžeme vyjádřit protějšky D 1, D 2, D 3, D 4, D relací R 1, R 2, R 3, R 4, R : D 1 = D, D 2 = ρ z y (D) ρ z x (D) = π {x,y} (ρ z y (D) ρ z x (D)), D 3 = ρ z y (D) ρ z x (D 2 ) = π {x,y} (ρ z y (D) ρ z x (D 2 )), D 4 = ρ z y (D) ρ z x (D 3 ) = π {x,y} (ρ z y (D) ρ z x (D 3 )), D n = π {x,y} ( n i=1 ρ x i,n x,y i,n y (D)), D = m n=1 Dn = m n=1 π {x,y}( n i=1 ρ x i,n x,y i,n y (D)), kde x 1,n = x pro každé n; y n,n = y pro každé n; x i,n = y i 1,n pro každé 2 i n. problém: parametr m ve výrazu pro D závisí na konkrétní D (!!) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 17 / 34

18 Tranzitivní uzávěr relací Definice (tranzitivní uzávěr relace, angl.: transitive closure) Mějme relaci D nad dvouprvkovým schématem R = {y 1, y 2 }. Pak relace D nad relačním schématem R splňující následující podmínky: 1 D D, 2 ρ y y1 (D ) ρ y y2 (D ) D, 3 D je nejmenší relace splňující 1 a 2, se nazývá tranzitivní uzávěr relace D. Tutorial D: TCLOSE ( relační-výraz ) poznámky: SQL nepodporuje přímo jako relační operaci (ale je definovatelné) důležitý aspekt: ukázat konstruktivní předpis pro výpočet TCLOSE V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 18 / 34

19 Lokální pojmenování výsledků dotazů v SQL WITH jméno 1 AS ( dotaz 1 ),.. jméno n AS ( dotaz n ) dotaz-používající-jména ; WITH RECURSIVE jméno 1 ( atribut 1,1, atribut 1,2,...) AS ( nerekurzivní-výraz 1 UNION DISTINCT rekurzivní-výraz 1 ),.... jméno n ( atribut n,1, atribut n,2,...) AS ( nerekurzivní-výraz n UNION DISTINCT rekurzivní-výraz n ) dotaz-používající-jména ; související pojem: rekurzivní dotazy v SQL V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 19 / 34

20 Iterativní vyhodnocení pojmenovaných dotrazů v SQL vstup: jméno i (jméno pro výsledek), atribut i,1, atribut i,2,... (jména atributů) nerekurzivní-výraz i (dotaz) rekurzivní-výraz i (předpis iterace, může obsahovat jméno i a atributy) způsob vyhodnocení: 1 vyhodnoť nerekurzivní-výraz i ; výsledek ulož do RESULT a WORK ; 2 dokud WORK, opakuj: vyhodnoť rekurzivní-výraz i v němž je každé jméno i nahrazeno obsahem tabulky WORK ; z výsledku odstraň duplicitní řádky a každý řádek, který se již nachází v RESULT ; výsledek ulož do WORK ; připoj obsah WORK na konec RESULT ; 3 navaž obsah RESULT na jméno i poznámka: varianta s UNION ALL neodstraňuje duplicity V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 20 / 34

21 Příklad (SQL: Tranzitivní uzávěr relace) využijeme faktu, že D = f(d, D), kde { D2, pokud D f(d 1, D 2 ) = 1 =, f(d \ D 2, D D 2 ), pro D = ρ z x (D 1 ) ρ z y (D) a D 1. CREATE TABLE r ( x NUMERIC NOT NULL, y NUMERIC NOT NULL, PRIMARY KEY (x, y)); /* computing transitive closure */ WITH RECURSIVE tr (x, y) AS ( SELECT * FROM r UNION DISTINCT SELECT r.x, tr.y FROM r, tr WHERE r.y = tr.x) SELECT * FROM tr; V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 21 / 34

22 Lokální pojmenování výsledků dotazů v Tutorial D lokální pojmenování pro skalární výrazy (analogie let* z dialektů LISPu): WITH ( proměnná 1 := výraz 1,..., proměnná n := výraz n ): skalární-výraz-používající-proměnné lokální pojmenování pro n-ticové výrazy: WITH ( proměnná 1 := výraz 1,..., proměnná n := výraz n ): n-ticový-výraz-používající-proměnné lokální pojmenování pro relační výrazy: WITH ( proměnná 1 := výraz 1,..., proměnná n := výraz n ): relační-výraz-používající-proměnné poznámka: pouze lokální pojmenování (neslouží k vyjadřování rekurzivních předpisů) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 22 / 34

23 Příklad (Tutorial D: Použití WITH a tranzitivní uzávěr relace) WITH (r1 := r, r2 := (r RENAME {y AS z}) COMPOSE (r1 RENAME {x AS z}), r3 := (r RENAME {y AS z}) COMPOSE (r2 RENAME {x AS z}), r4 := (r RENAME {y AS z}) COMPOSE (r3 RENAME {x AS z})): UNION {r1, r2, r3, r4} WITH (r1 := r, w2 := (r RENAME {y AS z}) COMPOSE (r1 RENAME {x AS z}), r2 := w2 MINUS r1, w3 := (r RENAME {y AS z}) COMPOSE (r2 RENAME {x AS z}), r3 := w3 MINUS UNION {r1, r2}, w4 := (r RENAME {y AS z}) COMPOSE (r3 RENAME {x AS z}), r4 := w4 MINUS UNION {r1, r2, r3}): UNION {r1, r2, r3, r4} TCLOSE (r) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 23 / 34

24 Příklad (Tutorial D: Implementace tranzitivního uzávěru) OPERATOR tr (r RELATION {x INT, y INT}) RETURNS SAME_TYPE_AS (r); BEGIN; VAR result PRIVATE INIT (r) KEY {x,y}; VAR work PRIVATE INIT (r) KEY {x,y}; WHILE NOT (IS_EMPTY (work)); BEGIN; work := (r RENAME {y AS z}) COMPOSE (work RENAME {x AS z}); work := work MINUS result; result := result UNION work; END; END WHILE; RETURN result; END; END OPERATOR; V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 24 / 34

25 Problematika nespojitelných n-tic motivace: Pokud se v relacích, které spojujeme, nacházejí nějaké nespojitelné n-tice, ve výsledky dochází ke ztrátě informace. Jak tento problém vyřešit? převládající, ale koncepčně špatné řešení: snahy se objevují kolem roku 1979 (10 let po představení originálního modelu) zavedení vnějších spojení a konceptu nedefinovaných (chybějících) hodnot tabulky nelze formalizovat jako relace nad relačními schématy formální model je pochybný, postrádá logiku, velký potenciál vzniku chyb další řešení: místo nedefinovaných hodnot používat designované hodnoty z domén (např. "??" může mít význam, že řetězcová hodnota je neznámá) zavedení relační operace polorozdíl, která vyjadřuje nespojitelné n-tice plné využití RM a konceptu relace jako hodnoty atributu (Přednáška 6) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 25 / 34

26 Vnitřní a vnější spojení vnější přirozená a θ-spojení v SQL: SELECT * FROM jméno 1 NATURAL FULL OUTER JOIN jméno 2 SELECT * FROM jméno 1 NATURAL LEFT OUTER JOIN jméno 2 SELECT * FROM jméno 1 NATURAL RIGHT OUTER JOIN jméno 2 SELECT * FROM jméno 1 FULL OUTER JOIN jméno 2 ON podmínka SELECT * FROM jméno 1 LEFT OUTER JOIN jméno 2 ON podmínka SELECT * FROM jméno 1 RIGHT OUTER JOIN jméno 2 ON podmínka princip vnějších spojení: ve výsledku levého (pravého/oboustranného) vnějšího spojení jsou zahrnuty i n-tice z první (druhé/obou) relace(í), které jsou nespojitelné v tabulkách se projevuje přítomností NULL (značí absenci hodnot ) doposud diskutovaná spojení jsou tzv. vnitřní spojení (v SQL lze místo NATURAL JOIN psát NATURAL INNER JOIN) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 26 / 34

27 Příklad (Vnější přirozená spojení) D 1 D 2 levé oboustranné pravé FOO BAR BAZ 444 ghi def ghi abc 101 BAR BAZ QUX abc 111 zzz def 102 www def 102 yyy ghx 103 xxx ghi 103 ttt ghi 103 uuu ghi 103 vvv FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv 666 abc 101 FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv 666 abc 101 abc 111 zzz ghx 103 xxx FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv abc 111 zzz ghx 103 xxx SELECT * FROM r1 NATURAL LEFT OUTER JOIN r2 SELECT * FROM r1 NATURAL FULL OUTER JOIN r2 SELECT * FROM r1 NATURAL RIGHT OUTER JOIN r2 V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 27 / 34

28 Související problémy patologický rys: výsledek vnějšího spojení nelze formalizovat jako relaci nad schématem ({{ x, 10, y, 20 }, { x, 66 }, { y, 77 }} může být vysledkem vnějšího spojení) související otázky: Jak implementovat množinové relační operace? Jak vlastně implementovat jakékoliv relační operace? Co je výsledkem restrikce, pokud není hodnota atributu definovaná?. je nutné: explicitně zavést nedefinovanou hodnotu (označení ω, v SQL NULL) uvažovat artimetické, logické a další operace, jejichž argumenty mohou být nedefinované (jaké jsou jejich výsledky?) rozšířit (zprznit) relačního modelu dat V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 28 / 34

29 3VL v SQL přístup k nedefinovaným hodnotám v SQL: použití fragmentu Kleeneho tříhodnotové logiky (3VL) s hodnotami {0, ω, 1} a interpretací logických spojek c, d, i, e, n danou tabulkami: 0 ω ω 0 ω ω 1 0 ω 1 0 ω ω 1 ω ω ω bohužel, nedává smysl, protože: nespecifita pravdivost 0 ω ω ω ω ω 1 0 ω ω 0 ω ω ω ω 1 0 ω ω ω 1 0 bereme-li v úvahu nespecifitu, přestává platit princip kompozicionality, to jest pravdivost složených formulí (v daném ohodnocení) nezávisí pouze na pravdivosti podformulí (a spojkách), ale i na struktuře podformulí. (!!) například: pokud je e(ϕ) = ω a e(ψ) = ω, pak dle 3VL máme e(ϕ d ψ) = ω; ale pokud je ψ ve tvaru nϕ, musí být e(ϕ d ψ) = 1 (tertium non datur,!!) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 29 / 34

30 Příklad (Příklad důsledků 3VL v SQL, C. J. Date) CREATE TABLE r1 (x NUMERIC NOT NULL PRIMARY KEY, yn VARCHAR); CREATE TABLE r2 (y NUMERIC NOT NULL PRIMARY KEY, zn VARCHAR); INSERT INTO r1 VALUES (45, London ); INSERT INTO r2 VALUES (33, NULL); SELECT x, y FROM r1, r2 WHERE (yn <> zn OR zn <> Paris ); logický výsledek: { x y buď zn = Paris a tím pádem yn zn 45 33, protože nebo zn Paris výsledek dotazu v SQL: x y (prázdná relace), protože ω ω = ω You can never trust the answers you get from a database with nulls. C. J. Date V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 30 / 34

31 Alternativní přístup: designované hodnoty domén motivace: Snaha obejít problémy s 3VL a nedefinovanými hodnotami. úskalí předchozího řešení: NULL jako pravdivostní hodnota nedává smysl další možnost: používat místo NULL speciální hodnoty domén formalizace: uvažovat domény D y {ω y } rozšířené o ω y (nedef. hodnota domény atributu y) typicky: ω y jsou prázdné řetězce, zpeciální znaky, čísla,... přetrvávající nevýhody: soudobé SŘBD přímo nepodporují (například u vnějších spojení) problémy s použitím ωy omylem jako skutečnou hodnotu (zdroj chyb) V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 31 / 34

32 Odvozená operace: Polorozdíl Definice (polorozdíl, angl.: semidifference) Mějme relace D 1 a D 2 na schématech R 1 a R 2. Položme: D 1 D 2 = D 1 \ π R1 (D 1 D 2 ). Relace D 1 D 2 se nazývá polorozdíl D 1 a D 2 (v tomto pořadí). Tutorial D (zobecňuje MINUS): relační-výraz 1 NOT MATCHING relační-výraz 2 SQL: SELECT * FROM jméno 1 EXCEPT SELECT DISTINCT jméno 1.* FROM jméno 1 NATURAL JOIN jméno 2 význam: r 1 D 1 D 2 p. k. r 1 D 1 není spojitelná s žádnou n-ticí z D 2 V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 32 / 34

33 Příklad (Vnější spojení a polorozdíly) D 1 D 2 levé oboustranné pravé FOO BAR BAZ 444 ghi def ghi abc 101 BAR BAZ QUX abc 111 zzz def 102 www def 102 yyy ghx 103 xxx ghi 103 ttt ghi 103 uuu ghi 103 vvv FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv 666 abc 101 FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv 666 abc 101 abc 111 zzz ghx 103 xxx FOO BAR BAZ QUX 444 ghi 103 ttt 444 ghi 103 uuu 444 ghi 103 vvv 555 def 102 www 555 def 102 yyy 555 ghi 103 ttt 555 ghi 103 uuu 555 ghi 103 vvv abc 111 zzz ghx 103 xxx D 1 D 2 = FOO BAR BAZ 666 abc 101 D 2 D 1 = BAR BAZ QUX abc 111 zzz ghx 103 xxx V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 33 / 34

34 Přednáška 5: Závěr pojmy k zapamatování: úplné přirozené spojení, bezeztrátová dekompozice θ-spojení a spojení na rovnost tranzitivní uzávěr, lokální pojmenování, rekurzivní dotazy vnitřní a vnější spojení, nedefinované hodnoty, polorozdíl použité zdroje: Date C. J.: Database in Depth: Relational Theory for Practitioners O Reilly Media 2005, ISBN Date C. J., Darwen H.: Databases, Types and the Relational Model Addison Wesley 2006, ISBN Maier D: Theory of Relational Databases Computer Science Press 1983, ISBN V. Vychodil (KMI/DATA1, Přednáška 5) Ostatní typy spojení Databázové systémy 34 / 34

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

J. Zendulka: Databázové systémy 4 Relační model dat 1 4. Relační model dat 4.1. Relační struktura dat... 3 4.2. Integritní pravidla v relačním modelu... 9 4.2.1. Primární klíč... 9 4.2.2. Cizí klíč... 11 4.2.3. Relační schéma databáze... 13 4.3. Relační algebra...

Více

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

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace - 3.1 - Struktura relačních databází Relační algebra n-ticový relační kalkul Doménový relační kalkul Rozšířené operace relační algebry Modifikace databáze Pohledy Kapitola 3: Relační model Základní struktura

Více

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

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR): Mezi příkazy pro manipulaci s daty (DML) patří : 1. SELECT 2. ALTER 3. DELETE 4. REVOKE Jaké vlastnosti má identifikující relace: 1. Je relace, která se využívá pouze v případě modelovaní odvozených entit

Více

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace RELACE Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace slouží k vyjádření vztahů mezi prvky nějakých množin. Vztahy mohou být různé povahy. Patří sem vztah býti potomkem,

Více

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

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice) - 7.1 - Kapitola 7: Návrh relačních databází Nástrahy návrhu relačních databází Dekompozice (rozklad) Normalizace použitím funkčních závislostí Nástrahy relačního návrhu Návrh relačních databází vyžaduje

Více

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

Analýza a modelování dat 3. přednáška. Helena Palovská Analýza a modelování dat 3. přednáška Helena Palovská Historie databázových modelů Relační model dat Codd, E.F. (1970). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM

Více

Kapitola 4: SQL. Základní struktura

Kapitola 4: SQL. Základní struktura - 4.1 - Kapitola 4: SQL Základní struktura Množinové operace Souhrnné funkce Nulové hodnoty Vnořené poddotazy (Nested sub-queries) Odvozené relace Pohledy Modifikace databáze Spojené relace Jazyk definice

Více

5. Formalizace návrhu databáze

5. Formalizace návrhu databáze 5. Formalizace návrhu databáze 5.1. Úvod do teorie závislostí... 2 5.1.1. Funkční závislost... 2 5.1.2. Vícehodnotová závislost (multizávislost)... 7 5.1.3. Závislosti na spojení... 9 5.2. Využití teorie

Více

Vlastnosti regulárních jazyků

Vlastnosti regulárních jazyků Vlastnosti regulárních jazyků Podobně jako u dalších tříd jazyků budeme nyní zkoumat následující vlastnosti regulárních jazyků: vlastnosti strukturální, vlastnosti uzávěrové a rozhodnutelné problémy pro

Více

Databázové systémy I

Databázové systémy I Databázové systémy I Přednáška č. 8 Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky jiri.zechmeister@upce.cz Skupinové a souhrnné dotazy opakování Obsah Pohledy syntaxe použití význam Vnořené

Více

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094

ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1 ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT)

Více

Semestrální práce z DAS2 a WWW

Semestrální práce z DAS2 a WWW Univerzita Pardubice Fakulta elektrotechniky a informatiky Semestrální práce z DAS2 a WWW Databázová část Matěj Trakal 8.12.2009 Kapitola 1: Obsah KAPITOLA 1: OBSAH 2 KAPITOLA 2: ZÁKLADNÍ CHARAKTERISTIKA

Více

1 Linearní prostory nad komplexními čísly

1 Linearní prostory nad komplexními čísly 1 Linearní prostory nad komplexními čísly V této přednášce budeme hledat kořeny polynomů, které se dále budou moci vyskytovat jako složky vektorů nebo matic Vzhledem k tomu, že kořeny polynomu (i reálného)

Více

Oproti definici ekvivalence jsme tedy pouze zaměnili symetričnost za antisymetričnost.

Oproti definici ekvivalence jsme tedy pouze zaměnili symetričnost za antisymetričnost. Kapitola 3 Uspořádání a svazy Pojem uspořádání, který je tématem této kapitoly, představuje (vedle zobrazení a ekvivalence) další zajímavý a důležitý speciální případ pojmu relace. 3.1 Uspořádání Definice

Více

Logický důsledek. Petr Kuchyňka (7765@mail.muni.cz)

Logický důsledek. Petr Kuchyňka (7765@mail.muni.cz) Logický důsledek Petr Kuchyňka (7765@mail.muni.cz) Úvod P 1 Logický důsledek je hlavním předmětem zájmu logiky. Je to relace mezi premisami a závěry logicky platných úsudků: v logicky platném úsudku závěr

Více

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

8.2 Používání a tvorba databází 8.2 Používání a tvorba databází Slide 1 8.2.1 Základní pojmy z oblasti relačních databází Slide 2 Databáze ~ Evidence lidí peněz věcí... výběry, výpisy, početní úkony Slide 3 Pojmy tabulka, pole, záznam

Více

6. blok část B Vnořené dotazy

6. blok část B Vnořené dotazy 6. blok část B Vnořené dotazy Studijní cíl Tento blok je věnován práci s vnořenými dotazy. Popisuje rozdíl mezi korelovanými a nekorelovanými vnořenými dotazy a zobrazuje jejich použití. Doba nutná k nastudování

Více

Terminologie v relačním modelu

Terminologie v relačním modelu 3. RELAČNÍ MODEL Relační model reprezentuje databázi jako soubor relací. Každá relace představuje tabulku nebo soubor ( ve smyslu soubor na nosiči dat ). Terminologie v relačním modelu řádek n-tice ( n-tuple,

Více

1. Množiny, zobrazení, relace

1. Množiny, zobrazení, relace Matematická analýza I přednášky M. Málka cvičení A. Hakové a R. Otáhalové Zimní semestr 2004/05 1. Množiny, zobrazení, relace První kapitola je věnována základním pojmům teorie množin. Pojednává o množinách

Více

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE Upozornění: Pro práci s RDF Oracle daty je třeba mít nainstalován Oracle Spatial Resource Description Framework (RDF). 1. Vytvoření tabulkového

Více

Úlohy k procvičování textu o univerzální algebře

Úlohy k procvičování textu o univerzální algebře Úlohy k procvičování textu o univerzální algebře Číslo za pomlčkou v označení úlohy je číslo kapitoly textu, která je úlohou procvičovaná. Každá úloha je vyřešena o několik stránek později. Kontrolní otázky

Více

19 Hilbertovy prostory

19 Hilbertovy prostory M. Rokyta, MFF UK: Aplikovaná matematika III kap. 19: Hilbertovy prostory 34 19 Hilbertovy prostory 19.1 Úvod, základní pojmy Poznámka (připomenutí). Necht (X,(, )) je vektorový prostor se skalárním součinem

Více

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS 7. Integrita a bezpečnost dat v DBS 7.1. Implementace integritních omezení... 2 7.1.1. Databázové triggery... 5 7.2. Zajištění bezpečnosti dat... 12 7.2.1. Bezpečnostní mechanismy poskytované SŘBD... 13

Více

Výroková logika dokazatelnost

Výroková logika dokazatelnost Výroková logika dokazatelnost Ke zjištění, zda formule sémanticky plyne z dané teorie (množiny formulí), máme k dispozici tabulkovou metodu. Velikost tabulky však roste exponenciálně vzhledem k počtu výrokových

Více

METRICKÉ A NORMOVANÉ PROSTORY

METRICKÉ A NORMOVANÉ PROSTORY PŘEDNÁŠKA 1 METRICKÉ A NORMOVANÉ PROSTORY 1.1 Prostor R n a jeho podmnožiny Připomeňme, že prostorem R n rozumíme množinu uspořádaných n tic reálných čísel, tj. R n = R } R {{ R }. n krát Prvky R n budeme

Více

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou MySQL Typy tabulek Storage Engines MyISAM defaultní, neumí transakce, umí fulltext InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) MEMORY (HEAP) v paměti; neumí transakce ARCHIVE velké množství

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev Úvod do databází Modelování v řízení Ing. Petr Kalčev Co je databáze? Množina záznamů a souborů, které jsou organizovány za určitým účelem. Jaké má mít přínosy? Rychlost Spolehlivost Přesnost Bezpečnost

Více

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy

postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy Formální systémy (výrokové) logiky postaveny výhradně na syntaktické bázi: jazyk logiky neinterpretujeme, provádíme s ním pouze syntaktické manipulace důkazy cíl: získat formální teorii jako souhrn dokazatelných

Více

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V.

15. Moduly. a platí (p + q)(x) = p(x) + q(x), 1(X) = id. Vzniká tak struktura P [x]-modulu na V. Učební texty k přednášce ALGEBRAICKÉ STRUKTURY Michal Marvan, Matematický ústav Slezská univerzita v Opavě 15. Moduly Definice. Bud R okruh, bud M množina na níž jsou zadány binární operace + : M M M,

Více

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava Šablona 32 VY_32_INOVACE_038.ICT.34 Tvorba webových stránek SQL stručné minimum OA a JŠ Jihlava, VY_32_INOVACE_038.ICT.34 Číslo

Více

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

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů. Modely datové Existují různé úrovně pohledu na data. Nejvyšší úroveň je úroveň, která zachycuje pouze vztahy a struktury dat samotných. Konceptuální model - E-R model. Další úrovní je logická úroveň Databázové

Více

Výroková a predikátová logika Výpisky z cvičení Martina Piláta

Výroková a predikátová logika Výpisky z cvičení Martina Piláta Výroková a predikátová logika Výpisky z cvičení Martina Piláta Jan Štětina 1. prosince 2009 Cviˇcení 29.9.2009 Pojem: Sekvence je konečná posloupnost, značíme ji predikátem seq(x). lh(x) je délka sekvence

Více

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec) MySQL přes MySQL Command Line Client Zobrazení existujících databází mysql> SHOW DATABASES; Database test Vytvoření databáze mysql> CREATE DATABASE krouzek; Query OK, 1 row affected (0.00 sec) mysql> SHOW

Více

množinu definujeme axiomaticky: nesnažíme se ji zkonstruovat (dokonce se ani nezabýváme otázkou,

množinu definujeme axiomaticky: nesnažíme se ji zkonstruovat (dokonce se ani nezabýváme otázkou, Matematická analýza I přednášky M. Málka cvičení A. Hakové a R. Otáhalové Zimní semestr 2004/05 2. Reálná čísla, funkce reálné proměnné V této kapitole zavádíme množinu, na níž stojí celá matematická analýza:

Více

Materiál ke cvičením - SQL

Materiál ke cvičením - SQL Materiál ke cvičením - 1. Stručná syntaxe vybraných příkazů jazyka (detailní syntaxe příkazů je uvedena on-line manuálech přístupných z prostředí sítě VŠE) SELECT výběr a zobrazení hodnot z databáze: SELECT

Více

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

Jiří Mašek BIVŠ V Pra r ha 20 2 08 Jiří Mašek BIVŠ Praha 2008 Procesvývoje IS Unifiedprocess(UP) Iterace vývoje Rysy CASE nástrojů Podpora metodických přístupů modelování Integrační mechanismy propojení modelů Podpora etap vývoje Generování

Více

Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé?

Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé? Fuzzy logika a reálný svět, aneb jsou všechny hromady skutečně malé? Jiří Močkoř University of Ostrava Department of Mathematics Institute for Research and Applications of Fuzzy Modeling 30. dubna 22,

Více

Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Algebra Struktury s jednou operací

Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz. Algebra Struktury s jednou operací Teoretická informatika Tomáš Foltýnek foltynek@pef.mendelu.cz Algebra Struktury s jednou operací Teoretická informatika 2 Proč zavádíme algebru hledáme nástroj pro popis objektů reálného světa (zejména

Více

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy

Volné stromy. Úvod do programování. Kořenové stromy a seřazené stromy. Volné stromy Volné stromy Úvod do programování Souvislý, acyklický, neorientovaný graf nazýváme volným stromem (free tree). Často vynecháváme adjektivum volný, a říkáme jen, že daný graf je strom. Michal Krátký 1,Jiří

Více

Použití databází na Webu

Použití databází na Webu 4IZ228 tvorba webových stránek a aplikací Jirka Kosek Poslední modifikace: $Date: 2010/11/18 11:33:52 $ Obsah Co nás čeká... 3 Architektura webových databázových aplikací... 4 K čemu se používají databázové

Více

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

Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat). 3. Relační model Relační model reprezentuje databázi jako soubor relací. Kaţdá relace představuje tabulku nebo soubor (ve smyslu soubor na nosiči dat). Příklad 3.1: Filmová databáze relace: FILM REŢISÉR

Více

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

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410

Více

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují 1. u + v = v + u, u, v V 2. (u + v) + w = u + (v + w),

Více

Ukládání a vyhledávání XML dat

Ukládání a vyhledávání XML dat XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2014/12/04 19:41:24 $ Obsah Ukládání XML dokumentů... 3 Ukládání XML do souborů... 4 Nativní XML databáze... 5 Ukládání

Více

PHP a Large Objecty v PostgreSQL

PHP a Large Objecty v PostgreSQL PHP a Large Objecty v PostgreSQL Pavel Janík ml. http://www.janik.cz PHP a Large Objecty v PostgreSQL 1 Jazyk PHP je velmi mocným jazykem pro vývoj webových aplikací. Má podporu snad všech velkých i menších

Více

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

Databázové systémy. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního Databázové systémy - úvod do relačního modelu Tomáš Skopal - převod konceptuálního schématu do relačního Osnova přednášky relační model převod ER diagramu do relačního modelu tvorba univerzálního relačního

Více

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Výroková logika II Negace Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0). Na konkrétních příkladech si ukážeme, jak se dají výroky negovat. Obecně se výrok dá negovat tak, že před

Více

Dotazovací jazyky I. Datová krychle. Soběslav Benda

Dotazovací jazyky I. Datová krychle. Soběslav Benda Dotazovací jazyky I Datová krychle Soběslav Benda Obsah Úvod do problematiky Varianty přístupu uživatelů ke zdrojům dat OLTP vs. OLAP Datová analýza Motivace Vytvoření křížové tabulky Datová krychle Teorie

Více

Databázové a informační systémy Jana Šarmanová

Databázové a informační systémy Jana Šarmanová Databázové a informační systémy Jana Šarmanová Obsah Úloha evidence údajů, způsoby evidování Databázové technologie datové modely, dotazovací jazyky. Informační systémy Datové sklady Metody analýzy dat

Více

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace Kapitola 2 Algebraické struktury Řada algebraických objektů má podobu množiny s nějakou dodatečnou strukturou. Například vektorový prostor je množina vektorů, ty však nejsou jeden jako druhý : jeden z

Více

TEORIE ZPRACOVÁNÍ DAT

TEORIE ZPRACOVÁNÍ DAT Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky TEORIE ZPRACOVÁNÍ DAT pro kombinované a distanční studium Jana Šarmanová Ostrava 2003 Jana Šarmanová, 2003 Fakulta

Více

Logika. Akademie managementu a komunikace, Praha PhDr. Peter Jan Kosmály, PhD.

Logika. Akademie managementu a komunikace, Praha PhDr. Peter Jan Kosmály, PhD. Akademie managementu a komunikace, Praha PhDr. Peter Jan Kosmály, PhD. Tematické okruhy: 1. Stručné dějiny logiky a její postavění ve vědě 2. Analýza složených výroků pomocí pravdivostní tabulky 3. Subjekt-predikátová

Více

Vědecký tutoriál, část I. A Tutorial. Vilém Vychodil (Univerzita Palackého v Olomouci)

Vědecký tutoriál, část I. A Tutorial. Vilém Vychodil (Univerzita Palackého v Olomouci) ..! POSSIBILISTIC Laboratoř pro analýzu INFORMATION: a modelování dat Vědecký tutoriál, část I A Tutorial Vilém Vychodil (Univerzita Palackého v Olomouci) George J. Klir State University of New York (SUNY)

Více

KMA/MDS Matematické důkazy a jejich struktura

KMA/MDS Matematické důkazy a jejich struktura Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.0141 KMA/MDS Matematické důkazy a jejich struktura Seminář 1 Cílem tohoto semináře je efektivní uvedení

Více

definovat a vysvětlit na příkladech základní pojmy relačního modelu

definovat a vysvětlit na příkladech základní pojmy relačního modelu 5.1. Relační schéma, relace 5. RELAČNÍ DATOVÝ MODEL Cíl Po prostudování celé kapitoly budete umět definovat relaci, relační schéma a schéma relační databáze, rozumět definicím a na příkladech vysvětlit

Více

Vlastní číslo, vektor

Vlastní číslo, vektor [1] Vlastní číslo, vektor motivace: směr přímky, kterou lin. transformace nezmění invariantní podprostory charakteristický polynom báze, vzhledem ke které je matice transformace nejjednodušší podobnost

Více

1 Mnohočleny a algebraické rovnice

1 Mnohočleny a algebraické rovnice 1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem

Více

Databázové systémy IDS

Databázové systémy IDS Databázové systémy IDS Studijní opora doc. Ing. Jaroslav Zendulka Ing. Ivana Rudolfová Verze: 18. 7. 2006 Tato publikace je určena výhradně jako podpůrný text pro potřeby výuky. Bude užita výhradně v přednáškách

Více

7. Normální formy. PŘ: POJIŠŤOVNA Povinné ručení relace Platby

7. Normální formy. PŘ: POJIŠŤOVNA Povinné ručení relace Platby 7. Normální formy PŘ: POJIŠŤOVNA Povinné ručení relace Platby Rodné číslo 7407111234 7407111234 7407111234 7407111234 481123123 481123123 481123123 481123123 Jméno majitele Dvořák Petr Dvořák Petr Dvořák

Více

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav Střední průmyslová škola a Vyšší odborná škola technická Brno, Sokolská 1 Šablona: Název: Téma: Autor: Číslo: Anotace: Inovace a zkvalitnění výuky prostřednictvím ICT Databáze Základní seznámení s MySQL

Více

12. blok Fyzický návrh databáze

12. blok Fyzický návrh databáze 12. blok Fyzický návrh databáze Studijní cíl Tento studijní blok se zabývá metodologií fyzického návrhu databáze. Především se zabývá fází převodu logického modelu na model fyzický. Bude vysvětlen účel

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY (doplňující text ke konzultacím v 3. ročníku kombinovaného bakalářského studia oboru Aplikovaná

Více

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška Disjunktivní a konjunktivní normáln lní tvar formule 2.přednáška Disjunktivní normáln lní forma Definice Řekneme, že formule ( A ) je v disjunktivním normálním tvaru (formě), zkráceně v DNF, jestliže je

Více

Limita a spojitost funkce

Limita a spojitost funkce Limita a spojitost funkce Základ všší matematik Dana Říhová Mendelu Brno Průřezová inovace studijních programů Lesnické a dřevařské fakult MENDELU v Brně (LDF) s ohledem na disciplin společného základu

Více

4. Topologické vlastnosti množiny reálných

4. Topologické vlastnosti množiny reálných Matematická analýza I přednášky M. Málka cvičení A. Hakové a R. Otáhalové Zimní semestr 2004/05 4. Topologické vlastnosti množiny reálných čísel V této kapitole definujeme přirozenou topologii na množině

Více

Posloupnosti a jejich konvergence POSLOUPNOSTI

Posloupnosti a jejich konvergence POSLOUPNOSTI Posloupnosti a jejich konvergence Pojem konvergence je velmi důležitý pro nediskrétní matematiku. Je nezbytný všude, kde je potřeba aproximovat nějaké hodnoty, řešit rovnice přibližně, používat derivace,

Více

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

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 Systém řízení báze dat SŘBD programový systém umožňující vytvoření, údržbu a použití báze dat databáze program Database engine (databázový stroj, databázový motor, databázové jádro) funkce: přenos (načítání)

Více

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307 Stručný obsah část I Přehled jazyka SQL Kapitola 1: Úvod 27 Kapitola 2: Stručný úvod do jazyka SQL 37 Kapitola 3: Jazyk SQL z širšího pohledu 45 Kapitola 4: Relační databáze 69 Část II Získávání dat Kapitola

Více

Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 1: Dotazovací jazyk SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 Instalace Microsoft SQL Serveru 2 Dotazovací jazyk SQL 3 Příkaz SELECT

Více

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává. 1 Základní pojmy matematické logiky Výrokový počet... syntaktické hledisko Predikátový počet... sémantické hledisko 1.1 VÝROKOVÝ POČET výrok-každésdělení,uněhožmásmyslseptát,zdaječinenípravdivé, aproněžprávějednaztěchtodvoumožnostínastává.

Více

Reziduovaná zobrazení

Reziduovaná zobrazení Reziduovaná zobrazení Irina Perfilieva Irina.Perfilieva@osu.cz 1. března 2015 Outline 1 Reziduované zobrazení 2 Izotónní/Antitónní zobrazení Definice Necht A, B jsou uspořádané množiny. Zobrazení f : A

Více

3. Jazyky relačních databázových systémů

3. Jazyky relačních databázových systémů 3. Jazyky relačních databázových systémů 3.1. Tabulky ilustračního příkladu - Spořitelna... 3 3.2. Jazyk SQL... 5 3.2.1. Úvod... 5 3.2.2. Definice dat... 7 3.2.3. Manipulace s daty... 14 3.2.4. Pohledy...

Více

zobrazení délky ve výpisu v psql

zobrazení délky ve výpisu v psql zobrazení délky ve výpisu v psql postgres=# \dt+ codebooks.* List of relations Schema Name Type Owner Size Description -----------+----------+-------+-------+------------+------------- codebooks lau1 table

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 23. Otázka : Datový model XML, dotazovací jazyky nad XML daty Obsah : 1 Úvod o XML 2 Vztah XML a databáze 2.1 Databázové systémy s podporou XML 2.2

Více

analytické geometrie v prostoru s počátkem 18. stol.

analytické geometrie v prostoru s počátkem 18. stol. 4.. Funkce více proměnných, definice, vlastnosti Funkce více proměnných Funkce více proměnných se v matematice začal používat v rámci rozvoje analtické geometrie v prostoru s počátkem 8. stol. I v sami

Více

Milan Bořík, Vojtěch Honzík OPEN SOURCE GIS FUNKCE V PROSTŘEDÍ POSTGIS, TVORBA VLASTNÍCH FUNKCÍ A GRAFICKÝCH VÝSTUPŮ

Milan Bořík, Vojtěch Honzík OPEN SOURCE GIS FUNKCE V PROSTŘEDÍ POSTGIS, TVORBA VLASTNÍCH FUNKCÍ A GRAFICKÝCH VÝSTUPŮ 25. KONFERENCE O GEOMETRII A POČÍTAČOVÉ GRAFICE Milan Bořík, Vojtěch Honzík OPEN SOURCE GIS FUNKCE V PROSTŘEDÍ POSTGIS, TVORBA VLASTNÍCH FUNKCÍ A GRAFICKÝCH VÝSTUPŮ Abstrakt Open source GIS (geografický

Více

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

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou: Relační databáze Pojem databáze, druhy databází Databází se myslí uložiště dat. V době začátků využívání databází byly tyto členěny hlavně hierarchicky, případně síťově (rozšíření hierarchického modelu).

Více

Automatizované řešení úloh s omezeními

Automatizované řešení úloh s omezeními Automatizované řešení úloh s omezeními Martin Kot Katedra informatiky, FEI, Vysoká škola báňská Technická universita Ostrava 17. listopadu 15, Ostrava-Poruba 708 33 Česká republika 25. října 2012 M. Kot

Více

Vysoká škola ekonomická v Praze

Vysoká škola ekonomická v Praze Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačních technologií Student Vedoucí bakalářské práce Recenzent bakalářské práce : Ondřej Novák : RNDr. Helena Palovská, PhD.

Více

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4

2 Strukturované datové typy 2 2.1 Pole... 2 2.2 Záznam... 3 2.3 Množina... 4 Obsah Obsah 1 Jednoduché datové typy 1 2 Strukturované datové typy 2 2.1 Pole.................................. 2 2.2 Záznam................................ 3 2.3 Množina................................

Více

13. blok Práce s XML dokumenty v databázi Oracle

13. blok Práce s XML dokumenty v databázi Oracle 13. blok Práce s XML dokumenty v databázi Oracle Studijní cíl Tento blok je věnován práci s XML dokumenty, možnostmi jejich uložení a práce s nimi v databázi Oracle a datovému typu XMLType. Doba nutná

Více

Klauzulární logika. Znalostní báze. Šárka Vavrečková

Klauzulární logika. Znalostní báze. Šárka Vavrečková Klauzulární logika Znalostní báze Šárka Vavrečková Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě sarka.vavreckova@fpf.slu.cz 26. listopadu 2007 (Znalostní báze) Klauzulární

Více

Zpracování informací

Zpracování informací Ústav automatizace a informatiky Fakulta strojního inženýrství Vysoké učení technické v Brně Přednáška č. 6 z předmětu Zpracování informací Ing. Radek Poliščuk, Ph.D. Tato publikace vznikla jako součást

Více

Hierarchický databázový model

Hierarchický databázový model 12. Základy relačních databází Když před desítkami let doktor E. F. Codd zavedl pojem relační databáze, pohlíželo se na tabulky jako na relace, se kterými se daly provádět různé operace. Z matematického

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ Ústav automatizace a informatiky DATABÁZOVÉ SYSTÉMY (doplňující text ke konzultacím v 3. ročníku kombinovaného bakalářského studia oboru Aplikovaná

Více

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole 1815 1864. Aplikace booleovské logiky

Modely vyhledávání informací 4 podle technologie. 1) Booleovský model. George Boole 1815 1864. Aplikace booleovské logiky Modely vyhledávání informací 4 podle technologie 1) Booleovský model 1) booleovský 2) vektorový 3) strukturní 4) pravděpodobnostní a další 1 dokumenty a dotazy jsou reprezentovány množinou indexových termů

Více

2. blok Zabezpečení a ochrana dat

2. blok Zabezpečení a ochrana dat 2. blok Zabezpečení a ochrana dat Studijní cíl Tento blok je věnován základům zabezpečení a ochrany dat uložených v relačních databázích, tj. uživatelským účtům, systémovým a objektovým oprávněním a rolím.

Více

Úvod do informačních technologií

Úvod do informačních technologií Úvod do informačních technologií přednášky Jan Outrata září prosinec 2009 (aktualizace září prosinec 2012) Jan Outrata (KI UP) Úvod do informačních technologií září prosinec 2012 1 / 58 Binární logika

Více

Databáze v MS ACCESS

Databáze v MS ACCESS 1 z 14 19.1.2014 18:43 Databáze v MS ACCESS Úvod do databází, návrh databáze, formuláře, dotazy, relace 1. Pojem databáze Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele,

Více

UDBS Cvičení 10 Funkční závislosti

UDBS Cvičení 10 Funkční závislosti UDBS Cvičení 10 Funkční závislosti Ing. Miroslav Valečko Zimní semestr 2014/2015 25. 11. 2014 Návrh schématu databáze Existuje mnoho způsobů, jak navrhnout schéma databáze Některá jsou lepší, jiná zase

Více

Normální formy, referenční integrita, návrh databáze, interakce s ostatními jazyky

Normální formy, referenční integrita, návrh databáze, interakce s ostatními jazyky Databázové systémy Normální formy, referenční integrita, návrh databáze, interakce s ostatními jazyky Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/YDATA: Přednáška

Více

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

Využití OOP v praxi -- Knihovna PHP -- Interval.cz Page 1 of 6 Knihovna PHP Využití OOP v praxi Po dlouhé teorii přichází na řadu praxe. V následujícím textu si vysvětlíme možnosti přístupu k databázi pomocí různých vzorů objektově orientovaného programování

Více

Optimalizace dotazů slajdy k přednášce DBI006

Optimalizace dotazů slajdy k přednášce DBI006 Optimalizace dotazů slajdy k přednášce DBI006 Jaroslav Pokorný Kontext v SŘBD Jde o klíčový modul SŘBD cíl: učinit optimalizaci nezávislou na strategii zápisu dotazu protipříklady: navigační jazyky, interprety

Více

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

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph) Marketingová komunikace Kombinované studium Skupina N9KMK3PH (vm3aph) 1. soustředění Mgr. Pavel Vávra 9103@mail.vsfs.cz http://vavra.webzdarma.cz/home/index.htm Co nás čeká I. Úvod do teorie DB systémů

Více

4.9.70. Logika a studijní předpoklady

4.9.70. Logika a studijní předpoklady 4.9.70. Logika a studijní předpoklady Seminář je jednoletý, je určen pro studenty posledního ročníku čtyřletého studia, osmiletého studia a sportovní přípravy. Cílem přípravy je orientace ve formální logice,

Více

Spolehlivost soustav

Spolehlivost soustav 1 Spolehlivost soustav Spolehlivost soustav 1.1 Koherentní systémy a strukturní funkce Budeme se zabývat modelováním spolehlivosti zřízení s ohledem na spolehlivost jeho komponent. Jedním z hlavních cílů

Více

Optimalizace plnění a aktualizace velkých tabulek. Milan Rafaj, IBM

Optimalizace plnění a aktualizace velkých tabulek. Milan Rafaj, IBM Optimalizace plnění a aktualizace velkých tabulek Milan Rafaj, IBM Agenda OLTP vs DSS zpracování Optimalizace INSERT operací Optimalizace DELETE operací Optimalizace UPDATE operací Zdroje Dotazy OLTP vs

Více

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP Kódy pro odstranění redundance, pro zabezpečení proti chybám Demonstrační cvičení 5 INP Princip kódování, pojmy Tady potřebujeme informaci zabezpečit, utajit apod. zpráva 000 111 000 0 1 0... kodér dekodér

Více