Veiledning for tabellrelasjoner

Veiledning for tabellrelasjoner

Ett av målene for en god databaseutforming er å fjerne overflødige data (like data). For å oppnå dette deler du dataene inn i mange emnebaserte tabeller slik at hvert faktum bare representeres én gang. Du kan deretter angi måte som Access kan bruke til å føre delt informasjon sammen igjen – du gjør dette ved å plassere fellesfelt i tabeller som er relatert. For at dette skal bli riktig må du imidlertid forstå relasjonene mellom tabellene og deretter angi disse relasjonene i databasen din.

I denne artikkelen

Innføring

Typer tabellrelasjoner

Hvorfor opprette tabellrelasjoner?

Forstå referanseintegritet

Vise tabellrelasjoner

Innføring

Når du har opprettet en tabell for hvert emne i databasen, må du angi en måte som Access kan bruke til å hente informasjonen når det er behov. Du gjør dette ved å plassere fellesfelt i tabeller som er relatert, og ved å definere relasjoner mellom tabellene. Du kan deretter opprette spørringer, skjemaer og rapporter som viser informasjon fra flere tabeller samtidig. Skjemaet som vises her, inkluderer for eksempel informasjon som hentes fra flere tabeller:

Ordreskjema som viser relatert informasjon fra fem tabeller samtidig

1. Informasjonen i dette skjemaet kommer fra Kunder-tabellen ...

2. ... Ordrer-tabellen ...

3. ... Varer-tabellen ...

4. ... og Ordredetaljer-tabellen.

Kundenavnet i Faktureres til-boksen hentes fra kundetabellen, verdiene for ordre-IDen og ordredatoen fra ordretabellen, produktnavnet fra produkttabellen og enhetsprisen og mengden fra tabellen for ordredetaljer. Disse tabellene er koblet til hverandre på mange forskjellige måter for å hente informasjon fra hver av dem og inn i skjemaet.

I det forrige eksemplet måtte feltene i tabellene koordineres slik at de viste informasjon om den samme ordren. Denne koordineringen oppnås ved hjelp av tabellrelasjoner. En tabellrelasjon fungerer på den måten at den sammenligner data i nøkkelfelt, vanligvis et felt med det samme navnet i begge tabellene. I de fleste tilfeller er disse sammenlignbare feltene primærnøkkelen fra en tabell, som gir en entydig identifikator for hver post og en sekundærnøkkel i den andre tabellen. Ansatte kan for eksempel tilknyttes ordrer som de er ansvarlige for, ved å opprette en tabellrelasjon mellom AnsattID-feltene i Ansatte- og Ordrer-tabellen.

Ansatt-ID brukt som primærnøkkel i Ansatte-tabellen og sekundærnøkkel i Ordre-tabellen.

1. AnsattID vises i begge tabellene – som en primærnøkkel ...

2. ... og som en sekundærnøkkel.

Til toppen av siden

Typer tabellrelasjoner

Det finnes tre typer tabellrelasjoner i Access.

  • Én-til-mange-relasjoner

    La oss bruke et eksempel med en ordresporingsdatabase som inkluderer en kundetabell og en ordretabell. En kunde kan plassere et hvilket som helst antall ordrer. Følgelig kan det være mange ordrer representert i ordretabellen for kunder som er representert i kundetabellen. Relasjonen mellom kundetabellen og ordretabellen er en én-til-mange-relasjon.

    Hvis du vil representere en én-til-mange-relasjon i databaseutformingen, tar du primærnøkkelen på den ene siden i relasjonen og legger den til som ett eller flere tilleggsfelt i tabellen på mange-siden i relasjonen. I dette tilfellet legger du til et nytt felt – ID-feltet fra kundetabellen – i ordretabellen og gir det navnet Kunde-ID. Access kan deretter bruke Kunde-ID-nummeret i ordretabellen til å finne den riktige kunden for hver ordre.

  • Mange-til-mange-relasjoner

    La oss så se på relasjonen mellom en varetabell og en ordretabell. Én enkelt ordre kan inkludere mer enn én vare. På den andre siden kan én enkelt vare vises i mange ordrer. For hver post i ordretabellen kan det derfor være mange poster i varetabellen. I tillegg kan det for hver post i varetabellen være mange poster i ordretabellen. Denne relasjonen kalles en mange-til-mange-relasjon. Merk at for å oppdage eksisterende mange-til-mange-relasjoner mellom tabellene, er det viktig at du tenker over begge sider i relasjonen.

    Når du skal representere en mange-til-mange-relasjon, må du opprette en tredje tabell, ofte kalt foreningstabell, som deler opp mange-til-mange-relasjonen i to én-til-mange-relasjoner. Du setter inn primærnøkkelen fra hver av de to tabellene i den tredje tabellen. Den tredje tabellen registrerer dermed hver forekomst av relasjonen. Ordretabellen og varetabellen har for eksempel en mange-til-mange-relasjon som er definert av to én-til-mange-relasjoner til ordredetaljertabellen. Én ordre kan ha mange varer, og hver vare kan forekomme i mange ordrer.

  • Én-til-én-relasjoner

    I en én-til-én-relasjon kan hver post i den første tabellen bare ha én samsvarende post i den andre tabellen, og hver post i den andre tabellen kan bare ha én samsvarende post i den første tabellen. Denne relasjonen er ikke vanlig, fordi informasjonen som er relatert på denne måten, som regel lagres i den samme tabellen. Én-til-én-relasjoner kan brukes til å dele en tabell med mange felt, til å isolere en del av en tabell av sikkerhetsgrunner, eller til å lagre informasjon som bare brukes av et delsett av hovedtabellen. Når du identifiserer en slik relasjon, må begge tabellene dele et fellesfelt.

Til toppen av siden

Hvorfor opprette tabellrelasjoner?

Du kan opprette tabellrelasjoner eksplisitt ved hjelp av Relasjoner-vinduet eller ved å dra et felt fra Feltliste-ruten. Access bruker tabellrelasjoner til å bestemme hvordan tabeller skal føyes sammen når du skal bruke dem i et databaseobjekt. Det er flere grunner til at du bør opprette tabellrelasjoner før du oppretter andre databaseobjekter, for eksempel skjemaer, spørringer og rapporter.

  • Tabellrelasjoner angir informasjon til spørringsutformingene

    Når du skal arbeide med poster fra flere tabeller, må du ofte opprette en spørring som føyer sammen tabellene. Spørringen fungerer ved å finne samsvar mellom verdiene i primærnøkkelfeltet i den første tabellen og et sekundærnøkkelfelt i den andre tabellen. Hvis du for eksempel vil returnere rader som viser alle ordrene for hver kunde, lager du en spørring som føyer sammen kundetabellen med ordretabellen, basert på KundeID-feltet. I Relasjoner-vinduet kan du manuelt angi feltene som skal føyes sammen. Men hvis du allerede har en relasjon definert mellom tabellene, angir Access standardsammenføyningen, basert på den eksisterende tabellrelasjonen. Hvis du bruker én av spørringsveiviserne, bruker Access i tillegg informasjonen den samler fra tabellrelasjonene som du allerede har definert, til å gi deg oppdaterte valg og forhåndsutfylle egenskapsinnstillinger med aktuelle standardverdier.

  • Tabellrelasjoner angir informasjon til skjema- og rapportutformingene

    Når du utformer et skjema eller en rapport, bruker Access den innsamlede informasjonen fra tabellrelasjonene som du allerede har definert, til å presentere oppdaterte valg og forhåndsutfylle egenskapsinnstillinger med aktuelle standardverdier.

  • Tabellrelasjonene er grunnlaget som du kan gjennomføre referanseintegritet fra, som hjelp til å hindre isolerte poster i databasen. En isolert post er en post med en referanse til en annen post som ikke finnes, for eksempel en ordrepost som refererer til en kundepost som ikke finnes.

    Når du utformer en database, deler du informasjonen inn i tabeller, og hver tabell har en primærnøkkel. Deretter legger du til sekundærnøkler i relaterte tabeller som refererer til disse primærnøklene. Disse parene med primær- og sekundærnøkler utgjør grunnlaget for tabellrelasjonene og spørringer for flere tabeller. Det er viktig at disse referansene til sekundær- og primærnøkler forblir synkroniserte. Referanseintegritet, som avhenger av tabellrelasjoner, bidrar til å sikre at referanser forblir synkroniserte.

Til toppen av siden

Forstå referanseintegritet

Når du utformer en database, deler du databaseinformasjonen inn i flere emnebaserte tabeller for å minimere overflødige data. Deretter angir du en måte som Access kan bruke til å samle dataene, ved å plassere fellesfelt i relaterte tabeller. Når du for eksempel skal representere en én-til-mange-relasjon, tar du primærnøkkelen fra én-tabellen og legger den til som et felt i mange-tabellen. For å føye dataene sammen tar Access verdien i mange-tabellen og slår opp den samsvarende verdien i én-tabellen. På denne måten refererer verdiene i mange-tabellen til de samsvarende verdiene i én-tabellen.

Anta at du har en én-til-mange-relasjon mellom speditører og ordrer, og du vil slette en speditør. Hvis speditøren som du vil slette, har ordrer i ordretabellen, blir disse ordrene isolerte når du sletter speditørposten. Ordrene vil fortsatt inneholde en speditør-ID, men IDen vil ikke lenger være gyldig, fordi posten som den refererer til, ikke finnes.

Formålet med referanseintegritet er å unngå isolerte poster og holde referanser synkroniserte, slik at denne hypotetiske situasjonen aldri oppstår.

Du gjennomfører referanseintegritet ved å aktivere den for en tabellrelasjon (se Gjennomføre referanseintegritet for trinnvise instruksjoner). Når den er angitt, avviser Access operasjoner som bryter med referanseintegritet for en tabellrelasjon. Dette betyr at Access avviser både oppdateringer som endrer målet for en referanse, og slettinger som fjerner målet for en referanse. Det kan hende at du har et legitimt behov for å endre primærnøkkelen for en speditør som har ordrer i ordretabellen. I slike tilfeller er det nødvendig at Access automatisk oppdaterer alle påvirkede rader som en del av én enkelt operasjon. På denne måten sikrer Access at oppdateringen fullføres helt slik at databasen ikke er inkonsekvent, med noen rader oppdatert og andre ikke oppdatert. På grunn av dette har Access alternativet Oppdater relaterte felt gjennomgripende. Når du angir referanseintegritet, velger alternativet Oppdater relaterte felt gjennomgripende og deretter oppdaterer en primærnøkkel, oppdaterer Access automatisk alle felt som refererer til primærnøkkelen.

Det er også mulig at du har et legitimt behov for å slette en rad og alle relaterte poster – for eksempel en speditørpost og alle relaterte ordrer for denne speditøren. På grunn av dette har Access alternativet Slett relaterte poster gjennomgripende. Når du gjennomfører referanseintegritet og velger alternativet Slett relaterte poster gjennomgripende og deretter sletter en post på primærnøkkelsiden av relasjonen, sletter Access automatisk alle poster som refererer til primærnøkkelen.

Til toppen av siden

Vise tabellrelasjoner

Når du skal vise tabellrelasjonene, klikker du Relasjoner i kategorien Databaseverktøy. Relasjoner-vinduet åpnes og viser alle eksisterende relasjoner. Hvis ikke er definert noen tabellrelasjoner og du åpner Relasjoner-vinduet for første gang, ber Access deg om å legge til en tabell eller spørring i vinduet.

Åpne Relasjoner-vinduet.

  1. Klikk Fil og deretter Åpne.

  2. Merk og åpne databasen.

  3. Klikk Relasjoner i Relasjoner-gruppen i kategorien Databaseverktøy.

    Hvis databasen inneholder relasjoner, vises Relasjoner-vinduet. Hvis databasen ikke inneholder relasjoner og du åpner Relasjoner-vinduet for første gang, vises dialogboksen Vis tabell. Klikk Lukk for å lukke dialogboksen.

  4. Klikk Alle relasjoner i Relasjoner-gruppen i kategorien Utforming.

    Dette gjør at alle definerte relasjoner i databasen vises. Legg merke til at skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) og relasjonene ikke vises med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering.

En tabellrelasjon representeres av en relasjonslinje trukket mellom tabellene i Relasjoner-vinduet. En relasjon som ikke bruker referanseintegritet, vises som en tynn linje mellom fellesfeltene for relasjonen. Når du velger relasjonen ved å klikke relasjonslinjen, blir linjen tykkere for å angi at den er merket. Hvis du bruker referanseintegritet for denne relasjonen, vises linjen som tykkere i hver ende. I tillegg vises tallet 1 over den tykke delen av linjen på én-siden av relasjonen og uendeligsymbolet (8) over den tykke delen av linjen på den andre siden.

Du kan velge mellom kommandoene nedenfor på båndet når Relasjoner-vinduet er aktivt:

I kategorien Utforming i Verktøy-gruppen:

  • Redigere relasjoner    Åpner dialogboksen Redigere relasjoner. Når du merker en relasjonslinje, kan du klikke Redigere relasjoner for å endre tabellrelasjonen. Du kan også dobbeltklikke relasjonslinjen.

  • Slett oppsett    Fjerner alle tabeller og relasjoner fra visningen i Relasjoner-vinduet. Legg merke til at denne kommandoen bare skjuler tabellene og relasjonene – den sletter dem ikke.

  • Relasjonsrapport    Oppretter en rapport som viser tabellene og relasjonene i databasen. Rapporten viser bare tabellene og relasjonene som ikke er skjult i Relasjoner-vinduet.

I kategorien Utforming i Relasjoner-gruppen:

  • Vis tabell    Åpner dialogboksen Vis tabell slik at du kan velge tabeller og spørringer som skal vises i Relasjoner-vinduet.

  • Skjul tabell    Skjuler den valgte tabellen i Relasjoner-vinduet.

  • Direkte relasjoner    Viser alle relasjoner og relaterte tabeller for den valgte tabellen i Relasjoner-vinduet, hvis de ikke allerede vises.

  • Alle relasjoner    Viser alle relasjoner og relaterte tabeller i databasen i Relasjoner-vinduet. Legg merke til at skjulte tabeller (tabeller der det er merket av for Skjult i dialogboksen Egenskaper for tabellen) med tabellrelasjonene ikke vises med mindre det er merket av for Vis skjulte objekter i dialogboksen Alternativer for navigering.

  • Lukk    Lukker Relasjoner-vinduet. Hvis du har endret oppsettet i Relasjoner-vinduet, blir du spurt om du vil lagre disse endringene.

Til toppen av siden

Bli bedre på Office
Utforsk opplæring
Vær først ute med de nye funksjonene
Bli med i Office Insiders

Var denne informasjonen nyttig?

Takk for tilbakemeldingen!

Takk for tilbakemeldingen! Det høres ut som det kan være lurt å sette deg i kontakt med én av våre Office-kundestøtteagenter.

×