Kom i gang med tabelrelationer

Din browser understøtter ikke video. Installer Microsoft Silverlight, Adobe Flash Player eller Internet Explorer 9.

Styrken ved en relationsdatabase ligger i at kombinere data på tværs af tabeller. For at gøre det, skal du først oprette relationer mellem dine tabeller. Sæt så Access i gang med at kombinere data i forespørgsler, formler og rapporter.

For at se alle nuværende relationer, der er defineret for en database, skal du åbne en skabelon i Access, gå til fanen Databaseværktøjer og vælge Relationer.

Bemærk: Hvis du åbner en tom database, eller hvis du ikke har defineret nogen tabelrelationer, vil Access bede dig om at tilføje en tabel eller forespørgsel. Før du kan tilføje en relation, skal du bruge mindst to tabeller. Ideelt set opbygger du alle dine tabeller først. For at få mere at vide, kan du se Opret relationer med guiden Opslag og Opret relationer med ruden Relationer.

Forstå visningen Relationer

Linjerne i visningen Relationer angiver forbindelser mellem tabellerne. På følgende billede, er det tabellen til venstre, der er den overordnede tabel. Tabellen til højre er den underordnede tabel. Linjerne mellem dem forbinder felterne (i dette tilfælde ordre-id og produkt-id), der bruges til at matche data.

Relationer vises med linjer, der tegnes mellem overordnede og underordnede felter.

Linjer og symboler viser dig, hvordan dine tabeller er relateret:

  • En tyk forbindelseslinje betyder, at du gennemtvinger referentiel dataintegritet. Det var godt. Det holder dine data synkroniserede.

  • I vores illustration angiver tallet 1, at der kun kan være én matchende post i den pågældende tabel. I tabellen over ordrer, der vises her, matcher kun én post hver ordre.

  • Symbolet ∞ indikerer, at mange poster kan indeholde det samme id. I tabellen Ordredetaljer, der vises her, kan en ordre (angivet med dens ordre-id) vises mere end én gang, fordi den samme ordre kan indeholde flere produkter.

Relationstyper mellem tabeller

Der findes tre relationstyper mellem tabeller:

  • En til en. Når hvert element i hver tabel kun vises én gang. Hver medarbejder kan for eksempel kun have én firmabil. Få mere at vide under Opret en til en-relationer.

  • En til mange. Når ét element i én tabel kan have en relation til flere elementer i en anden tabel. Hver indkøbsordre kan for eksempel indeholde flere produkter.

  • Mange til mange. Når ét eller flere elementer i én tabel kan have en relation til én eller flere elementer i en anden tabel. Hver ordre kan for eksempel indeholde flere produkter, og hvert produkt kan ses på mange ordrer. Få mere at vide her Opret mange til mange-relationer.

En til mange-relationer

En af de mest almindelige relationer mellem tabeller i flot designede databaser er en til mange-relationen.

Relationer mellem tabeller er normalt afhængige af den primære nøgle i en af tabellerne. Husk at den primære nøgle er et entydigt id (ofte numerisk) for hver enkelt post. For at vise, at oplysningerne i to forskellige tabeller er forbundne, opretter man normalt en relation ved at bruge den primære nøgle fra en af tabellerne.

For eksempel vises der i denne relation, at hver person i tabellen over kontakter har et id, hvilket er den primære nøgle (angivet med nøglesymbolet). Dette id vises også i feltet Ejer i tabellen Aktiver. For at sende en mail til den person, der er knyttet til et aktiv, skal du hente værdien fra feltet Mailadresse. For at gøre dette, skal du kigge efter værdien i feltet Ejer i tabellen Aktiver, og så søge efter dette id i tabellen Kontakter. Tallet 1 i den ene ende af den forbindende linje og symbolet ∞ i den anden ende angiver, at dette er en en til mange-relation, så én kontakt kan være tilknyttet mange aktiver.

En en-til-mange-relation

Redigering af en relation

Hvis du redigerer en eksisterende database, eller hvis du har oprettet din database fra en skabelon, kan du redigere de eksisterende relationer efter behov.

Bemærk: Hvis de tabeller, du vil arbejde med, er i brug, skal du først lukke dem og andre åbne elementer, der bruger dem.

  1. Vælg Databaseværktøjer > Relationer.

  2. Markér den linje, der forbinder to relaterede tabeller.

    Tip: Hvis du ikke ser den relation, du ønsker, skal du vælge Alle relationer under gruppen Relationer på fanen Design.

  3. På fanen Design skal du vælge Rediger relationer.

    Redigering af en eksisterende relation mellem tabeller

    Tabel/forespørgsel er den overordnede tabel til venstre (i dette eksempel, Kunder).

    Relateret tabel/forespørgsel er den underordnede tabel (i dette eksempel, Ordrer).

    Selvom tabellerne ikke vises i denne rækkefølge i visningen Relationer, angiver deres placering i dialogboksen retningen af den linje, der forbinder dem og relationen. Dette er vigtigt, hvis det for eksempel er en en til mange-relation, da det indikerer, at tabellen til venstre er en, (den overordnede tabel), og tabellen til højre er mange (underordnede tabel).

  4. For at ændre de felter, der forbinder tabellerne, skal du vælge et andet felt under hver tabel, der vises. I dette eksempel er id-feltet i tabellen Kunder knyttet til feltet kunde-id i tabellen Ordrer.

  5. Rediger den måde Access synkroniserer dine data på mellem tabeller.

    Gennemtving referentiel integritet

    For at forhindre ugyldige data og for at holde referencer synkroniseret på tværs af tabelrelationer, skal du vælge dette.

    Lad os for eksempel antage, at du har en en til en-relation mellem tabellerne Medarbejdere og Medarbejderfordele. Hvis en medarbejder forlader virksomheden, og du fjerner ham eller hende fra tabellen Medarbejdere, fjernes den relaterede medarbejderpost i tabellen Medarbejderfordele også.

    Nogle gange giver det ikke mening at gennemtvinge referentiel integritet. Lad os for eksempel antage, at du har en en til mange-relation mellem Speditionsfirmaer og Ordrer. Du sletter en speditør, og den pågældende speditør er knyttet til ordrer i tabellen Ordrer. Disse ordrer bliver uafhængige, hvilket betyder, at de stadig indeholder et speditør-id, men det id er ikke længere gyldigt, da den post, det refererer til, ikke eksisterer længere.

    Kaskadevis opdatering af relaterede felter

    Vælg dette for at sikre, at data i relaterede felter opdateres i alle relaterede tabeller.

    Lad os for eksempel antage, at du blot vil ændre id for en speditør. Denne indstilling sikrer, at speditør-id er opdateret – ikke kun i tabellen Speditør, men også eventuelle andre tabeller, der er forbundet til det, og som også indeholder det pågældende speditør-id, for eksempel tabellen Ordrer.

    Kaskadevis sletning af relaterede poster

    Beslutningen om at vælge dette afhænger af, om du har brug at bevare poster i nogle tabeller, selvom de kan blive slettet fra andre tabeller.

    Antag for eksempel, at du sletter en speditør. Hvis denne indstilling er valgt, sletter Access alle poster i alle tabeller, der refererer til det pågældende speditør-id. Også alle ordrer (i tabellen Ordrer), der er sendt af speditøren. Du skal kun vælge denne indstilling, hvis du er sikker på, at du vil have din ordrehistorik slettet.

  6. For at ændre relationen mellem tabellerne fra en indre joinforbindelse til en ydre joinforbindelse, skal du vælge knappen Jointype. Få mere at vide her Opret forespørgsler med ydre joinforbindelser.

Slette en tabelrelation

Bemærk: Hvis de tabeller, du vil arbejde med, er i brug, skal du først lukke dem og andre åbne elementer, der bruger dem.

Sådan sletter du en tabelrelation:

  1. Vælg Databaseværktøjer > Relationer.

  2. Markér den linje, der forbinder de to relaterede tabeller.

    Tip: Hvis du ikke ser den relation, du ønsker, skal du vælge Alle relationer under gruppen Relationer på fanen Design.

  3. Tryk på tasten Delete. Hvis du bliver bedt om at bekræfte, at du vil slette relationen, skal du vælge Ja.

Bemærk: Når du fjerner en relation, fjerner du også understøttelse af referentiel integritet for denne relation, hvis dette er relevant. Access forhindrer ikke længere ændringer, der medfører uafhængige poster på mange-siden af en en til mange-relation.

Vil du have mere?

Oprette en relation

Slette en relation

Kursus i Excel

Kursus i Outlook

Når du har tabeller i databasen, kan du oprette relationer mellem dem. Relationer er vigtige, fordi de kæder tabellerne sammen igen, efter du opdeler dine data, og fordi de har stor indflydelse på, hvordan du designer dine forespørgsler og får svar fra dataene.

Enhver relationel database anvender tre typer relationer mellem dens tabeller. En til mange, mange-til-mange og en til en.

Den relation, du bruger, afhænger af dine data. Du har en en-til-mange relation, når en enkelt post i én tabel er relateret til en eller flere poster i en anden tabel.

Vores eksempel på en database har denne type relation. En kunde kan have et eller flere telefonnumre, og hvert telefonnummer er kun relateret til én kunde.

Du har en mange til mange-relation, når en enkelt post i tabel A kan relateres til én eller flere poster i tabel B, og en enkelt post i tabel B også kan relateres til én eller flere poster i tabel A.

Du ser typisk mange til mange-relationer i databaser til ordresporing, hvor en ordre kan indeholde mange produkter og et produkt kan være en del af flere ordrer.

Du kan også se denne type relation i databaser over studerende, hvor mange studerende kan indtage mange klasseværelser.

Du har en en til en-relation, når en enkelt post i én tabel kun er relateret til én enkelt post i en anden tabel. En enkelt medarbejder kan f.eks. køre i en enkelt firmabil. Men du ser ikke dette særligt ofte, fordi en til en-relationer ikke er så almindelige.

Lad os vælge Databaseværktøjer og derefter Relationer. Dette åbner ruden Relationer. Du skal bruge dette værktøj en del.

Her oprettes og administreres de fleste relationer. Her ser du en typisk relation: to tabeller med en linje mellem dem. Linjen viser, at tabellerne er relaterede.

Og dette er en en til mange-relation. Det kan du se, fordi relationslinjen her har symbolet EN og et uendelighedssymbol. Disse symboler viser et par vigtige begreber.

For det første er tabellen på siden EN den OVERORDNEDE tabel, og tabellen på siden MANGE er en UNDERORDNET tabel.

For det andet kan du tænkte på de fleste af dine relationer som noget, der har SIDER. I dette tilfælde har du en tabel på EN-siden og en tabel på MANGE-siden.

Sider er vigtige, fordi de påvirker, hvordan du designer dine forespørgsler.

Lad os nu vælge relationslinjen, og lad os derefter vælge Rediger relationer på båndet.

Tre relationsindstillinger påvirker dine data og hjælper dig med at bruge relationer korrekt: Referentiel integritet, overlappende opdateringer og overlappende sletninger. Her er en forklaring på deres funktion.

Referential integritet synkroniserer først posterne i begge tabeller. Dette er en vigtig del til at holde dine data nøjagtige, så den vil du næsten altid angive.

Med referentiel integritet gennemtvunget kan du ikke tilføje et telefonnummer, medmindre du har et navn i tabellen Kunder. Dette forhindrer dig i at oprette det, som hedder HOREUNGER: data uden overordnede poster.

Forestil dig f.eks. et salgstal uden nogen ordre tilknyttet, så forstår du, hvor det er så vigtigt at konfigurere referentiel integritet.

Indstillingen Overlappende opdateringer giver mulighed for eventuelle ændringer foretaget på den overordnede side overlapper med eventuelle relaterede poster på siden UNDERORDNET eller MANGE.

Hvis en kunde f.eks. ændrer navn, skal du kun indtaste ændringen i tabellen Kunder, og alle relaterede poster ændres.

Indstillingen Overlappende sletninger styrer, om du kan slette data. Hvis du ikke vælger denne indstilling, kan du ikke slette data. Hvis du vælger denne indstilling, sletter Access alt, der er relateret til den pågældende post.

Slettes eksempelvis en kunde, så slettes kundens telefonnumre også.

Der kan være en god ting, fordi det forhindrer horeunger – telefonnumre uden kunder. Husk dog på, at dine forretningsregler muligvis forhindrer dig i at slette data, så vær opmærksom på dette. Dine forretningsregler kan spille en stor rolle i designet af databasen.

Så nu kender du til tabelrelationer, herunder at arbejde i ruden Relationer i Access, og de indstillinger for relationer, der hjælper dig med at arbejde mere effektivt med Access-databasen.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×