13/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza (bez duplikátov a null hodnôt): capuje(krcma, Alkohol), lubi(pijan,

Podobné dokumenty
7/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min

s sol

5/1/2012 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza: capuje(krcma, Alkohol, Cena), lubi(pijan, Alkohol) navstivil(idn, P

s sol

Paralelné algoritmy, cast c. 2

Slide 1

gis5 prifuk

Microsoft Word - 06b976f06a0Matice - Uzivatelska Dokumentacia

8 Cvičenie 1.1 Dokážte, že pre ľubovoľné body X, Y, Z platí X + Y Z = Z + Y X. 1.2 Dokážte, že pre ľubovoľné body A, B, D, E, F, G afinného priestoru

Predchádzame vzniku odpadov Vyhodnotenie dotazníka 1. Pohlavie respondentov muži ženy neuvedené Vek respondentov

Tue Oct 3 22:05:51 CEST Začiatky s jazykom C 2.1 Štruktúra programu Štruktúra programu by sa dala jednoducho popísať nasledovnými časťami, kto

Prenosový kanál a jeho kapacita

Rozvojom spoločnosti najmä v druhej polovici minulého storočia dochádza čím ďalej tým viac k zásahu človeka do životného prostredia

Microsoft Word - skripta3b.doc

test z informatiky - hardvér Test vytvoril Stanislav Horváth Vstupno - výstupné zariadenia Otázka č.1: Aké zariadenie je na obrázku? (1 bod) a) vstupn

User:tomas.melicher

GEODETICKÝ A KARTOGRAFICKÝ ÚSTAV BRATISLAVA Chlumeckého 4, Bratislava II Obsah 1. Export údajov ZBGIS do CAD formá

Siete vytvorené z korelácií casových radov

Relačné a logické bázy dát

Úroveň strojového kódu procesor Intel Pentium Pamäťový operand Adresovanie pamäte Priama nepriama a indexovaná adresa Práca s jednorozmerným poľom Pra

Microsoft Word - zapis-predmetov-AiS

Teória pravdepodobnosti Zákony velkých císel

2.5. Dotyčnica krivky, dotykový kužeľ. Nech f je krivka a nech P V (f) (t.j. m P (f) 1). Ak m P (f) = r a l je taká priamka, že I P (f, l) > r, potom

Microsoft Word - manual_ESS_2010

Úvod do lineárnej algebry Monika Molnárová Prednášky 2006

1 Portál pre odborné publikovanie ISSN Heuristický adaptívny PSD regulátor založený na miere kmitavosti Šlezárová Alexandra Elektrotechnika

Vzorové riešenia úlohy 4.1 Bodovanie Úvod do TI 2010 Dôvod prečo veľa z Vás malo málo bodov bolo to, že ste sa nepokúsili svoje tvrdenia dokázať, prič

Microsoft Word - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_

Databázy (1) - Prednáška 03

Matej Kendera - PDF, word, lucene, java

Centrum vedecko-technických informácií, Odbor pre hodnotenie vedy, Oddelenie pre hodnotenie publikačnej činnosti Vyhľadávanie a práca so záznamami - C

Komunikácia deklarantských SW s IS CEP Bratislava OPIS je spolufinancovaný z ERDF

Agenda záverečnej práce pedagóg Celá agenda týkajúca sa záverečnej práce je dostupná v obrazovke Záverečná práca (menu Agenda pedagóga -> Záverečné pr

ŠTATÚT SÚŤAŽE

VRANOV - ODCHODY .xls

Dobývanie znalostí

Ponuka Štart

SK MATEMATICKÁOLYMPIÁDA skmo.sk 2009/ ročník MO Riešenia úloh česko-poľsko-slovenského stretnutia 1. Určte všetky trojice (a, b, c) kladných r

8

DediĊnosť

C-Monitor WIN klient pre verziu 2.8

Metódy násobenie v stredoveku

Microsoft Word - Diskusia11.doc

SK MATEMATICKA OLYMPIADA 2010/ ročník MO Riešenia úloh domáceho kola kategórie Z4 1. Doplň do prázdnych políčok čísla od 1 do 7 každé raz tak,

Metodika práce s gitom Spôsob práce s gitom V projekte sa budú udržovať dve hlavné vetvy: - Master - Hlavná vetva, ktorá odráža otestovaný funkčný kód

Informačné technológie

Používateľská príručka POUŽÍVATEĽSKÁ PRÍRUČKA Generátor XML dávok pre Informačný systém kontrolných známok z MS Excel šablóny Dátum: Verzia

ČG_O.L

Využitie moderných meracích technológií na hodnotenie kvality tlače

III. Diferenciálny počet funkcie viac premenných (Prezentácia k prednáškam, čast B) Matematická analýza IV (ÚMV/MAN2d/10) RNDr. Lenka Halčinová, PhD.

(Microsoft Word - Tuzemsk\341 a zahrani\350n\341 jazda \232tandardn\341 jazda.docx)

Autoregresné (AR) procesy Beáta Stehlíková Časové rady, FMFI UK Autoregresné(AR) procesy p.1/22

Pripojenie sa na počítač a ovládanie vzdialenej obrazovky cez CM Remote

ŤAHÁK PRAKTICKÁ ČASŤ Prerekvizity: LINUX: WINDOWS: Inštalácia Oracle VirtualBoxu a vytvorenie virtuálneho stroja /návod nižšie/ Operačný system Window

Pokrocilé programovanie II - Nelineárne iteracné schémy, chaos, fraktály

Microsoft Word - Zaver.pisomka_januar2010.doc

Strana 5526 Zbierka zákonov č. 590/2003 Čiastka NARIADENIE VLÁDY Slovenskej republiky zo 17. decembra 2003 o skúškach odbornej spôsobilosti pr

M59dkZ9ri10

Prezentácia programu PowerPoint

Elmasri, Fundamentals of DBSs

Priebeh funkcie

1

Paralelné algoritmy, cast c. 3

A51

PRAVIDLÁ SZC

fm 2012 a predajňa.doc

A 1

Matematický model činnosti sekvenčného obvodu 7 MATEMATICKÝ MODEL ČINNOSTI SEKVENČNÉHO OBVODU Konečný automat predstavuje matematický model sekvenčnéh

1. KOMPLEXNÉ ČÍSLA 1. Nájdite výsledok operácie v tvare x+yi, kde x, y R. a i (5 2i)(4 i) b. i(1 + i)(1 i)(1 + 2i)(1 2i) (1 7i) c. (2+3i) a+bi d

Programové a informačné systémy 2-INF-144 Kompilátory Štruktúra a použitie kompilátorov, nástroje pre tvorbu kompilátorov. Základné pojmy a štruktúra

Architektúra a návrh Zdôvodnenie navrhnutej architektúry Systém si architektonicky môžeme rozdeliť na viacero vrstiev. Najpodstatnejšie je oddelenie z

STRUČNÝ NÁVOD KU IP-COACHU

trafo

prijimacky 2014 MAT 4rocne ver A.doc

bakalarska prezentacia.key

NSK Karta PDF

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

Microsoft Word - Príloha P2 - zadania pracovných listov pre 6. ročník

10 tipov pre tvoj forex úspech

Axióma výberu

Pokrocilé programovanie XI - Diagonalizácia matíc

PowerPoint Presentation

Microsoft Word - Argumentation_presentation.doc

Novinky v OpcDbGateway 5.0

Resolution

História

MERANIE U a I.doc

Import absencí z ASC

Snímka 1

sprievodca_exp.pdf

Čísla Nájdite všetky dvojice prirodzených čísiel, ktoré vyhovujú rovnici: 2 ( a+ b) ( a b) + 2b ( a+ 2b) 2b = 49 RIEŠENIE ( ) ( ) ( ) 2 a+ b a

Distance search Ján Garaj Fakulta informatiky a informačných technológií Slovenská technická univerzita Školský rok: 2008/09 Popis problému a motiváci

Používateľský manuál EZP

Snímka 1

Meno: Škola: Ekonomická olympiáda 2017/2018 Test krajského kola SÚŤAŽ REALIZUJE PARTNERI PROJEKTU

Databázy (1) - Prednáška 10

Snímka 1

Photo Album

SLOVENSKÁ TECHNICKÁ UNIVERZITA V BRATISLAVE Fakulta informatiky a informačných technológií STU Ústav počítačových systémov a sietí ZADANIE SEMESTRÁLNE

Prepis:

13/1/2015 Úvod do databáz, skúškový test, max 25 bodov, 90 min 1. Daná je databáza (bez duplikátov a null hodnôt): capuje(krcma, Alkohol), lubi(pijan, Alkohol), navstivil(idn, Pijan, Krcma), vypil(idn, Alkohol, Mnozstvo). Platí: Idn Pijan, Krcma; Idn, Alkohol Mnozstvo; Mnozstvo > 0. a) Nájdite dvojice [K, A] také, že krčma K čapuje alkohol A; a zároveň každý pijan, ktorý ľúbi alkohol A, ho vypil pri niektorej návšteve krčmy K. Sformulujte tento dotaz v relačnom kalkule (2), Datalogu (2) a relačnej algebre (2). Relačný kalkul: {[K, A]: capuje(k, A) /* zly_pijan(k, A) */ ( P capuje(k, A) lubi(p, A) /* niekedy_vypil(p, K, A) */ ( I M navstivil(i, P, K) vypil(i, A, M) ) ) } Datalog: answer(k, A) capuje(k, A), not zly_pijan(k, A). zly_pijan(k, A) capuje(k, A), /* safety */ lubi(p, A), not niekedy_vypil(p, K, A). niekedy_vypil(p, K, A) navstivil(i, P, K), vypil(i, A, _). Relačná algebra: niekedy_vypil := Pijan, Krcma, Alkohol (navstivil vypil) zly_pijan := Krcma, Alkohol ((capuje lubi) answer := capuje zly_pijan niekedy_vypil)

b) Nájdite dvojice [P, A] také, že vo viacej než polovici krčiem, ktoré čapujú alkohol A, pijan P celkovo vypil viacej alkoholu A než ktorýkoľvek iný pijan. Sformulujte tento dotaz v Datalogu (2) a SQL (2). Datalog: answer(p, A) subtotal(vitaz(p, A, K), [P, A], [CV = count(k)]), subtotal(capuje(k, A), [A], [C = count(k)]), 2 * CV > C. /* CV2 is 2 * CV, CV2 > C */ vitaz(p, A, K) vypil_total(p, A, K, _), not niekto_iny_aspon_tolko(p, A, K). vypil_total(p, A, K, T) subtotal(nv(p, A, K, M, _), [P, A, K], [T = sum(m)]). niekto_iny_aspon_tolko(p, A, K) vypil_total(p, A, K, T), vypil_total(p2, A, K, T2), not P = P2, T2 >= T. nv(p, A, K, M, I) navstivil(i, P, K), vypil(i, A, M).

SQL: create temporary table vypil_total as select n.pijan, v.alkohol, n.krcma, sum(v.mnozstvo) as T from navstivil n, vypil v where n.idn = v.idn group by n.pijan, v.alkohol, n.krcma create temporary table vitaz as select vt.pijan, vt.alkohol, vt.krcma from vypil_total vt where not exists ( /* niekto_iny_aspon_tolko(p, A, K) */ select * from vypil_total vt2 where vt2.pijan <> vt.pijan and vt2.alkohol = vt.alkohol and vt2.krcma = vt.krcma and vt2.t > vt.t ) create temporary table krcmy_vitazne as select v.pijan, v.alkohol, count(distinct v.krcma) as C from vitaz v group by v.pijan, v.alkohol create temporary table krcmy_capujuce as select c.alkohol, count(distinct v.krcma) as C from capuje c group by c.alkohol /* answer */ select kv.pijan, kv.alkohol from krcmy_vitazne kv, krcmy_capujuce kc where kv.alkohol = kc.alkohol and 2 * kv.c > kc.c

2. Daná je relácia r(a, B, C, D, E, F, G) s funkčnými závislosťami ABCD EF; ABE FG; ABDG CF; G BD. a) Nájdite všetky kľúče relácie r. (2) ABCDEFG +G: AG G: ABCDEF B: ACDEF +B: ABCDEF +E: ABE E: ABCDF C: ABDF +C: ABCDF D: ABCF +D: ABCDF F: ABCD Kľúče sú ABCD, ABE, AG. Iné kľúče nie sú. b) Dekomponujte r do tretej normálnej formy, bezstratovo a so zachovaním všetkých funkčných závislostí. (2) Po minimalizácii ľavých strán kánonických funkčných závislostí: ABCD E ABCD F ABE F ABE G AG C AG F G B G D Po odstránení redundantných funkčných závislostí dostávame (nejaké) minimálne pokrytie: ABCD E ABE G AG C AG F G B G D 3NF dekompozícia: (A, B, C, D, E), (A, B, E, G), (A, C, F, G), (B, D, G) Alebo: (A, B, C, D, E), (A, B, E, G), (A, C, F, G), (D, G) Alebo (všetky atribúty okrem F sú kľúčové): (A, B, C, D, E, G), (A, F, G)

c) Uvažujte dekompozíciu r do (A, B, C, D, E), (A, C, F, G), (B, D, G). Rozhodnite, či je bezstratová (či sa spája bezstratovo) (1); ABCDE a1 a2 a3 a4 a5 ACFG a1 a3 a6 a7 G BD ABCDE a1 a2 a3 a4 a5 ACFG a1 a2 a3 a4 a6 a7 ABCD E ABCDE a1 a2 a3 a4 a5 ACFG a1 a2 a3 a4 a5 a6 a7 ABE FG ABCDE a1 a2 a3 a4 a5 a6 a7 ACFG a1 a2 a3 a4 a5 a6 a7 Áno, daná dekompozícia je bezstratová. či zachováva všetky funkčné závislosti (1); Stačí overiť zachovanie funkčných závislostí minimálneho pokrytia z podúlohy b). Zistíme, že funkčná závislosť ABE G nie je zachovaná v žiadnej relácii danej dekompozície. Teda nie je pravda, že daná dekompozícia zachováva všetky funkčné závislosti. či je v Boyce-Coddovej normálnej forme (2). V relácii (B, D, G) platia len netriviálne funkčné závislosti G B a G D, pričom G je nadkľúč tej relácie. Táto relácia je v BCNF. V relácii (A, C, F, G) platia len netriviálne funkčné závislosti AG C a AG F, pričom AG je nadkľúč tej relácie. Táto relácia je v BCNF. V relácii (A, B, C, D, E) platia len netriviálne funkčné závislosti ABCD E, ABE C, ABE D, pričom ABCD a ABE sú nadkľúče tej relácie. Táto relácia je v BCNF. Áno, daná dekompozícia je v BCNF.

3. Pri opätovnom štarte databázového systému obsahuje log-file nasledujúce záznamy (zoradené od najstaršieho po najnovší): <T0, start>, <T0, A, 20, 100>, <T1, start>, <T0, commit>, <T2, start>, <T2, A, 100, 50>, <T2, B, 200, 250>, <T1, A, 50, 70>, <T1, commit>. a) Odsimulujte algoritmus obnovy (bez predpokladov na cache) pre tento log-file, okomentujte jednotlivé kroky algoritmu. (2) Zostupný prechod cez log (undo): UNDO_LIST := {}; REDO_LIST := {} /* inicializácia */ <T1, commit>: REDO_LIST := {T1} /* pridaj T1 do REDO_LIST */ <T1, A, 50, 70> <T2, B, 200, 250> UNDO_LIST := {T2}; B := 200 /* undo */ <T2, A, 100, 50> A := 100 /* undo */ <T2, start> UNDO_LIST := {} /* T2 netreba ďalej evidovať */ <T0, commit> REDO_LIST := {T1, T0} /* pridaj T0 do REDO_LIST */ <T1, start> <T0, A, 20, 100> <T0, start> Vzostupný prechod cez log (redo): <T0, start> <T0, A, 20, 100> A := 100 /* redo */ <T1, start> <T0, commit> REDO_LIST := {T1} /* T0 netreba ďalej evidovať */ <T2, start> <T2, A, 100, 50> <T2, B, 200, 250> <T1, A, 50, 70> A := 70 /* redo */ <T1, commit> REDO_LIST := {} b) Uvažujte systém, ktorý pri vykonávaní operácie write okamžite zapisuje novú hodnotu do databázy. V ktorom momente je v takomto systéme potrebné vykonať operáciu UNDO resp. REDO počas normálnej prevádzky? Vysvetlite. (1) Operáciu REDO netreba počas bežnej prevádzky nikdy vykonať. Operáciu UNDO treba vykonať hneď po aborte niektorej transakcie.

4. Uvažujte SQL dotaz select r.x, s.x from r, s where r.x = s.x and r.y > 7. Relácia r je uložená v 500 diskových blokoch, relácia s je uložená v 1000 diskových blokoch. Bloky na disku a v operačnej pamäti sú rovnako veľké. Relácie r, s neobsahujú duplikáty ani null hodnoty, atribút X je kľúčom v r aj v s. K dispozícii je 200 voľných blokov v operačnej pamäti. a) Dotaz sa počíta metódou nested-loop-join. Popíšte spôsob využitia voľných blokov v RAM. (1) 198 blokov sa použije pre vstup relácie r 1 blok sa použije pre vstup relácie s 1 blok sa použije pre výstup výslednej relácie Uveďte počet vstupných diskových operácií (z disku do RAM), vysvetlite. (1) Prečíta sa 198 blokov r a postupne 1000 blokov s, pre každú kombináciu n-tíc r a s sa vypočíta výstup: 198 + 1000 = 1198 vstupných operácií Prečíta sa ďalších 198 blokov r a postupne 999 blokov s (1 blok s je už v RAM), pre každú kombináciu n-tíc r a s sa vypočíta výstup: 198 + 999 = 1197 vstupných operácií Prečíta sa posledných 104 blokov r a 999 blokov s (1 blok s je už v RAM), pre každú kombináciu n-tíc r a s sa vypočíta výstup: 104 + 999 = 1103 vstupných operácií Celkový počet vstupných operácií: 1198 + 1197 + 1103 = 3498 b) Uveďte vhodný spôsob indexovania relácií r a s a načrtnite metódu výpočtu daného dotazu, ktorá je vďaka indexovaniu efektívnejšia než nested-loop join. (1) Pre výpočet tohto dotaz je vhodné vytvoriť B-tree (alebo B + -tree) indexy pre relácie r a s podľa joinovacieho atribútu X. Usporiadanie r aj s podľa atribútu X umožňuje počítať daný dotaz metódou merge-join, ktorá funguje zhruba ako druhá fáza merge-sort. Keď vieme, že X je kľúčový atribút r aj s (teda pre ľubovoľnú hodnotu X existuje v r aj v s najviac 1 záznam), v RAM stačí dokonca rezervovať 1 blok pre vstup r, 1 blok pre vstup s a 1 blok pre výstup. Ideou je prečítať 1 blok z každej relácie a otestovať joinovaciu podmienku. Ak platí, do výstupného bloku sa zapíše výstupná dvojica. Ak neplatí, pokračuje sa v testovaní ďalším záznamom tej relácie, ktorej hodnota X je menšia než v tej druhej relácii (v prípade rovnosti hodnôt X sa prečíta nasledujúci záznam v r aj v s). Po prečítaní všetkých záznamov vo vstupnom bloku niektorej relácie sa prečíta z disku do RAM ďalší blok relácie s tou menšou hodnotou X. Testovanie joinovacej podmienky a posúvanie menšej relácie sa opakuje až kým sa obe relácie nedočítajú. Uveďte počet vstupných diskových operácií, vysvetlite. (1) Pri použití merge-join sa každý blok r aj s prečíta najviac raz. Počet vstupných operácií je teda nanajvýš 500 + 1000 = 1500. Namiesto vyhľadávacieho stromu sa dá použiť hashovaný index. Redukcia vstupných operácií môže byť dokonca ešte väčšia (s predpokladom perfektnej hashovacej funkcie).