Relaties tussen tabellen in een Microsoft Access-database definiëren

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

Dit artikel geldt alleen voor Microsoft Access-database (. mdb of. ACCDB).
Voor een Microsoft Access 2000-versie van dit artikel Zie304467.
Voor een Microsoft Access 97-versie van dit artikel Zie304468.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Samenvatting

In dit artikel wordt beschreven hoe u definieert relaties 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- 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 voorkomen dat redundante gegevens. Bijvoorbeeld, als u bij het ontwerpen van een data base die u wilt bij houden informatie over boeken van u mogelijk een tabel titels genoemd met informatie over elk boek, zoals de titel van het boek, de datum van publicatie, en Pub lis her. Er is ook informatie over opslaan kunt u de Pub lis her, zoals telefoonnummer, adres en post code van de uitgever. Als u al deze gegevens opgeslagen in de tabel titles, de uitgever van zijn telefoonnummer zou worden gedupliceerd voor elke titel die de uitgever Hiermee wordt afgedrukt.

Een betere oplossing is om op te slaan alleen de gegevens van de uitgever eenmaal in een afzonderlijke tabel uitgevers. U zou een aanwijzer vervolgens opnemen in de Tabel titels die verwijst naar een vermelding in de tabel Publishers.

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

Typen tabel relaties

Een relatie werkt 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 bevat een unieke id voor elke rij met een ingang in de refererende sleutel in de andere tabel. Bijvoorbeeld: verkoop kunnen worden gekoppeld aan de titels die zijn verkocht door het maken van 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 zijn drie soorten 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 de meest voorkomende type relatie. In dit type relatie kan een rij in tabel A, veel kan hebben overeenkomende rijen in tabel B, maar een rij in tabel b kan maximaal één overeenkomstige rij hebben in tabel a. Bijvoorbeeld hebben de tabellen Publishers en titels een één-op-veel relatie: elke uitgever brengt veel titels, maar elke titel verschijnt slechts bij één uitgever.

Een één-op-veel-relatie wordt gemaakt als slechts één is van de gerelateerde kolommen een primaire sleutel of een unique-beperking.

In Access 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 symbool.

Veel-op-veel-relaties

In een veel-op-veel-relatie kan een rij in tabel A, veel kan hebben overeenkomende rijen in tabel b en vice versa. U maakt een dergelijke relatie door waarvan de primaire sleutel bestaat uit een derde tabel, een zogenaamde verbindings tabel, definiëren de refererende sleutels van tabel a en tabel b. Bijvoorbeeld de tabel Authors en hebben een veel-op-veel-relatie die is gedefinieerd in de tabel Titles een een-op-veel-relatie uit elk van deze tabellen aan de tabel TitleAuthors. De primaire sleutel van de tabel TitleAuthors is een combinatie van de au_id (primaire sleutel voor de tabel authors) kolom en de kolom title_id (de titels de primaire sleutel tabel).

-Op-een relaties

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

Dit type relatie komt relatief weinig voor omdat de meeste gegevens die betrekking hebben op deze manier zou worden allemaal in één tabel. U kunt een -op-een relatie:
  • 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.
  • Bevatten informatie die alleen van toepassing op een subset van de hoofd tabel.
In Access is de primaire-sleuteltabel van een-op-een-relatie 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, de gerelateerde velden maken hoeft niet dezelfde namen te hebben. Gerelateerde velden moeten echter hebben dezelfde gegevens type, tenzij het primaire-sleutelveld een AutoNummering-veld is. U kunt voldoen aan een AutoNummering-veld met een getal veld alleen als deVeld lengteeigenschap voor beide overeenkomende velden is hetzelfde. Bijvoorbeeld: u kunt een AutoNummering-veld en een numeriek veld overeen als deVeld lengteeigenschap van de beide velden is Lange Integer. Zelfs als beide overeenkomende velden zijn, moeten ze 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 volgen deze stappen:
  1. Sluit alle tabellen die u geopend hebt. Kan niet worden gemaakt of relaties tussen geopende tabellen wijzigen.
  2. In Access 2002 of Access 2003, gaat u als volgt te werk:
    1. Druk op F11 om het data base venster activeren.
    2. Op deHulp programma'smenu, klikt u opRelaties.
    Klik in Access 2007Relatiesin deWeer geven/verbergengroep op deData base hulp middelentabblad.
  3. Als u nog geen relaties in hebt gedefinieerd uw data base, deTabel weer gevenhet dialoog venster wordt automatisch weer gegeven. Als u wilt toevoegen de tabellen die u koppelen wilt, maar deTabel weer gevenhet dialoog venster niet wordt weer gegeven, klikt u opTabel weer gevenop deRelatiesmenu.
  4. Dubbel klik op de namen van de tabellen die u wilt relateren en sluit vervolgens deTabel weer gevenhet dialoog venster. Een relatie tussen een tabel en zichzelf, maken Deze tabel tweemaal toevoegen.
  5. Sleep het veld dat u wilt relateren uit één tabel 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 de 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.
  6. HetRelaties bewerkenhet dialoog venster wordt weer gegeven. Zorg ervoor dat de veldnamen weer gegeven in de twee kolommen zijn correct. U kunt deze desgewenst wijzigen.

    Set de relatie opties indien nodig. Als u informatie over een bepaald artikel deRelaties bewerkenhet dialoog venster, klikt u op de knop met het vraag teken en klik vervolgens op de item. Deze opties worden verderop in dit beschreven artikel.
  7. Klik opMakende relatie maken.
  8. Herhaal stap 5 tot en met 8 voor elk paar van tabellen die 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 zijn opgeslagen in de data base.

    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 kruising tabel net als aan andere tabellen.
  3. Stel de primaire sleutel wilt opnemen in de verbindings tabel de primaire-sleutelvelden uit de twee tabellen. Bijvoorbeeld, in een TitleAuthors verbindings tabel de primaire sleutel zou bestaan uit een order-id en product-id velden.

    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 definiëren wilt als de primaire sleutel. Één veld wilt selecteren, klikt u op de rij kiezer van het gewenste veld.

      Meerdere velden selecteren, houdt u de CTRL-toets ingedrukt en klik Klik op de rij kiezer van elk veld.
    3. Klik in Access 2002 of Access 2003Primaire sleutelop de werkbalk.

      Klik in Access 2007Primaire sleutelin deHulp programma'sgroep op deOntwerptabblad.

      OpmerkingAls u de volg orde van de velden in een meervoudige primaire sleutel 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 Microsoft Access wordt gebruikt om ervoor te zorgen dat relaties tussen records in gerelateerde tabellen geldig zijn gerelateerde gegevens en dat u niet per ongeluk verwijdert of wijzigt. U kunt instellen referentiële integriteit wanneer alle volgende voorwaarden is voldaan:
  • Het overeenkomstige veld van de primaire tabel is 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 nummer veld met 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 u moet de data base waarin ze zijn opgeslagen in te stellen openen referentiële integriteit. 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 niet in de primaire sleutel van de primaire tabel bestaat. Echter, kunt u een Null-waarde in de refererende sleutel die aangeeft dat de records zijn niet gerelateerd. Bijvoorbeeld een order die is toegewezen niet mogelijk een klant die niet bestaat, maar u kunt de volg orde die is toegewezen niemand door een Null-waarde in het veld CustomerID.
  • U kunt een record uit een primaire tabel verwijderen als overeenkomende records bestaan in een gerelateerde tabel. U kunt een werknemer bijvoorbeeld niet verwijderen record uit de tabel Werknemers als er orders zijn toegewezen aan de werknemer in de tabel Orders.
  • U kunt een primaire-sleutelwaarde in de primaire tabel niet wijzigen. Als u dat record gerelateerde records. Zo kunt u niet wijzigen een werknemer ID in de tabel Werknemers als er orders toegewezen aan die zijn werknemer in de tabel Orders.

Trapsgewijs bijwerken en verwijderen

Voor relaties waarvoor referentiële integriteit is afgedwongen, u kunt opgeven of u wilt dat Microsoft Access automatisch trapsgewijs bijwerken of gerelateerde records trapsgewijs verwijderen. Als u deze opties instelt, verwijderen en bijwerken de activiteiten die door de regels voor referentiële integriteit zou worden voorkomen toegestaan. Wanneer u records verwijdert of primaire-sleutelwaarden in een primaire wijzigen tabel, Microsoft Access de noodzakelijke wijzigingen aangebracht in gerelateerde tabellen referentiële integriteit behouden blijft.

Als u klikt op deGerelateerde velden trapsgewijs bijwerkenselectie vakje in als u een relatie definiëren, een tijd die u de primaire sleutel van een record in de primaire tabel, Microsoft Access wijzigen de primaire sleutel automatisch bijgewerkt met de nieuwe waarde in alle gerelateerde records. Als u een klant ID in de tabel Klanten bijvoorbeeld de Het veld CustomerID in de tabel Orders automatisch bijgewerkt voor elke dat klant orders, 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 selecteren van deGerelateerde velden trapsgewijs bijwerkenselectie vakje heeft geen effect omdat u niet kunt veranderen de de waarde in een AutoNummering-veld.

Als u selecteert deGerelateerde Records trapsgewijs verwijderenselectie vakje in als u een relatie definiëren, een tijd die u records verwijderen in de primaire tabel wordt automatisch verwijderd gerelateerde records in de gerelateerde tabel. Bijvoorbeeld, als u een klant verwijderen record uit de tabel Klanten, alle klanten en orders worden automatisch verwijderd uit de tabel Orders (inclusief records in de tabel Order Details gerelateerd aan de order records). Wanneer u records verwijdert uit een formulier of gegevens blad met deGerelateerde Records trapsgewijs verwijderenselectie vakje is ingeschakeld, Microsoft Access waarschuwt u die verband houden ook kunnen records worden verwijderd. Echter, wanneer u records met een delete verwijdert query, Microsoft Access verwijdert automatisch de records in gerelateerde tabellen zonder 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 query resultaten als waarden in de samengevoegde velden voldoen aan een opgegeven voorwaarde. In een query is de standaardjoin een binnenste 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 LEFT JOIN-bewerking in de query SQL-instructie worden toegevoegd aan de queryresultaten, zelfs als er geen overeenkomende de 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 uit de rechter zijde van de juiste JOIN-bewerking in de query SQL-instructie worden toegevoegd aan de queryresultaten, zelfs als er geen overeenkomende de waarden in het gekoppelde veld in de tabel aan de linkerkant.

Eigenschappen

Artikel ID: 304466 - Laatste beoordeling: dinsdag 16 juli 2013 - Wijziging: 3.2
De informatie in dit artikel is van toepassing op:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Trefwoorden: 
kbdesign kbdatabase kbhowto kbmt KB304466 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 304466

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