Database-handling voor Letterenstudenten: een omgekeerde benadering.
drs. George M. Welling Vakgroep Alfa-Informatica RUG postbus 716 9700 AS Groningen
Samenvatting Dit artikel behandelt een methode om database-handling technieken te onderrichten aan Letterenstudenten, rekening houdend met hun referentiekader.
1 Inleiding Het academisch debat is één van de peilers van de wetenschap. Tot mijn verbazing moeten we echter vaststellen dat er op het gebied van "gegevensanalyse" wel allerlei methodes ontwikkeld zijn, maar dat er van een wetenschappelijk debat nauwelijks sprake is. We zien SDM, SDC, ISAC, SD/SA, NIAM, Yourdon, Information Engineering en IDO vrolijk naast elkaar bestaan. Bijna allemaal lenen ze wat van de normalisatieregels van Codd, maar om nu te zeggen dat de ene methode glashelder aantoont dat de andere onjuist is: nee. We moeten helaas ook vaststellen dat de grond hiervoor ontbreekt: alle methodes zijn in essentie niet meer dan regels voor de praktijk waarbij een theoretisch kader node gemist wordt. Het valt dan ook te betwijfelen of deze methodes een uitgangspunt kunnen zijn voor een academisch debat en voor academisch onderwijs. Op woensdag 6 september 1989 verscheen er in Intermediair een interview met professor Nijssen, de ontwikkelaar van NIAM (Nijssen’s Informatie Analyse Methode). Nijssen maakt in dit gesprek korte metten met allerlei informatie-analyse methodes, die uiteindelijk allemaal moeten leiden tot een genormaliseerd model voor een relationele database. Hij beschrijft deze methodes als gebakken lucht en moeilijkdoenerij over in essentie simpele zaken. Als tegenwicht introduceert Nijssen de "tante Nellie Methode": als je niet in staat bent je gegevensanalyse in normaal Nederlands uit te leggen aan een fictieve Tante Nellie, heb je het in wezen nergens over. Hier zien we voor de eerste keer een erkend expert, die nota bene zelf een gegevensanalyse methode (NIAM) ontwikkeld heeft, die
onze bange twijfels onder woorden bracht.
2 Informatica onderwijs aan Letterenstudenten In 1987 is bij de vakgroep Alfa-Informatica van de Letteren Faculteit van de Rijksuniversiteit Groningen een aanvang gemaakt met het onderwijs in het toepassen van informatie-technologie binnen de historisch-culturele vakken. [1] Hiervoor zijn medewerkers aangetrokken uit de diverse historisch-culturele disciplines, die enige ervaring hadden met toepassingen van informatica binnen hun vakgebied. Veelal zijn de medewerkers niet opgeleid als informatici, maar komt hun kennis op dat gebied van enige bijvakken tijdens de studie en voor een groot deel van zelfstudie. Maar men wilde voor deze taak per se personen uit de historisch-culturele disciplines zelf hebben, omdat men vreesde voor een anders onoverbrugbare kloof tussen studenten en medewerkers uit deze vakken aan de ene kant, en de nieuwe docenten daartegenover. Binnen de historisch-culturele variant van Alfa-Informatica liggen de nadrukken in het onderwijs op database-handling, tekstmanipulatie, stylometrie, informatie analyse en beeldverwerkende technieken. In dit artikel zullen we spreken over de aanpak van het onderwijs in database-handling. Voor de opzet van de cursussen zijn we uitgegaan van de volgende uitgangspunten: 1. Het benaderen van problemen vanuit een formalistisch theoretisch kader werkt voor de meeste Letterenstudenten drempelverhogend. Schrijf twee simpele wiskundige formules op het bord en de helft van je gehoor haakt af, voeg er nog één aan toe en je college zal steeds minder bezocht worden. Ondanks een jarenlange campagne voor exacte vakken, is er een groeiende huiver bij studenten voor geformaliseerde benaderingen. 2. Het wetenschappelijk fundament voor vele gegevens-analyse methodes is dermate gebrekkig, dat ze moeilijk als uitgangspunt voor een cursus kunnen dienen. De studenten moeten echter wel kennis kunnen nemen van de methodieken. 3. Het onderwijs dient een direct praktisch nut voor de student te hebben om niet demotiverend te werken. Informatiekunde-onderwijs dat uitsluitend gericht is op het aanleren van algemene vaardigheden heeft weinig zin, omdat deze alleen beklijven als er regelmatig aanspraak op gedaan wordt. 4. De in de gebruikelijke literatuur meest voorkomende voorbeelden - magazijnbeheer, personeelsregistratie etc. - sluiten totaal niet aan bij het referentiekader van Letterenstudenten. Het is noodzakelijk onderwijsmateriaal te verzamelen dat voortkomt uit onderzoek uit de disciplines zelf: zo snijdt het mes aan twee kanten. Gegevensverzamelingen opgebouwd voor research-doelen krijgen een tweede leven en studenten leren informatie-technologie kennen via voorbeelden uit hun eigen vakgebied. Nijssen zegt het in het eerder genoemde interview zeer treffend: "Informatica moet door iedereen eigenlijk worden begrepen, dus moet je het zo simpel mogelijk
uitleggen." Daarom kiezen wij ervoor het verzamelen van gegevens, zoals studenten dat kennen uit hun eigen onderzoeksopdrachten, als startpunt te nemen voor het onderwijs. Als we ervan uitgaan, dat een database een gestructureerde gegevensverzameling is, dan is iedere willekeurige verzameling gegevens slechts één stap verwijderd van zo’n database: er dient slechts structuur in aangebracht te worden. Nu heeft eigenlijk iedere gegevensverzameling al een structuur, minimaal een intuïtieve, anders zouden we niet van een verzameling, maar van een "hoop" of "berg" spreken. Het is nu de taak de studenten aan te tonen, dat deze intuïtieve structuur aanzienlijk verbeterd kan worden en dat met behulp van database-management technieken deze gegevensverzamelingen aanzienlijk efficiënter onderhouden en bevraagd kunnen worden. 2.1 Werkwijze In vele cursusboeken over database-management gaat men geheel ten onrechte uit van een blanco beginsituatie: er is nog geen gegevensverzameling en er dient eerst een analyse gemaakt te worden hoe deze opgebouwd moet worden. De praktijk leert, dat er in zeker tachtig procent van de gevallen al een één of andere gegevensverzameling aanwezig is in de vorm van kaartenbakken, ordners of systeemmappen. In veel gevallen is deze op een manier tot stand gekomen, die niet meer geheel te achterhalen is omdat het basismateriaal niet meer voor handen is. In de historischculturele disciplines is dit laatste eerder regel dan uitzondering. Nu is het natuurlijk mogelijk te doen alsof we wel van een blanco situatie uitgaan, maar het didactisch nut daarvan lijkt mij uiterst beperkt. Wij kiezen ervoor de studenten te confronteren met een aantal bestanden, die werkelijk in die vorm gebruikt zijn in een aantal onderzoeksprojecten en een flinke omvang hebben: het kleinste bestand heeft toch nog altijd zo’n 1000 records.[2] Dit doe ik om studenten niet de indruk te geven, dat de voorgeschotelde problemen net zo goed handmatig opgelost zouden kunnen worden. Van de inhoud van deze bestanden mag men aannemen dat deze aansluit bij de interesses van de studenten. Er is een bestand over de geschiedenis van de Nederlandse walvisvaart tussen 1600 en 1800, een bestand over dienstboden in Nederland rond 1900, een bestand over de registratie van de gemengde verzameling van het Nederlands Economisch Historisch Archief en een bestand over de registratie van de inhoud van artikelen verschenen in Nederlandse pedagogische tijdschriften.[3] Steeds wordt in het onderwijs één van deze bestanden als voorbeeld behandeld: in de praktijkuren moeten de studenten het geleerde toepassen op de andere bestanden. Hoewel de keuze voor het gebruik van dBase binnen de historisch-culturele vakken niet direct voor de hand ligt, maakten we in de cursussen gebruik van dBase III Plus en later dBase IV. Fixed-length records zijn voor de veelal op teksten gerichte disciplines eigenlijk niet goed bruikbaar en de ondersteuning van memo-velden is te summier voor serieus tekstgericht onderzoek. De keuze wordt echter bepaald door contracten die de samenwerkende universiteiten met leveranciers gesloten hebben. Voor deze uiteenzetting over onze omgekeerde benaderingswijze zullen we uitgaan van het "dienstbodenbestand".
Dit bestand bevat gegevens over inwonend personeel, die overgenomen zijn uit een speciaal deel van de negentiende eeuwse bevolkingsregisters van Haarlem, Delft en Nijmegen. Aan de hand van vergelijking van de ingevoerde gegevens met de systeemkaarten waarvan de data zijn overgenomen, kunnen de basisbegrippen "structuur", "record" en "veldtype" uitgelegd worden. We beginnen bewust met een volkomen "platte" data-structuur (zie figuur 1). Hierdoor kan zeer eenvoudig het nut van het maken van een "masker" of format-file getoond worden: alleen op die wijze is een record met zoveel velden op één scherm te brengen. Na enig bladeren door de records confronteren we de studenten met het feit, dat er nogal wat "lege" velden in het bestand zitten. De meeste dienstboden hadden immers slechts twee of drie betrekkingen in dezelfde plaats. Maar er was natuurlijk een aantal dat er veel meer gehad heeft. Om in een platte structuur alle mogelijkheden te kunnen opnemen, moet je uitgaan van de "worst case", en er waren ook dienstboden met wel veertien betrekkingen. Al heel snel is het zo duidelijk te maken, dat je de "betrekkingsgegevens" apart moet houden van de "persoonsgegevens". Het verwijderen van "repeating groups" ligt zo voor de hand, dat je daar nauwelijks een regel voor nodig hebt: één op veel relaties vormen geen echt probleem en de eerste conversie levert dan een veel beter te hanteren structuur op. (zie figuur 2) Tegelijkertijd wordt het iedereen duidelijk, dat het veld "aantal betrekkingen" verwijderd kan worden, omdat dit altijd opnieuw te berekenen is. Waarmee meteen ook het begrip doordringt, dat "proces gegevens" niet opgeslagen hoeven te worden.[4] Structure for database: PLAATS.DBF Number of data records: 584 Field Field Name Type Width 1 PLAATS Character 30 2 PROVINCIE Character 15 3 LAND Character 20 4 STAD Logical 1 5 POP1903 Numeric 7 ** Total ** 74
Dec
Figuur 3 structuur van het plaatsen bestand
Daarnaast tonen we de studenten een bestand van plaatsen met hun ligging en inwonertal rond 1900. Voor iedereen is het direct duidelijk dat door de combinatie van beide bestanden interessante vragen over de migratie van dienstboden te beantwoorden zijn. Maar dan zou je alle geografische aanduidingen, in dit geval dus de
Structure for database: DELFT.DBF Number of data records: 927 Field Field Name Type Width Dec 1 VOLGNUMMER Numeric 4 2 ACHTERNAAM Character 30 3 VOORNAMEN Character 30 4 VROUW Logical 1 5 BURGSTAND Character 3 6 GEBDATUM Date 8 7 GEBPLAATS Character 30 8 RELIGIE Character 2 9 BEROEP Character 20 10 AANTALBETR Numeric 2 11 ADRES1 Character 30 12 BEGDAT1 Date 8 13 EINDDAT1 Date 8 14 HERKOMST1 Character 30 15 VERTREK1 Character 30 16 ADRES2 Character 30 17 BEGDAT2 Date 8 18 EINDDAT2 Date 8 19 HERKOMST2 Character 30 20 VERTREK2 Character 30 21 ADRES3 Character 30 22 BEGDAT3 Date 8 23 EINDDAT3 Date 8 24 HERKOMST3 Character 30 25 VERTREK3 Character 30 26 ADRES4 Character 30 27 BEGDAT4 Date 8 28 EINDDAT4 Date 8 29 HERKOMST4 Character 30 30 VERTREK4 Character 30 31 ADRES5 Character 30 etcetera........ Figuur 1. platte structuur van het dienstbodenbestand
geboorteplaats, de plaats van herkomst en de plaats waarheen men vertrekt, willen kunnen koppelen aan het plaatsenbestand. De geboorteplaats (GEBPLAATS) is al
Structure for database: DELFTPG.DBF Number of data records: 927 Field Field Name Type Width Dec 1 VOLGNUMMER Numeric 4 2 ACHTERNAAM Character 30 3 VOORNAMEN Character 30 4 VROUW Logical 1 5 BURGSTAND Character 3 6 GEBDATUM Date 8 7 GEBPLAATS Character 30 8 RELIGIE Character 2 9 BEROEP Character 20 ** Total ** 129 Structure for database: DELFTBG.DBF Number of data records: 1810 Field Field Name Type Width Dec 1 VOLGNUMMER Numeric 4 2 ADRESNO Numeric 2 3 ADRES Character 30 4 AANVANG Date 8 5 EINDE Date 8 6 HERKPLTS Character 30 7 VERTRPLTS Character 30 ** Total ** 113
Figuur 2 structuur na eerste conversie
geen probleem meer: doordat hij in persoonsgegevensbestand terecht is gekomen kan je een koppeling leggen naar het veld "plaats" in het bestand Plaats. (zie figuur 3) In tegenstelling tot hetgeen men vaak denkt is het ook in dBase hiervoor niet noodzakelijk dat de veldnamen in beide bestanden hetzelfde zijn. In de betrekkingsgegevens zit echter nog een probleem : herkomst en vertrek zijn beide plaatsaanduidingen. In Dbase III Plus was het echter niet toegestaan meerdere relaties vanuit één werkgebied naar één andere werkgebied te leggen.[5] Na lang praten komen we meestal tot de volgende conclusie: het dienstbodenbestand dient gesplitst te worden in drie delen: 1. de persoonsgegevens
correcte vorm R1(Volgno, Achternaam, Voornamen, Vrouw, Datum, Plaats) R2(Volgno, Adresno, Adres, Datum, Plaats, Beroep, Religie, Burgelijke stand) R3(Volgno, Adresno, Datum, Plaats, Beroep, Religie, Burgelijke stand) R4(Plaats, Provincie, Land, Stad, Pop1903)
haalbare vorm R1(Volgno, Achternaam, Voornamen, Vrouw, Datum, Plaats,Religie, Burgelijke Stand, Beroep) R2(Volgno, Adresno, Adres, Datum, Plaats) R3(Volgno, Adresno, Datum, Plaats) R4(Plaats, Provincie, Land, Stad, Pop1903)
Figuur 4 Correcte en mogelijke structuur voor de dienstboden-database
2. gegevens die te maken hebben met het begin van een betrekking 3. gegevens die slaan op het eind van een betrekking. Hiermee leggen we de begrippen "functionele afhankelijkheid" en "volledige functionele afhankelijhkheid" uit. Dan echter doet zich het aardige feit voor, dat de onderzoeker die dit bestand opgebouwd heeft, de functionele afhankelijkheid tussen de verschillende tijdstippen, begin en einde, en de dynamische persoonsgegevens (religie, beroep en burgelijke bestand) niet onderkend heeft. Van alle personen zijn deze gegevens slechts eenmalig vastgelegd. We zullen dus de regels betreffende volledige functionele afhankelijkheid enig geweld aan moeten doen: als je deze gegevens als statisch opvat, zal je ze bij de persoon moeten opslaan. (zie figuur 4) Nu is het mogelijk de drie tabellen over de dienstboden te koppelen met de tabel over de plaatsen en nu hebben we een historisch interessante database. De voor de koppeling noodzakelijke relaties kunnen gelegd worden en we kunnen aandacht besteden aan de termen "verwijzende sleutel" en "primaire sleutel", die bij dit proces horen. Op dat ogenblik in de cursus zijn de studenten zover gevorderd, dat ze in staat geacht moeten worden zelfstandig een probleem met behulp van een database en de applicatie-taal te kunnen oplossen. Ze krijgen de keuze uit een aantal "historische vragen" die ze door het maken van een dBase-applicatie voor deze database moeten
Eindopdrachten college Databases I - cursus 1991 De opdrachten: Maak gebruik van de bestanden over de dienstboden in Haarlem en schrijf een programma om één van de onderstaande vragen te beantwoorden: 1. Is er een verschil tussen de regionale herkomst van in de registers opgenomen mannen en vrouwen waar te nemen? Uit te splitsen naar provincie. 2. Is er een verband aantoonbaar tussen de herkomst en de religie van dienstboden ? 3. Hoe is de verdeling naar herkomst uit platteland en steden ? Maak een onderscheid tussen dienstboden en overig huishoudelijk personeel. 4. Verdeel de groep uit Nederland afkomstige dienstboden in 3 groepen. - afkomstig uit Haarlem, uit niet-stedelijke achtergrond, uit stedelijke achtergrond - Welk percentage van iedere groep keert na de laatste betrekking terug naar de geboorteplaats ? 5. Is het traditionele seizoenspatroon van het wisselen van betrekkingen (in mei en november) nog herkenbaar tussen 1890 en 1909? Is er verandering in dit patroon ? 6. Er wordt veelal aangenomen dat de keuze voor voornamen sterk religiegebonden is. Toon aan of dit correct is. Maak hierbij onderscheid naar eerste en verdere voornamen.
Figuur 5 Eindopdrachten
beantwoorden. (zie figuur 5) Dan proberen we al hetgeen geleerd is goed op een rijtje te zetten. Zonder de verschillende normalisatie-stappen te noemen hebben we ze wel allemaal doorlopen. Nu is het ogenblik gekomen om de theorie van Codd en zijn normalisatieregels te presenteren. En vaak leidt dat nu tot een soort "aha-erlebnis". Wij zijn ervan overtuigd dat de regels daardoor veel beter blijven hangen; de studenten hebben ze als het ware zelf weer uitgevonden. Het aanvankelijk achterwege laten van de formalismen, omdat deze afschrikwekkend zouden werken, wordt nu goed gemaakt door een "natuurlijk" internaliseringsproces. Maar intussen hebben de studenten aanzienlijk meer geleerd, dan alleen normaliseren: voor alle tussenliggende conversies hebben ze eenvoudige dBase-programmatjes moeten schrijven, waardoor ze spelenderwijs hun basisvaardigheid programmeren aardig hebben verbeterd. De eindopdracht, het maken van een applicatie om een
wetenschappelijke vraag te kunnen beantwoorden, laat ze zien hoe database-management technieken inzetbaar zijn in het wetenschappelijk onderzoek. Het gebruik van niet triviale voorbeeld-bestanden heeft ervoor gezorgd, dat de hele cursus zich binnen hun referentiekader heeft afgespeeld. Ze zien dan ook vaak direct mogelijkheden het geleerde voor zichzelf praktisch in te zetten. Ook hebben ze kunnen vast stellen, dat de regels slechts gelden in een ideale wereld, die we in de praktijk niet al te vaak tegenkomen. Normaliseren is geen doel op zich, database-handling is slechts bedoeld als middel om werkelijk interessante vragen te helpen beantwoorden. Op dit ogenblik in de studie scheiden we de bokken van de schapen: sommige studenten hebben zich een vaardigheid eigen gemaakt, waar ze in de rest van hun studie profijt van kunnen hebben; zij zijn tevreden en stoppen met dit onderwerp. Niet alleen hebben zij een vaardigheid aangeleerd, die bij velen de angst voor de "informatisering van de wetenschap" heeft weggenomen, maar ze kijken ook op een scherpere manier aan tegen het verzamelen van informatie. Zij zullen fouten zoals gemaakt bij het tot stand brengen van de voorbeeldbestanden niet zo snel meer maken. Bij een andere groep is de theoretische interesse geprikkeld: zij willen de correctheidsbewijzen voor de verschillende database-vormen zien. Zij zullen als hoofdvakstudenten verdere cursussen in informatie-analyse en systeem-ontwerp gaan volgen.
3 Slot We bewandelen de omgekeerde weg, van de onvolkomen werkelijkheid naar de theorie toe. We bespreken alle tussenliggende stappen in een discussievorm, die doet denken aan het gesprek met de denkbeeldige maar zeer kritische Tante Nellie van professor Nijssen. Zo blijkt het mogelijk alfa-studenten, die aanvankelijk veelal uiterst sceptisch staan ten opzichte van alles dat riekt naar automatisering en informatica, een goed begrip voor database-handling bij te brengen. Sterker nog, sommigen worden ronduit enthousiast en ruimen een plaats in voor informatiekunde in hun studie, soms zelfs als hoofdvak. De bedrijven en instellingen waar deze studenten in het laatste jaar van hun alfa-informatica-studie een stage lopen, tonen zich vrij unaniem zeer tevreden over creativiteit en zelfstandigheid van deze studenten, die de theorie beheersen, maar wars zijn van dogmatische benaderingen. In een cursus die zowel voor beginnende hoofdvakstudenten Alfa-Informatica, als voor bijvakstudenten uit de andere letteren-disciplines aantrekkelijk moet zijn, besteden we aandacht zowel aan vaardigheidstraining als aan theoretische vorming. Zolang de groepsgrootte niet boven de dertig studenten per college komt, achten wij de dialoog-vorm ideaal. Eén probleem hebben ook wij nog lang niet opgelost: het gebrekkige wetenschappelijke fundament voor de meeste informatie-analyse methodes blijft een punt van aanhoudende zorg. Maar de vraag is, of de oplossing hiervoor vanuit de Letteren disciplines moet komen.
Noten
1.
De vakgroep Alfa-Informatica aan de RUG kent drie richtingen: Kunstmatige Intelligentie en taalkundige informatiekunde, Historisch Culturele Informatiekunde, en een twee jarig instroom programma voor studenten van de HIO.
2.
Deze bestanden zijn voor dit doel allemaal geconverteerd naar DBF-formaat.
3.
Deze bestanden worden gebruikt met toestemming van de makers: Walvisvaart - J.Leinenga, Pedagogische tijdschriften - P.C.M.Bakker, NEHA verzameling - medewerkers NEHA, dienstboden - G.M.Welling.
4.
Veel dbms-systemen bieden hiervoor de mogelijkheid van "calculated fields"
5.
In dBase IV, Clipper en Foxbase zijn hiervoor wel mogelijkheden.