3.7 Integratie

Je merkt dat je een tabel met gegevens over boeken zou moeten aanmaken. Eens je meerdere documenten hebt genormaliseerd, moet je er op letten geen tweemaal dezelfde gegevens te stockeren. Hier is het dus voldoende de nieuwe velden toe te voegen aan de bestaande tabel 'tblBoeken'. Deze fase wordt de integratie genoemd. Het scherm 'Relaties' ziet er nu zo uit:

Je plaatst de tabellen best zo dat de relatielijntjes mekaar niet kruisen. Dit voor de duidelijkheid.

3.8 Eén-op-één relaties

Het meest voorkomende relatietype is zeker '1:n' of 'één-op-veel'. Een tabel met veel velden per record kan gesplitst worden in 2 tabellen met een één-op-één relatie ertussen bijvoorbeeld wanneer sommige velden veel frequenter gebruikt worden dan andere. De velden die je zelden nodig hebt moeten dan niet steeds meegesleept worden bij het sorteren, indexeren etcetera.

3.9 Permanente - tijdelijke relaties

Relaties aangemaakt in het venster 'Relaties' zijn permanent te noemen omdat ze automatisch gelegd worden bij het maken van query's met de betrokken tabellen. Je kan uiteraard zelf een relatie verwijderen door op de relatielijn te klikken en Delete te drukken. In absolute zin is dus niets (?) permanent.

Je kan ook in het ontwerpscherm van een query het jointype van een relatie wijzigen. Het geldt dan alleen voor die query. Ook kan je daar nieuwe relaties definiëren evenwel zonder de mogelijkheid referentiële integriteit af te dwingen. Je zou dit tijdelijke relaties kunnen noemen.

Ook wanneer er geen relaties bestaan tussen tabellen worden er automatisch koppelingen gemaakt wanneer je twee tabellen toevoegt aan een query, op voorwaarde dat deze tabellen elk een veld bevatten met hetzelfde of een compatibel gegevenstype, en dat een van de koppelvelden een primaire sleutel is. Je kunt deze automatische koppelingen in- of uitschakelen via Extra, Opties, tabblad Tabellen/query's, selectievakje AutoJoin .

3.10 Wizard tabelanalyse

Via de menukeuze Extra, Analyseren, Tabel kom je bij de wizard Tabelanalyse. Deze zoekt voor jou uit of een tabel kan gesplitst worden om de gegevensopslag efficiënter te maken. Zo worden herhalende deelverzamelingen ontmaskerd en afgezonderd in een tweede tabel zoals de regels van Codd voorschrijven.

De wizard stelt soms voor om een tabel te splitsen zonder dat er herhalende deelverzamelingen in voorkomen. Er wordt dan -op jouw verzoek- een query gemaakt die de gegevens uit de oorspronkelijke tabel opnieuw verenigt. De originele tabel blijft bewaard. De naam wordt aangevuld met '_OLD'.

In principe ben je nu klaar om een project 'op computer te zetten'. De praktijk is evenwel soms ingewikkelder dan een 'schoolvoorbeeld'. Onthoud echter: 'Ubung macht den Meister'.

3.11 Oefeningen

  1. Verwijder alle uitgeverijen die geen momenteel boeken leveren
  1. Maak vanuit het databasevenster een kopie van tblUitgeverijen (tblUitgeverijen2).
  2. Welke uitgeverijen komen in tblUitgeverijen voor zonder dat er boeken van deze uitgeverijen in het boekenbestand voorkomen?
  3. Verwijder met een verwijderquery deze uitgeverijen uit de tabel.
  4. Verwijder tblUitgeverijen. Bestaande relaties van tblUitgeverijen worden ook verwijderd!
  5. Hernoem tblUitgeverijen2 en leg de relaties opnieuw.
  1. Relatie tblKlassen - tblLeerlingen(1)
  1. In welke klassen zitten er momenteel leerlingen? Maak een totaalquery op basis van tblLeerlingen. Zijn er meer en/of andere klassen dan in de tabel tblKlassen dan kan je tussen de 2 tabellen geen referentiële integriteit afdwingen.
  2. Maak een kopie van tblLeerlingen (tblLeerlingen2).
  3. Verwijder alle leerlingen die in een klas zitten die niet in tblKlassen voorkomt.
  4. Leg nu de relatie tussen tblKlassen en tblLeerlingen. Dwing referentiële integriteit af.
  5. Verwijder tblLeerlingen. Hernoem de kopie.
  1. Relatie tblKlassen - tblLeerlingen(2): het is natuurlijk realistischer de onbekende klassen uit tblLeerlingen toe te voegen aan tblKlassen.
  1. Maak een kopie van tblKlassen (tblKlassen2)
  2. Maak een toevoegquery met de namen van de klassen die in tblKlassen ontbreken.
  3. Verwijder tblKlassen. Hernoem de kopie.
  1. Normaliseer onderstaande klaslijst:

Klaslijst 5BI - Titularis: A. De Schrijver

Familienaam Voornaam
1. Bruylandt Stefanie
2. Claessens Eveline
3. De Beck Nathalie
4. De Bock Tim
5. ...  
  1. Normaliseer onderstaande lijst der bestelde boeken per leerling

Boeken besteld door Bruylandt Stefanie Klas: 5BI
Vakcode Titel Auteur Uitgeverij H/K Prijs
CHE Chemie zonder moeite N. Bohr ABC

H

550

AAR Europa J. Monet XYZ

K

455

FRA La douce France L. Jospin KLM

K

500

WIS Ruimtemeetkunde 2 F. Bol DEF

H

355

ENG Just try again T. Blair BBC

K

410

...    
      Totaal

2.270

  1. Normaliseer onderstaand overzicht der onderhoudsbeurten van een wagen

Nummerplaat: AEP017 Merk: Citroën
  Type: Xantia 1.9D

Eigenaar:

Overzicht onderhoudsbeurten

A. De Schrijver
Elzenstraat 56
9500 - Geraardsbergen
Datum Aard
97-03-01 klein onderhoud
97-06-12 vervangen ruitenwisser achteraan
97-11-24 nazicht voor automobielinspectie

antwoorden