3.3 Aanmaken relaties in Access
Je kan het resultaat nu in Access implementeren. De
gegevensreeksen worden tabellen. Ieder gegeven wordt dus een veld
waarvan je bij de creatie van de tabelstructuur de eigenschappen
moet instellen (alleszins het gegeventype). Je geeft vervolgens
elke tabel een naam. Het resultaat ziet er zo uit:
tblUitgeverijen
|
tblPostnummers |
tblBoeken |
| Veldnaam |
Type |
Veldnaam |
Type |
Veldnaam |
Type |
| uitgeverijnr |
Auto-num. |
postcode |
Tekst |
boeknummer |
Auto-num. |
| naam |
Tekst |
gemeente |
Tekst |
uitgeverijnr |
numeriek |
| adres |
Tekst |
|
|
vakcode |
Tekst |
| postcode |
Tekst |
|
|
isbn |
Tekst |
| |
|
|
|
titel |
Tekst |
| |
|
|
|
auteur |
Tekst |
| |
|
|
|
eenh_prijs |
numeriek |
Op de lijst die je eigenlijk wilde maken staan gegevens die
uit de 3 tabellen afkomstig zijn. Het komt er dus op aan om een
verbinding tussen deze tabellen aan te leggen. Zo kan dan de
gemeente waarin een uitgeverij is gevestigd opgezocht worden aan
de hand van het postnummer. Er wordt dan in de tabel
'tblPostnummers' gezocht naar het postnummer dat bij een bepaalde
uitgeverij in de tabel 'tblUitgeverijen' staat. De combinatie van
een postnummer en een gemeente wordt dus maar één keer
opgeslagen in je database. Dit is erg handig wanneer er tikfouten
te verbeteren zijn of wanneer een postnummer verandert. De nodige
gegevens worden dus 'samengeraapt' om het gewenste document samen
te stellen. Zo ver ben je echter nog niet. Eerst de relaties...
is de knop
om in het relatiescherm te komen. Druk op de rechtermuisknop en
kies 'Tabel weergeven'. Selecteer de tabellen waartussen
relaties te leggen zijn. In dit voorbeeld dus tblUitgeverijen,
tblPostnummers en tblBoeken.

De primaire sleutels zijn vetgedrukt. Je kan de tabellen
verplaatsen door te slepen in de titelbalk (zoals een venster in
Windows).
Je sleept nu het veld 'uitgeverijnr' uit 'tblUitgeverijen'
naar het veld uitgeverijnr' uit 'tblBoeken'. Bij het loslaten van
de muisknop zie je dit scherm:

Hier geef je een aantal kenmerken van de gelegde relatie op.
- de door jou aangeduide velden waartussen de relatie moet
gelegd worden zijn reeds ingevuld linksboven in het
venster. Je kan desgewenst verbeteringen aanbrengen. Deze
velden mogen maar moeten niet dezelfde naam hebben. Ze
moeten uiteraard wel van hetzelfde type zijn. Voor
numerieke velden moet ook het subtype gelijk zijn!
- linksonder zie je het type relatie. In dit voorbeeld 'één-op-veel'
of '1:n'. Dit betekent dat de waarde
voor het veld 'Uitgeverijnr' in de tabel
'tblUitgeverijen' slecht éénmaal kan/mag voorkomen
terwijl dezelfde waarde in de tabel 'tblBoeken' meermaals
kan voorkomen. De tabellen waartussen een relatie wordt
gelegd worden 'primaire'
(tblUitgeverijen) en 'secundaire'
(tblBoeken) tabel genoemd. De tabel aan de `een'-kant van
twee gerelateerde tabellen in een één-op-veel-relatie
is de primaire tabel. Een primaire tabel moet een
primaire sleutel hebben en elke record moet uniek zijn.
- dwing steeds referentiële integriteit
af ! Hiermee maak je immers gebruik van een bijzonder
nuttige mogelijkheid die in Access geboden om aan
invoercontrole te doen. 'referre' is een Latijns
werkwoord dat o.a. 'verwijzen' kan betekenen. Het
voltooid deelwoord ervan is 'relatum'. Zo zie je dat
'refereren' en 'relatie' verwante woorden zijn.
Integriteit versta je hier best als correctheid of
geldigheid. Door het afdwingen van referentiële
integriteit is het onmogelijk om in het gerelateerde veld
van de secundaire tabel waarden te gebruiken die in de
primaire tabel niet voorkomen. Je kan dus bij het
invoeren/wijzigen van boekgegevens niet verwijzen naar
een uitgeverij die niet bestaat. Doe je dit toch dan
krijg je een passende foutboodschap.
- 'gerelateerde velden trapsgewijs
verwijderen/bijwerken' betekent dat alle records
in de secundaire tabel automatisch verwijderd/gewijzigd
worden wanneer in de primaire tabel een record wordt
verwijderd of wanneer het gerelateerde veld wordt
gewijzigd.
Je klikt op 'Maken' en de relatie wordt visueel
voorgesteld zoals hieronder.

Verklaring:
- je kan slechts één uitgeverij bijvoorbeeld het nummer 7
geven, doch de school kan meerdere boeken bij deze
uitgeverij bestellen.
- de zwarte blokjes aan de uiteinden van het relatielijntje
geven aan dat voor deze relatie referentiële integriteit
is afgedwongen.
- het veld in de primaire tabel moet de primaire sleutel
zijn of een unieke index.
- het veld 'Uitgeverijnr' in 'tblBoeken' (de secundaire
tabel) wordt een refererende sleutel
genoemd omdat het verwijst naar de
primaire sleutel in de primaire tabel.