tentamen290200

advertisement
Tentamen Datamodellering en –verwerking
Vakcode:
Datum:
Tijd:
2Z705
dinsdag 29 februari 2000
9 – 12 uur
Voor dit tentamen kunt u in totaal 36 punten behalen. Het cijfer voor dit tentamen wordt
bepaald door 4 punten bij 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: Studievereniging Pythagoras:
(a) 10
(b) 4
Opgave 2: Boekenverkoop
(a) 2
(b) 2
(c) 2
(d) 2
Opgave 3: Petri-net
(a) 1
(b) 1
(c) 1
(d) 1
(e) 1
(f) 1
Opgave 4: Wachten voor rood
(a) 8
Totaal te verdienen: 36 punten. Het tentamen bestaat uit 3 pagina’s.
Opgave 1: Studievereniging Pythagoras
Studievereniging Pythagoras wil een administratief systeem ontwikkelen ten behoeve van de
ledenadministratie en ter ondersteuning van de organisatie van haar activiteiten. Van ieder lid
zijn naam, adres, telefoonnummer, e-mail adres en het jaar van aanvang van de studie
bekend. Van iedere activiteit bestaat een korte omschrijving en is bekend wanneer deze
plaatsvindt, welke leden deelnemen aan de activiteit en wie verantwoordelijk is/zijn voor de
organisatie. Op een dag kan hooguit één activiteit worden georganiseerd. Aktieve leden
kunnen lid zijn van een of meerdere commissies of van het bestuur. Activiteiten worden altijd
door een commissie georganiseerd. Voor iedere activiteit is er een aanspreekpunt. Dit
aanspreekpunt is lid van de organiserende commissie. Van alle aktieve leden worden de
historische gegevens betreffende het lidmaatschap van een commissie of het bestuur
bijgehouden. Deze informatie is nodig om studenten die afstuderen op gepaste wijze te
kunnen bedanken voor hun inzet.
(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: Boekenverkoop
Eén van de commissieleden van de boekenverkoopcommissie van studievereniging
Pythagoras heeft naar aanleiding van het vak Datamodellering en –verwerking in haar vrije tijd
een database gemaakt voor de boekenadministratie. Met deze database kan de
boekenvoorraad worden bijgehouden, wordt de verkoop geadministreerd en kan eenvoudig
worden opgezocht welke boeken voor bepaalde vakken aangeschaft moeten worden. De
database is opgebouwd uit de volgende relaties (tabellen):
Boek (ISBN, titel, auteur, voorraad, vakcode, verkoopprijs),
Vak (vakcode, trimester, beschrijving),
Verkoop (ISBN, datum, aantal),
Inkoop (ISBN, datum, aantal, inkoopprijs).
(a) Druk de volgende query uit in SQL:
“Geef alle titels van boeken die verkocht zijn in januari 2000”
(b) Druk de volgende query uit in SQL:
“Geef de beschrijvingen van de vakken waarvoor minstens twee boeken benodigd zijn.”
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 het totaal aantal boeken dat verkocht is op 11-11-99 voor de vakken met de
omschrijving ‘Beeldvormende Technieken’ of ‘Moleculaire Simulaties’.”
Bij het opzetten van het ER-diagram voor deze database heeft de studente er niet aan
gedacht dat één boek soms voor meerdere vakken gebruikt wordt. Zij wil de relaties
aanpassen door het attribuut ‘vakcode’ weg te laten bij relatie ‘Boek’ en een nieuwe relatie
‘Benodigd’ toe te voegen dat voor ieder vak aangeeft welke boeken benodigd zijn. De nieuwe
versie van de database is opgebouwd uit de volgende relaties (tabellen):
Boek (ISBN, titel, auteur, voorraad, verkoopprijs),
Vak (vakcode, trimester, beschrijving),
Benodigd (vakcode, ISBN),
Verkoop (ISBN, datum, aantal),
Inkoop (ISBN, datum, aantal, inkoopprijs).
(d) Druk de volgende query uit in SQL:
“Geef alle titels van de boeken die benodigd zijn voor de vakken die in trimester 3.2 gegeven
worden, maar dan zonder de boeken die ook al benodigd waren voor de vakken van het
trimester 3.1.”
2
Opgave 3: Petri-net
Beschouw het klassieke Petri-net in onderstaande figuur:
k2
p3
p1
p2
k3
k1
De begintoestand is als volgt gedefinieerd: in de kanalen k2 en k3 ligt een token, in kanaal k1
liggen geen tokens.
(a)
(b)
(c)
(d)
Welke processoren zijn in de begintoestand enabled?
Geef een toestand waarin alleen processor p2 enabled is.
Is er een toestand waarin processor p3 enabled is, maar p1niet?
Geef uitgaande van de begintoestand, de toestand die bereikt wordt na vuring van
processor p1.
(e) Geef alle bereikbare toestanden vanuit de begintoestand.
(f) Hoeveel bereikbare eindtoestanden zijn er?
Opgave 4: Wachten voor rood
Gegeven is het onderstaande kruispunt met verkeerslichten.
N
W
O
Z
De verkeerslichten voor het verkeer vanuit Noord en Zuid lopen synchroon, d.w.z. ze springen
tegelijkertijd op groen/rood, maar deze verkeerslichten staan nooit gelijktijdig op groen met de
verkeerslichten voor het verkeer uit Oost en West. Zowel het verkeerslicht voor het verkeer
vanuit Oost als het verkeerslicht voor het verkeer vanuit West mogen nooit gelijktijdig met
andere verkeerslichten op groen staan. De verkeerslichten mogen nooit alle vier tegelijk op
rood staan.
(a) Modelleer de verkeerslichten voor dit kruispunt met behulp van een klassiek Petri-net.
Geef ook een korte toelichting en een mogelijke begintoestand.
3
Download