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

Podobné dokumenty
s sol

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

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,

s sol

Slide 1

gis5 prifuk

Paralelné algoritmy, cast c. 2

Microsoft Word - skripta3b.doc

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

Microsoft Word - Argumentation_presentation.doc

0022-vub-mobilne-tokeny-200x200-v03.indd

Axióma výberu

000____OBAL1-ZZ s Eurom.vp

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

Microsoft PowerPoint - OOP_prednaska_10.pptx

Microsoft Word - Algoritmy a informatika-priesvitky02.doc

PowerPoint Presentation

Elmasri, Fundamentals of DBSs

Ú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

Poznámky k cvičeniu č. 2

PowerPoint Presentation

NSK Karta PDF

SPOJENÁ ŠKOLA Gymnázium Jura Hronca a Základná škola Košická Novohradská 3, Bratislava Tel.: Tel.: Výsledky prijíma

Algoritmizácia a programovanie - Príkazy

Aplikácie ekonomickej a finančnej matematiky

Matematika 2 - cast: Funkcia viac premenných

Microsoft Word - Manažment_tagov_tim24_tema12_2017.docx

PowerPoint Presentation

ARMA modely čast 3: zmiešané modely (ARMA) Beáta Stehlíková Časové rady, FMFI UK ARMA modely časť 3: zmiešané modely(arma) p.1/30

enum

Aplikace matematiky- záverečná práca Juraj Bodík 28. septembra 2017 Definície Žena - objekt ohodnotený celým číslom. Každé dve ženy sa dajú porovnat a

A51

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

006343_Zbornik_SQL.indd

Xesar Softvér Stručný návod

Prenosový kanál a jeho kapacita

Objektovo orientované programovanie

Používateľská príručka Obsah Používateľská príručka... 1 Administrácia servera... 2 FTP... 2 Remote Desktop... 3 Administrácia databáze:... 3 Spusteni

sprievodca_exp.pdf

Slovenská technická univerzita v Bratislave

MacBook Pro Sprievodca rýchlym štartom

Slovenská technická univerzita v Bratislave Fakulta informatiky a informačných technológií Tres Faciunt Collegium Posudok Študijný program: Počítačové

1 Rekurencie este raz riesenia niektorych rekurencii z cvik. mame danu rekurenciu napr T (n) = at ( n b ) + k. idea postupu je postupne rozpisovat cle

PS_EUROFOND

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 - 11_Distribuované spracovanie dát nad MapReduce architektúrou _Hadoop a Hive_

Photo Album

Kód formulára: MV9TWW6ZRN

Snímka 1

Multithreading a komunikácia medzi procesmi a threadmi, Časová závislosť, kritická sekcia a vzájomné vylúčenie, súvislosti medzi týmito pojmami Riešen

Microsoft Word - Zaver.pisomka_januar2010.doc

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

Snímka 1

Zoznam projektových merateľných ukazovateľov špecifický cieľ 1.2.1, DSVaV Príloha č. 4 k výzve Typ Kód Názov Definícia projektový projektový projektov

MINISTERSTVO DOPRAVY, PÔŠT A TELEKOMUNIKÁCIÍ

Opatrenie

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

Služobný úrad Odbor verejného obstarávania Podľa rozdeľovníka Váš list číslo/ zo dňa: Naše číslo: Vybavuje/Klapka V Bratislave 29172/2018 Görögová/298

bakalarska prezentacia.key

ZS SKA web

Ná vod ná vyplnenie formulá ru F-102 F Žiadosť o prístup do Rozpočtového informačného systému pre samosprávu - RISSAM V tomto dokumente nájdete

Vhodnosť lokálneho ohodnocovania grafu v sociálnej sieti obchodného registra SR Peter Vojtek Mária Bieliková Fakulta informatiky a informačných techno

Novinky v OpcDbGateway 5.0

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č

Výzva na predkladanie súťažných návrhov 1. Názov predmetu zákazky Vypracovanie podnikateľských plánov na založenie obecného sociálneho podniku v 5 obc

Prezentácia programu PowerPoint

PAGER V3.0

Prezentácia programu PowerPoint

Návod na vytvorenie kvalifikovaného elektronického podpisu prostredníctvom občianskeho preukazu s čipom Dátum zverejnenia: Verzia: 1 Dátu

Spoločnosť údržby, výroby a montáží podnikov chemického, farmaceutického a papierenského priemyslu Slovenskej republiky

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 PowerPoint - Prog_p08.ppt

Modem a lokálna sieť LAN Používateľská príručka

1

PRESTUPOVÝ PORIADOK Slovenského zväzu florbalu (ďalej len prestupový poriadok alebo PP ) Článok 1 Článok 2 Článok 3 Článok 4 Článok 5 Článok 6 Článok

katalog tlacivo SJ_12

„Vzduch je naše more“ (lietanie v G-éčku)

uzatvorená medzi zmluvnými stranami: Príloha č. 1 Zmluvy o Elektronickej službe Business24 Špecifikácia Elektronickej služby Business24 Slovenská spor

A 1

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

uzatvorená medzi zmluvnými stranami: Príloha č. 1 Zmluvy o Elektronickej službe Business24 Špecifikácia Elektronickej služby Business24 Slovenská spor

Slovenská technická univerzita v Bratislave FAKULTA INFORMATIKY A INFORMAČNÝCH TECHNOLÓGIÍ Ilkovičova 3, Bratislava Tímový projekt Ponuka Grafi

Štatúty NOVIS Poistných Fondov ŠTATÚT NOVIS GARANTOVANE RASTÚCI POISTNÝ FOND 1. Základné ustanovenia NOVIS Garantovane Rastúci Poistný Fond vytvára a

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

Microsoft Word - Zmeny v dlhodobom majetku.docx

Microsoft Word _2013_E_Letisko BA.doc

4. Pravidlo ret azenia. Často sa stretávame so skupinami premenných, ktoré zložitým spôsobom závisia od iných skupín premenných. Pravidlo ret azenia p

Microsoft PowerPoint - ITAPA07 Integracna platforma MF SR

vysledky_web2019

Snímka 1

Sadzobník Časť D) Existujúce produkty a služby, ktoré Banka už v súčasnosti nepredáva, pre Fyzické osoby nepodnikateľov

CONTRACT No __________

Jednotný európsky dokument pre obstarávanie (JED) Časť I: Informácie týkajúce sa postupu verejného obstarávania a verejného obstarávateľa alebo obstar

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

EC design examination certificate in accordance with Annex II, Section 4 of Directive 93/42/EEC As a notified body of the European Union (Reg. No. 012

čiastka 22/2019 Vestník NBS rozhodnutie NBS č. 14/ ÚPLNÉ ZNENIE rozhodnutia Národnej banky Slovenska č. 3/2008 z 25. novembra 2008 o podmien

Bezpečnosť IT infraštruktúry Riadenie prístupu v operačných systémoch RNDr. Jaroslav Janáček, PhD. Katedra informatiky

aplikácia do mobilého telefónu na stiahnutie digitálneho tachografu

Prepis:

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, Pijan, Krcma), vypil(idn, Alkohol, Mnozstvo). Platí: Idn Pijan, Krcma; Krcma, Alkohol Cena; Idn, Alkohol Mnozstvo; Mnozstvo > 0, Cena > 0. a) Sformulujte nasledujúci dotaz v relačnom kalkule (2), Datalogu (2), SQL (2) a relačnej algebre (2): Nájdite dvojice [P, K], o ktorých platí, že pijan P prepil v krčme K celkovo viacej peňazí než prepili v krčme K ľubovoľní iní dvaja pijani dohromady; pritom o každom alkohole, ktorý pijan P v krčme K vypil platí, že P ho vypil v krčme K v menšom množstve než ľubovoľní iní dvaja pijani v krčme K dohromady. Relačný kalkul: {[P, K]: /* definicia vypil_pri_navsteve(i, P, K, A, M, T) */ ( I P K A M T C ( (navstivil(i, P, K) vypil(i, A, M) capuje(k, A, C) T = M * C) vypil_pri_navsteve(i, P, K, A, M, T) ) ) ( I A M T vypil_pri_navsteve(i, P, K, A, M, T)) /* niektori_dvaja_aspon_tolko_penazi(p, K) */ ( P1 P2 S S1 S2 ( I, A, M, S = sum(t) vypil_pri_navsteve(i, P, K, A, M, T)) ( I, A, M, S1 = sum(t) vypil_pri_navsteve(i, P1, K, A, M, T)) ( I, A, M, S2 = sum(t) vypil_pri_navsteve(i, P2, K, A, M, T)) S1 + S2 >= S P P1 P P2 P1 P2 ) /* aspon_tolko_niektoreho_alkoholu_co_niektori_dvaja(p, K) */ ( A P1 P2 S S1 S2 ( I, T, S = sum(m) vypil_pri_navsteve(i, P, K, A, M, T)) ( I, T, S1 = sum(m) vypil_pri_navsteve(i, P1, K, A, M, T)) ( I, T, S2 = sum(m) vypil_pri_navsteve(i, P2, K, A, M, T)) S1 + S2 <= S P P1 P P2 P1 P2 ) }

Datalog: answer(p, K) vypil_pri_navsteve(_, P, K, _, _, _), not niektori_dvaja_aspon_tolko_penazi(p, K), not aspon_tolko_niektoreho_alkoholu_co_niektori_dvaja(p, K). vypil_pri_navsteve(i, P, K, A, M, T) navstivil(i, P, K), vypil(i, A, M), capuje(k, A, C), T = M * C. /* T is M * C */ niektori_dvaja_aspon_tolko_penazi(p, K) subtotal(vypil_pri_navsteve(_, P, K, _, _, T), [P, K], [S = sum(t)]), subtotal(vypil_pri_navsteve(_, P1, K, _, _, T), [P1, K], [S1 = sum(t)]), subtotal(vypil_pri_navsteve(_, P2, K, _, _, T), [P1, K], [S2 = sum(t)]), S1 + S2 >= S, /* ST is S1 + S2, ST >=S */ not P = P1, not P = P2, not P1 = P2. aspon_tolko_niektoreho_alkoholu_co_niektori_dvaja(p, K) subtotal(vypil_pri_navsteve(_, P, K, A, M, _), [P, K, A], [S = sum(m)]), subtotal(vypil_pri_navsteve(_, P1, K, A, M, _), [P1, K, A], [S1 = sum(m)]), subtotal(vypil_pri_navsteve(_, P2, K, A, M, _), [P1, K, A], [S2 = sum(m)]), S1 + S2 <= S, /* ST is S1 + S2, ST <=S */ not P = P1, not P = P2, not P1 = P2.

SQL: create temporary table vypil_pri_navsteve as select n.idn, n.pijan, n.krcma, v.alkohol, v.mnozstvo, v.mnozstvo * c.cena as T from navstivil n, vypil v, capuje c where n.idn = v.idn and n.krcma = c.krcma and v.alkohol = c.alkohol create temporary table niektori_dvaja_aspon_tolko_penazi as select p.pijan, p.krcma from (select vpn.pijan, vpn.krcma, sum(vpn.t as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma) p, (select vpn.pijan, vpn.krcma, sum(vpn.t as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma) p1, (select vpn.pijan, vpn.krcma, sum(vpn.t as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma) p2 where p.krcma = p1.krcma and p.krcma = p2.krcma and p1.s + p2.s >= p.s and p.pijan <> p1.pijan and p.pijan <> p2.pijan and p1.pijan <> p2.pijan create temporary table aspon_tolko_niektoreho_alkoholu_co_niektori_dvaja as select p.pijan, p.krcma from (select vpn.pijan, vpn.krcma, sum(vpn.mnozstvo as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma, vpn.alkohol) p, (select vpn.pijan, vpn.krcma, sum(vpn.mnozstvo as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma, vpn.alkohol) p1, (select vpn.pijan, vpn.krcma, sum(vpn.mnozstvo as S) from vypil_pri_navsteve vpn group by vpn.pijan, vpn.krcma, vpn.alkohol) p2 where p.krcma = p1.krcma and p.krcma = p2.krcma and p.alkohol = p1.alkohol and p.alkohol = p2.alkohol and p1.s + p2.s <= p.s and p.pijan <> p1.pijan and p.pijan <> p2.pijan and p1.pijan <> p2.pijan select vpn.pijan, vpn.krcma /* main */ from vypil_pri_navsteve vpn where not exists (select * from niektori_dvaja_aspon_tolko_penazi n2atp where vpn.pijan = n2atp.pijan and vpn.pijan = n2atp.krcma) and not exists (select * from aspon_tolko_niektoreho_alkoholu_co_niektori_dvaja atancn2 where vpn.pijan = atancn2.pijan and vpn.pijan = atancn2.krcma)

Relačná algebra: vpn = Idn, Pijan, Krcma, Alkohol, Mnozstvo, T = Cena * Mnozstvo (navstivil vypil capuje) n2atp = Pijan, Krcma ( p ( Pijan, Krcma, S = sum(t) vpn) p.pijan <> p1.pijan p.krcma = p1.krcma p1 ( Pijan, Krcma, S = sum(t) vpn) p.pijan <> p2.pijan p1.pijan <> p2.pijan p.krcma = p2.krcma p1.s + p2.s >= p.s p2 ( Pijan, Krcma, S = sum(t) vpn)) atancn2 = Pijan, Krcma ( p ( Pijan, Krcma, Alkohol, S = sum(mnozstvo) vpn) p.pijan <> p1.pijan p.krcma = p1.krcma p1 ( Pijan, Krcma, Alkohol, S = sum(mnozstvo) vpn) p.pijan <> p2.pijan p1.pijan <> p2.pijan p.krcma = p2.krcma p1.s + p2.s <= p.s p2 ( Pijan, Krcma, Alkohol, S = sum(mnozstvo) vpn)) /* main */ Pijan, Krcma (vpn) - n2atp - atancn2

b) Sformulujte v Datalogu (2) dotaz, ktorý nájde dvojice [P, A] také, že pijan P ľúbi alkohol A a preferuje ho pri každej návšteve krčmy, ktorá alkohol A čapuje. (V takej krčme P vypije iný alkohol len vtedy, keď pri tej istej návšteve vypije aj alkohol A.) answer(p, A) lubi(p, A), not niekedy_nepreferoval(p, A). niekedy_nepreferoval(p, A) navstivil(i, P, K), capuje(k, A, _), vypil(i, _, _), not v(i, A). v(i, A) vypil(i, A, _).

2. V relácii d(from, To) sú uložené priame lety, ktore ponúka letecká spoločnosť. Slovenských klientov zaujímajú destinácie priamych aj nepriamych (kombinovaných) letov, ktoré začínaju v Bratislave (bts). a) Sformulujte tento dotaz v Datalogu. (2) answer(f, T) d(f, T). answer(f, T) d(f, V), answer(v, T).?- answer(bts, T). b) Sformulujte tento dotaz v SQL za predpokladu, že použitý databázový systém implementuje SQL3 štandard (t.j. rekurziu). (2) with recursive answer as ( d /* alebo ešte lepšie: select d.from, select d.to from d where d.from = bts */ union select d.from, answer.to from d, answer where d.to = answer.from ) select distinct answer.to /* dá sa pridať aj answer.from (=bts) */ from answer where answer.from = bts c) Sformulujte tento dotaz v SQL bez použitia recursive with a recursive view. Predpokladajte pritom, že pri kombinovanom lete sú možné maximálne 2 prestupy. (2) (select d.to /* 0 prestupov */ from d where d.from = bts ) union (select d2.to /* 1 prestup */ from d d1, d d2 where d1.from = bts and d1.to = d2.from) union (select d3.to /* 2 prestupy */ from d d1, d d2, d d3 where d1.from = bts and d1.to = d2.from and d2.to = d3.from)

3. Dané sú relácie r(x, Y, Z) a s(a, B, C). Vyjadrite nasledujúce dotazy ekvivalentne v SQL bez použitia distinct: a) select distinct r.x from r, s where r.y = s.a (2) select r.x from r, s where r.y = s.a group by r.x b) select r.x from r, s where r.y = s.a group by r.x having count(distinct s.b) < 85 (2) create temporary table proj_cnt as select r.x, s.b from r, s where r.y = s.a group by r.x, s.b /* main */ select p.x from proj_cnt p group by p.x having count(p.b) < 85

4. a) Môže deadlock vzniknúť v systéme, ktorý používa na implementáciu izolácie transakcií validačnú metódu? Zdôvodnite svoju odpoveď áno, resp. nie. (1) Nie, nemôže. Pri validačnej metóde sa všetky vstupné operácie vykonávajú hneď, t.j. bez čakania na čokoľvek. b) Popíšte metódu wound-or-wait na riešenie deadlockov. (2) Systém si pamätá časové pečiatky aktívnych transakcií (časová pečiatka hovorí, kedy transakcia začala). Vždy keď nejaká transakcia T1 žiada o konfliktný zamok, ktorý v tom momente drží iná transakcia T2, systém spustí nasledujúci program: if (TS(T1) < TS(T2)) wound T2; else let T1 wait for the lock; Inak povedané, mladšia transakcia čaká na uvoľnenie zámku držaného staršou transakciou. Staršia transakcia si kliesni cestu zraňovaním mladších transakcií, ktoré držia konfliktné zámky. Zranenie sa rovná abortu (až na prípad, keď mladšia transakcia už predtým požiadala o commit a systém jej práve odoberá zámky vtedy nechá system zranenú transakciu commitovať). c) Popíšte čo najpresnejšie akcie, ktoré scheduler používajúci wound-or-wait vykoná pri čítaní nasledujúcej postupnosti operácií (v systéme bežia len tieto transakcie): start2, start1, rl1(x), wl2(y), rl1(y), wl2(x). (2) start2 Pridelí T2 časovú pečiatku. start1 Pridelí T1 časovú pečiatku. rl1(x) Pridelí T1 read-lock na X. wl2(y) Pridelí T2 write-lock na Y. rl1(y) Toto je prvý konflikt. Keďže T1 je mladšia než T2, systém nechá T1 čakať na uvoľnenie zámku na Y. wl2(x) Toto je ďaľší konflikt. T2 je staršia než T1, takže system zraní T1. Toto zranenie je smrteľné, t.j. rovná sa abortu T1. Systém abortuje T1, odoberie T1 všetky zámky a pridelí T2 write-lock na X.