Datalog: answer(a, M) subtotal(kandidat(a, C), [A], [M = avg(c)]).



Σχετικά έγγραφα
vypilo_sa(k, A, S, I) navstivil(i, _, K), vypil(i, A, M), capuje(k, A, C), S is M * C. /* S = M * C */

Το άτομο του Υδρογόνου

Motivácia Denícia determinantu Výpo et determinantov Determinant sú inu matíc Vyuºitie determinantov. Determinanty. 14. decembra 2010.

Start. Vstup r. O = 2*π*r S = π*r*r. Vystup O, S. Stop. Start. Vstup P, C V = P*C*1,19. Vystup V. Stop


Vzorce pre polovičný argument

Řečtina I průvodce prosincem a začátkem ledna prezenční studium

Ekvačná a kvantifikačná logika

ΜΑΘΗΜΑ ΣΥΝΕΧΕΙΑ ΣΥΝΑΡΤΗΣΗΣ ΑΣΚΗΣΕΙΣ. Συνέχεια του µαθήµατος 22 Ασκήσεις. 3 η ενότητα 17.

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

( ) ( ) 5 ( )( ) ( ) 1. ÚPRAVY VÝRAZOV

Διευθύνοντα Μέλη του mathematica.gr

Pevné ložiská. Voľné ložiská


Prechod z 2D do 3D. Martin Florek 3. marca 2009

Podnikateľ 90 Mobilný telefón Cena 95 % 50 % 25 %

2.3 Γενικά για το χημικό δεσμό - Παράγοντες που καθορίζουν τη χημική συμπεριφορά του ατόμου.

PRUŽNOSŤ A PEVNOSŤ PRE ŠPECIÁLNE INŽINIERSTVO

ΑΙΩΝΑ. ΜΑΘΗΜΑ ΛΑΟΓΡΑΦΙΑ ΚΑΘΗΓΗΤΗΣ κ.μαρινα ΒΡΕΛΛΗ-ΖΑΧΟΥ ΟΝΟΜΑΤΕΠΩΝΥΜΟ ΚΑΛΑΤΗ ΕΜΜΑΝΟΥΕΛΑ ΑΡΙΘΜΟΣ ΜΗΤΡΩΟΥ 6084 ΕΞΑΜΗΝΟ Γ (3006 ~ 00Fj

ΠΑΝΔΛΛΖΝΗΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΣΔΣΑΡΣΖ 23 MAΪΟΤ 2012 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΦΤΗΚΖ ΓΔΝΗΚΖ ΠΑΗΓΔΗΑ ΤΝΟΛΟ ΔΛΗΓΩΝ: ΔΞΗ (6)

ΜΕΤΑΒΟΛΗ ΕΠΙΦΑΝΕΙΑΚΩΝ ΙΔΙΟΤΗΤΩΝ ΦΥΣΙΚΩΝ ΚΑΙ ΣΥΝΘΕΤΙΚΩΝ ΥΦΑΣΜΑΤΩΝ ΜΕ ΠΛΑΣΜΑ ΧΑΜΗΛΗΣ ΚΑΙ ΑΤΜΟΣΦΑΙΡΙΚΗΣ ΠΙΕΣΗΣ

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΚΑΛΑΜΑΤΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΑΣ ΓΕΩΠΟΝΙΑΣ ΤΜΗΜΑ ΦΥΤΙΚΗΣ ΠΑΡΑΓΩΓΗΣ

έχουν απομάκρυνση ίση με το αλγεβρικό άθροισμα των απομακρύνσεων που θα είχαν αν οι δύο παλμοί

STREDOŠKOLSKÁ MATEMATIKA

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ ΣΧΟΛΙΚΟΥ ΕΤΟΥΣ

1. Limita, spojitost a diferenciálny počet funkcie jednej premennej

ΣΗΜΕΙΩΣΕΙΣ ΟΙΚΟΝΟΜΙΚΗΣ ΑΝΑΛΥΣΗΣ Μέρος Γ. Καθ. Π. Κάπρος ΕΜΠ 2003

Σχεδιασμός Βάσεων Δεδομένων

ΑΠΟ ΤΟΥΣ ΧΑΡΤΕΣ ΣΤΙΣ ΠΟΛΛΑΠΛΟΤΗΤΕΣ ΚΑΙ ΣΤΗ ΘΕΩΡΙΑ ΤΗΣ ΣΧΕΤΙΚΟΤΗΤΑΣ

Ο ΜΑΚΡΟΧΡΟΝΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΤΩΝ ΣΤΟΙΧΕΙΩΝ ΠΡΟΠΟΝΗΤΙΚΗΣ ΕΠΙΒΑΡΥΝΣΗΣ (αερόβια. προπόνηση) ΣΤΟΥΣ ΔΡΟΜΟΥΣ ΗΜΙΑΝΤΟΧΗΣ ΑΝΤΟΧΗΣ

ΕΛΛΗΝΙΚΗ ΗΜΟΚΡΑΤΙΑ 1η ΥΓΕΙΟΝΟΜΙΚΗ ΠΕΡΙΦΕΡΕΙΑ ΑΤΤΙΚΗΣ ΓΕΝΙΚΟ ΝΟΣΟΚΟΜΕΙΟ "ΕΛΕΝΑ ΒΕΝΙΖΕΛΟΥ - ΑΛΕΞΑΝ ΡΑ"

ΥΠΟΨΗΦΙΟΙ ΓΙΑ ΤΗΝ ΑΝΑΔΕΙΞΗ ΤΩΝ ΜΕΛΩΝ ΤΩΝ ΤΟΠΙΚΩΝ ΔΙΟΙΚΗΣΕΩΝ ΤΩΝ ΠΕΡΙΦΕΡΕΙΑΚΩΝ ΤΜΗΜΑΤΩΝ ΤΟΥ ΟΙΚΟΝΟΜΙΚΟΥ ΕΠΙΜΕΛΗΤΗΡΙΟΥ ΤΗΣ ΕΛΛΑΔΑΣ

ΣΥΝΤΟΜΕΣ ΟΔΗΓΙΕΣ ΓΙΑ ΤΟΝ ΥΠΟΛΟΓΙΣΜΟ ΑΤΡΑΚΤΩΝ ΑΞΟΝΩΝ ΚΑΤΑ DIN 743 : V1.4

ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΤΕΥΘΥΝΣΗΣ

Η ΠΑΓΚΟΣΜΙΑ ΗΘΙΚΗ ΤΟΥ ΕΣΩΤΕΡΙΚΟΥ ΠΡΟΣΑΝΑΤΟΛΙΣΜΟΥ

Διευθύνοντα Μέλη του mathematica.gr

Τα δρώμενα από εθνογραφική σκοπιό: μέθοδοι, τεχνικές και προβλήματα καταγραφής

ΠΕΡΙΟΔΙΚΟΣ ΠΙΝΑΚΑΣ - ΔΕΣΜΟΙ

ΕΠΑΝΑΛΗΠΤΙΚΟ ΙΑΓΩΝΙΣΜΑ ΦΥΣΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ 2013

ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ & ΕΠΑ.Λ. Β 28 ΜΑΪΟΥ 2012 ΑΠΑΝΤΗΣΕΙΣ. y R, η σχέση (1) γράφεται

ARMA modely čast 2: moving average modely (MA)

ΣΧΑΣΗ. Τονετρόνιοκαιησχάση. Πείραµα Chadwick, Ανακάλυψη νετρονίου

bab.la Φράσεις: Ταξίδι Τρώγοντας έξω ελληνικά-ελληνικά

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ν. Φιλ/φεια: 18/6/2015 ΝΟΜΟΣ ΑΤΤΙΚΗΣ Αριθμ. Πρωτ: ΔΗΜΟΣ ΦΙΛΑΔΕΛΦΕΙΑΣ- ΧΑΛΚΗΔΟΝΟΣ Α Ν Α Κ Ο Ι Ν Ω Σ Η

ΨΗΦΙΑΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΒΟΗΘΗΜΑ «ΦΥΣΙΚΗ ΘΕΤΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ» ΦΥΣΙΚΗ ΘΕΤΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΘΕΜΑ Α

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ (Μαρτίου)

ΤΕΧΝΟΛΟΓΙΚΟ ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ ΣΧΟΛΗ Δ ΙΟ ΙΚ Η ΣΗ Σ Κ Α Ι ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟ ΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ «ΕΞΕΛΙΞΕΙΣ ΚΑΙ ΠΡΟΟΠΤΙΚΕΣ ΤΟΥ ΚΛΑΑΟΥ

ΜΑΘΗΜΑ / ΤΑΞΗ: ΦΥΣΙΚΗ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ / Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΘΕΡΙΝΑ ΗΜΕΡΟΜΗΝΙΑ: 04/11/12 ΛΥΣΕΙΣ

7. FUNKCIE POJEM FUNKCIE

1. Από την αρχική σελίδα του web site του ΙΚΑ επιλέγετε την ελληνική σημαία για να εισέλθετε στην κεντρική σελίδα του ΙΚΑ.

Να μετατραπεί σε ισοδύναμο με τη χρήση της δομής Για...από... μέχρι Μονάδες 5

M E T A L R U B B E R E N G I N E E R I N G

Π Ρ Ο Γ Ρ Α Μ Μ Α Τ Ι Κ Η Σ Υ Μ Β Α Σ Η ΠΡΩΙΝΟ ΧΑΜΟΓΕΛΟ

Α Π Ο Σ Π Α Σ Μ Α. Από το πρακτικό της αριθ. 26/2013 τακτικής Συνεδρίασης της Οικονομικής Επιτροπής του Δήμου Φιλαδελφείας-Χαλκηδόνος

Λ. Παπαδήµος: H κυβέρνηση έχει δεσµευτεί για την υιοθέτησή τους. Προανάκρουσμα. δραστικών μέτρων

ΘΕΡΜΟΚΗΠΙΑΚΕΣ ΚΑΛΛΙΕΡΓΕΙΕΣ ΕΚΤΟΣ ΕΔΑΦΟΥΣ ΘΡΕΠΤΙΚΑ ΔΙΑΛΥΜΑΤΑ

β) Μια συνάρτηση f είναι 1-1, αν και μόνο αν για κάθε στοιχείο y του συνόλου τιμών της η εξίσωση f(x)=y έχει ακριβώς μία λύση ως προς x

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΠΡΟΛΟΓΟΣ. Κλείνει με τις λύσεις όλων των θεμάτων του Μαίου

ΜΑΘΗΜΑΤΙΚΑ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ & ΕΠΑ.Λ. Β 28 ΜΑΪΟΥ 2012 ΑΠΑΝΤΗΣΕΙΣ. y R, η σχέση (1) γράφεται

2 o Καλοκαιρινό σχολείο Μαθηµατικών Νάουσα 2008

ΘΕΜΑ Β Β1. Στο κύκλωμα του σχήματος ο πυκνωτής είναι φορτισμένος και ο διακόπτης βρίσκεται στη θέση Β. ΑΡΧΗ 2ΗΣ ΣΕΛΙ ΑΣ ΕΣΠΕΡΙΝΩΝ

Λύση: Ισολογισµός ισχύος στο Λέβητα Καυσαερίων: (1)

Για τον ορισμό της ισχύος θα χρησιμοποιηθεί η παρακάτω διάταξη αποτελούμενη από ένα κύκλωμα Κ και μία πηγή Π:

Π Ε Ρ Ι Ο Δ Ι Κ Ο Ε Ν Η Μ Ε Ρ Ω Τ Ι Κ Ο Δ Ε Λ Τ Ι Ο

ΊΈΧΜϋΛ01ΐΚ.0 ΕΚ11ΑΙΔΕΥΤ1Κ0 ΙΔΡΥΜΑ ΚΑΒΑΛΑΣ

ΕΦΗΜΕΡΙΣ ΤΗΣ ΚΥΒΕΡΝΗΣΕΩΣ

ΠΕΛΟΠΟΝΝΗΣΟΣ ΚΡΗΤΗ AMAΛΙΑ Α ΑΡΓΟΣ ΤΡΙΠΟΛΙΤΣΙΩΤΗΣ Ι. ΑΝΑΣΤ. 1 Ο ΧΛΜ ΑΡΓΟΥΣ ΝΑΥΠΛΙΟΥ ΚΥΠΑΡΙΣΣΙΑ ΜΕΣΣΗΝΗ

ΚΡΙΤΗΡΙΑ ΤΕΚΝΟ ΜΟΝΟΓΟΝΕΙΚΗΣ ΓΟΝΕΑΣ ΜΟΝ/ΝΕΙΚΗΣ ΟΙΚ ΤΕΚΝΟ ΠΟΛ/ΝΗΣ ΟΙΚ. (αρ.ανήλικων τέκνων) ΒΑΘΜΟΣ ΒΑΣΙΚΟΥ ΑΝΗΛΙΚΑ ΤΕΚΝΑ. (αριθμός τέκνων) ΟΙΚΟΓΕΝΕΙΑΣ

Σ Υ Ν Ο Λ Ι Κ Ο Σ Π Ρ Ο Ϋ Π Ο Λ Ο Γ Ι Σ Μ Ο Σ Μ Ε Λ Ε Τ Η Σ

ΔΙΑΜΟΡΦΩΣΗ ΚΑΙ ΛΕΠΤΟΜΕΡΕΙΕΣ ΟΠΛΙΣΗΣ ΔΟΜΙΚΩΝ ΣΤΟΙΧΕΙΩΝ ΑΠΟ ΣΚΥΡΟΔΕΜΑ ΙΓΝΑΤΑΚΗΣ ΧΡΗΣΤΟΣ ΠΑΝΑΓΟΠΟΥΛΟΣ ΓΕΩΡΓΙΟΣ

A Π Ο Σ Π Α Σ Μ Α Από το πρακτικό της αριθµ. 20/2015 Τακτικής Συνεδριάσεως της Επιτροπής Ποιότητας Ζωής του ήµου Θέρµης Αριθµ. Απόφασης.

ΤΕΧΝΙΚΕΣ ΦΙΛΤΡΑΡΙΣΜΑΤΟΣ

Τμήμα Πληροφορικής ΑΠΘ

2 η ΑΣΚΗΣΗ Γ ΛΥΚΕΙΟΥ ΕΚΦΩΝΗΣΗ

ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Γ ΤΑΞΗΣ ΗΜΕΡΗΣΙΟΥ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΠΑΡΑΣΚΕΥΗ 28 ΜΑΪΟΥ 2010 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΧΗΜΕΙΑ ΘΕΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

fr*^l0 Kf Β Λ Τ Π Ι Μ Α Ι / Α Γ ΛΙΑΜΛΜΟΓ

Obvod a obsah štvoruholníka

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟ ΕΛΛΗΝΙΚΟ ΑΣΦΑΛΙΣΤΙΚΟ ΣΥΣΤΗΜΑ ΜΕΣΑ ΑΠΟ ΤΙΣ ΕΠΙΣΗΜΕΣ ΕΠΙΣΤΗΜΟΝΙΚΕΣ ΠΡΟΤΑΣΕΙΣ ΓΙΑ ΤΗΝ ΑΝΑΜΟΡΦΩΣΗ ΤΟΥ

Đường tròn : cung dây tiếp tuyến (V1) Đường tròn cung dây tiếp tuyến. Giải.

ΕΤΑΙΡΕΙΑ ΠΑΡΟΧΗΣ ΑΕΡΙΟΥ ΑΤΤΙΚΗΣ Α.Ε. ΣΥΜΒΑΣΗ ΕΡΓΟΥ ΕΠΑ ΑΡΙΘ ΓΙΑ ΤΟ ΕΡΓΟ:

Matematika Funkcia viac premenných, Parciálne derivácie

HMOTNOSTNÉ PRIETOKOMERY NA KVAPALINY

ΣΥΣΤΗΜΑΤΑ ΑΔΙΑΛΕΙΠΤΟΥ ΠΑΡΟΧΗΣ ΙΣΧΥΟΣ

Dijagrami: Greda i konzola. Prosta greda. II. Dijagrami unutarnjih sila. 2. Popre nih sila TZ 3. Momenata savijanja My. 1. Uzdužnih sila N. 11.

Αλληλεπίδραση ακτίνων-χ με την ύλη

Group Lending versus Individual Lending in Microfinance

ΦΥΣΙΚΗ ΘΕΤΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

A1. Να γράψετε στο τετράδιό σας την περίληψη του κειμένου που σας δόθηκε ( λέξεις). Μονάδες 25

Θεωρία Δυαδικότητας ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Η παρουσίαση προετοιμάστηκε από τον Ν.Α. Παναγιώτου. Επιχειρησιακή Έρευνα

ΤΕΥΧΟΣ ΧΩΡΟΣΤΑΘΜΙΚΟΥ ΔΙΚΤΥΟΥ

2 η δεκάδα θεµάτων επανάληψης

έκτης: Βαθυπερατό φίλτρο Μετατοπιστής Βαθυπερατό φίλτρο

Επιστήμη και Τεχνολογία Συγκολλήσεων. Ενότητα 7: Θερμοεπηρεασμένη Ζώνη Γρηγόρης Ν. Χαϊδεμενόπουλος Πολυτεχνική Σχολή Μηχανολόγων Μηχανικών

ΞYΣTO: AΠOΠEIPATAI NA TO ΞANAΦEPEI H KYBEPNHΣH / ΣΕΛ. 7

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο ΔΙΑΛΕΞΗ 3: Αλγοριθµική Ελαχιστοποίηση (Quine-McCluskey, tabular method)

ΔΙΑΓΩΝΙΣΜΑ ΦΥΣΙΚΗΣ ΓΕΝΙΚΗΣ ΠΑΙΔΕΙΑΣ Γ ΛΥΚΕΙΟΥ ΚΥΡΙΑΚΗ 15 ΜΑΡΤΙΟΥ 2015

ΦΥΛΛΑΔΙΟ ΑΠΟΛΥΤΕΣ ΤΙΜΕΣ Ο ρ ι σ μ ό ς

OCHRANA PRED ATMOSFÉRICKOU ELEKTRINOU (STN EN )

Οι στρατηγικές πολιτικές (διπλωµατικές) αρετές του Αγησιλάου (3 διδακτικές ώρες)

Transcript:

11/1/2013 Ú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 SQL (2), relačnej algebre (2) a Datalogu (2): Nájdite dvojice [A, M] také, že M je mediánom ceny alkoholu A cez všetky krčmy, ktoré alkohol A čapujú. Datalog: answer(a, M) subtotal(kandidat(a, C), [A], [M = avg(c)]). kandidat(a, C) subtotal(capuje(k, A, _), [A], [T = count(k)]), subtotal(mensi_rovny(a, C, K2), [A, C], [MR = count(k2)]), subtotal(vacsi_rovny(a, C, K2). [A, C], [VR = count(k2)]), 2 * MR >= T, 2 * VR >= T. mensi_rovny(a, C, K2) capuje(_, A, C), capuje(k2, A, C2), C2 <= C. vacsi_rovny(a, C, K2) capuje(_, A, C), capuje(k2, A, C2), C2 >= C.

Poznámka. Nie je nutné priemerovať hodnoty kandidátov. Pre daný alkohol existujú najviac 2 kandidátske hodnoty C, stačí spriemerovať tie. Ak je kandidát len jeden, tak je mediánom: answer(a, M) kandidat(a, C1), kandidat(a, C2), not C1 = C2, M = (C1 + C2) / 2. answer(a, M) kandidat(a, M), not iny_kandidat(a, M). iny_kandidat(a, C) kandidat(a, C), kandidat(a, C2), not C = C2.

Alternatívne riešenie. Uvažujme neusporiadanú postupnosť čísiel C i, i=1..n, z ktorej vyberáme medián. Pre jednoduchosť najskôr predpokladajme, že čísla v postupnosti sú navzájom rôzne. Každému prvku postupnosti priradíme rank. Rank je číslo 1..N, ktoré hovorí, na ktorej pozícii sa prvok nachádza v usporiadanej postupnosti. Inak povedané, rank prvku je počet prvkov, ktoré sú pred tým rankovaným prvkom v danom usporiadaní (presnejšie, sú menšie alebo rovné). Ak N je nepárne, tak medián je prvok s rankom (N-1)/2. Ak N je párne, tak medián je priemer prvkov s rankami N/2 a N/2+1. Uvažujme teraz prípad, že čísla v postupnosti (v tomto konkrétnom prípade hodnoty atribútu Cena) nemusia byť navzájom rôzne. Aby sme rovnakým číslam priradili rôzne ranky, tak umelo rozšírime čísla o nejakú jednoznačnú (kľúčovú) hodnotu, na ktorej je definované úplné usporiadanie. V tomto konkrétnom prípade sa ponúka hodnota atribútu Krcma. Pôvodné usporiadanie podľa hodnoty atribútu Cena zmeníme na lexikografické usporiadanie hodnôt [Cena, Krcma]. Keďže všetky dvojice [Cena, Krcma] sú navzájom rôzne, môžeme použiť postup z predošlého odstavca. answer(a, C) subtotal(capuje(k, _, _), [], [T = count(k)]), 1 is T mod 2, /* odd(t) */ R is (T + 1) / 2, subtotal(mensi_rovny(k1, A, C, K2), [K1, A, C], [R = count(k2)]). answer(a, M) subtotal(capuje(k, _, _), [], [T = count(k)]), 0 is T mod 2, /* not odd(t) */ R1 is T / 2, R2 is T / 2 + 1, subtotal(mensi_rovny(k1, A, C1, K3), [K1, A, C1], [R1 = count(k3)]), subtotal(mensi_rovny(k2, A, C2, K3), [K2, A, C2], [R2 = count(k3)]), M is (C1 + C2) / 2. mensi_rovny(k1, A, C, K2) capuje(k1, A, C), capuje(k2, A, C2), C2 < C. mensi_rovny(k1, A, C, K2) capuje(k1, A, C), capuje(k2, A, C), K2 =< K1.

SQL (preklad pôvodného Datalogového programu): create temporary table mensi_rovny as select c1.alkohol, c1.cena, c2.krcma from capuje c1, capuje c2 where c1.alkohol = c2.alkohol and c2.cena <= c1.cena create temporary table vacsi_rovny as select c1.alkohol, c1.cena, c2.krcma from capuje c1, capuje c2 where c1.alkohol = c2.alkohol and c2.cena >= c1.cena create temporary table kandidat as select sub1.alkohol, sub2.cena from ( select c.alkohol, count(c.krcma) as T from capuje c group by c.alkohol, c.cena ) sub1, ( select mr.alkohol, count(mr.krcma) as MR from mensi_rovny mr group by mr.alkohol, mr.cena ) sub2, ( select vr.alkohol, count(vr.krcma) as VR from vacsi_rovny vr group by vr.alkohol, vr.cena ) sub3 where sub1.alkohol = sub2.alkohol and sub1.alkohol = sub3.alkohol and sub2.cena = sub3.cena and 2 * sub2.mr >= sub1.t and 2 * sub3.vr >= sub1.t select k.alkohol, avg(k.cena) as Median /* answer */ from kandidat k group by k.alkohol

Relačná algebra (preklad pôvodného Datalogového programu): mensi_rovny := Π c1.alkohol, c1.cena, c2.krcma (Ρ c1 (capuje) c1.alkohol = c2.alkohol and c2.cena <= c1.cena Ρ c2 (capuje)) vacsi_rovny := Π c1.alkohol, c1.cena, c2.krcma (Ρ c1 (capuje) c1.alkohol = c2.alkohol and c2.cena >= c1.cena Ρ c2 (capuje)) kandidat := Π sub1.alkohol, sub2.cena (σ sub2.cena = sub3.cena and 2 * sub2.mr >= sub1.t and 2 * sub3.vr >= sub1.t (Ρ sub1 (Γ Alkohol, T = count(krcma) (capuje)) Ρ sub2 (Γ Alkohol, Cena, MR = count(krcma) (mensi_rovny)) Ρ sub3 (Γ Alkohol, Cena, VR = count(krcma) (vacsi_rovny)))) answer = Γ Alkohol, Median = avg(cena) (kandidat)

b) Sformulujte nasledujúci dotaz v Datalogu (2), v relačnom kalkule (2) a SQL (2): Nájdite dvojice [K, A] také, že krčma K čapuje alkohol A; a zároveň žiaden pijan, ktorý vypil alkohol A v krčme K, nenavštívil inú krčmu, ktorá alkohol A čapuje lacnejšie. Relačný kalkul: {[K, A]: ( C capuje(k, A, C)) ( /* vypil_navstivil_lacnejsiu(k, A) */ I P C M I2 K2 C2 navstivil(i, P, K) capuje(k, A, C) vypil(i, A, M) navstivil(i2, P, K2) capuje(k2, A, C2) C2 < C ) } Datalog: answer(k, A) capuje(k, A, _), not vypil_navstivil_lacnejsiu(k, A). vypil_navstivil_lacnejsiu(k, A) navstivil(i, P, K), capuje(k, A, C), vypil(i, A, _), navstivil(_, P, K2), capuje(k2, A, C2), C2 < C. SQL: create temporary table vypil_navstivil_lacnejsiu as select n1.krcma, c1.alkohol from navstivil n1, capuje c1, vypil v1, navstivil n2, capuje c2 where n1.idn = v1.idn and n1.pijan = n2.pijan and n1.krcma = c1.krcma and c1.alkohol = v1.alkohol and c1.alkohol = c2.alkohol and c1.cena > c2.cena and n2.krcma = c2.krcma select c.krcma, c.alkohol /* answer */ from capuje c where not exists ( select * from vypil_navstivil_lacnejsiu vnl where c.krcma = vnl.krcma and c.alkohol = vnl.alkohol)

2. a) Definujte bezstratovosť spojenia dekompozície relačnej schémy. (1) Dekompozícia relácie r do relácií r 1, r 2,..., r N je bezstratová (spája sa bezstratovo), ak pre každé naplnenie (populáciu) relácie r platí r = Π r1 (r) Π r2 (r)... Π rn (r) b) Uvažujte reláciu r(a, B, C, D, E) s funkčnými závislosťami A CE, AD B, BC D, BE A. Rozhodnite, či sa dekompozícia r1(a, C, D, E), r2(a, B, E) spája bezstratovo. Ak áno, zdôvodnite. Ak nie, uveďte príklad konkrétnych naplnení relácií r, r1 a r2, ktoré je v rozpore s definíciou z úlohy a). (2) Keďže ide o dekompozíciu do dvoch relácií, stačí použiť jednoduchý test. Spoločné atribúty r1 a r2 sú A a E. Uvedená dekompozícia sa spája bezstratovo, ak AE je nadkľúčom buď v r1 alebo v r2. {AE} * = {ACE}, teda AE nie je nadkľúčom ani v r1 ani v r2. Teda táto dekompozícia sa nespája bezstratovo. Poďme skonštruovať konkrétny kontrapríklad. ABE je zjavne nadkľúč v r2. Keby atribút B bol aj v relácii r1, dekompozícia by bola bezstratová. Skúsme dať atribútom A, E rovnakú hodnotu a atribútu B rôzne hodnoty (samozrejme tak, aby boli splnené všetky funkčné závislosti): r: A B C D E 0 0 1 0 0 0 1 1 1 0 Π r1 (r): A C D E 0 1 0 0 0 1 1 0 Π r2 (r): A B E 0 0 0 0 1 0 Π r1 (r) Π r2 (r): A B C D E 0 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 Π r1 (r) Π r2 (r) r pre toto naplnenie r.

c) Uveďte príklad dekompozície relačnej schémy r(a, B, C, D, E) s funkčnými závislosťami A CE, AD B, BC D, BE A, ktorá sa spája bezstratovo, je v tretej normálnej forme a zároveň zachováva všetky funkčné závislosti. (2) Minimálne pokrytie množiny funkčných závislostí: A C, A E, AD B, BC D, BE A Dekompozíciu s požadovanými vlastnosťami skonštruujeme z tohto minimálneho pokrytia. Treba ešte overiť, že niektorá z generovaných relácií je nadkľúčom v r (ak nie, treba do dekompozície pridať reláciu s nejakým kľúčom): r1(a, C), r2(a, B, D), r3(b, C, D), r4(a, B, E). ({ABE} je nadkľúčom v r.)

3. V systéme bežia nasledujúce dve transakcie (a žiadne iné): T1: start, r(x), r(y), w(x), commit. T2: start, r(x), r(y), w(y), commit. a) Rozšírte transakcie o operácie rl (read-lock), wl (write-lock) a ul (unlock) tak, aby boli konformné s dvojfázovým zamykacím protokolom. Maximalizujte stupeň paralelizácie. (1) Zámky treba získať čím neskôr a uvoľniť čím skôr. T1: start, wl(x), r(x), rl(y), r(y), ul(y), w(x), ul(x), commit. T2: start, rl(x), r(x), wl(y), ul(x), r(y), w(y), ul(y), commit. b) Rozhodnite, či existuje rozvrh, v ktorom T1 a T2, rozšírené o operácie z úlohy a), končia v deadlocku. Svoju odpoveď ÁNO resp. NIE zdôvodnite. (1) (Buď uveďte príklad takého rozvrhu alebo dokážte, že taký rozvrh neexistuje.) Ak T1 získa zámok na X ako prvá, tak rozvrh bude sériový. Deadlock vzniknúť nemôže. Ak zámok na X získa najskôr T2, tak sa vykoná časť T2 až po operáciu ul(x). Neskôr však už deadlock vzniknúť nemôže, lebo transakcia, ktorá ako prvá získa zámok na Y, dobehne až do konca. Teda neexistuje rozvrh, v ktorom T1 a T2 končia v deadlocku. c) Vysvetlite, ako funguje metóda wait-or-die na prevenciu deadlocku. (2) Systém pridelí každej transakcii časovú pečiatku v čase vykonávania jej operácie start. Ak nejaká transakcia T žiada o zámok, ktorý v tom momente drží transakcia T, tak systém najskôr zistí, ktorá z tých transakcií je staršia (t.j. má menšiu časovú pečiatku). Ak je T staršia než T, tak systém nechá T čakať na pridelenie zámku. Inak systém abortuje T. d) Uveďte príklad rozvrhu horeuvedených transakcií, v ktorom transakcia T1 bude abortovaná pri použití metódy wait-or-die. (1) start2, rl(x), start1, wl1(x), a1

4. Uvažujte SQL dotaz select r.x, s.x from r, s where r.x = s.x and r.y > 2 * s.y. 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é. Dotaz sa počíta metódou nested-loop-join, k dispozícii je 900 voľných blokov v operačnej pamäti. a) Popíšte spôsob organizácie operačnej pamäte. (2) Pre výpočet joinu sa z voľných 900 blokov rezervuje celkovo 502 blokov: 500 blokov pre čítanie relácie r (lebo r je menšia než relácia s), 1 blok pre postupné čítanie blokov relácie s, 1 blok pre zápis joinovaných n-tíc. b) Uveďte počet vstupných diskových operácií. (1) Každý blok relácie r aj relácie s sa prečíta práve raz. To je celkovo 1500 diskových operácií.