ACC2000: Definiëren van relaties tussen tabellen in een Microsoft Access-Database

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 304467 - Bekijk de producten waarop dit artikel van toepassing is.
Beginner: Vereist kennis van de gebruikersinterface op computers met één gebruiker.

Dit artikel geldt alleen voor Microsoft Access-database (. mdb).

Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt beschreven hoe relaties definiëren in een Microsoft Access-database. Het bevat de volgende onderwerpen:
  • Wat zijn tabel relaties
  • Typen tabel relaties
    • Een-op-veel-relaties
    • Veel-op-veel-relaties
    • -Op-een relaties

  • Relaties tussen tabellen definiëren
    • Het definiëren van een één-op-veel of een-op-een relaties
    • Het definiëren van een veel-op-veel relaties

  • Referentiële integriteit
  • Trapsgewijs bijwerken en verwijderen
  • Jointypen

Meer informatie

Wat zijn tabel relaties

In een relationele data base kunnen relaties u dubbele gegevens voorkomen. Bijvoorbeeld als u een data base waarin gegevens over boeken worden bijgehouden ontwerpt, zijn mogelijk een tabel met informatie over elk boek, zoals het boek titels genoemd? s titel, de datum van publicatie en Pub lis her. Er is ook informatie willen over de uitgever, zoals het telefoonnummer van de uitgever, adres en post code worden opgeslagen. Als u al deze gegevens worden opgeslagen in de titels tabel, de uitgever? s telefoonnummer zou worden herhaald voor elke titel die uitgever is verschenen.

Een betere oplossing is voor het opslaan van de uitgevers informatie slechts eenmaal in een aparte tabel uitgevers. U zou een aanwijzer in de tabel Titles die verwijst naar een vermelding in de tabel Publishers zet.

Om ervoor te zorgen dat uw gegevens niet meer synchroon zijn, kunt u afdwingen van referentiële integriteit tussen tabellen titels en uitgevers. Relaties met referentiële integriteit ervoor te zorgen dat de informatie in de ene tabel overeenkomt met informatie in een andere. Elke titel in de tabel Titles moet bijvoorbeeld zijn gekoppeld aan een bepaalde uitgever in de tabel Publishers. Een titel kan worden toegevoegd aan de data base voor een uitgever die niet in de data base bestaat.

Typen tabel relaties

Relaties zijn gebaseerd op gegevens vergeleken in sleutel kolommen meestal kolommen met dezelfde naam in beide tabellen. In de meeste gevallen de relatie overeenkomt met de primaire sleutel uit één tabel een unieke identificatie voor elke rij met een ingang in de refererende sleutel in de andere tabel biedt. Verkoop kunnen bijvoorbeeld worden gekoppeld aan de titels die zijn verkocht door een relatie tussen de kolom title_id in de tabel Titles (primaire sleutel) en de kolom title_id in de tabel Verkoop (refererende sleutel).

Er zijn drie typen relaties tussen tabellen. Het type relatie dat wordt gemaakt, is afhankelijk van de manier waarop de gerelateerde kolommen zijn gedefinieerd.

Een-op-veel-relaties

Een één-op-veel-relatie is het meest voorkomende type relatie. In dit type relatie kan een rij in tabel a vele overeenkomstige rijen in tabel b hebben, maar een rij in tabel b maximaal één overeenkomstige rij in tabel a kan hebben Bijvoorbeeld de tabellen Publishers en titels hebben een één-op-veel-relatie: elke uitgever brengt veel titels, maar elke titel verschijnt slechts bij één uitgever.

Als slechts een van de gerelateerde kolommen een primaire sleutel of een unique-beperking heeft een één-op-veel-relatie gemaakt.

In Access worden de primaire-sleuteltabel van een één-op-veel-relatie wordt aangeduid met een sleutel symbool. De refererende sleutel van een relatie wordt aangeduid met een oneindigheids teken.

Veel-op-veel-relaties

In een veel-op-veel-relatie kan een rij in tabel a vele overeenkomstige rijen hebben in tabel b en vice versa. U maken een dergelijke relatie door een derde tabel, een zogenaamde verbindings tabel, waarvan de primaire sleutel van de refererende sleutels van tabel a en tabel b bestaat definiëren De tabel Authors en de tabel Titles hebben bijvoorbeeld een veel-op-veel-relatie die is gedefinieerd in een één-op-veel-relatie uit elk van deze tabellen aan de tabel TitleAuthors. De primaire sleutel van de tabel TitleAuthors is een combinatie van de kolom au_id (de tabel authors? s primaire sleutel) en de kolom title_id (de tabel Titles? s primaire sleutel).

-Op-een relaties

In een een-op-een relatie kan een rij in tabel a maximaal één overeenkomstige rij hebben in tabel b en vice versa. Als beide gerelateerde kolommen primaire sleutels zijn of unieke beperkingen een-op-een-relatie gemaakt.

Dit type relatie komt relatief weinig omdat de meeste gegevens die betrekking hebben op deze manier in dezelfde tabel. U kunt een-op-een relatie te gebruiken:
  • Een tabel met veel kolommen verdelen.
  • Geïsoleerd onderdeel van een tabel om veiligheids redenen.
  • Worden gegevens opgeslagen die snel verouderende en kan gemakkelijk worden verwijderd door simpelweg de tabel te verwijderen.
  • Gegevens die alleen van toepassing op een subset van de hoofd tabel opgeslagen.
In Access worden de primaire-sleuteltabel van een-op-een-relatie wordt aangeduid met een sleutel symbool. De refererende sleutel wordt ook aangeduid met een sleutel symbool.

Relaties tussen tabellen definiëren

Wanneer u een relatie tussen tabellen maakt, hoeft de gerelateerde velden niet dezelfde naam te hebben. Gerelateerde velden moeten wel hetzelfde gegevens type, tenzij het primaire-sleutelveld een AutoNummering-veld is. U kunt een AutoNummering-veld met een getal veld alleen als overeenkomt met deVeld lengteeigenschap voor beide overeenkomende velden is hetzelfde. Bijvoorbeeld, u kan overeenkomen met een AutoNummering-veld en een numeriek veld als deVeld lengteeigenschap van de beide velden is Lange Integer. Zelfs wanneer beide overeenkomende velden zijn, moet zijn hetzelfdeVeld lengtede instelling van de eigenschap.

Het definiëren van een één-op-veel of een-op-een relaties

Maken van een één-op-veel of een-op-een-relatie als volgt:
  1. Sluit alle tabellen die u geopend hebt. U kunt maken of wijzigen van relaties tussen geopende tabellen.
  2. Druk op F11 om het data base venster activeren.
  3. Op deHulp programma'smenu, klikt u opRelaties.
  4. Als u niet nog relaties hebt gedefinieerd in uw data base, deTabel weer gevenhet dialoog venster wordt automatisch weer gegeven. Als u toevoegen de tabellen die u koppelen wilt wilt, maar deTabel weer gevenhet dialoog venster niet wordt weer gegeven, klikt u opTabel weer gevenop deRelatiesmenu.
  5. Dubbel klik op de namen van de tabellen die u wilt relateren en sluit vervolgens deTabel weer gevenhet dialoog venster. Tweemaal toevoegen die tabel maken van een relatie tussen een tabel en zichzelf.
  6. Sleep het veld dat u wilt relateren uit de ene tabel naar het gerelateerde veld in de andere tabel. Meerdere velden wilt slepen, houdt u CTRL Ingedrukt, klik op elk veld en sleept u deze.

    In de meeste gevallen sleept u het primaire-sleutelveld (dat vet wordt weer gegeven) vanuit de ene tabel naar een soortgelijk veld (vaak met dezelfde naam) de refererende sleutel in de andere tabel genoemd.
  7. HetRelaties bewerkenhet dialoog venster wordt weer gegeven. Zorg ervoor dat de veldnamen in beide kolommen correct zijn. U kunt deze desgewenst wijzigen.

    Stel de relatie opties indien nodig. Als u informatie over een specifiek item in deRelaties bewerkenin het dialoog venster, klikt u op de knop met het vraag teken en klik vervolgens op het item. Deze opties worden verderop in dit artikel beschreven.
  8. Klik opMakende relatie maken.
  9. Herhaal stap 5 tot en met 8 voor elk paar tabellen dat u wilt relateren.

    Wanneer u sluit deRelaties bewerkenhet dialoog venster wordt gevraagd of u wilt de lay-out opslaan. Of u de lay-out niet opslaat, worden de relaties die u maakt in de data base opgeslagen.

    OPMERKING:U kunt relaties maken in query's en tabellen. Referentiële integriteit wordt niet afgedwongen met query's.

Het definiëren van een veel-op-veel relaties

Een veel-op-veel-relatie wilt maken, gaat u als volgt te werk:
  1. Maak de twee tabellen met een veel-op-veel-relatie.
  2. Maak een derde tabel, een zogenaamde verbindings tabel, en voeg de verbindings tabel nieuwe velden met dezelfde definities als de primaire sleutel velden uit elk van de twee andere tabellen. In de verbindings tabel fungeren de primaire-sleutelvelden als refererende sleutels. U kunt andere velden toevoegen aan de verbindings tabel net als aan andere tabellen.
  3. Stel in de verbindings tabel de primaire sleutel van de primaire-sleutelvelden uit de twee tabellen bevatten. In de verbindings tabel TitleAuthors, zou de primaire sleutel bijvoorbeeld worden samengesteld van de velden Order-id en product-id.

    OPMERKING: Voor het maken van een primaire sleutel, gaat u als volgt te werk:
    1. Open een tabel in de ontwerpweergave.
    2. Selecteer het veld of de velden die u wilt definiëren als de primaire sleutel. Één veld wilt selecteren, klikt u op de rij kiezer van het gewenste veld.

      Meerdere velden wilt selecteren, houdt u CTRL ingedrukt en klik op de rij kiezer van elk veld.
    3. Klik opPrimaire sleutelop de werkbalk.

      OPMERKING:Als u de volg orde van de velden in een meervoudige primaire sleutel kunnen afwijken van de volg orde van de velden in de tabel, klikt u opIndexenop de werkbalk om deIndexenhet dialoog venster en vervolgens bestel de veld namen voor de index naamPrimaryKey.
  4. Definieer een een-op-veel-relatie tussen elk van de twee primaire tabellen en de verbindings tabel.

Referentiële integriteit

Referentiële integriteit is een systeem van regels dat in Microsoft Access gebruikt om ervoor te zorgen dat relaties tussen records in gerelateerde tabellen geldig zijn en dat u niet per ongeluk verwijdert of gerelateerde gegevens wijzigen. U kunt referentiële integriteit instellen wanneer alle volgende voorwaarden is voldaan:
  • Het overeenkomstige veld van de primaire tabel een primaire sleutel of een unieke index heeft.
  • De gerelateerde velden hebben hetzelfde gegevens type. Er zijn twee uitzonderingen. Een AutoNummering-veld kan worden gerelateerd aan een numeriek veld zijn waarvoor eenVeld lengteeigenschap ingesteld op Lange Integer, en een AutoNummering-veld met eenVeld lengteinstelling van de eigenschap replicatie-id kan worden gerelateerd aan een numeriek veld zijn waarvoor eenVeld lengteinstelling van de eigenschap replicatie-id.
  • Beide tabellen behoren tot dezelfde Microsoft Access-database. Als de gekoppelde tabellen zijn, moeten deze tabellen in Microsoft Access-indeling en moet u de data base waarin ze zijn opgeslagen op het instellen van referentiële integriteit openen. Referentiële integriteit kan niet worden afgedwongen voor gekoppelde tabellen uit data bases met andere bestands indelingen.
De volgende regels van toepassing wanneer u referentiële integriteit gebruikt:

  • U kunt een waarde invoeren in het refererende-sleutelveld van de gerelateerde tabel die niet in de primaire sleutel van de primaire tabel voorkomt. Echter, kunt u een Null-waarde in de refererende sleutel die aangeeft dat de records niet gerelateerd zijn. Bijvoorbeeld kunt een order die is toegewezen aan een klant die niet bestaat is niet mogelijk, maar u de volg orde die is toegewezen aan een door een Null-waarde in het veld CustomerID.
  • U kunt een record uit een primaire tabel verwijderen als er overeenkomstige records bestaan in een gerelateerde tabel. Bijvoorbeeld verwijderen niet u een werknemers record uit de tabel Werknemers als er orders aan deze werknemer in de tabel Orders is toegewezen.
  • U kunt een primaire-sleutelwaarde in de primaire tabel niet wijzigen als deze record gerelateerde records heeft. U kunt een werknemer ID in de tabel Werknemers bijvoorbeeld niet wijzigen als er orders toegewezen in de tabel Orders aan deze werknemer zijn.

Trapsgewijs bijwerken en verwijderen

Bij relaties waarin referentiële integriteit is afgedwongen, kunt u opgeven of u wilt dat Microsoft Access automatisch trapsgewijs bijwerken of gerelateerde records trapsgewijs verwijderen. Als u deze opties instelt, verwijderingen en updates die door de regels zijn toegestaan referentiële integriteit zou worden voorkomen. Wanneer u records verwijdert of primaire-sleutelwaarden in de primaire tabel wijzigt, wordt in Microsoft Access de noodzakelijke wijzigingen aangebracht in gerelateerde tabellen zodat referentiële integriteit behouden blijft.

Als u klikt op deGerelateerde velden trapsgewijs bijwerkenselectie vakje in als u een relatie definiëren wanneer u de primaire sleutel van een record in de primaire tabel wijzigt, Microsoft Access de primaire sleutel automatisch bijgewerkt met de nieuwe waarde in alle gerelateerde records. Bijvoorbeeld als u een klant ID in de tabel Klanten, het veld CustomerID in de tabel Orders automatisch bijgewerkt voor alle orders voor die klant zodat de relatie niet verbroken wordt. Microsoft Access trapsgewijs bijwerken worden geen berichten weer gegeven.

OPMERKING:Als de primaire sleutel in de primaire tabel een AutoNummering-veld is, selecteert u deGerelateerde velden trapsgewijs bijwerkenselectie vakje heeft geen effect, omdat u de waarde in een AutoNummering-veld niet kunt wijzigen.

Als u selecteert deGerelateerde Records trapsgewijs verwijderenselectie vakje in als u een relatie definiëren wanneer u records in de primaire tabel verwijdert, verwijdert Microsoft Access automatisch gerelateerde records in de gerelateerde tabel. Bijvoorbeeld, als u een klanten record uit de tabel Klanten verwijdert, worden alle klanten en orders automatisch verwijderd uit de tabel Orders (inclusief records in de tabel Order Details die aan de order records zijn gerelateerd). Wanneer u records verwijdert uit een formulier of gegevens blad met deGerelateerde Records trapsgewijs verwijderenselectie vakje is ingeschakeld, wordt u een waarschuwing dat mogelijk ook gerelateerde records worden verwijderd. Echter wanneer u records met een verwijderquery verwijdert, worden automatisch verwijderd records in gerelateerde tabellen zonder dat een waarschuwing wordt weer gegeven.

Jointypen

Er zijn drie join-typen:

Optie 1definieert een inner join. Een inner join is een join waarbij records uit twee tabellen worden gecombineerd in een queryresultaat alleen als de waarden in de gekoppelde velden voldoen aan een opgegeven voorwaarde. In een query is de standaardjoin inner join die records selecteert alleen als de waarden in de gekoppelde velden overeenkomen.

Optie 2een left outer join definieert. Een left outer join is een join waarin alle records aan de linkerkant van de bewerking LEFT JOIN in de SQL-instructie van de query worden toegevoegd aan de queryresultaten, zelfs als er geen overeenkomende waarden in het gekoppelde veld in de tabel aan de rechterkant.

Optie 3definieert een right outer join. Een right outer join is een join waarin alle records aan de rechterkant van de bewerking RIGHT JOIN in de SQL-instructie van de query worden toegevoegd aan de queryresultaten, zelfs als er geen overeenkomende waarden voorkomen in het gekoppelde veld in de tabel aan de linkerkant.

Referenties

Voor meer informatie over relaties in Microsoft Access, klikt u op het onderwerp "Tabellen maken en ontwerpen" in de Help bij Microsoft Access 2000-pagina op de volgende Microsoft-website:
Help bij Microsoft Access 2000
Klik voor meer informatie over relaties in Microsoft AccessMicrosoft Access Helpop deHelpin het menu typeRelaties maken of wijzigenin de Office-assistent of de Antwoordwizard en klikt u vervolgens opZoekenom de gevonden onderwerpen weer geven.

Eigenschappen

Artikel ID: 304467 - Laatste beoordeling: zondag 27 februari 2011 - Wijziging: 2.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Access 2000 Standard Edition
Trefwoorden: 
kbhowto kbmt KB304467 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.
De Engelstalige versie van dit artikel is de volgende:304467

Geef ons feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com