Tentamen Datamodellering en –verwerking

advertisement
Tentamen Datamodellering en –verwerking
Vakcode:
Datum:
Tijd:
8C020 (voorheen 2Z705)
dinsdag 20 november 2001
9 – 12 uur
Voor dit tentamen kunt u in totaal 40 punten behalen. Het cijfer voor dit tentamen wordt
bepaald door het aantal behaalde punten op te tellen en vervolgens te delen door 4. U kunt
het vak Datamodellering en –verwerking alleen halen als u zowel voor de opdracht als voor
het tentamen een voldoende heeft. Het eindcijfer is in dat geval gelijk aan het gemiddelde van
het tentamencijfer en het cijfer behaald voor de opdracht.
Aantal te verdienen punten per opgave:
Opgave 1: Reisbureau
(a) 10 (b) 4
Opgave 2: Cocktail
(a) 2
(b) 2
(c) 2
(d) 2
Opgave 3: Chinees
(a) 1
(b) 1
(c) 1
(d) 1
(e) 2
(f) 4
Opgave 4: Nachtzuster
(a) 6 (b) 2
Totaal te verdienen: 40 punten. Het tentamen bestaat uit 3 pagina’s.
Opgave 1: Reisbureau
Een BMT-student heeft vakantiewerk gevonden bij een reisbureau. Tijdens de kerstvakantie
moet hij een administratief systeem opzetten voor het reisaanbod en het klantenbestand. Er
wordt onderscheid gemaakt tussen wintersportvakanties, rondreizen en zonvakanties. De
aangeboden reizen hebben een vertrekdatum, een prijs en een bestemming. Rondreizen
kunnen uiteraard meerdere bestemmingen hebben. Bij sommige wintersportvakanties worden
gratis skilessen aangeboden en sommige zonvakanties zijn inclusief de huur van een auto.
De klant kan een reis boeken en eventueel een reisverzekering afsluiten. Als extra service wil
het reisbureau aan de klant aanbieden om het telefoonnummer, adresgegevens en aankomsten vertrekdatum van de bestemmingen uit te printen. De reizigers kunnen deze gegevens bij
de thuisblijvers achter laten, zodat ze in geval van nood bereikbaar zijn. Deze service wordt
met name voor rondreizen zeer gewaardeerd.
(a) Geef bovenstaande informatie zo goed mogelijk weer in een datamodel in de vorm van
een ER-diagram. Eventueel ontbrekende informatie mag je zelf aanvullen.
(b) Geef bovenstaande informatie zo goed mogelijk weer in een relationeel database model,
d.w.z. specificeer relaties, attributen, domeinen en sleutels.
1
Opgave 2: Cocktail
De Ontmoetingsruimte voor Alternatieve Recreatie (OAR) wil graag een database applicatie
voor de administratie ten behoeve van de wekelijkse cocktail avond. Drie BMT-studentes zijn
lid van de cocktail-commissie. Zij hebben het vak Datamodellering en –verwerking gevolgd en
hebben een database gemaakt die opgebouwd is uit de volgende relaties (tabellen):
Cocktail (cocktailnaam, prijs, kenmerk),
Ingredient (ingrnaam, voorraad, eenheid),
Samenstelling (cocktailnaam, ingrnaam, hoeveelheid),
Verkoop (datum, cocktailnaam, aantal),
Bestelling (ingrnaam, besteldatum, leverdatum, hoeveelheid, prijs).
(a) Druk de volgende query uit in SQL:
“Geef naam en kenmerk van alle cocktails die rum bevatten.”
(b) Druk de volgende query uit in SQL:
“Geef de naam, voorraad en eenheid van alle ingrediënten waarvoor tenminste twee
bestellingen zijn gedaan.”
In SQL kunnen operatoren zoals MIN, MAX en SUM gebruikt worden om het minimum,
maximum en som van een attribuut te bepalen. Zo kan met de volgende SQL-query de
hoogste leeftijd van de personen in de personen-relatie bepaald worden:
SELECT MAX(leeftijd)
FROM personen;
(c) Druk de volgende query uit in SQL:
“Geef de hoogste prijs betaald voor een cocktail die aardbeien bevat en verkocht is op
maandag 19 november.”
(d) Druk de volgende query uit in SQL:
“Geef de kenmerken van alle cocktails die tenminste 10 ml rum bevatten, maar geen wodka.”
2
Opgave 3: Chinees
Bij chinees restaurant ‘Lotus’ kan men een maaltijd bestellen in het restaurant of een maaltijd
afhalen aan de afhaalbalie. De ober neemt de bestelling op van klanten in het restaurant,
terwijl de chinese mevrouw achter de balie de bestellingen noteert van balieklanten. Er is één
kok die alle maaltijden bereidt. De maaltijden bestemd voor klanten in het restaurant worden
door de ober geserveerd. Afhaalmenu’s worden door de baliemedewerkster aan de klant
afgegeven. Onderstaande figuur is een Petri-net dat de bediening van de klanten en het
bereiden van de maaltijden modelleert.
Tokens in kanaal k1 stellen klanten voor die bij restaurant ‘Lotus’ binnenkomen. Tokens in
kanaal k8 stellen klanten voor die het restaurant verlaten hebben. De begintoestand wordt
gedefinieerd door in het kanaal k1 twee tokens te leggen.
(a)
(b)
(c)
(d)
(e)
Welke processoren zijn in de begintoestand enabled?
Geef een toestand waarin processor klant gaat weg enabled is.
Is deze toestand (antwoord bij (b)) bereikbaar vanuit de gegeven begintoestand?
Verlaat uiteindelijk iedere klant restaurant ‘Lotus’? Zo nee, waarom niet?
Klanten in het restaurant krijgen de maaltijd geserveerd door de ober, terwijl klanten aan
de afhaalbalie hun maaltijd krijgen van de chinese mevrouw achter de balie. Wordt dit
correct gemodelleerd door het gegeven Petri-net? Geef ook een verklaring voor je
antwoord.
(f) Pas het Petri-net aan zodat het restaurant correct wordt gemodelleerd.
Opgave 4: Nachtzuster
Op een afdeling in het ziekenhuis werken een hoofdzuster, een nachtzuster en drie
verpleegsters. De hoofdzuster en de nachtzuster wisselen elkaar af. De hoofdzuster werkt
overdag samen met tenminste twee verpleegsters. De nachtzuster werkt ’s nachts en meestal
alleen. Verpleegsters kunnen elkaar onderling aflossen.
(a) Modelleer dit systeem met behulp van een klassiek Petri-net. Geef ook een korte
toelichting en een mogelijke begintoestand.
(b) Het personeelsbestand van de afdeling wordt uitgebreid met een extra verpleegster. Geef
aan hoe het Petri-net aangepast moet worden om de nieuwe situatie te modelleren.
3
Download