Hoofdstuk 11. Informatiemodellering

  11.1 Het bouwen van een database

Bij het ontwerpen van een database komt heel wat kijken.
Misschien heb je wel eens je cd's of dvd's in een database gezet, of alle gegevens van je vrienden en kennissen.
Dat vond je misschien heel simpel. Maar een database met een cd-verzameling is niet te vergelijken met een database die in een groot bedrijf wordt gebruikt, bijvoorbeeld een database met alle klantgegevens of alle productgegevens.
In dat geval gaat het om grote aantallen gegevens, die regelmatig veranderd moeten worden en die van groot belang zijn voor het functioneren van het bedrijf.

Het maken van een bruikbare en betrouwbare database is een vak apart.
Er zijn meestal heel veel tabellen in zo'n database, maar hoe kom je er nu achter hoeveel tabellen er nodig zijn in een database, en welke kolommen er in die tabellen voorkomen?
Als je dat zo goed mogelijk probeert uit te zoeken dan ben je bezig met informatiemodellering of informatieanalyse.

Bij het ontwerpen van een database moet je de volgende stappen ondernemen:
  1. Je moet eerst weten welke eisen er aan het systeem gesteld worden.
    Wat moet je met de database kunnen, welke vragen moet je ermee kunnen beantwoorden?
    Welke informatie wil je bijhouden?
    Wil je kunnen sorteren, en zo ja, waarop?
    Als het bijvoorbeeld een database voor een school is, moet het systeem dan rapporten voor alle leeringen kunnen afdrukken?
    En moet het gemiddelde cijfer per vak en/of per docent berekend kunnen worden?
  2. Je moet weten welke informatie van belang is voor het systeem.
    Als je weet welke eisen er aan het systeem gesteld worden kun je ook bepalen welke gegevens daarvoor nodig zijn.
    Je moet voorbeelden van deze gegevens verzamelen om bij de analyse te gebruiken.
    Als het bijvoorbeeld een database voor een school is, waarmee ook rapporten voor alle leeringen kunnen worden afgedrukt, moeten dan alle cijfers in het systeem worden ingevoerd? Dus alle repetitiecijfers en alle proefwerkcijfers enz, of is het voldoende als alleen de rapportcijfers in het systeem worden ingevoerd?
  3. Je moet de structuur van de gegevens bepalen.
    Als je weet welke gegevens er allemaal in de database moeten dan kun je daarna onderzoeken wat de verbanden tussen die gegevens zijn. En wat er bij die verbanden wel en niet mogelijk is. Als het bijvoorbeeld een database voor een school is, waarbij alle cijfers in het systeem worden ingevoerd, dan moet bij elk cijfer duidelijk zijn bij welk vak het hoort en bij welke docent, en hoe zwaar het meetelt. Moet iedereen voor elk vak dat hij of zij heeft een cijfer hebben? Heeft iedereen Nederlands?
  4. Je moet het ontwerp van de database maken.
    Wanneer de structuur van de gegevens duidelijk is (dat noem je wel het informatiemodel) dan kan die structuur worden vertaald naar een ontwerp van een database. Het is dan dus duidelijk welke tabellen er in de database moeten komen, en welke kolommen er in welke tabel zitten, en wat de relaties zijn.
FCO-IM
Er zijn verschillende methoden voor het modelleren van informatie.
In dit hoofdstuk bespreken we de FCO-IM methode. FCO-IM is de afkorting van Fully Communication Oriented Information Modelling.
Het is een modelleermethode die sterk in opmars is. Er zijn heel wat grote organisaties die hun hele informatiesysteem op de schop nemen en vervolgens met behulp van FCO-IM een nieuw database-ontwerp maken.

Het Erasmus Medisch Centrum in Rotterdam maakt er bijvoorbeeld gebruik van en de NS heeft het bij de laatste reorganisatie gebruikt.
FCO-IM is de opvolger van de NIAM-methode (Nijssens Informatie Analyse Methode).
De methode FCO-IM is verder geëvolueerd in Infagon, het programma dat jij gaat gebruiken.

Infagon gaat net als FCO-IM uit van communicatie: de informatie-analist (dat is de database-bouwer, een ICT'er) vraagt mensen van het bedrijf, waarvoor de database gemaakt moet worden, welke informatie ze belangrijk vinden en wat er vastgelegd moet worden.
Hij gaat praten met mensen uit het bedrijf die weten waar het om draait in het betreffende bedrijf, zo iemand wordt een domeindeskundige genoemd. Die heeft veel domeinkennis, dus kennis van de belangrijke zaken van het bedrijf, maar hoeft geen verstand van databases te hebben.

Het is natuurlijk onmogelijk om het database-ontwerp voor het Erasmus Medisch Centrum in Rotterdam te laten maken door ICT'ers, zonder dat ze met mensen van dat ziekenhuis gepraat hebben.
In een ziekenhuis als het EMC zijn er zoveel specialismen, waarbij er zoveel geregistreerd moet worden, dat het absoluut noodzakelijk is dat verschillende domeindeskundigen hun medewerking verlenen aan de informatie-analyse.