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