Tentamen Databases I (10 oktober 2001) Merk op: deze file is enigszins aangepast t.o.v. het oorspronkelijke tentamen van 2001, om hem meer in overeenstemming te brengen met de stof zoals deze in 2002 behandeld is. Opgave 1: a) Geef een duidelijke omschrijving van de volgende begrippen: * query optimizing * functionele afhankelijkheid (ga uit van A --> B in relatie R) * lossless join eigenschap (ga uit van decompositie relatie R in relaties R1 en R2) b) De ANSI/SPARC architectuur bestaat uit drie niveaus: het interne niveau, het externe niveau en het conceptuele niveau. Geef van ieder van de volgende termen aan op welk niveau deze term het meest van toepassing is: storage definition language, logical database design, hash, non-dense index, base table, derived table, fysical database design, view definition language, partial index, view updatability. c) Gegeven: 1. de relatie R(werknemer, projectnr, projectnaam, projectbudget) met primary key (werknemer, projectnr) en afhankelijkheden (minimal cover): {projectnr --> projectnaam, projectnr --> projectbudget} 2. de decompositie van R in R1(werknemer, projectnr) en R2(projectnr, projectnaam, projectbudget). Geef drie voordelen van de opsplitsing (R1, R2) ten opzichte van R zelf. Opgave 2: Fut Bedrijfsevenementen is een onderneming die gespecialiseerd is in het organiseren van bedrijfsfeestjes. Hiertoe heeft zij een groot aantal artiesten (met vaardigheden zoals mime, goochelen, jongleren, ...) in haar bestand. Een deel van de artiesten werkt in loondienst, een ander deel werkt als freelancer. Een boeking wordt gedaan door een bedrijf en omvat een of meerdere artiesten die voor een bepaalde tijdsduur worden gereserveerd. Een bedrijfsfeest wordt georganiseerd voor de eigen werknemers; kinderen en echtgenotes zijn echter ook welkom. De precieze informatiebehoefte omtrent Futs bedrijfsvoering is uitgedrukt in het bijgevoegde EER-diagram (zie laatste pagina). Zet dit EER-diagram om naar een relationeel database ontwerp. Geef hierbij een volledige specificatie van de gebruikte relatienamen en attributen, de primary keys, en eventuele alternate keys en foreign keys. Opgave 3: Gegeven is een database betreffende ICT dienstverlening aan banken. De database bestaat uit de volgende 4 relaties: * * * * Werkt(programmeur, ICT-bedrijf) Klant(bank, ICT-bedrijf) Gebruikt(bank, taal) Beheerst(programmeur, taal) De relatie Werkt geeft voor iedere programmeur aan voor welk ICT-bedrijf hij werkzaam is. De relatie Klant geeft aan bij welke ICT-bedrijven een bepaalde bank klant is. De relatie Gebruikt geeft aan welke programmeertalen er binnen een bank gebruikt worden. De relatie Beheerst geeft voor iedere programmeur aan welke programmeertalen hij beheerst. Er is gegeven dat voor geen enkel attribuut null-waarden zijn toegestaan. Formuleer de onderstaande vragen in de aangegeven relationele talen: a) Geef alle Java-programmeurs die werken bij een ICT-bedrijf dat de Rabobank als klant heeft. (tupelcalculus, SQL) b) Geef de ICT-bedrijven die wel de ABN-AMRO, doch niet de ING als klant hebben. (algebra, domeincalculus) c) Geef de programmeurs die alle programmeertalen beheersen die gebruikt worden binnen de Generale Bank. (algebra, tupelcalculus) Opgave 4: Gegeven een relatie schema R = ABCDE met de volgende verzameling functionele afhankelijkheden (F): * AB --> DE * ABC --> BC * A --> C * A --> D * B --> D * D --> E * E --> C a) Bepaal een minimal cover voor F. Geef niet alleen je eindantwoord maar de tussenresultaten na elk van de drie hoofdstappen. b) Geef een zodanige decompositie van R dat deze in derde normaalvorm is, de lossless join eigenschap heeft en dependency preserving is. Opgave 5: Doe voor elk van de hieronder gegeven voorbeelden het volgende: i. Geef een verzameling F’(die equivalent is met F) zodanig dat F’uitsluitend relevante functionele afhankelijkheden bevat. ii. Geef alle sleutels. iii. Geef voor elke functionele afhankelijkheid uit F’aan of het een r_sleutelafhankelijkheid is (s), een r_partiële afhankelijkheid (p) of een r_transitieve afhankelijkheid (t). iv. Geef de hoogste normaalvorm waaraan het betreffende relatie-schema voldoet. Kies hierbij uit 1NF, 2NF, 3NF of BCNF. v. Indien het antwoord bij iii niet BCNF is, geef dan een functionele afhankelijkheid uit F’die de eerstvolgende “hogere” normaalvorm schendt. (dus als je antwoord bij iv bijvoorbeeld 1NF is, geef dan een afhankelijkheid uit F’die 2NF schendt; als je antwoord bij iv BCNF is, dan hoef je niets te doen). a) b) c) d) R = ABCD en F = {A --> D, CD --> B, D --> A} R = ABC en F = {A --> B, C --> A, C --> B} R = ABCD en F = {AD --> C, B --> D, CD --> B} R = ABCDE en F = {AB --> E, B -->A, AD --> B, AD --> C, D --> E, E --> D} Normering cijfer := aantal punten / 10 * opgave 1: 23 punten (resp. 12, 5 en 6 punten) * opgave 2: 15 punten * opgave 3: 24 punten (resp. 8, 8 en 8 punten) * opgave 4: 16 punten (resp. 10 en 6 punten) * opgave 5: 22 punten (resp. 5, 5, 6 en 6 punten)