Tentamen Databases I (10 oktober 2001)

advertisement
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)
Download