Informatiemodellering

Informatiemodellering

A Inleiding

Vooraf

In de module informatieverwerkende systemen heb je kennis gemaakt met het vak informatica, waarbij informatie en communicatie een belangrijke rol spelen. Voor het verwerken van informatie worden informatieverwerkende systemen gebruikt.

Als je bij het vak informatica spreekt over informatieverwerkende systemen beperk je je vrijwel altijd tot informatieverwerking met behulp van computersystemen. Een informatieverwerkend systeem verwerkt gegevens die van buiten het systeem komen. We noemen dat de invoer. Het resultaat van de verwerking wordt gepresenteerd aan de gebruiker of aan een ander systeem. Dit is de uitvoer. Het verzamelen, bewerken en bewaren van informatie wordt informatieverwerking genoemd. Vrijwel alle systemen kunnen deze informatie kortere of langere tijd bewaren in een geheugen.

Er bestaan verschillende soorten informatieverwerkende systemen. Informatici maken onderscheid tussen procesgeoriënteerde, gegevensgeoriënteerde, modelgeoriënteerde en autonome systemen.

In de module informatiemodellering beperken we ons tot het ontwerpen van gegevensgeoriënteerde systemen. De overige type systemen blijven buiten beschouwing. We verdiepen ons daarvoor in de methode FCO-IM. Deze methode wordt gebruikt voor het modelleren van gegevensgeoriënteerde systemen, die wij in het vervolg van deze module zullen aanduiden als informatiesystemen.

Leerdoelen

Lees de leerdoelen door die van toepassing zijn op deze module.
Na verwerking van deze module:

  • kun je in grote lijnen het ontwikkeltraject van een informatiesysteem beschrijven;
  • kun je de rol van de domeindeskundige en de informatieanalist in een ontwikkeltraject van een informatiesysteem beschrijven;
  • kun je uit een casebeschrijving de voor de communicatie relevante feiten benoemen;
  • weet je hoe je feiten moet verwoorden in feitexpressies;
  • weet je wat verstaan wordt onder een elementaire feitexpressie;
  • kun je feitexpressies classificeren en kwalificeren;
  • kun je objecttypen,labeltypen en feittypen benoemen;
  • kun je uitleggen wat een existentiepostulerende feitexpressie is;
  • kun je het casetool Casetalk gebruiken bij het ontwikkelen van een model;
  • kun je een informatiegrammaticadiagram (IGD) maken;
  • weet je waarvoor beperkingen (constraints) worden gebruikt;
  • kun je uitleggen wat een waardenbeperking is;
  • kun je uitleggen wat een uniciteitsbeperking is;
  • kun je uitleggen wat een totaliteitsbeperking is;
  • weet je hoe je de beperkingregels bepaald voor een model;
  • weet je hoe een controle moet worden uitgevoerd om te bepalen of het ontworpen model correct is;
  • weet je wat het GLR-algoritme is;
  • kun je een elementair IGD met behulp van het casetool omzetten naar een relationele database.

Bijlagen

Bij deze module horen de volgende bijlagen:

In deze module maken we voor het uitwerken van een model gebruik van de casetool CaseTalk versie 8.27.
 

Zo werkt het

Je bent begonnen in de module Informatiemodellering. Deze module bestaat uit meerdere onderdelen. In ieder onderdeel vind je, verdeeld over verschillende pagina's, informatie in de vorm van teksten, afbeeldingen en video's. Daarnaast ga je zelf aan de slag. Onder het kopje "Aan de slag" vind je steeds toepassingsopdrachten. Deze opdrachten maak je alleen of met een klasgenoot.

Er zijn ook toetsen. Deze herken je aan de blauwe knop met daarop "Adaptieve Toets".
Een toets bestaat uit meerdere vragen. Dat kunnen gesloten vragen zijn, die door de computer worden nagekeken, of open vragen, die moet je zelf nakijken.
Bij een enkele vraag moet je een bestand uploaden.

Van de toetsen wordt, als je ingelogd bent, de voortgang bijgehouden.
Het resultaat vind je onder de knop "Voortgang". Deze voortgang is ook door je docent te bekijken.

Succes met de module Informatiemodellering.

B Informatiesystemen

Informatiesystemen

Informatiesystemen spelen een belangrijke rol in onze samenleving. We treffen ze overal aan. Een cijferregistratiesysteem op school, een voorraadsysteem in de supermarkt of een systeem voor de dienstregeling van een vervoersbedrijf. Het zijn slechts een paar voorbeelden. Vaak gaat het om geautomatiseerde systemen. In een supermarkt worden alle transacties bij de kassa direct verwerkt. Daardoor kan op elk moment de actuele voorraad van een product worden opgevraagd.
Grote vervoersbedrijven zijn voor hun dienstregeling afhankelijk van geautomatiseerde informatiesystemen. Dat geldt ook voor banken. Bijvoorbeeld voor het registreren van financiële transacties.

De automatisering van de informatievoorziening begon in de vorige eeuw in de jaren zestig aanvankelijk bij grote bedrijven en instellingen zoals multinationals en banken. Met de komst van de personal computer, begin jaren tachtig, volgden ook de kleinere bedrijven en instellingen.

Een informatiesysteem heeft als doel een organisatie te voorzien van de gewenste informatie. Een informatiesysteem kan langzaam en ongeleid tot stand komen, maar kan ook doelbewust worden ontwikkeld door een projectteam. In de praktijk gebeurt dat vaak in het kader van een automatiseringsproject.

Lang niet alle automatiseringsprojecten zijn een succes. Bij het invoeren van een nieuw stelsel van studiefinanciering eind jaren tachtig van de vorige eeuw kregen veel studenten geen of een onjuist berekende studiefinanciering. Een belangrijke oorzaak was dat het systeem niet goed overweg kon met studenten met bijzondere omstandigheden. Bij het ontwerp was daar onvoldoende rekening mee gehouden.

Het ontwikkelen van een informatiesysteem is niet eenvoudig. Het vereist een planmatige aanpak. In het ontwikkeltraject van een informatiesysteem onderscheiden we een aantal stappen.
De eerste stap bestaat uit het formuleren van de informatiebehoefte en het maken van een beschrijving van de relevante informatie. Je geeft met behulp van voorbeelden aan welke informatie het systeem moet kunnen bijhouden.
Vervolgens ga je kijken welke functies het systeem moet bezitten om aan de informatiebehoefte te kunnen voldoen. Het cijferregistratiesysteem van een school moet bijvoorbeeld rapporten kunnen afdrukken, maar ook de klassenlijsten met namen en cijfers voor de rapportvergadering kunnen samenstellen.
Tot nu toe bestaat het ontwerp alleen op papier. Bij de derde stap worden de benodigde computerprogramma’s aangeschaft of geschreven. Wanneer er nieuwe computerapparatuur nodig is, wordt deze uitgezocht, aangeschaft en geïnstalleerd. Ook moeten de gebruikers geschoold en begeleid worden om het informatiesysteem te kunnen gebruiken. Tenslotte moet geëvalueerd worden of het systeem in de praktijk voldoet aan de informatiebehoefte.

★ Aan de slag 1

Opgave 1

Welke fasen worden er onderscheiden in de ontwikkeling van een informatiesysteem?

Bekijk de onderstaande tabelstructuur:

voornaam achternaam adres woonplaats hobby vak cijfer


In de module over databases zijn de begrippen redundantie en inconsistentie besproken.

Opgave 2

  1. Deze tabelstructuur zorgt ervoor dat er redundantie optreedt. Leg dat uit.
  2. Redundantie kan leiden tot inconsistentie. Waarom mag in een database geen inconsistentie optreden?
  3. Maak een nieuwe tabellenstructuur, zodat deze problemen vermeden worden.
  4. In een tabel noemen we een kolom of een combinatie van kolommen op basis waarvan een rij uit een tabel uniek te identificeren is de sleutel. Wat zijn de sleutels van de tabellen in de nieuwe tabellenstructuur?

 

Waarom modelleren?

Je zult je misschien afvragen of het doorlopen van een compleet ontwikkeltraject wel altijd even zinvol is. In de module databases hebben jullie gewerkt met de cd-dvd database. Het strokendiagram van deze database was niet heel ingewikkeld. De tabellen van de cd-dvd database zouden ook zonder dat er een uitgebreid traject wordt doorlopen, ontworpen kunnen worden.

Strokendiagram cd-dvd database

 

Voor kleine informatiesystemen, zoals in dit voorbeeld, gaat onze constatering dat het niet altijd even zinvol is om een compleet ontwikkeltraject te doorlopen vermoedelijk wel op. Hoe wezenlijk anders is dat voor complexe informatiesystemen waar we in toenemende mate in onze samenleving mee te maken hebben: een vluchtreserveringssysteem voor een luchtvaartmaatschappij en de bevolkingsadministratie van een gemeente. Zulke systemen ontwerp je niet even op een namiddag. Daarvoor is een gestructureerde aanpak onontbeerlijk.

 

Informatiesysteem vluchtreservering

★ Aan de slag 2

In de tekst worden voorbeelden genoemd van complexe informatiesystemen.
Bedenk zelf nog twee andere voorbeelden.

In deze module staat het ontwerpen van een informatiesysteem voor herkansingen centraal. Je maakt daarbij kennis met een methode die gebruikt wordt voor het modelleren van informatiesystemen. Het te ontwerpen systeem zal niet te vergelijken zijn met bijvoorbeeld een ingewikkeld informatiesysteem voor de financiële transacties voor een bank. Daarentegen maak je wel kennis met verschillende aspecten van het ontwerpproces en wordt de noodzaak van modelleren je duidelijker. Het ontwerpen van een informatiesysteem voor herkansingen loopt als een rode draad door deze module heen. De aan de slag opdrachten helpen je stap voor stap bij het realiseren van het model voor herkansingen.

 

★ Aan de slag 3

Alan heeft een grote verzameling cd’s en dvd’s. Vrienden vragen regelmatig of zij een cd mogen lenen. Om geen cd’s kwijt te raken, besluit hij een administratie op te zetten voor zijn collectie. In het systeem wil hij de titel van de cd, de naam van de artiest, het soort muziek en de prijs van de cd opnemen. Daarnaast moeten de NAW-gegevens van diegene die iets leent, worden vastgelegd. Omdat ook wel eens gevraagd wordt of hij een bepaald liedje heeft, besluit Alan dat alle nummers die op een cd staan in het systeem moeten worden opgenomen.

  1. Welke gegevens wil Alan vastleggen in het systeem?
  2. Welke functies moet het systeem bezitten?
  3. Ontwerp een tabellenstructuur voor het cd-uitleensysteem.

C Herkansingen

Enigmacollege

Op het Enigmacollege krijgen leerlingen na elke proefwerkweek de gelegenheid om te herkansen voor één van de vakken waarvoor ze een toets hebben gemaakt. Enkele weken na de proefwerkweek, de cijfers zijn dan inmiddels bekend, vullen leerlingen een formulier in. Hierop moet onder andere worden vermeld voor welk vak ze willen herkansen. Deze formulieren worden verzameld op de administratie en daar handmatig verwerkt. Dat wil zeggen, er worden overzichtslijsten gemaakt waaruit blijkt voor welke vakken leerlingen willen herkansen en bij welke docent. De mensen van de administratie zorgen er vervolgens voor dat deze lijsten in de docentenkamer op het prikbord worden opgehangen. Docenten kunnen dan zelf controleren of ze een of meerdere herkansingen moeten maken.

De schoolleiding vindt deze manier van werken nogal omslachtig. Daarom heeft ze de docent informatica gevraagd daar eens naar te kijken. Hij heeft bedacht dat het veel handiger is om het opgeven voor een herkansing te gaan registreren via de website van school. De benodigde gegevens kunnen dan direct worden opgeslagen in een database. Voor het benaderen van de database stelt hij voor gebruik te gaan maken van php in combinatie met mysql.

De deskundigen

De gegevens voor het informatiesysteem
Om een informatiesysteem te kunnen ontwikkelen, is deskundigheid nodig over het onderwerp. Maar ook over het proces zelf. Dus over hoe het ontwikkeltraject van een informatiesysteem verloopt. Meestal berust de deskundigheid over het onderwerp en het ontwikkeltraject niet bij dezelfde mensen. Vaak zijn er verschillende partijen betrokken bij het ontwikkelen van het informatiesysteem:

  • De domeindeskundige heeft de noodzakelijke kennis over het onderwerp (het domein) en weet wat de informatiebehoefte is m.a.w. welke vragen het systeem moet kunnen beantwoorden.
  • De informatieanalist is de specialist in het ontwikkelen van informatiesystemen.

Het is niet altijd makkelijk om erachter te komen wat de precieze informatiebehoefte is. Het verwerken van informatie gaat vaak onbewust. Daarnaast is het ook lastig om de informatiebehoefte onder woorden te brengen. De informatieanalist gebruikt daarvoor speciale technieken zoals enquêtes, interviews, groepsoverleg en observaties.

In ons voorbeeld van het ontwikkelen van een informatiesysteem voor herkansingen is er bij het onderzoek naar de informatiebehoefte gekeken naar de overzichten die in de docentenkamer worden opgehangen.

Hieronder zie je een fragment van de lijsten zoals die door de administratie worden gemaakt:

voornaam achternaam klas vak docent
Rob Jansen 4Va sp agu
Peter Hoekstra 4Hb ak bht
Jessica Veerman 4Hc sk kox
Ellen Reinsma 4Vb en kng

 

De overzichtslijst die in de docentenkamer wordt opgehangen, is een zogenaamd startdocument. Startdocumenten worden gebruikt om te beschrijven om welke informatie en informatieverwerkende processen het gaat.
De informaticadocent signaleert al snel een probleem. Als er twee leerlingen met dezelfde voor- en achternaam in de lijst voorkomen, kan dat verwarrend zijn. Er wordt daarom besloten om een leerlingnummer te gaan gebruiken voor de identificatie van een leerling.

★ Aan de slag 4

  1. Wat is de taak van de domeinsdeskundige bij het ontwikkelen van een informatiesysteem?
  2. Wat is de taak van een informatieanalist bij he tontwikkelen van een informatiesysteem?
  3. Wat is het domein?

★ Aan de slag 5

Opgave 1

Om een leerling uniek te kunnen identificeren, is besloten het leerlingnummer te gebruiken.

  1. Was het ook mogelijk geweest om een leerling uniek te identificeren door zijn klas aan zijn voor- en achternaam toe te voegen? Licht je antwoord toe.
  2. Was het ook mogelijk geweest om een leerling uniek te identificeren door aan zijn voor- en achternaam zijn adres en woonplaats toe te voegen? Licht je antwoord toe.
  3. Is het gebruik van het leerlingnummer in dit geval de beste keuze? Licht je antwoord toe.


Opgave 2

Bedenk nog een voorbeeld van een startdocument voor de casus van de herkansingen.

Opgave 3

Wie zijn in de casus van de herkansingen de domeindeskundigen?

FCO-IM

Het te maken informatiesysteem voor de herkansingen moet een middel zijn dat de bestaande communicatie tussen schoolleiders, docenten, leerlingen en administratie ondersteunt. Bij het ontwikkelen van ons informatiesysteem gaan we gebruik maken van de methode FCO-IM.

FCO-IM is de afkorting van Fully Communication Oriented Information Modelling (Volledig Communicatiegeoriënteerde Informatiemodellering).

Deze methode gaat ervan uit dat alle relevante informatie in voorbeeldzinnen kan worden geformuleerd. Deze voorbeeldzinnen drukken één eenduidig feit uit, dat in de te modelleren communicatie van belang is of van belang kan zijn.

★ Aan de slag 6

De methode FCO-IM borduurt voort op de NIAM-traditie.
Zoek uit waar NIAM voor staat.
Maak daarbij gebruik van Wikipedia.

FCO-IM - 2

In de overzichtslijst die in de docentenkamer wordt opgehangen, staat informatie die docenten nodig hebben voor het klaarmaken van hun herkansingen. Er valt uit op te maken welke leerling voor welk vak herkanst, in welke klas een leerling zit, maar ook bij welke docent een herkansing gemaakt wordt.

Dit zijn allemaal feiten die van belang zijn voor de communicatie tussen docenten en leerlingen. Leerlingen willen weten voor welk vak zij mogen herkansen en docenten zijn geïnteresseerd in welke leerlingen voor hun vak een herkansing willen maken. Bij het modelleren in FCO-IM gaat het er om een zo precies mogelijk model van die communicatie (die feiten) te maken.

Als eerste stap in de analyse worden de feiten verwoord in Nederlandse zinnen. De verwoording moet gebeuren door de domeindeskundige, omdat hij/zij bekend is met het domein. We bekijken een aantal voorbeeldzinnen:

Leerling 86139 heeft naam Jessica Veerman.
Leerling 86139 zit in klas 4Hc.
Leerling 86139 heeft vak sk van kox.
Leerling 86141 heeft naam Rob Jansen.
Leerling 86141 zit in klas 4Va.
Leerling 86141 heeft vak sp van agu.
Leerling 86147 heeft naam Peter Hoekstra.
Leerling 86147 zit in klas 4Hb.
Leerling 86147 heeft vak ak van bht.

In de voorbeeldzinnen drukt iedere zin één feit uit. Een zin die een feit uitdrukt, noemen we een feitexpressie. De methode FCO-IM eist bij de verwoording van informatie dat iedere feitexpressie (zin) een zo klein mogelijk, zelfstandig stukje informatie moet weergeven. Samengestelde feitexpressies, die een verscheidenheid aan informatie geven, worden daarom gesplitst.

De volgende feitexpressie is niet elementair:

Leerling 86139 zit in klas 4Hc en heeft vak sk van docent kox.

Deze zin kan zonder verlies van informatie worden gesplitst in Leerling 86139 zit in klas 4Hc en Leerling 86139 heeft vak sk van docent kox.

Deze beide feitexpressies drukken wel een elementair feit uit, omdat ze niet verder kunnen worden gesplitst zonder dat er informatie verloren gaat.

★ Aan de slag 7

Opgave 1

  1. Leg uit wat er onder een feit wordt verstaan.
  2. Leg uit wat er onder een feitexpressie wordt verstaan.


Opgave 2

De leerlingen uit de overzichtslijst die in de docentenkamer is opgehangen, wonen in verschillende plaatsen en op verschillende adressen.
Hieronder zie je een fragment van de lijst met NAW-gegevens van deze leerlingen:

leerlingnummer voornaam achternaam adres woonplaats
86139 Jessica Veerman Westerweg 33 Alkmaar
86141 Rob Jansen Stationsweg 45 Heiloo
86147 Peter Hoekstra Geest 4 Alkmaar

 

Formuleer de feitexpressies waarin je verwerkt in welke plaats en op welk adres deze leerlingen wonen.


Opgave 3

Nadat de herkansingen gemaakt zijn, worden er lijsten opgehangen waarop de cijfers van de gemaakte herkansingen worden vermeld.
Hieronder zie je een fragment van zo’n lijst:

leerlingnummer voornaam achternaam vak toetscode cijfer
86139 Jessica Veerman sk sk_t1 6,3
86141 Rob Jansen sp sp_t2 5,5
86147 Peter Hoekstra ak ak_t1 6,2

 

  1. Formuleer de feitexpressies waarin je verwerkt voor welk vak er een herkansing is.
  2. Formuleer de feitexpressies waarin je verwerkt welk resultaat een leerling voor een herkansing heeft gehaald.

★ Aan de slag 8

In januari 2017 werd in Heerenveen door koning Willem-Alexander het nieuwe Thialf Stadion geopend. In 2019 worden hier de wereldkampioenschappen sprint verreden. Het wordt de zevende keer dat de snelste schaatsers ter wereld om in wereldtitel strijden in de Friese schaatstempel. Voor dit evenement wil de schaatsbond voor de pers een informatiesysteem ontwikkelen. Van iedere schaatser worden de naam, het geslacht en het land waarvoor de schaatser uitkomt, vastgelegd. Daarnaast heeft iedere schaatser een uniek startnummer.

Een schaatser komt uit op één of meer afstanden (bijvoorbeeld: 500 meter heren, 1000 meter heren, 500 meter dames, 1000 meter dames). Van iedere afstand waaraan een schaatser deelneemt, wordt het persoonlijk record in het systeem opgenomen. Wanneer een schaatser een afstand heeft gereden, dan wordt de gereden tijd en plaats in het klassement vastgelegd.

Verwoord de feiten die de schaatsbond vastgelegd wil hebben in het informatiesysteem voor de pers in een aantal representatieve feitexpressies. Zorg ervoor dat je alle soorten feiten hebt verwoord.

Gebruik als voorbeeld schaatser Kjeld Nuis.

 

★ Aan de slag 9

We komen terug op het cd-uitleensysteem van Alan. Hij heeft nog een aantal aanvullende wensen. Sommige cd’s worden wel maanden geleend. Hij zou dat toch willen terugbrengen tot maximaal één week. Daarvoor gaan we een ontwerp maken met behulp van de methode FCO-IM. In het nieuw te ontwerpen systeem moeten de titel van de cd, de naam van de artiest, het soort muziek, de prijs van de cd en alle nummers worden opgenomen. Tevens krijgt iedere cd een uniek administratienummer. Van de vrienden die de cd’s willen lenen wordt de naam, het adres, de woonplaats en het telefoonnummer vastgelegd. Je mag er daarbij van uit gaan dat de naam uniek is. Als een cd wordt uitgeleend worden naast de noodzakelijke gegevens van de cd en de lener ook de uitleendatum vastgelegd.

Verwoord de feiten die de Alan vastgelegd wil hebben in zijn informatiesysteem in een aantal representatieve feitexpressies. Zorg ervoor dat je alle soorten feiten hebt verwoord.

Gebruik hier als voorbeeld je eigen persoonsgegevens en de gegevens van een cd die je zelf bezit.
 

★ Aan de slag 10

We bekijken een wat grotere casus:

Autoverhuurbedrijf Auto Maat is een jong bedrijf dat in een paar jaar sterk gegroeid is. Vijf jaar geleden is de eigenaar, dhr. P. Maat, begonnen met één auto. Op dit moment heeft het bedrijf 20 auto’s in de verhuur. De verwachtingen voor de toekomst zijn goed. Voor het komend jaar wordt het wagenpark weer uitgebreid met 5 auto’s. Het lijkt verstandig om het informatiesysteem te automatiseren. Daarvoor heeft dhr. P. Maat een automatiseringsbedrijf in de arm genomen. In een eerste gesprek met een informatieanalist van het automatiseringsbedrijf vertelt P. Maat:

“We zijn nog een jong bedrijf, maar we hebben nu al 20 auto’s in de verhuur. Onze klanten zijn particulieren, die bijvoorbeeld een auto willen huren voor een vakantie of een busje voor een verhuizing. Maar wij mogen ook een aantal grote bedrijven tot onze klantenkring rekenen. Het komt regelmatig voor dat zij dan een paar auto’s nodig hebben. Om aan de wensen van de klanten tegemoet te komen hebben wij verschillende typen auto’s in de verhuur. De auto’s hebben we verdeeld in 5 categorieën: categorie A zijn de kleinere auto’s, zoals een Fiat 500. De huurprijs bedraagt € 30 per dag. Daarbij moet dan nog € 0,30 per kilometer betaald worden. De borgsom voor deze klasse is € 100. De middenklassers, zoals een Opel Astra, vallen in categorie B. De huurprijs is € 35 per dag en een kilometerprijs van € 0,35. De borgsom is € 150. In de C-categorie zitten de businesswagens, zoals de Volvo V40 met een huurprijs van € 40 en een kilometerprijs van € 0,40. De borgsom is € 200. Tenslotte hebben nog een aantal busjes, die we met name verhuren voor verhuizingen. Die zitten in categorie D. Een busje kost € 40 per dag en € 0,45 per kilometer. De borgsom is € 175. De gegevens van de auto’s heb ik in een kaartenbak zitten. Ik heb daarvan een voorbeeld meegenomen.


Voor de klantgegevens heb ik ook een kaartenbak. Daarop staan de naw-gegevens, het telefoonnummer en het klantnummer. Op de kaart wordt bijgehouden welke auto’s de klant huurt. De rekeningen worden getypt door onze secretaresse.

Kaartenbak


Om aan te geven welke auto’s gereserveerd of verhuurd zijn maken we gebruik van een planningbord. In de linkerkolom van het bord staan de dagen van de maand en in de eerste rij de kentekens van de auto’s geordend per klasse. Op de kaartjes staat de naam van de klant en het klantnummer.”

Klantgegevens
Planningbord


De firma Auto Maat heeft al een bestaand informatiesysteem.
Bekijk dat systeem eens goed.
Komt er redundantie in voor? Zo ja waar?

★ Aan de slag 11

Verwoord de feiten die de heer P. Maat vastgelegd wil hebben in het nieuwe informatiesysteem voor Auto Maat in een aantal representatieve feitexpressies.
Zorg ervoor dat je alle soorten feiten hebt verwoord.

D Classificatie-kwalificatie

Ordenen

De volgende stap in de analyse is het herkennen van patronen in de verzamelde feitexpressies. De feitexpressies met een overeenkomstig patroon worden ingedeeld in een groep (klasse). Dit wordt classificeren genoemd. We kijken nog eens naar de voorbeeldzinnen die gemaakt zijn voor het model van de herkansingen.

Leerling 86139 heeft naam Jessica Veerman.
Leerling 86141 heeft naam Rob Jansen.

Leerling 86147 heeft naam Peter Hoekstra.

Leerling 86139 zit in klas 4Hc.
Leerling 86141 zit in klas 4Va.
Leerling 86147 zit in klas 4Hb.

Leerling 86139 heeft vak sk van docent kox.
Leerling 86141 heeft vak sp van docent agu.
Leerling 86147 heeft vak ak van docent bht.

Alle feitexpressies met hetzelfde patroon zijn al bij elkaar geplaatst. In de lijst zie je drie groepen zinnen (drie klassen). Aan elke groep moet een betekenisvolle naam worden gegeven. Dat zou respectievelijk Leerlingnaam, Leerlingklas en Leerlingdocent kunnen zijn. Het geven van betekenisvolle namen aan zinnen die geclassificeerd zijn, wordt kwalificeren genoemd.

★ Aan de slag 12

Opgave 1

  1. Wat wordt er verstaan onder classificeren?
  2. Wat wordt er verstaan onder kwalificeren?

 

Opgave 2

Voor het maken van deze opdracht heb je de antwoorden nodig die je hebt gegeven bij aan de slag 7 opgave 2.
Daarin wordt gevraagd om de feitexpressies te formuleren waarin de woonplaats en het adres van leerlingen die willen herkansen, wordt verwerkt. Het resultaat is een lijst met feitexpressies die nog geclassificeerd en gekwalificeerd moeten worden.

  1. Classificeer deze feitexpressies.
  2. Kwalificeer deze feitexpressies

 

Opgave 3

Kijk voor deze opdracht naar je uitwerkingen van aan de slag 7 opgave 3. Daarin wordt gevraagd om de feitexpressies te formuleren waarin verwerkt wordt voor welk vak er een herkansing bestaat en welk resultaat leerlingen voor hun herkansing hebben behaald. Het resultaat is een lijst met feitexpressies die nog geclassificeerd en gekwalificeerd moeten worden.

  1. Classificeer deze feitexpressies.
  2. Kwalificeer deze feitexpressies.

Analyseren

Na het classificeren en kwalificeren richten we ons op het analyseren van de structuur van de feitexpressies met een overeenkomstig patroon.
We bekijken de volgende zinnen:

Leerling 86147 zit in klas 4Hb.
Leerling 86139 zit in klas 4Hc.
Leerling 86141 zit in klas 4Va
.

Deze feitexpressies geven allemaal hetzelfde soort feit weer. Alleen de objecten waarop zij betrekking hebben zijn verschillend. We kunnen voor de gelijksoortige informatie een standaardformulering afspreken met invulplaatsen:

Leerling ... zit in klas ...

Een standaardformulering voor gelijksoortige feitexpressies noemen we een feittype.

In de feitexpressie staan twee objecten. Het eerste object, leerling 86139, verwijst naar een leerling van het Enigmacollege. Het tweede object, klas 4Hc, naar een klas van het Enigmacollege. Deze objecten duiden dus een leerling en een klas aan in de reële wereld.
Voor soorten objecten gebruiken we de term objecttype, in dit geval het objecttype Leerling en het objecttype Klas.

Er worden eisen gesteld aan datgene wat er mag staan op de invulplaatsen. Op de eerste invulplaats moet een leerlingnummer van leerlingen uit klas 4 havo of 4 vwo worden ingevuld. Bijvoorbeeld 86141. Daarmee wordt een specifieke leerling aangeduid. Deze aanduiding wordt een label genoemd. Op de tweede plaats moet een klascode van een 4 havo of 4 vwo klas worden ingevuld. Bijvoorbeeld 4Va.

Net als bij objecten maken we bij labels een onderscheid in soorten. In dit voorbeeld wordt gebruik gemaakt van 2 soorten labels: labeltypen. Een leerling duiden we aan met het labeltype leerlingnummer en een klas met het labeltype klascode.

De schoolleiding wil dat in het te ontwikkelen systeem al vooraf alle klassen kunnen worden ingevoerd. In de door ons ingevoerde feitexpressies bestaat nog geen klas 4Ha. We zouden daarvoor de zin Er is een klas 4Ha kunnen gebruiken.

In de feitexpressie Er is een klas 4Ha wordt het bestaan verondersteld van een object, namelijk van een klas met klascode 4Ha. We noemen een dergelijke feitexpressie een existentiepostulerende feitexpressie. (Existentie betekent bestaan. Postuleren betekent zonder bewijs aannemen.)

Enkele opmerkingen

  • Wanneer je kijkt naar de lijst van herkansingen, merk je wellicht op dat niet alle informatie uit die lijst is verwoord. De leerling Ellen Reinsma komt in het lijstje van voorbeeldzinnen niet voor. We volstaan met van ieder feittype slechts enkele feiten volledig te verwoorden. Daarbij mag geen enkel feittype worden overgeslagen.

  • Bij het kwalificeren worden twee lagen gecreëerd: eerst de objecttypen en daarna de labeltypen. Misschien lijkt je dat overbodig. Toch is dit onderscheid erg belangrijk. Een object kan aangeduid worden met één naam (label), maar het is ook mogelijk dat daarvoor een combinatie van labels wordt gebruikt. Voor de aanduiding van het objecttype Leerling wordt een leerlingnummer gebruikt omdat de combinatie van voor- en achternaam niet altijd gebruikt kan worden om een leerling te identificeren. De naam Ellen Reinsma kan immers bij meerdere leerlingen horen.

  • Voor aantallen, volgnummers etc. geldt dat je die als labeltype kunt modelleren.

★ Aan de slag 13

  1. Leg uit wat er onder een feittype wordt verstaan.
  2. Wat is het verschil tussen een objecttype en een labeltype?
  3. Wanneer wordt er geen objecttype gemodelleerd?

★ Aan de slag 14

De eerste stap van het classificeren en kwalificeren van de feitexpressies voor het model van de herkansingen leverde een aantal klassen op:

Leerling 86139 heeft naam Jessica Veerman. Leerlingnaam
Leerling 86141 heeft naam Rob Jansen.
Leerling 86147 heeft naam Peter Hoekstra.

 

Leerling 86139 zit in klas 4Hc. Leerlingklas
Leerling 86141 zit in klas 4Va.
Leerling 86147 zit in klas 4Hb.

 

Leerling 86139 heeft vak sk van docent kox. Leerlingdocent
Leerling 86141 heeft vak sp van docent agu.
Leerling 86147 heeft vak ak van docent bht.


De volgende stap is het afleiden van de objecttypen, de labeltypen en de feittype-expressies.

  1. Leid de objecttypen af. Houd er rekening mee, dat je niet altijd een objecttype creëert.
  2. Leid de labeltypen af.
  3. Leid de feittype-expressies af.

 

★ Aan de slag 15

Opgave 1

Bekijk de feitexpressies die je in aan de slag 11 en aan de slag 12 hebt geclassificeerd en gekwalificeerd.
Om het model te complementeren moet je hiervan de objecttypen, de labeltypen en feittype-expressies afleiden.

  1. Leid de objecttypen af.
  2. Leid de labeltypen af.
  3. Leid de feittype-expressies af.

 

Opgave 2

We gaan verder met het informatiesysteem voor de schaatspers.
Kijk nog eens kritisch naar alle feitexpressies.
Je moet alle soorten feiten hebben verwoord.
De volgende stap is de classificatie en kwalificatie:

  1. Classificeer en kwalificeer de feitexpressies.
  2. Leid de objecttypen, labeltypen en feittype-expressies af.

★ Aan de slag 16

Opgave 1

Samen met Alan zijn de feiten uit zijn cd-uitleensysteem verwoord.
Jij moet nu feitexpressies gaan classificeren en kwalificeren.

  1. Classificeer en kwalificeer de feitexpressies.
  2. Leid de objecttypen, labeltypen en feittype-expressies af.

 

Opgave 2

In overleg met de heer P. Maat en de baliemedewerkers zijn de feiten verwoord:

  1. Classificeer en kwalificeer de feitexpressies.
  2. Leid de objecttypen, labeltypen en feittype-expressies af.

E CaseTalk

Nieuw project

Voor het visualiseren van een datamodel met daarin de relaties tussen de verschillende typen maken we gebruik van een casetool.
Case staat voor Computer Aided Software engineering.
In ons geval gaat het om speciale software waarmee nadat het datamodel is gemaakt ook de databasestructuur gegenereerd kan worden. De casetool waarvoor wij hebben gekozen, heet CaseTalk.

Wanneer je CaseTalk opstart, open je een nieuw project door in het openingsscherm te kiezen voor File → New → Project

CaseTalk
Nieuw project


Er worden nu twee vensters geopend met verschillende titels:

  • Een venster met de titel Project - New Project
  • Een venster met de titel Repository - New IG
Project en Repository


In de werkbalk van het venster met de titel project staat een knop met de letter i:

Werkbalk


Als je hierop klikt, wordt er een nieuw venster geopend waar extra informatie over het project kan worden ingevuld.
Bijvoorbeeld de naam van het project en wie het project gemaakt heeft.

Tot slot moeten we het project opslaan. CaseTalk maakt voor elk project meerdere bestanden aan. Het is daarom raadzaam om elk nieuw project op te slaan in een aparte map. Voor dit project gebruiken we een map “herkansingen”. Om een project te kunnen opslaan, moet het dialoogvenster met de titel Project actief zijn. Je kunt een venster actief maken door op de titelbalk van het venster te klikken.

Project opslaan


Voor het opslaan van een project kies je in de menubalk voor File → Save Project As. Daarna geef je altijd de plek aan waar je het project wilt bewaren en voorzie je het project van een passende naam. In dit voorbeeld slaan we het project op in de map herkansingen en geven we het project de naam herkansingen.

Project opslaan

 

★ Aan de slag 17

Maak nu op de plek waar je altijd je bestanden opslaat een map herkansingen aan.
Sla het project op in de map herkansingen en geef het project de naam herkansingen.

Voor het opslaan van een project moet het dialoogvenster met de titel Project actief zijn.
Kies in het venster met de titel CaseTalk voor Save Project As …

 

★ Aan de slag 18

Klik in het venster met de naam project in de werkbalk op de knop met de letter i:
We gaan in het venster met de File Properties aanvullende informatie over het project invullen.

In het tekstvak achter Name vullen we “herkansingen” in. Achter Author vermeld je je eigen naam. Bij Description komt te staan: “Informatiesysteem voor herkansingen van het Enigmacollege”.

Klik op OK als je alles hebt ingevuld.

Invoeren feitexpressies

Nadat we een nieuw project herkansingen hebben aangemaakt, is de volgende stap het invoeren van feitexpressies. Dat doen we als eerste met de feitexpressie: leerling 86139 woont in Alkmaar. Voor het invoeren van feitexpressies gebruiken we het venster met de titel Repository. Daarachter staat, dat wil zeggen als je het project onder de juiste naam hebt opgeslagen, herkansingen.ig.

De eerste knop in de werkbalk gebruiken we voor het invoeren van nieuwe feitexpressies:

Voor het invoeren van nieuwe feitexpressies kan ook de functietoets F6 worden gebruikt.

In het venster dat we gebruiken voor het invoeren van de feitexpressies vullen we de zin “leerling 86139 woont in plaats Alkmaar in”.
Op de plek van de spaties verschijnen puntjes.

Invoeren feitexpressie


Na het invoeren van de zin “leerling 83139 woont in plaats Alkmaar” geven we het feittype een naam. We kiezen als naam Leerlingwoonplaats. Het feittype zegt immers iets over de woonplaats van een leerling. We vullen de naam van het feittype links onder in het invoerveld Object / Fact type name in. Daarna klikken we op de knop Qualify. De naam van het feittype wordt vastgelegd en de zin wordt gecentreerd.

Feittype


Om een objecttype aan te geven, selecteren we nu leerling 86139 .
Daarna vullen we in het invoerveld Object / Fact type name als naam Leerling in.

Objecttype


Daarna klikken we op de knop Qualify.
In de feitexpressie wordt leerling 86139 vervangen door Leerling.

Qualify


We hebben nu een objecttype Leerling aangemaakt.
In de feitexpressie selecteren we nu plaats Alkmaar .
In het invoerveld Object / Fact type name vullen we Plaats in.
Daarna klikken we op Qualify.

Plaats Alkmaar


De objecttypen Leerling en Plaats zijn nu vastgelegd.
In de volgende stap gaan we de labeltypen aangeven.
Dat doen we door op de knop Next te klikken.
We selecteren 86139 en geven het labeltype als naam leerlingnummer.

Labeltypen


Daarna klikken we op Qualify.
In het object wordt 86139 vervangen door leerlingnummer.

Leerlingnummer


Wellicht is het je opgevallen dat de namen van een objecttype met een hoofdletter beginnen.
De namen labeltypen beginnen met een kleine letter.

We klikken nu op Next. Het label 86139 wordt in een wit veld geplaatst.
Daar hoeft niets meer mee te gebeuren. We klikken nogmaals op Next.

Voor Alkmaar herhalen we dezelfde stappen.
We selecteren Alkmaar en vullen als labeltype plaatsnaam in.

Plaatsnaam


We klikken nu op Qualify.
Daarna klikken we een paar keer op Next totdat het onderstaande scherm verschijnt.

Finish


Door op de knop Finish te klikken, geven we aan dat de classificatie en kwalificatie goed zijn.

★ Aan de slag 19

Open in CaseTalk het model herkansingen.
In deze aan de slag opdracht ga je zelf alle beschreven stappen voor het invoeren van een feitexpressie doorlopen.
Als je dit al tijdens het lezen van het lesmateriaal hebt gedaan, hoef je deze opgave niet meer te maken.

  1. Voer als nieuwe feitexpressie de zin “leerling 86139 woont in plaats Alkmaar in”.
  2. Geef het feittype de naam Leerlingwoonplaats.
  3. Maak van leerling 86139 het objecttype Leerling en van plaats Alkmaar het objecttype Plaats.
  4. Geef de labeltypen aan. Het objecttype Leerling krijgt het labeltype leerlingnummer. Het objecttype plaats krijgt het labeltype plaatsnaam.

★ Aan de slag 20

Dezelfde soort zinnen kwalificeren, gaat sneller omdat het casetool het feittype herkent.
Het model herkansingen is in CaseTalk geopend.

  1. Klik in het venster Repository op de knop New Expression of druk op F6.
  2. Type in het invoerveld leerling 86141 woont in plaats Heiloo”.
  3. De naam van de feitexpressie staat in de lijst bij Object / Fact type name. Selecteer Leerlingwoonplaats.
Leerlingwoonplaats

 

  1. Klik op Qualify. Het casetool herkent de structuur.
  2. Klik op Match. De feitexpressie wordt op dezelfde manier uitgewerkt
  3. Klik op Finish.
  4. Herhaal bovenstaande procedure voor de expressie: leerling 86147 woont in plaats Alkmaar

★ Aan de slag 21

Het model herkansingen is in CaseTalk geopend.

Kwalificeer de onderstaande zinnen met behulp van het casetool:

Leerling 86139 heeft naam Jessica Veerman.
Leerling 86141 heeft naam Rob Jansen.
Leerling 86147 heeft naam Peter Hoekstra.

Leerling 86139 zit in klas 4Hc.
Leerling 86141 zit in klas 4Va.
Leerling 86147 zit in klas 4Hb.

Leerling 86139 heeft vak sk van docent kox.
Leerling 86141 heeft vak sp van docent agu.
Leerling 86147 heeft vak ak van docent bht.

 

Existentiepostulerende feitexpressies

De volgende feitexpressie die we gaan classificeren en kwalificeren is het existentiepostulerende feittype: er is een klas 4Ha.

In CaseTalk hebben we het model herkansingen geopend. We gaan nu een nieuwe feitexpressie invoeren. Namelijk de zin “er is een klas 4Ha”. We moeten nu een naam geven aan deze feitexpressie. Die naam is gelijk aan die van het object, namelijk Klas. Daarmee maken we van deze feitexpressie een object. Het omzetten van een (existentiepostulerende) feitexpressie naar een object heet nominalisatie.

Nominalisatie


We selecteren de naam Klas en klikken daarna op Qualify. Bij de volgende stap geven we onmiddellijk het labeltype aan. We selecteren 4Ha en kiezen uit de lijst Object / Fact type name klascode.

Klascode


Als we nu op Qualify klikken, verschijnt er een venster waarin gevraagd wordt of de huidige expressie dezelfde rol heeft als de al eerder ingevoerde expressies. In de volgende paragraaf leggen we uit wat rollen zijn. Nu klikken we op Accept en vervolgens op Next en Finish.

Nominalisatie

★ Aan de slag 22

Opgave 1

Het model herkansingen is in CaseTalk geopend.

De schoolleiding wil dat in het systeem alle vierde klassen van tevoren worden ingevoerd. Dus niet alleen 4Ha, maar ook de andere havo klassen 4Hb, 4Hc en de enige vwo klas, namelijk 4Va. Kwalificeer onderstaande zinnen met behulp van het casetool:

er is een klas 4Hb
er is een klas 4Hc
er is een klas 4Va

 

Opgave 2

Wat wordt verstaan onder nominalisatie?

IG-venster

In CaseTalk kunnen we het resultaat van de ingevoerde feitexpressies bekijken in het IG-venster. Het informatiegrammaticavenster. In dit venster vind je de feittypen, de objecttypen en de labeltypen terug die we benoemd hebben.

Informatiegrammaticavenster


In het overzicht staan aan de linkerkant alle feittypen, objecttypen en labeltypen die we in het model van de herkansingen hebben ingevoerd. Rechts kunnen we de details van een feittype, objecttype of labeltype bekijken. Dat kan door een ingevoerd type te selecteren. Bijvoorbeeld het feittype Leerlingwoonplaats.

Ingevoerd type selecteren


Als je met de rechtermuisknop op een van de expressies klikt, roep je een menu op waarmee je bij Tasks een expressie onder andere kunt wijzigen, verwijderen of hernoemen.

Tasks

 

★ Aan de slag 23

Bekijk de details van het feittype Leerlingwoonplaats.

We hebben tot nu toe feittypen gezien met één invulplaats (er is een klas ...) en met twee invulplaatsen (leerling ... zit in klas ...)
De invulplaatsen noemen we rollen.
Er zijn dus feittypen met één rol. We spreken in dit geval van een unair feittype.
Wanneer een feittype twee rollen heeft, is het een binair feittype.
Er bestaan ook feittypen met drie rollen. We spreken dan van een ternair feittype.

Een voorbeeld hiervan is het feittype Leerlingvakdocent met drie invulplaatsen (Leerling ... heeft vak ... van docent ...)

 

F Het IGD

Een IGD maken

Bij het modelleren van het informatiesysteem voor de herkansingen heb je kunnen zien dat je snel te maken hebt met een groot aantal feittypen. Ook al hebben we met een relatief eenvoudig systeem te maken. In de praktijk kan het aantal feittypen in de honderden lopen. Je raakt dan al snel het overzicht kwijt. Daarom gebruiken informatieanalisten diagrammen om feittypen, objecttypen en labeltypen en hun onderlinge samenhang weer te geven.

CaseTalk biedt de mogelijkheid om diagrammen te maken. Een dergelijk diagram wordt een informatiegrammaticadiagram (IGD) genoemd. In een IGD wordt het datamodel bestaande uit feittypen, objecttypen en labeltypen getekend. We bekijken als voorbeeld de opbouw van het feittype Leerlingwoonplaats.

Informatiegrammaticadiagram


Het feittype Leerlingwoonplaats heeft 2 rollen (1 en 2). De eerste rol wordt gespeeld door het objecttype Leerling, de tweede rol door het objecttype Plaats. Dit wordt aangegeven door de verbindingslijnen. De labeltypen zijn weer door een verbindingslijn verbonden met de objecttypen.

Om een IGD te maken, moet er een IGD-venster worden geopend.
Dat kan door in het venster van CaseTalk te klikken op de knop Add a new diagram.

Add a new diagram


Als eerste slaan we nu het diagram op. Het IGD krijgt als naam herkansingen en wordt op dezelfde plek opgeslagen waar ook het project en het ig-bestand voor het model van de herkansingen terug te vinden is.

We selecteren nu alle benodigde onderdelen uit het IG-venster. Dit kan met je muis in het overzicht te gaan staan.
Klik daarna op Ctrl + a.

Daarna slepen we de geselecteerde onderdelen uit het IG-venster naar het IGD-venster. Het casetool bouwt het diagram automatisch op.

Diagram IGD-venster


Hieronder volgen enkele tips voor de opmaak van het IGD:

  • Je kunt de elementen (feittypen, objecttypen en labeltypen) aanklikken en verslepen om het IGD duidelijker en overzichtelijker te maken.
  • Wanneer je op een lijn klikt, verschijnt er een klein vlakje op. Hiermee kun je de lijn indien nodig om een element leiden. Door op het vlakje rechts te klikken, krijg je een menu waarin er onder andere gekozen kan worden voor het weer recht maken van de verbindingslijn.
  • Je kunt de rollen van een feittype in een diagram wisselen. Klik met de Ctrl-toets ingedrukt op een rol om deze te selecteren. (de rol wordt groen). Houd vervolgens de Alt-toets ingedrukt en versleep de rol naar de plaats ernaast.
  • Wanneer je met de rechtermuisknop in het venster klikt, krijg je een snelmenu. Daarmee kun je de afbeelding centreren, afdrukken, tekst toevoegen etc.

Laten we nog eens de belangrijkste grafische symbolen die gebruikt worden in IGD’s op een rijtje zetten. We doen dat aan de hand van de al eerder besproken feittypen.


Een enkele rechthoek wordt gebruikt bij feittypen met één rol (unair feittype), zoals bij de zin “Er is een klas 4Ha”. De rollen worden genummerd, zodat ze te verbinden zijn met de feittype-expressie.


Twee of meer aaneengesloten rechthoeken geven een feittype met twee of meer rollen aan (binair, ternair feitype). Iedere rechthoek stelt één rol voor.


Een gestippelde cirkel geeft een labeltype aan.


Een gesloten cirkel om een feittype geeft een objecttype aan.


Een verbindingslijn tussen een rol en een objecttype geeft aan dat de rol gespeeld wordt door het objecttype.

★ Aan de slag 24

Welk voordeel biedt het werken met diagrammen?

 

 

★ Aan de slag 25

  1. Open in CaseTalk het project herkansingen en maak het IGD voor het informatiesysteem voor de herkansingen van het Enigmacollege.
    Voeg alle feittypen, objecttypen en labeltypen toe aan het diagram.
  2. Open het project info_wk.
    Maak het IGD dat hoort bij het informatiesysteem voor de pers.
  3. Open het project leen_cd.
    Maak het IGD dat hoort bij het informatiesysteem voor het cd-uitleensysteem.
  4. Open het project automaat.
    Maak voor het informatiesysteem voor de firma Auto Maat een IGD.

★ Aan de slag 26

Alan komt met een nieuw idee.
Het lijkt hem wel aardig als van ieder nummer de componist en het jaar dat het nummer is geschreven wordt vastgelegd.
Volgens hem is dat maar een kleine wijziging in het ontwerp.

  1. Ben jij dat met hem eens? Houd daarbij rekening dat een nummer op verschillende cd’s kan voorkomen.
  2. Wat moet er aan het huidige ontwerp aangepast worden?

G Beperkingsregels

★ Aan de slag 27

De volgende stap in de analyse is het leggen van beperkingen op de rollen.
Niet alles mag worden ingevuld.
Kijk maar eens naar de volgende voorbeelden:

Leerling 86139 woont in plaats Alkmaar.
Leerling 86139 woont in plaats Heiloo.


Een leerling woont in twee verschillende plaatsen. Dat kan niet.

Er is een klas 4Ha.
Er is een klas 4Ha.


Een klascode komt twee keer voor. Er is hier sprake van redundantie.

Leerling 86141 heeft vak sp van docent agu.
Leerling 86141 heeft vak sp van docent bht.


Ook dit mag niet. Een leerling volgt in ons model een vak bij één docent en niet bij meerdere docenten.

Al deze gevallen zijn niet gewenst en moeten verboden worden. Dat kan met de zogenaamde beperkingsregels (in het Engels: constraints). De beperkingen worden in het IGD aangegeven. In deze paragraaf bespreken we drie soorten beperkingen:

  • de waardenbeperking (Value Constraint)
  • de uniciteitsbeperking (Unicity Constraint)
  • de totaliteitsbeperking (Totality Constraint)

 

Waarom moeten er constraints worden aangegeven in een IGD?

VC

Een value constraint, afgekort VC, is een waardenbeperking die wordt opgelegd aan een labeltype.

In principe kan iedere waarde worden ingevuld onder de rol die door een labeltype wordt gespeeld. Soms is het noodzakelijk het aantal mogelijke labels te beperken. Bij een labeltype maandcode kan de afspraak zijn dat alleen de waarden jan, feb, mrt, apr, mei, jun, jul, aug, sep, okt, nov en dec gebruikt mogen worden.

Stel dat op het Enigmacollege leerlingen uit de bovenbouw van havo en vwo alleen voor de bètavakken zouden mogen herkansen. In dat geval zou voor het labeltype vakcode alleen de waarden wi, na, sk, bi en in mogen worden toegestaan. We gaan die waardenbeperkingen aanbrengen in ons model.

Waardenbeperkingen

 

 

★ Aan de slag 28

Het model herkansingen is in CaseTalk geopend.

  1. Klik in het IGD van het model herkansingen op het labeltype vakcode. Het labeltype is blauw geworden. Daarmee wordt aangegeven dat het labeltype is geselecteerd.
    Blauw labeltype

  2. Klik nu in de werkbalk van het IGD op de knop met het opschrift x{}. Deze optie is alleen actief als er in het IGD een labeltype is geselecteerd.
    IGD-optie

  3. Er wordt een nieuw venster geopend waarin de waardenbeperkingen kunnen worden aangegeven.
    Aangeven waardebeperkingen

 

  1. Typ in het tekstveld achter Values de waarden wi, na, sk, bi en in onder elkaar in.
    Klik daarna op OK. In het IGD wordt nu een waardenbeperking voor het labeltype vakcode aangegeven.
    Waardebeperking vakcode

  2. Aangezien het onwaarschijnlijk is dat leerlingen alleen voor bètavakken mogen herkansen, verwijderen we deze waardenbeperking weer. Klik met de rechtermuisknop op het labeltype vakcode. Er verschijnt een snelmenu.
    Verwijderen waardenbeperking

★ Aan de slag 29

De eerste beperkingsregel die wordt besproken is de waardenbeperking.

  1. Waaraan wordt een waardenbeperking opgelegd?
  2. Waarom worden er waardenbeperkingen opgelegd?

 

UC

Een unicity constraint, afgekort UC, is een uniciteitsbeperking. Met deze beperking wordt aangegeven dat een gegeven of een combinatie van gegevens slechts eenmaal mag voorkomen in alle zinnen van een feittype.

We bekijken een paar zinnen:

Leerling 86139 zit in klas 4Hc.
Leerling 86137 zit in klas 4Hc.


Uit deze beide zinnen valt op te maken dat het mogelijk is dat er meer dan één leerling in een bepaalde klas zit. Dat is vanzelfsprekend. Het gegeven 4Hc mag meerdere keren voorkomen in dit feittype.

In de volgende twee zinnen ligt het anders:

Leerling 86139 zit in klas 4Hc.
Leerling 86139 zit in klas 4Vb.


In de expressie wordt beweerd dat een bepaalde leerling in twee verschillende klassen zit. Het te maken systeem moet dat verbieden. Het gegeven 86139 mag maar één keer voorkomen in dit feittype. Daarom moet er over de rol die de leerling speelt een uniciteitsbeperking worden gelegd. Dit wordt in het IGD weergegeven door een dubbele pijl over de betreffende rol.

Dus een uniciteitsbeperking op rol 10:

★ Aan de slag 30

Het model herkansingen is in CaseTalk geopend.
In het IGD gaan we een uniciteitsbeperking aanbrengen over de rol met de leerlingnummers in het feittype Leerlingklas.

  1. Klik met de CTRL-toets ingedrukt op de rol(len) waarover de uniciteitsbeperking wordt gelegd.
    Deze rol wordt groen.
    CRTL-Toets

     

  2. Nu aangegeven is over welke rol we een uniciteitsbeperkingen willen aanbrengen, kunnen we in de werkbalk van het IGD op de knop voor een uniciteitsbeperking klikken.
    Uniciteitsbeperking

    Klik op deze knop. In het IGD is nu een dubbele pijl boven rol 9 te zien. In je eigen uitwerking kan deze rol overigens ook een ander nummer hebben. De nummers zeggen alleen iets over de volgorde waarin in het IGD feittypen en objecttypen en dus de rollen zijn aangemaakt.
    Dubbele pijl

★ Aan de slag 31

Opgave 1

Elk feittype heeft tenminste één uniciteitsbeperking.

  1. Wat houdt een uniciteitsbeperking in?
  2. Waarom moet ieder feittype tenminste één uniciteitsbeperking hebben?
  3. Waarover wordt de uniciteitsbeperking gelegd?

 

Opgave 2

Het model herkansingen is in CaseTalk geopend.
Breng in het IGD uniciteitsbeperkingen aan over de rollen in de objecttypen Leerling en Klas.

 

UC - 2

Het feittype leerling … heeft vak … van docent … heeft drie rollen. Een ternair feittype moet een uniciteitsbeperking hebben die over twee of drie rollen ligt. Om deze te bepalen bekijken we weer een aantal voorbeeldzinnen:

Leerling 86139 heeft vak sk van docent kox.
Leerling 86139 heeft vak sk van docent lts.


Een leerling heeft voor een vak maar één docent. De combinatie van leerlingnummer en vakcode mag maar één keer voorkomen in dit feittype. Daarom moet er over beide rollen een uniciteitsbeperking worden gelegd.

Bekijk nu de zinnen:

Leerling 86139 heeft vak sk van docent kox.
Leerling 86139 heeft vak na van docent kox.


De combinatie van leerlingnummer en docentcode komt meerdere keren voor in dit feittype. Deze combinatie is dus niet uniek en er komt geen uniciteitsbeperking op te liggen. Een docent kan immers aan dezelfde leerling meerdere vakken geven.

Het is natuurlijk wel mogelijk dat twee leerlingen dezelfde docent hebben en hetzelfde vak volgen:

Leerling 86139 heeft vak sk van docent kox.
Leerling 86141 heeft vak sk van docent kox.

Over de rollen vakcode en docentcode ligt dan ook geen uniciteitsbeperking.

Dus een uniciteitsbeperking op de rollen 12 en 13:

Uniciteitsbeperking

 

TC

Een totality constraint, afgekort TC, is een totaliteitsbeperking. Een van de eisen voor het model van de herkansingen is, dat van iedere leerling onder andere de woonplaats moet worden vastgelegd.

Leerlingwoonplaats


Deze eis houdt in dat alle leerlingen (de totale populatie onder rol 3 van het feittype Leerling) ook moeten voorkomen onder rol 1 van het feittype Leerlingwoonplaats. Een dergelijke eis wordt een totaliteitsbeperking genoemd. Deze beperking geeft aan dat een gegeven of een combinatie van gegevens tenminste eenmaal moet voorkomen in de zinnen van het betreffende feittype.

★ Aan de slag 32

Het model herkansingen is in CaseTalk geopend. In het IGD gaan we een totaliteitsbeperking aanbrengen over rol 1 in het feittype Leerlingwoonplaats.

  1. Klik met de Ctrl-toets ingedrukt op de rol(len) waarover de totaliteitsbeperking wordt gelegd.
  2. Nu aangegeven is over welke rol we een totaliteitsbeperking willen aanbrengen, kunnen we in de werkbalk van het IGD op de knop voor een totaliteitsbeperking klikken.
Totaliteitsbeperking

 

Klik op deze knop. In het IGD is nu een punt bij het objecttype Leerling te zien.

 

★ Aan de slag 33

  1. Wat houdt een totaliteitsbeperking in?
    Totaliteitsbeperking
  2. In het bovenstaande IGD ligt er een uniciteit- en een totaliteitsbeperking over rol 1.
    Leg aan de hand van dit IGD uit wat het inhoudt als beide beperkingen over een rol liggen.

★ Aan de slag 34

Opgave 1

  1. Bepaal de beperkingsregels voor het informatiesysteem voor de herkansingen.
  2. Teken de beperkingsregels in het IGD.

 

Opgave 2

  1. Bepaal de beperkingsregels voor het informatiesysteem voor de pers.
  2. Teken de beperkingsregels in het IGD.

 

Opgave 3

  1. Bepaal de beperkingsregels voor het informatiesysteem voor het cd-uitleensysteem.
  2. Teken de beperkingsregels in het IGD.

 

Opgave 4

  1. Bepaal de beperkingsregels voor het informatiesysteem voor de firma Auto Maat.
  2. Teken de beperkingsregels in het IGD.

H IGD Omzetten

Controle

Nu we de beperkingregels in het IGD hebben aangebracht, is het model klaar. Wanneer dit op de juiste manier is gebeurd, bevat het IGD alleen elementaire feittypen. We spreken dan ook over een elementair IGD. De laatste hindernis die we moeten nemen, is dat we uit het model dat nu voor ons ligt een ontwerp voor een relationele database moeten maken. Het casetool zal daarbij voor ons een groot deel van het werk uit handen nemen.

Als eerste moet gecontroleerd worden of het model correct is. Deze controle kan met behulp van CaseTalk worden uitgevoerd.
 

★ Aan de slag 35

  1. Het model herkansingen is in CaseTalk geopend.
    Klik in het menu op Run en vervolgens op Integrity Check.

    CaseTalk controleert nu het model op fouten.
    In het model van de herkansingen worden geen fouten gevonden.
  1. Behalve op fouten kunnen we het model ook controleren op eventuele waarschuwingen.
    Klik in het menu op Run en klik vervolgens op Verify well-formednes.

    In het overzicht verschijnen 16 waarschuwingen.

    In ons model betreft het waarschuwingen zoals: The polulation of Docent might not be verbalizable en The population of Vak might not be verbalizable. Deze waarschuwingen kun je negeren.

    Verder verschijnen er meldingen over het ontbreken van datatypen bij de labeltypen achternaam, cijfer, docentcode, huisnummer, klascode, leerlingnummer, plaatsnaam, straatnaam, toetscode, vakcode en voornaam.

    Het datatype kunnen we later ook in de relationele database zelf aangeven.
    Ook deze waarschuwingen mag je negeren.

 

GLR-algoritme

Na het controleren op fouten wordt het elementair IGD omgezet naar een ontwerp voor een relationele database. Dit gebeurt in drie stappen: het groeperen, het lexicaliseren, het reduceren. Deze stappen vormen samen het GLR-algoritme.

Bekijk nog eens het IGD van het model van herkansingen waarin we alle beperkingen hebben aangebracht:

IGD herkansingen


In het IGD staan een aantal feittypen, waarin je meerdere tabellen bestaande uit één, twee of drie kolommen kunt herkennen. Er zijn veel tabellen en een aantal kolommen kunnen makkelijk samengevoegd worden zonder dat er redundantie optreedt. Dit wordt groeperen genoemd.

Groeperen


De feittypen Leerlingklas, Leerlingadres, Leerlingwoonplaats en Leerlingnaam kunnen worden samengevoegd. Elke leerling komt één keer voor in Leerlingklas: op de rol van Leerling ligt namelijk een uniciteits- en totaliteitsbeperking. Hetzelfde geldt voor de feittypen Leerlingadres, Leerlingwoonplaats en Leerlingnaam. Het resultaat zal een niet-elementair feittype zijn, waarbij echter geen redundantie optreedt.

Om het model om te kunnen zetten naar een relationele database moeten de rollen gespeeld worden door een labeltype. Bijna alle rollen worden gespeeld door objecttypen.

Bij de tweede stap, het lexicaliseren, worden de feittypen zo aangepast dat alle rollen worden gespeeld door labeltypen.
Tijdens de laatste stap, het reduceren, worden eventueel overbodige feittypen alsnog geschrapt.

Het GLR-algoritme wordt gestart door in het menu onder Run op Transform … (GLR) te klikken.

GLR-algoritme starten


Er verschijnt een venster waarin gemeld wordt dat het IGD niet door alle testen heen gekomen is. Dat zijn de 16 waarschuwingen waar al eerder over is gesproken.

16 waarschuwingen


We negeren in dit voorbeeld de waarschuwingen en gaan door met het uitvoeren van het GLR-algoritme. Er verschijnt nu een melding dat het programma het oorspronkelijke model wil opslaan voordat het GLR-algoritme zal worden uitgevoerd.

Origineel opslaan


Na het klikken op de OK-knop wordt het GLR-algoritme uitgevoerd. CaseTalk stelt voor om het nieuwe bestand (herkansingen_GLR) op te slaan.

Het nieuwe IGD-venster met daarin het gegroepeerde model ziet er nogal rommelig uit. Dat komt doordat de rollen verplaatst zijn. Door wat heen en weer te slepen, maak je het model weer overzichtelijk.

Origineel opslaan


In het nieuwe IGD zijn onder de feittypen Leerling, Leerlingvakdocent, Toets, Resultaat en Klas de tabellen makkelijk te herkennen.
Het kan voorkomen dat er bij een rol de letters OP staan. Dit is een afkorting van optioneel en geeft aan dat er null-waarden mogen voorkomen. Null-waarden kunnen in een elementair feittype niet voorkomen. Zij ontstaan pas na het groeperen.

★ Aan de slag 36

Het elementair IGD wordt omgezet naar een ontwerp voor een relationele database met behulp van het GLR-algoritme.

  1. Uit welke drie stappen bestaat dit algoritme?
  2. Leg uit wat er in elk van die drie stappen gebeurt.
  3. Voer het GLR-algoritme uit op het model van de herkansingen.

 

Exporteren

Op basis van het nieuwe IGD kun je nu een relationele database maken in bijvoorbeeld MS-Access of een ander relationeel database management systeem. Het casetool kan ook zelf de tabellen genereren.


 

★ Aan de slag 37

Het model herkansingen is in CaseTalk geopend en het GLR-algoritme is uitgevoerd op het model van de herkansingen.

  1. Klik in het menu op Run en klik vervolgens op Generate Model …
    Model genereren
  2. Er verschijnt een venster waarin je kunt kiezen uit een aantal systemen waarvoor je tabellen kan ontwerpen. Om de tabellen voor Access te maken, selecteer je MS-Access 8.0 Visual Basic code generator.
    Systemen
  3. Klik daarna op de knop Invoke. Het onderstaande scherm verschijnt.
    Invoke
  4. Klik nu op OK. De casetool maakt nu een bestand aan met de extensie .BAS. Sla het bestand in dezelfde map op waar ook de andere bestanden van het model herkansingen staan.

Access 2016

Tot slot gaan we de relationele database aanmaken in Access.
 

★ Aan de slag 38

  1. Start Access op, open een lege database ( Bestand → Nieuw → Lege Database) en sla de database op onder de naam herkansingen.
  2. Klik op het tabblad Maken rechts op Module, meteen naast Macro.
    Maken

  3. Kies in het menu Invoegen voor de optie Bestand.
    Invoegen

  4. Geef als bestandstype Basic-bestanden aan (rechts onderin).

    Invoegen

  5. Kies in het menu Extra voor Verwijzingen.
    Verwijzingen

    Haal een vinkje weg bij Microsoft Office 16.0 Access Database engine Object Library.

    Vinkje weghalen

    Plaats een vinkje bij Microsoft DAO 3.6 Object Library, een stuk lager in de lijst.

     

    Vinkje plaatsen

    Klik op OK
  6. Klik in het Modulevenster in het rechter invulvak op FCO_CreateDatabase.
    Create Database

  7. Kies in het menu Uitvoeren voor de optie Sub/Userform uitvoeren. De database wordt aangemaakt. Als je in het menu Hulpmiddelen voor databases klikt op Relaties, dan kun je zien dat ook de relaties tussen de tabellen aangebracht zijn. De database is klaar om gebruikt te gaan worden.

★ Aan de slag 39

  1. Zet het elementair model van het informatiesysteem voor de pers om in een relationele database.
  2. Zet het elementair model van het cd-uitleensysteem om in een relationele database.
  3. Zet het elementair model van het informatiesysteem voor de firma Auto Maat om in een relationele database.

Toets 1

In de volgende toets wordt getoetst wat je inmiddels zou moeten weten over het onderwerp Informatiemodellering.

Maak de toets.

Informatiemodellering

Voortgang

Bekijk hier je voortgang

Keuzedeel


Docent kan klassen aanmaken en leerlingen volgen
Een docent kan op de profielpagina klassen aanmaken. Als een docent dat gedaan heeft, kunnen de leerlignen zich aan de klas koppelen. Als de leerlingen dat gedaan hebben, kan de docent de voortgang van de leerlingen volgen.

>> Profielpagina
  • Het arrangement Informatiemodellering is gemaakt met Wikiwijs van Kennisnet. Wikiwijs is hét onderwijsplatform waar je leermiddelen zoekt, maakt en deelt.

    Auteur
    VO-content
    Laatst gewijzigd
    2019-07-09 08:05:51
    Licentie

    Dit lesmateriaal is gepubliceerd onder de Creative Commons Naamsvermelding-GelijkDelen 4.0 Internationale licentie. Dit houdt in dat je onder de voorwaarde van naamsvermelding en publicatie onder dezelfde licentie vrij bent om:

    • het werk te delen - te kopiëren, te verspreiden en door te geven via elk medium of bestandsformaat
    • het werk te bewerken - te remixen, te veranderen en afgeleide werken te maken
    • voor alle doeleinden, inclusief commerciële doeleinden.

    Meer informatie over de CC Naamsvermelding-GelijkDelen 4.0 Internationale licentie.

    Aanvullende informatie over dit lesmateriaal

    Van dit lesmateriaal is de volgende aanvullende informatie beschikbaar:

    Eindgebruiker
    leerling/student
    Moeilijkheidsgraad
    gemiddeld
    Studiebelasting
    4 uur en 0 minuten
    Trefwoorden
    arrangeerbaar, leerlijn, rearrangeerbare