Presentatie H11

Download Report

Transcript Presentatie H11

LauwersCollege Buitenpost
Informatica Hoofdstuk 11
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
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
LauwersCollege Buitenpost
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
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
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
Dit zijn de gegevens die we willen verwerken:
De eindexamencijfers van een klas
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
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
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
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
elementaire
feiten
LauwersCollege Buitenpost
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
Informatica
LauwersCollege Buitenpost
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
Stap 3:
Zoek de feiten die op elkaar lijken.
Dat zijn feittypen
Geef de invulplaatsen aan.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
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
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
LauwersCollege Buitenpost
leerling 2358
Informatica
LauwersCollege Buitenpost
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
Een docent wordt aangeduid met de docentcode
<Docent> is de mentor van <Leerling>.
<docentcode>
leerling 2358
PB
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Een leerling wordt aangeduid met een leerlingnr
<Docent> is de mentor van <Leerling>.
LauwersCollege Buitenpost
<docentcode>
<leerlingnr>
PB
2358
Informatica
LauwersCollege Buitenpost
Kwalificeren: drie lagen
Feittype: is de mentor van
<Docent> is de mentor van <Leerling>.
LauwersCollege Buitenpost
<docentcode>
<leerlingnr>
PB
2358
Informatica
LauwersCollege Buitenpost
Objecttypen
<Docent> is de mentor van <Leerling>
<docentcode>
PB
LauwersCollege Buitenpost
<leerlingnr>
2358
Informatica
LauwersCollege Buitenpost
Labeltypen
<Docent> is de mentor van <Leerling>.
LauwersCollege Buitenpost
<docentcode>
<leerlingnr>
PB
2358
Informatica
LauwersCollege Buitenpost
Kwalificeer op de zelfde manier de andere feiten
<Leerling> heeft voor <Vak> een <Cijfer>.
<leerlingnr>
<vakcode>
2358
ne
<getal>
7
Heb je dit met alle elementaire feiten gedaan dan
noem je dat het Informatie-grammatica (het IG)
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Stap 6:
Teken het diagram. (het IGD)
Nog handiger:
Laat het casetool het diagram tekenen!
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Het labeltype in een diagram
Een labeltype teken je als een gestippelde cirkel,
met de naam erbij
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
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
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
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
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
De drie feittypen in een enkel diagram
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Stap 7:
Zoek de beperkingsregels.
Uniciteitsbeperkingen
en
Totaliteitsbeperkingen
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
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
Uniciteits-beperking : dubbele pijl.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
Nu een dubbele pijl over twee rollen.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
Totaliteits-beperking : een dikke stip.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Alle beperkingen aangegeven in het diagram
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Stap 8:
Tabellen ontwerpen.
Dat kun je het casetool laten doen!
Maar je moet het ook zelf kunnen.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
In het diagram staan al veel kleine tabellen, zeven in
dit voorbeeld, kijk maar
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
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
Groeperen
uniciteit over de
rol van Leerling
Wordt:
Rol 5 (llnummer)
niet meer nodig,
Rol 6 (naam)
bij leerling.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Hetzelfde kan met feittype mentor
uniciteit over de
rol van Leerling
LauwersCollege Buitenpost
Wordt:
Rol 2 (llnummer)
niet meer nodig,
Rol 1 (mentor)
bij leerling.
Informatica
LauwersCollege Buitenpost
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
Lexicaliseren en reduceren
bol weg
niets erbij,
helemaal
weg!
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
De eerste tabel
Docent verdwijnt, Leerling raakt de cirkel kwijt.
We hebben nu een tabel voor de database.
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
Het eindresultaat: Twee tabellen !
LauwersCollege Buitenpost
Informatica
LauwersCollege Buitenpost
In Access dus twee tabellen:
Cijfer en Leerling
tabel Cijfer
tabel Leerling
Einde
LauwersCollege Buitenpost
Informatica