Databases (INFODB) 20 april 2010

Vergelijkbare documenten
Databases (INFODB) 24 januari 2007

Tentamen Databases voor iku

Tentamen Databases voor ica

Tentamen Databases voor ica

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

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

Tentamen Informatica 6, 2IJ60,

Tentamen Informatica 6, 2IJ60,

Relationele Databases 2002/2003

Relationele Databases 2002/2003

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

Data Manipulatie. Query Talen. / Informatica

Introductie (relationele) databases

Relationele databanken

TI2500 Informatie en Datamodellering

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

Les S-01: De basisbeginselen van SQL

SQL Aantekeningen 3. Maarten de Rijke 22 mei 2003

Datamodelleren en databases 2011

Relationele Databases 2002/2003

ISO Query By Example

Structured Query Language (SQL)

ISO SQL: Structured Query Language

SQL / Systeemanalyse

SQL opgaven. Relationele model: Opgaven:

TI2505/TI2500 Informatie- en Datamodellering

IN2105/IN2410 Databases

Databases - Inleiding

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

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

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

Databases en SQL Foundation (DBSQLF.NL)

EXAMEN juni 2018 Gegevensbanken

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

TI2500 Informatie en Datamodellering

Ontwerp van Algoritmen: opgaven weken 3 en 4

Les S-01: De basisbeginselen van SQL

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

Functioneel programmeren

Les S-02: Meer geavanceerde SQL-instructies

Zelftest SQL Workshop

Het ontwerpen van een databaseschema

1. Databanken. Wat is een databank? Verschillende opslagmethodes

F. TRUYEN - Informatiekunde QBE. MS Access

[TOETS SQL INLEIDING]

databases & SQL - antwoorden

Zelftest SQL Workshop

Rapportage voor Unit4 Multivers. Eindhoven, 22 juni 2017

TI2500 Informatie en Datamodellering

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

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

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:

Module 1 Programmeren

11. Het selecteren van gegevens deel II

Les 11 : Basis SQL (deel2).

Les 2 Eenvoudige queries

Miniles gegevensbanken bevragen met SQL

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

Gekoppelde tabellen: de JOIN

SQL & Datamodelleren

Uitwerking 1 Uitwerkingen eerste deeltentamen Lineaire Algebra (WISB121) 3 november 2009

Het omzetten van een ER-diagram naar SQL

Een introductie tot gegevensbanken

Query SQL Boekje. Fredrik Hamer

Normaliseren versie 1.1

Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica

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

Data Handling Ron van Lammeren - Wageningen UR

SQL. Datamodellering 2008

SQL. Wat is SQL? Geschiedenis SQL SQL DMO Datamodellering 2008

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober A. Snippe ICT Lyceum 1

Thinking of development

DB architectuur.

Structured Query Language

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

Tweede deeltentamen Netwerken (INFONW) 29 juni 2009

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

Zelftest Informatica-terminologie

Import via NatSync. Presentatie René Merx School voor de Toekomst

Data Manipulation Language

Transcriptie:

Departement Informatica en Informatiekunde, Faculteit Bètawetenschappen, UU. In elektronische vorm beschikbaar gemaakt door de TBC van A Eskwadraat. Het college INFODB werd in 2009-2010 gegeven door drs. H. Philippi. Databases (INFODB) 20 april 2010 Bij elke vraag wordt verwacht dat je laat zien hoe je aan het antwoord komt (tenzij anders wordt vermeld). Je mag een A4 met aantekeningen raadplegen. Veelgebruikte afkortingen: 2PL Two-phase locking 2PC Two-phase commit BCN F Boyce-Codd normaalvorm COORD Coordinator CTP Cooperative termination protocol DP dependency preserving FD functional dependency RA Relationele algebra SQL SQL (Structured Query Language) Puntentelling: 1: 20 punten 2: 15 punten 3: 15 punten 4: 20 punten 5: 15 punten 6: 15 punten Opgave 1 Algemeen Geef van de volgende beweringen aan of zij correct zijn of niet. Een simpel JA of NEE volstaat. Er hoeft geen toelichting gegeven te worden. 1. Als elke FD X Y uit de oorspronkelijke FD-set F in één van de relatieschema s past, is dat een voldoende voorwaarde voor de DP-eigenschap. 2. Dat elke FD X Y uit de oorspronkelijke FD-set F in één van de relatieschema s past, is een noodzakelijke voorwaarde voor de DP-eigenschap. 3. Gegeven een FD-set F. Er bestaat slechts één unieke minimal cover van F. 4. Het recovery-mechanisme op basis van UNDO geeft de IO-manager de meeste vrijheid. 5. Het recovery-mechanisme op basis van REDO geeft de IO-manager de meeste vrijheid.

6. Met Datalog kun je queries formuleren die in SQL niet uit te drukken zijn. 7. Het is cruciaal dat je een log-file op een aparte disk onderbrengt. 8. Logging speelt een cruciale rol bij media failures. 9. Het 2PC-protocol kan geblokkeerd, raken als één van de participants nog niet gestemd heeft. 10. De B-tree is een geschikte indexstruetuur voor range-queries. Opgave 2 Functionele afhankelijkheden Twee attribute sets X en Y zijn equivalent met betrekking tot een set FDs F als X Y en Y X beide gelden. a) Beschrijf kort hoe je equivalentie via een algoritme kunt testen. b) Stel we hebben de volgende set FDs: {A > BC, G > EC, GC > H, GH > A} Geef een attribute set die equivalent is met {A}.Licht uw antwoord kort toe. {A} wordt niet beschouwd als een correct antwoord.) Opgave 3 Normaalvormen Stel we hebben het relatieschema S(ABCDEF GH). F S = {BCE D, DF B, D EG, G F HA} a) Geef een verliesvrije, dependency-preserving 3NF-decompositic van S. Geef aan wat de keys zijn. Licht toe hoe u aan uw antwoord komt. b) ls het opgeleverde schema ook in BCNF? Licht uw antwoord toe. Opgave 4 Queries Een zweefvliegclub heeft een database met daarin een tabel waarin gegevens van de vliegers worden bijgehouden, een tabel waarin gegevens van vliegtuigen worden bijgehouden en een tabel waarin gegevens van vluchten worden bijgehouden. Elke vlieger heeft een uniek brevetnummer. Daarnaast wordt van elke vlieger de naam, het geslacht en de geboortedatum bijgehouden. Van elk vliegtuig wordt het merk, het type en het bouwjaar geregistreerd. Eveneens heeft elk vliegtuig een uniek callsign (van de gedaante PH-123). De registratie van een vlucht gaat vergezeld van de datum, de starttijd, de duur (in minuten) en het starttype (sleepstart of lierstart). Het databaseschema is als volgt: Vlieger ( brevetnr, naam, geslacht, geboortedatum ) Vlucht ( brevetnr, callsign, datum, starttijd, duur, starttype ) Vliegtuig ( callsign, merk, type, bouwjaar ) We hebben de volgende queries: Q1: Geef de namen van de vliegers die tenminste één vlucht gemaakt hebben. Q2: Geef de namen en de totale vluchtduur voor de vliegers die het grootste aantal vluchten gemaakt hebben. Q3: Geef de namen van de vliegers die in alle vliegtuigen gevlogen hebben. Q4: Geef de namen van de vliegers die geen enkele vlucht gemaakt hebben. Hieronder volgen expressies in de RA of in SQL. Geef aan welke queries corresponderen met welke expressies. De relatie tussen queries en expressies is many-to-many en optioneel. E1: π callsign ((π brevetnr,callsign (Vlucht) π brevetnr (Vlieger)) Vliegtuig) E2: π naam ((π brevetnr (Vlieger) - π brevetnr (Vlucht)) Vlieger) E3: π naam ((Vlieger Vlucht) π callsign (Vliegtuig)) E4: π naam ((π brevetnr (Vlieger) π brevetnr (Vlucht)) Vlieger)

E5: π naam ((π brevetnr,callsign (Vlucht) π callsign (Vliegtuig)) Vlieger) E6: π naam ((π brevetnr (Vlieger) (Vlucht)) Vlieger) E7: SELECT Vlieger.uaam WHERE Vlieger.brevetnr IN ) E8:, SUM(Vlucht.duur), Vlucht HAVING COUNT(*) > ALL (SELECT COUNT(*) ) E9: ) E10:, SUM(Vlucht.duur), Vlucht HAVING MAx(C0UNT(*)) Ell: WHERE Vlieger.brevetnr NOT IN WHERE Vlucht.brevetnr <> Vlieger.brevetnr) E12:, SUM(Vlucht.duur), Vlucht HAVING COUNT(*) >= ALL (SELECT COUNT(*)

El3: WHERE Vlucht.brevetnr = Vlieger.brevetnr) E14: WHERE EXISTS WHERE Vlucht.brevetnr = Vlieger.brevetnr) E15: (SELECT Vliegtuig.callsign FROM Vliegtuig WHERE Vlucht.brevetnr = Vlieger.brevetnr)) E16: (SELECT Vliegtuig.callsign FROM Vliegtuig WHERE Vlucht.brevetnr = Vlieger.brevetnr AND Vlucht.callsign = Vliegtuig.callsign)) Opgave 5 Concurrency Hieronder zijn twee schedules gegeven. a) Stel voor elk van de schedules de complete precedentiegraaf op. Geef aan of deze schedules serializeerbaar zijn of niet. Licht toe. Geef zo mogelijk de equivalente seriële schedules. b) Geef eveneens aan of de schedules getolereerd worden door een 2PL-Scheduler. Geef hierbij een korte toelichting.

Opgave 6 Query processing We gaan uit van twee relatieschema s R en S die één attribuut A gemeenschappelijk hebben. We definiëren een algebraïsche operator (anti-join) als volgt: R S bevat de tuples r in R waarvoor geldt dat er geen tuple s in S bestaat met r.a = s.a. a) Druk één van de queries Q1... Q4 van opgave 4 uit in de RA met behulp van de Q antijoin. b) Hoe distribueert de selectie over de antijoin? (Gevalsonderscheid kan nodig zijn.) c) Hoe distribueert de projectie over de antijoin? d) Beschrijf hoe de hash-join aangepast zouden kunnen worden om een anti-join uit te rekenen. Je hoeft bij b) en c) geen formele bewijzen te leveren.