vypilo_sa(k, A, S, I) navstivil(i, _, K), vypil(i, A, M), capuje(k, A, C), S is M * C. /* S = M * C */

Σχετικά έγγραφα
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

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

Ekvačná a kvantifikačná logika

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

7. FUNKCIE POJEM FUNKCIE

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

Obvod a obsah štvoruholníka

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

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

1. písomná práca z matematiky Skupina A

Tomáš Madaras Prvočísla

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

Cvičenie č. 4,5 Limita funkcie

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

PRIEMER DROTU d = 0,4-6,3 mm

HASLIM112V, HASLIM123V, HASLIM136V HASLIM112Z, HASLIM123Z, HASLIM136Z HASLIM112S, HASLIM123S, HASLIM136S

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

C. Kontaktný fasádny zatepľovací systém

Goniometrické rovnice a nerovnice. Základné goniometrické rovnice

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

Gramatická indukcia a jej využitie

KATEDRA DOPRAVNEJ A MANIPULAČNEJ TECHNIKY Strojnícka fakulta, Žilinská Univerzita

3. Striedavé prúdy. Sínusoida

AerobTec Altis Micro

Συστήματα Διαχείρισης Βάσεων Δεδομένων

Rozsah hodnotenia a spôsob výpočtu energetickej účinnosti rozvodu tepla

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

Kompilátory. Cvičenie 6: LLVM. Peter Kostolányi. 21. novembra 2017

Matematika 2. časť: Analytická geometria

24. Základné spôsoby zobrazovania priestoru do roviny

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Matematika prednáška 4 Postupnosti a rady 4.5 Funkcionálne rady - mocninové rady - Taylorov rad, MacLaurinov rad

Zrýchľovanie vesmíru. Zrýchľovanie vesmíru. o výprave na kraj vesmíru a čo tam astronómovia objavili

Život vedca krajší od vysnívaného... s prírodou na hladine α R-P-R

Aquinas College. Edexcel Mathematical formulae and statistics tables DO NOT WRITE ON THIS BOOKLET

M6: Model Hydraulický systém dvoch zásobníkov kvapaliny s interakciou

Priamkové plochy. Ak každým bodom plochy Φ prechádza aspoň jedna priamka, ktorá (celá) na nej leží potom plocha Φ je priamková. Santiago Calatrava

Τεχνολογία Πολιτισμικού Λογισμικού

ss rt çã r s t Pr r Pós r çã ê t çã st t t ê s 1 t s r s r s r s r q s t r r t çã r str ê t çã r t r r r t r s

ΘΕΜΑΤΑ. Ερώτηση 1 Κατά τη Φυσική Αποθήκευση (Physical storage) μιας ΒΔ αποθηκεύονται στον δίσκο τα:

KATALÓG KRUHOVÉ POTRUBIE

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

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

6 APLIKÁCIE FUNKCIE DVOCH PREMENNÝCH

Akumulátory. Membránové akumulátory Vakové akumulátory Piestové akumulátory

Komplexné čísla, Diskrétna Fourierova transformácia 1

,Zohrievanie vody indukčným varičom bez pokrievky,

Διαχείριση Πολιτισμικών Δεδομένων

SCITECH Volume 13, Issue 2 RESEARCH ORGANISATION Published online: March 29, 2018

PROJECT ΕΡΓΑΣΤΗΡΙΩΝ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ Ι. Τμήμα Μηχανικών Πληροφορικής Τ.Ε.

Termodynamika. Doplnkové materiály k prednáškam z Fyziky I pre SjF Dušan PUDIŠ (2008)

Simon et al. Supplemental Data Page 1

Deliteľnosť a znaky deliteľnosti

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση

Τεχνολογία Πολιτισμικού Λογισμικού

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

Βάσεις Δεδομένων. Εργαστήριο ΙV. Τμήμα Πληροφορικής ΑΠΘ

Ispitivanje toka i skiciranje grafika funkcija

Kontrolné otázky na kvíz z jednotiek fyzikálnych veličín. Upozornenie: Umiestnenie správnej a nesprávnych odpovedí sa môže v teste meniť.

BΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΕΞΕΤΑΣΗ ΦΕΒΡΟΥΑΡΙΟΥ 2005

SQL Data Manipulation Language

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Metodicko pedagogické centrum. Národný projekt VZDELÁVANÍM PEDAGOGICKÝCH ZAMESTNANCOV K INKLÚZII MARGINALIZOVANÝCH RÓMSKYCH KOMUNÍT

Modul pružnosti betónu

Προχωρημένα Θέματα Βάσεων Δεδομένων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

SQL Server 2005 Tutorial Αςκήςεισ. Γεράσιμος Μαρκέτος InfoLab, Τμήμα Ρληροφορικήσ, Ρανεπιςτήμιο Ρειραιϊσ (

Εισαγωγή στην πληροφορική

STRIEDAVÝ PRÚD - PRÍKLADY

Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών. ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

u R Pasívne prvky R, L, C v obvode striedavého prúdu Činný odpor R Napätie zdroja sa rovná úbytku napätia na činnom odpore.

Vlastnosti nekonečných slov generovaných pomocou DGSM (diplomová práca)

Moderné vzdelávanie pre vedomostnú spoločnosť Projekt je spolufinancovaný zo zdrojov EÚ M A T E M A T I K A


Jednotkový koreň (unit root), diferencovanie časového radu, unit root testy

Το θύρηο κέρος ηοσ σιηθού προέρτεηαη από δηαθάλεηες ηοσ Δ. Καηζίθαροσ ( ηολ οποίο εσταρηζηούκε ζερκά

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

MOSTÍKOVÁ METÓDA 1.ÚLOHA: 2.OPIS MERANÉHO PREDMETU: 3.TEORETICKÝ ROZBOR: 4.SCHÉMA ZAPOJENIA:

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Βάσεις Δεδομένων. Βασίλειος Βεσκούκης Εισαγωγή στη γλώσσα SQL (Structured Query Language) Η γλώσσα SQL

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 4ο Μάθημα: SQL - Παράδειγμα. Δρ. Κωνσταντίνος Χ.

Managing Economic Fluctuations. Managing Macroeconomic Fluctuations 1

SAMSUNG ELECTRONICS CO., LTD TEST REPORT SAMSUNG ELECTRONICS CO., LTD. 1, Samsung-Ro, Giheung-Gu, Yongin-Si, Gyeonggi-Do 17113, Korea

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 6: SQL (Συζεύξεις, Εμφώλευση, Ομαδοποίηση) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Πεπιγπαθή επγαζίαρ Μαθήμαηορ ΗΥ252 Χειμεπινό εξάμηνο Παράδοση Α φάσης: 10/12/2010 Παράδοση Β φάσης: 14/01/2011

Estimation of grain boundary segregation enthalpy and its role in stable nanocrystalline alloy design

Ηλεκτρονικοί Υπολογιστές II

rs r r â t át r st tíst Ó P ã t r r r â

GROUP BY, HAVING, COUNT, MIN, MAX, SUM, AVG, ROLLUP.

SPEEDO AQUABEAT. Specially Designed for Aquatic Athletes and Active People

Matematika 2. časť: Funkcia viac premenných Letný semester 2013/2014

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι. Ενότητα 5: SQL (Απλή SELECT) Ευαγγελίδης Γεώργιος. Τμήμα Εφαρμοσμένης Πληροφορικής ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

Answers - Worksheet A ALGEBRA PMT. 1 a = 7 b = 11 c = 1 3. e = 0.1 f = 0.3 g = 2 h = 10 i = 3 j = d = k = 3 1. = 1 or 0.5 l =

Εξεταστική Περίοδος Ιουνίου 2004

Σύνολα Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

LR(0) syntaktické analyzátory. doc. RNDr. Ľubomír Dedera

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

Transcript:

4/1/2011 Ú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 [K, A], pre ktoré platí, že alkohol A sa vypil v krčme K vo väčšej celkovej cene než vo všetkých ostatných krčmách dohromady. Relačný kalkul: {[K, A]: T1 T2 T1 > T2 I, T1 = sum(m * C) ( P navstivil(i, P, K) vypil(i, A, M) capuje(k, A, C)) I, T2 = sum(m * C) ( K2 P A0 C0 capuje(k, A0, C0) navstivil(i, P, K2) vypil(i, A, M) capuje(k, A, C) K K2)} Datalog: answer(k, A) subtotal(vypilo_sa(k, A, S1, _), [K, A], [T1 = sum(s1)]), subtotal(vypilo_sa_inde(k, A, S2, _), [K, A], [T2 = sum(s2)]), T1 > T2. vypilo_sa(k, A, S, I) navstivil(i, _, K), vypil(i, A, M), capuje(k, A, C), S is M * C. /* S = M * C */ vypilo_sa_inde(k, A, S, I) capuje(k, _, _), navstivil(i, _, K2), vypil(i, A, M), capuje(k2, A, C), S = M * C, /* S = M * C */ not K = K2.

SQL: create temporary table total_vypilo_sa as select n.krcma, v.alkohol, sum(v.mnozstvo * c.cena) as Total from navstivil n, vypil v, capuje c where n.idn = v.idn and n.krcma = c.krcma and v.alkohol = c.alkohol group by n.krcma, v.alkohol create temporary table total_vypilo_sa_inde as select c1.krcma, v.alkohol, sum(v.mnozstvo * c2.cena) as Total from capuje c1, navstivil n, vypil v, capuje c2 where n.idn = v.idn and n.krcma = c2.krcma and v.alkohol = c2.alkohol and c1.krcma <> c2.krcma group by c1.krcma, v.alkohol select tvs.krcma, tvs.alkohol from total_vypilo_sa tvs, total_vypilo_sa_inde tvsi where tvs.krcma = tvsi.krcma and tvs.alkohol = tvsi.alkohol and tvs.total > tvsi.total Relačná algebra: Π Krcma, Alkohol ( Γ Krcma, Alkohol, T1 = sum(mnozstvo * Cena) (navstivil vypil capuje) Krcma = K2 Alkohol = A2 T1 > T2 Ρ inde(k2, A2, T2) (Γ Krcma, Alkohol, T2 = sum(mnozstvo * Cena) (Ρ capuje(k) ((Π Krcma (capuje)) K<>Krcma navstivil vypil capuje)))

b) Sformulujte nasledujúci dotaz v relačnom kalkule (2) a v Datalogu (2): Nájdite dvojice pijanov [P1, P2] také, že P1 a P2 buď vypili tú istú množinu alkoholov alebo nevypili žiaden spoločný alkohol. Relačný kalkul: {[P1, P2]: (( I K navstivil(i, P1, K)) ( A lubi(p1, A))) /* P1 je pijan */ (( I K navstivil(i, P2, K)) ( A lubi(p2, A))) /* P2 je pijan */ ( ( /* P1 a P2 vypili rovnaku mnozinu alkoholov */ A ( I K M navstivil(i, P1, K) vypil(i, A, M)) ( I K M navstivil(i, P2, K) vypil(i, A, M)) ) ( /* P1 a P2 vypili_spolocny alkohol */ A I1 K1 M1 I2 K2 M2 navstivil(i1, P1, K1) vypil(i1, A, M1) navstivil(i2, P2, K2) vypil(i2, A, M2) ) )

Datalog: answer(p1, P2) pijani(p1), pijani(p2), not vypil_nevypil(p1, P2), not vypil_nevypil(p2, P1). answer(p1, P2) pijani(p1), pijani(p2), not vypili_spolocne(p1, P2). pijani(p) navstivil(_, P, _). pijani(p) lubi(p, _). vypil_nevypil(p1, P2) vypil_pijan(p1, A), not vypil_pijan(p2, A). vypili_spolocne(p1, P2) vypil_pijan(p1, A), vypil_pijan(p2, A). vypil_pijan(p, A) navstivil(i, P, _), vypil(i, A, _).

2. a) Definujte bezstratovosť dekompozície relačnej schémy (t.j. definujte čo znamená, že dekompozícia relačnej schémy sa spája bezstratovo). (2) Dekompozícia relačnej schémy (r, F) do (r 1, F 1 ), (r 2, F 2 ),..., (r n, F n ) sa spája bezstratovo práve vtedy, keď pre každé naplnenie relácie r platí r = Πr 1 (r) Πr 2 (r)... Πr n (r) b) Aké negatívne praktické dôsledky môže mať použitie dekompozície, ktorá sa nespája bezstratovo? (1) V dekomponovanej databáze môžu prestať platiť fakty, ktoré v r platili; alebo naopak, môžu začať platiť fakty, ktoré v r neplatili. Príklad: stratová dekompozícia môže viesť k tomu, že firma platí neexistujúce faktúry; alebo neplatí existujúce faktúry; alebo posiela niekam ďaleko plný kamión vecí k niekomu, kto si tie veci neobjednal; alebo bezdôvodne odpaľuje raketu;... c) Daná je relácia r(a, B, C, D, E, F, G, H) s funkčnými závislosťami BE GH, BEG FA, D C, F B, BF A, ABG D, AGH E. Rozhodnite, či sa nasledujúca dekompozícia relácie r spája bezstratovo: (2) r1(a, B, D, G), r2(a, E, G, H), r3(a, F), r4(b, E, G), r5(b, E, H), r6(b, F), r7(c, D), r8(e, F). Ide o dekompozíciu do viacej než 2 tabuliek, takže treba použiť algoritmus chase. ABDG a1 a2 b31 a4 b51 b61 a7 b81 AF a1 b23 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 b84 BEH b15 a2 b35 b45 a5 b65 b75 a8 BF b16 a2 b36 b46 b56 a6 b76 b86 EF b18 b28 b38 b48 a5 a6 b78 b88

F B ABDG a1 a2 b31 a4 b51 b61 a7 b81 AF a1 a2 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 b84 BEH b15 a2 b35 b45 a5 b65 b75 a8 BF b16 a2 b36 b46 b56 a6 b76 b86 EF b18 a2 b38 b48 a5 a6 b78 b88 BE GH ABDG a1 a2 b31 a4 b51 b61 a7 b81 AF a1 a2 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 a8 BEH b15 a2 b35 b45 a5 b65 a7 a8 BF b16 a2 b36 b46 b56 a6 b76 b86 EF b18 a2 b38 b48 a5 a6 a7 a8 BF A ABDG a1 a2 b31 a4 b51 b61 a7 b81 AF a1 a2 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 a8 BEH b15 a2 b35 b45 a5 b65 a7 a8 BF a1 a2 b36 b46 b56 a6 b76 b86 EF a1 a2 b38 b48 a5 a6 a7 a8

ABG D ABDG a1 a2 b31 a4 b51 b61 a7 b81 AF a1 a2 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 a8 BEH b15 a2 b35 b45 a5 b65 a7 a8 BF a1 a2 b36 b46 b56 a6 b76 b86 EF a1 a2 b38 a4 a5 a6 a7 a8 D C ABDG a1 a2 a3 a4 b51 b61 a7 b81 AF a1 a2 b33 b43 b53 a6 b73 b83 BEG b14 a2 b34 b44 a5 b64 a7 a8 BEH b15 a2 b35 b45 a5 b65 a7 a8 BF a1 a2 b36 b46 b56 a6 b76 b86 EF a1 a2 a3 a4 a5 a6 a7 a8 V riadku EF sú samé a-čkové symboly. Dekompozícia je teda bezstratová. Funkčné závislosti je možné aplikovať v ľubovoľnom poradí. Pritom je dôležité zjednocovať aj b-čkové symboly (podľa algoritmu z prednášky). Môže sa stať, že niektorú funkčnú závislosť treba aplikovať viackrát (t.j. vo všeobecnosti nestačí aplikovať funkčnú závislosť maximálne raz). Algoritmus končí, keď buď niektorý riadok obsahuje len a-čkové symboly, alebo keď sa aplikáciou žiadnej funkčnej závislosti tabuľka nezmení.

3. a) Popíšte čo najpresnejšie všeobecný algoritmus obnovy (bez checkpointov). (2) Všeobecný algoritmus obnovy prechádza log-file najskôr zostupne. Počas tohto prechodu vytvára zoznamy redo_list a undo_list a zároveň robí UNDO operácie pre transakcie z undo_list. Keď príde na začiatok log-file, začne vzostupný prechod, pri ktorom vykonáva REDO operácie pre transakcie z redo_list. Keď príde na koniec logfile, začne systém normálnu prevádzku. b) Databázový systém spadol. Pred opätovným štartom obsahuje log-file nasledujúce záznamy: <T1, start>, <T1, X, 1, 2>, <T2 start>, <T3, start>, <T3, Y, 3, 2>, <T1, Y, 2, 3>, <T2, Z, 0, 1>, <T2, commit>, <T3, Z, 1, 0>. Uveďte sekvenciu priradení, ktoré sa vykonajú počas obnovy v tomto konkrétnom prípade. (2) Write-záznamy v logu sú zrejme vo formáte <trans, object, old_val, new_val>. Sekvencia priradení: Z := 1 (undo T3) Y := 2 (undo T1) Y := 3 (undo T3) X := 1 (undo T1) Z := 1 (redo T2)

4. Predpokladajte, že v operačnej pamäti sú voľné presne 4 bloky. Bloky na disku a v operačnej pamäti sú rovnako veľké, do jedného bloku sa zmestia 2 záznamy relácie r. Znázornite priebeh (popíšte najmä organizáciu operačnej pamäte) algoritmu mergesort (2) a spočítajte presný počet diskových operácií (vrátane výstupných operácií) (2) pre dotaz select r.x, r.y order by r.x, r.y a pre r(x, Y) = <[7, 8], [4, 9] [2, 1], [7, 6] [3, 9], [5, 7] [8, 1], [7, 9] [3, 4], [2, 2] [2, 1], [3, 2] [1, 6], [1, 5] [4, 9], [4, 2] [3, 5], [1, 7] [4, 6], [1, 8]>. (Znak slúži ako oddeľovač blokov.) V prvej fáze sa všetky 4 bloky v RAM použijú na čítanie blokov r. V RAM sa záznamy utriedia a následne zapíšu do behu. Toto sa opakuje, kým sa neprečíta celá r. RAM: [7, 8], [4, 9] [2, 1], [7, 6] [3, 9], [5, 7] [8, 1], [7, 9] RUN1: <[2, 1], [3, 9] [4, 9], [5, 7] [7, 6], [7, 8] [7, 9], [8, 1]> RAM: [3, 4], [2, 2] [2, 1], [3, 2] [1, 6], [1, 5] [4, 9], [4, 2] RUN2: <[1, 5], [1, 6] [2, 1], [2, 2] [3, 2], [3, 4] [4, 2], [4, 9]> RAM: [3, 5], [1, 7] [4, 6], [1, 8] RUN3: <[1, 7], [1, 8] [3, 5], [4, 6]>

V druhej fáze sa behy spájajú do väčších behov. 3 bloky v RAM použijú na čítanie 3 behov, 1 blok RAM sa použije na výstup. Keď sa výstupný blok zaplní, zapíše sa do výstupného behu. Keď sa niektorý zo vstupných blokov vyprázdni, prečíta sa ďalší blok z príslušného vstupného behu. RAM (output block last): [2, 1], [3, 9] [1, 5], [1, 6] [1, 7], [1, 8] [2, 1], [3, 9] [1, 5], [1, 6] [1, 7], [1, 8] [1, 5], [1, 6] [2, 1], [3, 9] [1, 5], [1, 6] [1, 7], [1, 8] [1, 5], [1, 6] [2, 1], [3, 9] [2, 1], [2, 2] [1, 7], [1, 8] [2, 1], [3, 9] [2, 1], [2, 2] [1, 7], [1, 8] [1, 7], [1, 8] [2, 1], [3, 9] [2, 1], [2, 2] [1, 7], [1, 8] [1, 7], [1, 8] [2, 1], [3, 9] [2, 1], [2, 2] [3, 5], [4, 6] [2, 1], [3, 9] [2, 1], [2, 2] [3, 5], [4, 6] [2, 1], [2, 1] [2, 1], [3, 9] [2, 1], [2, 2] [3, 5], [4, 6] [2, 1], [2, 1] [2, 1], [3, 9] [2, 1], [2, 2] [3, 5], [4, 6] [2, 2] [2, 1], [3, 9] [3, 2], [3, 4] [3, 5], [4, 6] [2, 2] [2, 1], [3, 9] [3, 2], [3, 4] [3, 5], [4, 6] [2, 2], [3, 2] [2, 1], [3, 9] [3, 2], [3, 4] [3, 5], [4, 6] [2, 2], [3, 2] [2, 1], [3, 9] [3, 2], [3, 4] [3, 5], [4, 6] [3, 4] [2, 1], [3, 9] [4, 2], [4, 9] [3, 5], [4, 6] [3, 4] [2, 1], [3, 9] [4, 2], [4, 9] [3, 5], [4, 6] [3, 4], [3, 5] [2, 1], [3, 9] [4, 2], [4, 9] [3, 5], [4, 6] [3, 4], [3, 5] [2, 1], [3, 9] [4, 2], [4, 9] [3, 5], [4, 6] [3, 9] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [3, 9] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [3, 9], [4, 6] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [3, 9], [4, 6] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [4, 2], [4, 9] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [4, 2], [4, 9] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [4, 9] [4, 9], [5, 7] [4, 2], [4, 9] [3, 5], [4, 6] [4, 9], [5, 7] [7, 6], [7, 8] [4, 2], [4, 9] [3, 5], [4, 6] [4, 9], [5, 7] [7, 6], [7, 8] [4, 2], [4, 9] [3, 5], [4, 6] [7, 6], [7, 8] [7, 6], [7, 8] [4, 2], [4, 9] [3, 5], [4, 6] [7, 6], [7, 8] [7, 9], [8, 1] [4, 2], [4, 9] [3, 5], [4, 6] [7, 6], [7, 8] [7, 9], [8, 1] [4, 2], [4, 9] [3, 5], [4, 6] [7, 9], [8, 1]

V prvej fáze sa každý záznam r raz prečíta a raz zapíše. V druhej fáze sa prečíta a zapíše rovnako veľa blokov (ak druhú fázu netreba opakovať, t.j. ak počet behov nie je väčší než M-1, kde M je veľkosť RAM). To znamená, že spolu sa urobí 20 vstupných a 20 výstupných operácií (keďže r má 10 blokov).