Tentamen Databases voor ica

Vergelijkbare documenten
Tentamen Databases voor iku

Databases (INFODB) 20 april 2010

Tentamen Databases voor ica

Tentamen Databases. 18 december :00-12:00, Educatorium Gamma

Databases (INFODB) 24 januari 2007

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Tentamen Informatica 6, 2IJ60,

Tentamen Informatica 6, 2IJ60,

TI2500 Informatie en Datamodellering

Data Manipulatie. Query Talen. / Informatica

Structured Query Language (SQL)

ISO Query By Example

Introductie (relationele) databases

= > >= < <= BETWEEN IS NULL IS NOT NULL

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

Relationele Databases 2002/2003

Relationele Databases 2002/2003

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

EXAMEN juni 2016 Gegevensbanken

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

12. Meer dan één tabel gebruiken en sub-queries

Databases - Inleiding

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Les S-01: De basisbeginselen van SQL

TU Delft TENTAMEN DATABASES. Opgaven IN2105/IN oktober uur. Er zijn 6 opgaven. maximale score 100 punten

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Proeftentamen ISO (2R290), query-gedeelte, Oktober 2006

Tentamen Gegevensbanken ( ) 3 februari 2012

Les S-02: Meer geavanceerde SQL-instructies

Relationele Databases 2002/2003

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

TI2505/TI2500 Informatie- en Datamodellering

Relationele Databases 2002/2003

Datamodelleren en databases 2011

Tentamen Gegevensbanken (211074) 29 oktober 2009

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: Groep TDI 1

TI2500 Informatie en Datamodellering

TI2500 Informatie en Datamodellering

Tentamen Gegevensbanken (211074) 2 februari 2007

TECHNISCHE UNIVERSITEIT DELFT Sectie Database Systemen Zuidplantsoen BZ DELFT. Oefening Inleiding Database Systemen. Opgave: Prakticumbeheer

Tentamen Gegevensbanken ( ) 3 november 2011

Miniles gegevensbanken bevragen met SQL

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal

Query SQL Boekje. Fredrik Hamer

Relationele databanken

ISO SQL: Structured Query Language

1. Inleiding Inleiding SQL Inleiding Database, databaseserver en databasetaal Het relationele model...

SQL & Relationele datamodellen in interactieve media

Correctievoorschrift HAVO Informatica. Tijdvak 1 Woensdag 24 mei uur. College-examen schriftelijk.

11. Het selecteren van gegevens deel II

Les S-01: De basisbeginselen van SQL

Antwoorden Informatica Databases enigma online basisdeel

SQL opgaven. Relationele model: Opgaven:

Normaliseren versie 1.1

Data Manipulation Language

Informatie & Databases

Zelftest SQL Workshop

Wijzigingen Universe OSIRIS Manager versie /01 mei 2012

EXAMEN juni 2018 Gegevensbanken

Van CaseTalk naar een database in SQLite studio

Databases en SQL Foundation (DBSQLF.NL)

Zelftest SQL Workshop

Tentamen Gegevensbanken ( ) 28 oktober 2010

SQL / Systeemanalyse

Oefening 1. Bedenk een voorbeeld van een vreemde sleutel die naar de eigen relatie verwijst.

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

Gebruikers Handleiding

EXIN Databases en SQL Foundation

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:

Tentamen Gegevensbanken ( ) 3 februari 2012

Tentamen Gegevensbanken ( ) 28 oktober 2010

1. * Database worden vaak gebruikt in Client-Server architectuur.

Structured Query Language

Databases Answers to selected exercises: sessions 1-3 Version: Tuesday 6 th March, 2018, 09:24

SQL & Datamodelleren

Correctievoorschrift VWO NederlandsNederl. Informatica. Tijdvak 1 Woensdag 17 mei uur. College-examen schriftelijk.

Tentamen Gegevensbanken (211074) 2 februari 2007

Het ontwerpen van een databaseschema

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

[TOETS SQL INLEIDING]

Les 2 Eenvoudige queries

IN2105/IN2410 Databases

Faculteit Elektrotechniek - Leerstoel ES Tentamen Schakeltechniek. Vakcode 5A050, 19 januari 2005, 14:00u-17:00u

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

14.1 Vergelijkingen en herleidingen [1]

de praktijk: tabellen

oefeningen eredivisie antwoorden

oefeningen TOP2000 antwoorden

SQL: oefenen queries

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Relationele database. Het relationele model

2. Waar of vals: Als een rechte a evenwijdig is met een vlak α en dat vlak staat loodrecht op een vlak β dan staat a loodrecht op β.

Gekoppelde tabellen: de JOIN

Hoofdstuk: 1 Principes van databases

Informatie verwerking en databases RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE SQL INSERT SQL UPDATE SQL DELETE...

Van een ER-diagram naar een database specificatie in SQL

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

Transcriptie:

Tentamen Databases voor ica 16 april 2015 17:00-20:00, Educatorium-beta Lees eerst onderstaande aanwijzingen. Vermeld op elk vel je naam en studentnummer. Indien één van deze zaken ontbreekt, wordt het vel niet nagekeken. Vul alle antwoorden in op deze tentamenbundel. Het bijgeleverde tentamenpapier is uitsluitend bedoeld als kladpapier. Bij elke meerkeuze vraag is één antwoord correct (of optimaal). Omcirkel de letter voor dit antwoord. Als je je keuze wilt corrigeren, kras de letter dan door en omcirkel alsnog de juiste letter. Als je veelvuldig je antwoord hebt gecorrigeerd, vermeld dan de letter van het juiste antwoord in de kantlijn links van de vraag en kras de andere letters door. Achter het nummer van elke vraag staat hoeveel punten deze vraag waard is. Toon bij het inleveren je collegekaart. Schrijf en formuleer duidelijk. Je mag een A4 met aantekeningen raadplegen. Het tentamen duurt 3 uur. Gebruikte afko s: RDB = Relationele database 2PL = Two-phase locking 2PC = Two-phase commit BCNF = Boyce-Codd normaalvorm COORD = Coordinator DP = dependency preserving FD = functional dependency RA = Relationele algebra SQL = SQL (Structured Query Language) Succes! 1

Algemeen (16 punten) De vragen onder de noemer Algemeen worden bij een fout antwoord met een negatieve score (het aantal vermelde punten) beoordeeld. Bij ontbrekend antwoord is de score 0. Reden hiervoor is de verwachte scoringskans van 50% bij louter gokken. De gezamenlijke score over de vragen onder de noemer Algemeen (dus vraag 1-8) kan niet negatief worden. Vraag 1 [2] Als een ER-diagram door verschillende competente ontwerpers afgebeeld wordt naar een RDB-schema, zal dit altijd tot hetzelfde RDB-schema leiden. A: juist B: onjuist Vraag 2 [2] Als een minimal cover een FD: A BC bevat, dan is de decompositie op (AB) en (AC) een correct alternatief voor (ABC) ten behoeve van het genereren van een verliesvrije, DP 3NF-decompositie. A: juist B: onjuist Vraag 3 [2] De herschrijfregel X Y Z, Y UV X V is: A: juist B: onjuist Vraag 4 [2] Multivalued dependencies komen in de praktijk zelden voor. A: juist B: onjuist Vraag 5 [2] Het terminatieprotocol van 2PC leidt altijd tot Abort. A: juist B: onjuist Vraag 6 [2] Het terminatieprotocol van 2PC kan tot inconsistentie leiden bij een netwerkpartitie. A: juist B: onjuist 2

Vraag 7 [2] Twee verschillende SQL-queries kunnen (op hetzelfde DBMS en bij dezelfde inhoud van de database) leiden tot dezelfde methode voor de berekening van het resultaat van de query. A: juist B: onjuist Vraag 8 [2] Twee dezelfde SQL-queries kunnen (op hetzelfde DBMS en bij verschillende inhoud van de database) leiden tot verschillende methodes voor de berekening van het resultaat van de query. A: juist B: onjuist Dependencies (16 punten) De vragen over Dependencies worden bij een fout antwoord met een negatieve score beoordeeld. Bij ontbrekend antwoord is de score 0. De gezamenlijke score over de vragen onder de noemer Dependencies kan niet negatief worden. Een zonovergoten universiteit in het midden des lands gebruikt als studievoortgangssysteem het onvolprezen SIRISO. Elke gelijkenis met OSIRIS berust niet op toeval. U wordt geacht uw domeinkennis betreffende OSIRIS te gebruiken. Vakken kennen in het algemeen meerdere jaargangen. We onderscheiden ten behoeve van de opslag van studieresultaten onder meer de volgende attributen: studentnummer: het studentnummer. studentnaam: de achternaam en voorletters van de student. gebdat: de geboortedatum van de student. vakcode: de welbekende SIRISO vakcode, vergelijkbaar met onze OSIRIS vakcode. vaknaam: de naam van een vak. collegejaar: het collegejaar waarin een jaargang van een vak gegeven wordt (het vak INFODB dat u volgt heeft collegejaar 2014). periode: de periode waarin een vak gegeven wordt: 1, 2, 3, of 4. toetsdatum: de datum waarop een toets afgenomen wordt. toetsuitslag: de bijbehorende toetsuitslag. docentcode: de unieke identificatiecode van een docent. Vraag 9 [1] De FD studentnummer studentnaam, gebdat 3

Vraag 10 [1] De FD studentnummer studentnummer, studentnaam, gebdat Vraag 11 [1] De FD studentnaam, gebdat studentnummer Vraag 12 [1] De FD studentnummer, studentnaam, gebdat studentnummer Vraag 13 [1] De FD vaknaam vakcode Vraag 14 [1] De FD studentnummer, vakcode toetsuitslag Vraag 15 [1] De FD studentnummer, vakcode, collegejaar toetsuitslag Vraag 16 [1] De FD studentnummer, vakcode, collegejaar, periode toetsuitslag Vraag 17 [1] De FD studentnummer, vakcode, collegejaar, periode, toetsdatum toetsuitslag 4

Vraag 18 [1] De FD studentnummer, vakcode, collegejaar, toetsdatum toetsuitslag Vraag 19 [1] De FD studentnummer, vakcode, toetsdatum toetsuitslag Vraag 20 [1] De FD studentnummer, docentcode, toetsdatum toetsuitslag Vraag 21 [2] We beperken ons nu even tot de projectie op (studentnummer, vakcode, toetsuitslag). A: De MVD studentnummer vakcode geldt B: De MVD studentnummer toetsuitslag geldt C: De MVD s studentnummer vakcode en studentnummer toetsuitslag gelden beide D: De MVD s studentnummer vakcode en studentnummer toetsuitslag gelden geen van beide 5

Minimal covers en 3NF (16 punten) We hebben een schema R(ABCDEF G) en een FDset {AB D, B C, BD E, C EF, BF D}. We gaan om te beginnen een minimal cover berekenen. Vraag 22 [6] Vul in onderstaande ruimte in welke FDs veranderd worden door de linkerkantreductie en hoe deze er daarna uitzien. Vraag 23 [6] Vul in onderstaande ruimte in welke FDs verwijderd worden in verband met overtolligheid. Vraag 24 [4] Vul in onderstaande ruimte in welke verliesvrije 3NF, DP decompositie uit de minimal cover gegenereerd kan worden. Geef daartoe de relatieschema s en voor elk schema de candidate keys. 6

BCNF (12 punten) De vragen onder de noemer BCNF worden bij een fout antwoord met een negatieve score beoordeeld. Bij ontbrekend antwoord is de score 0. De gezamenlijke score over de vragen onder de noemer BCNF kan niet negatief worden. We hebben een schema R(ABCDE) en een FDset {E D, D BC, A C}. Vraag 25 [2] Is de decompositie (EC), (DBC), (AD) verliesvrij? Vraag 26 [2] Is de decompositie (EC), (DBC), (AD) in BCNF? Vraag 27 [2] Is de decompositie (EC), (DBC), (AD) DP? Vraag 28 [2] Is de decompositie (ED), (DBC), (AE) verliesvrij? Vraag 29 [2] Is de decompositie (ED), (DBC), (AE) in BCNF? Vraag 30 [2] Is de decompositie (ED), (DBC), (AE) DP? 7

Queries (16 punten) We kunnen maar geen genoeg krijgen van IMDB. We hebben het volgende database schema. Film ( filmid, titel, maatschappij, jaar, regisseur ) Acteur ( actid, naam, gebdatum, geslacht ) Speeltin ( filmid, actid ) Geslacht kent de waarden M en V; NULL-values komen niet voor. Hieronder zie je vier queries en een groot aantal expressies in de RA en SQL. We korten de tabelnamen af tot hun eerste letter. De relationele division duiden we aan met een %. Q1: In welke films (filmid volstaat) spelen uitsluitend vrouwelijke acteurs mee Q2: Geef de titels van de films waarvoor geldt dat er in één jaar minstens twee verschillende films met deze titel zijn verschenen Q3: Geef de acteurs (actid) die in alle films die regisseur Scorsese in de jaren 1990 en 1991 gemaakt heeft meespelen Q4: Welke acteur (actid) heeft in de meeste films gespeeld E1: π filmid (σ geslacht= V (A) S) E2: π filmid (σ geslacht M (A) S) E3: π filmid (F ) π filmid (σ geslacht= M (A) S) E4: π filmid,actid (S) % π actid (σ geslacht= V (A)) E5: π titel (F F ) E6: π actid (S % π filmid (σ regisseur= Scorsese jaar 1990 jaar 1991(F )) E7: π actid,filmid (S) % π filmid (σ regisseur= Scorsese jaar 1990 jaar 1991(F )) E8: SELECT filmid FROM F WHERE NOT EXISTS ( SELECT * FROM S, A WHERE geslacht = M AND S.filmid = F.filmid ) 8

E9: SELECT filmid FROM F WHERE filmid NOT IN ( SELECT filmid FROM S, A WHERE geslacht = M AND S.actid = A.actid ) E10: SELECT F1.titel FROM F F1, F F2 WHERE F1.titel = F2.titel AND F1.jaar = F2.jaar AND F1.filmid <> F2.filmid E11: SELECT naam FROM A WHERE NOT EXISTS ( SELECT * FROM F WHERE regisseur = Scorsese AND jaar >= 1990 AND jaar <= 1991 AND NOT EXISTS ( SELECT * FROM S WHERE S.filmid = F.filmid AND S.actid = A.actid )) E12: SELECT naam FROM A WHERE NOT EXISTS ( SELECT * FROM S WHERE S.actid = A.actid AND NOT EXISTS ( SELECT * FROM F WHERE regisseur = Scorsese AND jaar >= 1990 AND jaar <= 1991 WHERE S.filmid = F.filmid AND S.actid = A.actid )) 9

E13: SELECT actid FROM S GROUP BY actid HAVING MAX(COUNT(*)) E14: SELECT actid FROM S GROUP BY actid HAVING SELECT MAX(COUNT(*)) FROM S GROUP BY actid ) E15: SELECT actid FROM S GROUP BY actid HAVING COUNT(*) >= ALL ( SELECT SUM(*) FROM S GROUP BY actid ) E16: SELECT actid FROM S GROUP BY actid HAVING COUNT(*) >= ALL ( SELECT COUNT(*) FROM S GROUP BY actid ) Vraag 31 [4] Geef hieronder aan welke expressies corresponderen met Q1. 10

Vraag 32 [4] Geef hieronder aan welke expressies corresponderen met Q2. Vraag 33 [4] Geef hieronder aan welke expressies corresponderen met Q3. Vraag 34 [4] Geef hieronder aan welke expressies corresponderen met Q4. Concurrency (14 punten) We beschouwen de volgende twee schedules. S1 T1 T2 T3 T4 T5 w(x) w(y) w(z) w(y) w(y) r(z) r(y) S2 T1 T2 T3 T4 T5 w(y) w(x) r(y) w(z) w(y) r(z) w(x) r(x) Vraag 35 [2] Geef een opsomming van alle pijlen van de precedentiegraaf G(S 1 )). Gebruik voor een pijl dit format: T i T j. Sorteer de lijst oplopend voor T i. 11

Vraag 36 [2] Is S 1 serializeerbaar? Zo ja, geef een equivalente seriële schedule van S 1. Vraag 37 [2] Geef een opsomming van alle pijlen van de precedentiegraaf G(S 2 )), wederom gesorteerd. Vraag 38 [2] Is S 2 serializeerbaar? Zo ja, geef een equivalente seriële schedule van S 2. Vraag 39 [6] Eén van de transacties hierboven vertoont geen 2PL-gedrag. Welke is dat? A: T 1 van S 1 B: T 2 van S 1 C: T 3 van S 1 D: T 4 van S 1 E: T 5 van S 1 F: T 1 van S 2 G: T 2 van S 2 H: T 3 van S 2 I: T 4 van S 2 J: T 5 van S 2 12

Recovery (12 punten) We beschouwen nonquiescent recovery met gecombineerde UNDO en REDO logging. Hieronder vind je een log met before en after images. <START T1> <T1, B, 10, 11> <COMMIT T1> <START T3> <START T2> <T2, A, 5, 6> <T3, C, 10, 11> <START CKPT (T2, T3)> <T2, D, 15, 16> <START T4> <START T5> <T4, F, 25, 26> <T5, H, 12, 13> <COMMIT T2> <COMMIT T3> <END CKPT> <COMMIT T4> <T5, G, 30, 31> Stel dat een crash optreedt direct na <COMMIT T2>. (Het resterende gedeelte van de log wordt dan niet geschreven.) Vraag 40 [2] Welk gedeelte van de log file wordt gescand? Vraag 41 [2] Welke transacties worden undone? 13

Vraag 42 [2] Welke transacties worden redone? Stel nu dat een crash optreedt direct na <T5, G, 30, 31>. Vraag 43 [2] Welk gedeelte van de log file wordt gescand? Vraag 44 [2] Welke transacties worden undone? Vraag 45 [2] Welke transacties worden redone? 14

Query processing (10 punten) De vragen onder de noemer Query processing worden bij een fout antwoord met een negatieve score beoordeeld. Bij ontbrekend antwoord is de score 0. De gezamenlijke score over de vragen onder de noemer Query processing kan niet negatief worden. We gaan uit van twee relatieschema s R en S die één attribuut A gemeenschappelijk hebben. We definiëren een algebraïsche operator (semi-join) als volgt: R S bevat de tuples r in R waarvoor geldt dat er een tuple s in S bestaat met r.a = s.a. Met andere woorden, de semi-join verwijdert uit R de tupels die de natural join met S niet zullen overleven. Vraag 46 [2] Is de algebraïsche equivalentie R S = S R geldig? Vraag 47 [2] Is de algebraïsche equivalentie R S = (R S) S geldig? Vraag 48 [2] Is de algebraïsche equivalentie R S = (R (π A S)) S geldig? Vraag 49 [2] Is de algebraïsche equivalentie R S = (R S) (S R) geldig? Vraag 50 [2] Is de algebraïsche equivalentie R S = (R (S R)) S geldig? 15

Einde 16