Tentamen Databases voor iku



Vergelijkbare documenten
Tentamen Databases voor ica

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

Tentamen Databases voor ica

Databases (INFODB) 24 januari 2007

Databases (INFODB) 20 april 2010

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Tentamen Informatica 6, 2IJ60,

TI2500 Informatie en Datamodellering

Data Manipulatie. Query Talen. / Informatica

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

Structured Query Language (SQL)

Relationele Databases 2002/2003

Introductie (relationele) databases

Relationele Databases 2002/2003

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

Databases - Inleiding

TI2500 Informatie en Datamodellering

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

Datamodelleren en databases 2011

TI2505/TI2500 Informatie- en Datamodellering

Een introductie tot gegevensbanken

TI2500 Informatie en Datamodellering

Functioneel programmeren

databases & SQL - antwoorden

Les 10 : Aanmaken van een database (deel2).

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

ISO SQL: Structured Query Language

SQL opgaven. Relationele model: Opgaven:

Informatica toets vwo 6 Databases

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

ISO Query By Example

Relationele Databases 2002/2003

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

Het omzetten van een ER-diagram naar SQL

Thinking of development

Inleiding Databases en Data Base Management Systems Tabellen Wat is SQL?... 5

oefeningen TOP2000 antwoorden

Zelftest SQL Workshop

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

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

Zelftest SQL Workshop

SQL & Datamodelleren

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

Miniles gegevensbanken bevragen met SQL

Les 2 Eenvoudige queries

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Les S-01: De basisbeginselen van SQL

Relationele databanken

Gebruikers Handleiding

Normaliseren versie 1.1

SQL: oefenen queries

[TOETS SQL INLEIDING]

Informatie & Databases

Databases en SQL Foundation (DBSQLF.NL)

SQL.

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

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

11. Het selecteren van gegevens deel II

SQL & Relationele datamodellen in interactieve media

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

Van een ER-diagram naar een database specificatie in SQL

Query SQL Boekje. Fredrik Hamer

1. Databanken. Wat is een databank? Verschillende opslagmethodes

Les S-02: Meer geavanceerde SQL-instructies

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

Data Manipulation Language

SQL / Systeemanalyse

SQL datadefinitietaal

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

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

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

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

Gekoppelde tabellen: de JOIN

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

Hoofdstuk: 1 Principes van databases

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Les S-01: De basisbeginselen van SQL

Les 11 : Basis SQL (deel2).

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Transcriptie:

Scheur de antwoordvellen doormidden. Maak elke vraag op een ander vel. Tentamen Databases voor iku 17 april 2013 13:30-16:30, Educatorium-Gamma Vermeld op elk vel je naam en studentnummer. Indien één van deze zaken ontbreekt, wordt het vel niet nagekeken. Toon bij het inleveren je collegekaart. Schrijf en formuleer duidelijk. Je mag een A4 met aantekeningen raadplegen. Het tentamen duurt 3 uur en bestaat uit 6 opgaven. Gebruikte afko s: 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) Vergeet niet de vakevaluatie in te vullen. Zie de education pagina. Succes! Puntentelling: 1: 20 punten 2: 20 punten 3: 20 punten 4: 20 punten 5: 10 punten 6: 10 punten 1

1 Algemeen Geef van de volgende beweringen aan of deze correct zijn of niet. Een simpel JA of NEE volstaat. Er hoeft geen toelichting gegeven te worden, maar het mag wel, mits je het kort houdt. 1. De key-eigenschap is een speciaal geval van een FD. 2. De foreign key-eigenschap is een speciaal geval van een FD. 3. In een ER-diagram moet je altijd foreign keys vermelden. 4. Twee goede ontwerpers zullen voor dezelfde casus altijd hetzelfde ER-diagram opleveren. 5. Als een schema in 3NF is, is dit schema ook in BCNF. 6. Als een schema in 4NF is, is dit schema ook in BCNF. 7. Niet voor elk relatieschema is een verliesvrije DP BCNF decompositie mogelijk. Bovendien is deze in het algemeen moeilijk te vinden. 8. Als de recoverymanager werkt volgens het UNDO-mechanisme, dan mag deze nooit database-data naar disk schrijven nadat commitment heeft plaatsgevonden. 9. Voor elke database-toepassing is concurrency control noodzakelijk. 10. Als data uit een database wordt geanonimiseerd voordat deze openbaar wordt gemaakt, dan is de privacy van de personen in de database gegarandeerd. 2

2 Functional dependencies We hebben het volgende relatieschema met gegevens betreffende films. IMDB (filmid, genre, company, director, actorid, year, title, character) Voor elke film bestaat een unieke, identificerende code. Hetzelfde geldt voor acteurs. Een film kan mogelijk passen bij verschillende genres. Elke film wordt uitgebracht door een filmmaatschappij (company) en heeft een titel en een regisseur (director). Binnen een film speelt een acteur een karakter. Een karakter kan in meerdere films terugkomen. Denk aan Tarzan of Q en miss Moneypenny in James Bond-films. Geef van de volgende FD s aan of deze wel of niet geldig zijn. Geef een korte toelichting. 1. filmid genre 2. filmid company 3. filmid year 4. title company 5. director company 6. filmid, actorid company 7. actorid character 8. character actorid 9. character, f ilmid actorid 10. actorid, f ilmid character 3

3 Normalisatie Gegeven zijn R = (ABCDEG) en F = {A BC, CD E, AC DE, E D} (i) Bereken een minimal cover voor F. Licht de stappen die u maakt kort toe. (ii) Geef een verliesvrije, 3NF, DP decompositie van R met behulp van het daartoe geschikte algoritme. (iii) Is het hierboven gevonden schema ook in BCNF? Licht toe. 4 Queries Een bedrijf dat gegevens bijhoudt over 1-daagse wielrenklassiekers heeft een database met daarin een tabel waarin gegevens van renners worden bijgehouden, een tabel waarin gegevens van wedstrijden worden bijgehouden en een tabel waarin de deelname van renners aan wedstrijden wordt bijgehouden. Elke renner heeft een uniek rennernummer. Daarnaast wordt van elke renner de naam, het geslacht en het gewicht bijgehouden. Van elke wedstrijd wordt de naam, de datum en de lengte van het parcours bijgehouden. Eveneens heeft elke wedstrijd een uniek wedstrijdnummer. De registratie van de deelname van een renner aan een wedstrijd gaat vergezeld van de tijd waarin de renner de wedstrijd verreden heeft, de finish positie (1 voor de winnaar) en het aantal punten dat de renner in de wedstrijd behaald heeft. R ( rnr, naam, geslacht, gewicht ) WR ( wnr, rnr, tijd, positie, punten ) W ( wnr, naam, datum, lengte ) We hebben de volgende queries: Q1: Geef de namen van de vrouwelijke winnaars. Q2: Geef de namen van de renners die aan tenminste twee wedstrijden hebben deelgenomen. Q3: Geef de nummers en het aantal wedstrijden van de renners die aan tenminste twee wedstrijden hebben deelgenomen. Q4: Geef de nummers, namen en het aantal punten van de renners die tenminste 100 punten hebben gescoord. Hieronder volgen expressies in de RA of in SQL. Geef aan welke queries corresponderen met welke expressies. Efficiëntie is hier niet relevant. De relatie tussen queries en expressies is many-to-many en optioneel. 4

E1: W R2 := W R; π naam (R W R W R2) E2: π naam ((π wnr σ positie=1 (W R)) σ geslacht=v R) E3: π naam (σ positie=1,geslacht=v (W R R) E4: E5: E6: E7: E8: SELECT R.naam FROM R WHERE geslacht = V AND rnr IN (SELECT WR.rnr FROM WR WHERE positie = 1) SELECT R.naam FROM R WHERE geslacht = V AND EXISTS (SELECT WR.rnr FROM WR WHERE positie = 1) SELECT R.naam WHERE geslacht = V AND positie = 1 SELECT R.naam WR1, WR WR2 WHERE R.rnr = WR1.rnr AND R.rnr = WR2.rnr AND WR1.wnr <> WR2.wnr SELECT R.rnr, R.naam, COUNT(WR.punten) WHERE R.rnr = WR.rnr GROUP BY R.rnr, R.naam HAVING COUNT(WR.punten) >= 100 5

E9: SELECT R.rnr, R.naam, SUM(WR.punten) WHERE R.rnr = WR.rnr GROUP BY R.rnr, R.naam HAVING SUM(WR.punten) >= 100 E10: SELECT R.naam, COUNT(*) WHERE R.rnr = WR.rnr GROUP BY R.naam HAVING COUNT(*) >= 2 E11: SELECT R.naam, COUNT(WR.punten) WHERE R.rnr = WR.rnr GROUP BY R.naam HAVING COUNT(WR.punten) >= 2 6

5 Recovery We beschouwen nonquiescent recovery met UNDO logging. Hieronder vind je een log met before images. <START T1> <T1, A, 5> <START T2> <T2, B, 10> <COMMIT T1> <START T3> <T3, C, 10> <START CKPT (T2, T3)> <T2, D, 15> <START T4> <START T5> <T4, F, 25> <T5, H, 12> <COMMIT T2> <COMMIT T5> <COMMIT T3> <END CKPT> <T4, G, 30> Stel dat een crash optreedt direct na <T4, G, 30>. (i) Welk gedeelte van de log file wordt gescand? (ii) Welke transacties worden undone? (iii) Welke transacties worden redone? 7

6 Concurrency Hieronder zijn twee schedules gegeven. (i) Geef aan of deze schedules serializeerbaar zijn of niet. Zo ja, geef dan alle equivalente serieële schedules. Zo nee, geef dan een cycle in de precedentiegraaf. (ii) Geef van beide schedules aan of deze door een 2PL-scheduler getolereerd zouden worden. Licht toe. S1 T1 T2 T3 T4 w[x] r[y] r[x] r[y] w[x] w[z] w[z] S2 T1 T2 T3 T4 w[x] w[y] r[x] r[y] w[z] w[z] Einde 8