Informatica Hoofdstuk 11 LauwersCollege Buitenpost Informatica Informatie-analyse met FCO-IM 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 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. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Informatie-analist Een informatie-analist (dat is een 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 bedrijf, zo iemand wordt een domeindeskundige genoemd. LauwersCollege Buitenpost Informatica
Stappen bij het maken van een database Bij het ontwerpen van een database moet je de volgende stappen ondernemen: Je moet eerst weten welke eisen er aan het systeem gesteld worden. Je moet weten welke informatie van belang is voor het systeem Je moet de structuur van de gegevens bepalen Je moet het ontwerp van de database maken LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Herhaalde kolommen Herhaalde kolommen, zoals in de tabel hier onder, moet je voorkomen. Achteraf nog kolommen toevoegen is lastig. Ook overzichten per bedrijf zijn moeilijk te maken doordat verschillende leveranciers in verschillende kolommen staan. Het kan niet voor elke leverancier met dezelfde query LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Redundantie Dezelfde gegevens meer dan één keer in de database opnemen (zoals in de tabel hier onder) wordt redundantie genoemd, en dat moet je proberen te voorkomen. Je kunt dan gemakkelijk tegenstrijdige informatie in de tabel krijgen: bij een leverancier staan bijv. verschillende tel.nummers op verschillende plaatsen. Je zegt dan dat de database inconsistent is. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Dit zijn de gegevens die we willen verwerken: De eindexamencijfers van een klas LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Welke tabellen met welke kolommen zijn in Access nodig om deze gegevens vast te leggen? Stap 1: Verwoord de informatie in zinnen. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Informatie verwoordt in zinnen Leerling 2358 heet Janke Deelstra, ze heeft als mentor PB, en ze heeft voor ne een 7, voor en 6, voor gs 6, voor wb 6, voor na 6 en voor bi 7 Leerling 2477 heet Fokke de Jong, hij heeft als mentor VR, en hij heeft voor ne een 6, voor fa 6, voor en 6, voor wb 5, voor na 6 en voor ec 6 Leerling 2189 heet Akke van der Meer, ze heeft als mentor PB, en ze heeft voor ne een 6, voor en 7, voor gs 7, voor ak 7, voor wb 5, en voor na 6 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 2: Splits de zinnen, zodat je zo kort mogelijke zinnen krijgt. Daarbij mag er geen informatie verloren gaan! De zinnetjes die je dan krijgt noem je elementaire feiten LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Splits de zinnen in elementaire feiten Leerling 2358 heet Janke Deelstra, ze heeft als mentor PB, en ze heeft voor ne een 7, voor en 6, voor gs 6, voor wb 4, voor na 6 en voor bi 7 Leerling 2358 heet Janke Deelstra PB is de mentor van leerling 2358 Leerling 2358 heeft voor ne een 7 Leerling 2358 heeft voor en een 6 Leerling 2358 heeft voor gs een 6 Leerling 2358 heeft voor wb een 4 Leerling 2358 heeft voor na een 6 Leerling 2358 heeft voor bi een 7 elementaire feiten LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Ternaire feiten Leerling 2358 heeft voor ned een 7 Leerling 2358 heeft voor eng een 6 Splitsen? Leerling 2358 heeft ned gedaan. Leerling 2358 heeft eng gedaan. Leerling 2358 heeft een 7 Leerling 2358 heeft een 6 Dit kan niet, er is informatieverlies, want welk cijfer hoort bij welk vak? LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 3: Zoek de feiten die op elkaar lijken. Dat zijn feittypen Geef de invulplaatsen aan. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Zoek de feittypen Leerling 2358 heet Janke Deelstra. Leerling 2477 heet Fokke de Jong. Leerling 2189 heet Akke van der Meer. PB is de mentor van leerling 2358. VR is de mentor van leerling 2477. PB is de mentor van leerling 2189. Leerling 2358 heeft voor ned een 7. Leerling 2358 heeft voor eng een 6. Leerling 2358 heeft voor gs een 6. Leerling 2358 heeft voor wb een 4. Leerling 2477 heeft voor ned een 6. Leerling 2477 heeft voor fa een 6. ........ LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 4: Zoek uit welke objecten een rol spelen. De objecten worden ook wel invulplaatsen genoemd omdat je bij het feittype verschillende objecten in kunt vullen. Dit heet kwalificeren. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Welke objecten spelen een rol PB staat voor een Docent <Docent> is de mentor van leerling 2358 PB leerling 2358 staat voor een Leerling <Docent> is de mentor van <Leerling>. PB leerling 2358 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 5: Zoek uit met welke labels de objecten worden aangegeven. Een object wordt op een bepaalde manier (mb.v. een "etiketje") aangegeven, een leerling kan bijv. met zijn voornaam of met zijn leerlingnummer of met zijn voornaam+achternaam worden aangegeven. Die "etiketjes" noem je labels. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Een docent wordt aangeduid met de docentcode <Docent> is de mentor van <Leerling>. <docentcode> leerling 2358 PB LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Een leerling wordt aangeduid met een leerlingnr <Docent> is de mentor van <Leerling>. <docentcode> <leerlingnr> PB 2358 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Kwalificeren: drie lagen Feittype: is de mentor van <Docent> is de mentor van <Leerling>. <docentcode> <leerlingnr> PB 2358 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Objecttypen <Docent> is de mentor van <Leerling> <docentcode> <leerlingnr> PB 2358 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Labeltypen <Docent> is de mentor van <Leerling>. <docentcode> <leerlingnr> PB 2358 LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Kwalificeer op de zelfde manier de andere feiten <Leerling> heeft voor <Vak> een <Cijfer>. <leerlingnr> <vakcode> <getal> 2358 ne 7 Heb je dit met alle elementaire feiten gedaan dan noem je dat het Informatie-grammatica (het IG) LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 6: Teken het diagram. (het IGD) Nog handiger: Laat het casetool het diagram tekenen! LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Het labeltype in een diagram Een labeltype teken je als een gestippelde cirkel, met de naam erbij LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Het objecttype in een diagram Een objecttype teken je als een gewone cirkel, met de naam erbij. In de bol staat een rechthoek: de invulplek. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica De rol in een diagram verbinden met het label De rechthoek verbind je met het labeltype. De rechthoek of invulplek noemen we een rol. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Het feittype in een diagram Een feittype teken je als een aantal rechthoeken. Bij mentor zijn er twee rechthoeken (voor Docent en Leerling), dus er zijn twee rollen. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Diagram van het feittype is mentor van Ook de rollen in het feitype moet je verbinden met de objecten die daar ingevuld mogen worden. Het casetool zet de voorbeelden er bij en geeft nummers LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Diagram van het feittype heet De rol kan ook worden ingevuld door een labeltype, zoals je ziet, het object bij naam vervalt hier. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica De drie feittypen in een enkel diagram LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 7: Zoek de beperkingsregels. Uniciteitsbeperkingen en Totaliteitsbeperkingen LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica De uniciteitsbeperking Bij een uniciteitsregel zoek je uit of een object maar één keer voor mag komen PB is de mentor van leerling 2358. PB is de mentor van leerling 2189. Twee keer dezelfde docent, kan dat? Ja, dus de docent voldoet niet aan de uniciteitsbep. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica De uniciteitsbeperking Bij een uniciteitsregel zoek je uit of een object maar één keer voor mag komen PB is de mentor van leerling 2358. VR is de mentor van leerling 2358. Twee keer dezelfde leerling, kan dat? Nee, dus de leerling voldoet wel aan de uniciteitsbep. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Uniciteits-beperking : dubbele pijl. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Uniciteitsbeperking bij een ternair feittype: bekijk combinaties van twee Leerling 2358 heeft voor ne een 7 Leerling 2358 heeft voor bi een 7 Dit kan, dus llnr + cijfer geen uniciteitsbeperking Leerling 2358 heeft voor en een 6 Leerling 2477 heeft voor en een 6 Dit kan, dus vak + cijfer geen uniciteitsbeperking Leerling 2358 heeft voor wb een 4 Leerling 2358 heeft voor wb een 6 Leerling heeft twee cijfers voor één vak: dit kan niet, dus llnr + vak voldoen aan de uniciteitsbeperking LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Nu een dubbele pijl over twee rollen. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Totaliteitsbeperking : elk object heeft er een Heeft iedere leerling een mentor? Ja, dus leerling voldoet aan de totaliteitsbep. Is elke docent mentor van een of andere leerling? Nee, dus docent voldoet niet aan de totaliteitsbep. Totaliteitsbeperkingen worden met een stip aangegeven. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Totaliteits-beperking : een dikke stip. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Alle beperkingen aangegeven in het diagram LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Stap 8: Tabellen ontwerpen. Dat kun je het casetool laten doen! Maar je moet het ook zelf kunnen. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica In het diagram staan al veel kleine tabellen, zeven in dit voorbeeld, kijk maar LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Groeperen Sommige tabellen kun je samenvoegen. Een feittype haal je dan binnen de cirkel van een object. Dit heet groeperen. Dit mag als er een uniciteitsbeperking over de rol van dat object staat, kijk maar in de volgende dia Als je in FCO-CASE het GLR-algoritme step-by-step laat uitvoeren kun je volgen wat er gebeurt LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Groeperen uniciteit over de rol van Leerling Wordt: Rol 5 (llnummer) niet meer nodig, Rol 6 (naam) bij leerling. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Hetzelfde kan met feittype mentor uniciteit over de rol van Leerling Rol 2 (llnummer) niet meer nodig, Rol 1 (mentor) bij leerling. Wordt: LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Lexicaliseren en reduceren Daarna worden de cirkels weggehaald. (in het casetool heet dit lexicaliseren) De objecten waar niets is bijgekomen verdwijnen ook (in het casetool heet dit reduceren) LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Lexicaliseren en reduceren bol weg niets erbij, helemaal weg! LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica De eerste tabel Docent verdwijnt, Leerling raakt de cirkel kwijt. We hebben nu een tabel voor de database. LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica Het eindresultaat: Twee tabellen ! LauwersCollege Buitenpost Informatica
LauwersCollege Buitenpost Informatica In Access dus twee tabellen: Cijfer en Leerling tabel Cijfer tabel Leerling Einde LauwersCollege Buitenpost Informatica