Guide till tabellrelationer

Guide till tabellrelationer

Ett av målen med en bra databasdesign är att undvika dataredundans (dubblettdata). Du uppnår det här målet genom att dela upp dina data i många ämnesbaserade tabeller, så att varje faktauppgift bara finns med en gång. Därefter talar du om hur informationen ska sammanföras igen i Access – genom att skapa gemensamma fält i tabeller som är relaterade. För att kunna göra detta måste du först förstå hur relationer mellan tabeller fungerar, och sedan ange dessa relationer i databasen.

I den här artikeln

Introduktion

Olika typer av tabellrelationer

Varför skapa tabellrelationer?

Förstå referensintegritet

Visa tabellrelationer

Introduktion

När du har skapat en tabell för varje ämne i databasen, måste du tala om hur informationen ska sammanföras igen i Access. Det gör du genom att skapa gemensamma fält i tabeller som är relaterade och genom att definiera relationer mellan tabellerna. Du kan sedan skapa frågor, formulär och rapporter som visar information från flera tabeller samtidigt. I formuläret som visas här finns information som har hämtats från flera tabeller:

Orderformulär som visar relaterad information från fem tabeller samtidigt

1. Informationen i det här formuläret kommer från tabellen Kunder ...

2. ... tabellen Order ...

3. ... tabellen Produkter ...

4. ... och tabellen Orderdetaljer.

Kundnamnet i rutan Faktura till hämtas från tabellen Kunder, ordernumret och orderdatumet från tabellen Order, produktnamnet från tabellen Produkter och enhetspriset och antalet från tabellen Orderdetaljer. Dessa tabeller är kopplade till varandra på flera olika sätt så att relevant information från respektive tabell kombineras och visas i formuläret.

I exemplet ovan måste fälten i tabellerna koordineras så att de visar information om samma order. Koordinationen sker med hjälp av tabellrelationer. En tabellrelation fungerar genom att data i huvudfält matchas, ofta ett fält med samma namn i båda tabellerna. I de flesta fall är de matchande fälten primärnyckeln från en tabell, vilket ger en unik identifierare för varje post, och en sekundärnyckel i den andra tabellen. Anställda kan till exempel kopplas till order som de ansvarar för genom att skapa en tabellrelation mellan fälten för Anställd-ID i tabellerna Anställda och Order.

Anställningsnumret används som primärnyckel i tabellen Anställda och sekundärnyckel i tabellen Order.

1. Anställningsnr finns i båda tabellerna – som primärnyckel ...

2. ... och som sekundärnyckel.

Överst på sidan

Olika typer av tabellrelationer

Det finns tre typer av tabellrelationer i Access.

  • 1:N-relation

    Anta att du har en orderhanteringsdatabas som innehåller tabellen Kunder och tabellen Order. En kund kan göra hur många beställningar som helst. Därför kan det för varje kund i tabellen Kunder finnas flera order i tabellen Order. Relationen mellan tabellen Kunder och tabellen Order är därför en 1:N-relation.

    När du representerar en 1:N-relation i databasdesignen ska du ha primärnyckeln på 1-sidan av relationen och lägga till den som ytterligare ett fält i tabellen på N-sidan av relationen. I det här fallet lägger du till ett nytt fält,  fältet Kundnummer från tabellen Kunder, i tabellen Order och ger det namnet Kundnr. Access kan sedan använda kundnumret i tabellen Order för att hitta rätt kund för respektive order.

  • N:N-relation

    Nu ska vi titta närmare på relationen mellan tabellen Produkter och tabellen Order. En enda order kan omfatta flera produkter. Å andra sidan kan en enskild produkt finnas på flera order. Därför kan det för varje post i tabellen Order finnas många poster i tabellen Produkter. För varje post i tabellen Produkter kan det dessutom finnas många poster i tabellen Order. Den här typen av relation kallas för N:N-relation. För att du ska kunna hitta befintliga N:N-relationerna mellan tabeller är det viktigt att du granskar båda sidorna i relationen.

    När du representerar en N:N-relation måste du skapa en tredje tabell, en så kallad kopplingstabell, som bryter ned N:N-relationen i två 1:N-relationer. Du infogar primärnyckeln från var och en av de två tabellerna i den tredje tabellen. I den tredje tabellen registreras därför alla förekomster av relationen. Tabellerna Order och Produkter har till exempel en N:N-relation som definieras genom att två 1:N-relationer skapas för tabellen Orderspecifikationer. En order kan ha många produkter, och varje produkt kan förekomma i många order.

  • 1:1-relation

    I en 1:1-relation kan en post i den första tabellen bara ha en enda matchande post i den andra tabellen och omvänt. Sådana relationer är inte speciellt vanliga, eftersom information som relateras på det här sättet oftast lagras i samma tabell. Du kan använda en 1:1-relation om du vill dela en tabell med många fält, avgränsa en del av tabellen av säkerhetsskäl eller lagra information som enbart gäller en delmängd av huvudtabellen. När du identifierar en sådan relation måste båda tabellerna ha ett gemensamt fält.

Överst på sidan

Varför skapa tabellrelationer?

Du kan skapa tabellrelationer i fönstret Relationer eller genom att dra ett fält från fönstret Fältlista. I Access används tabellrelationer för att koppla tabeller när du behöver använda dem i databasobjekt. Det finns flera skäl till varför du bör skapa tabellrelationer innan du skapar andra databasobjekt, till exempel formulär, frågor och rapporter.

  • Tabellrelationer förser frågedesignen med information

    Om du vill arbeta med poster från fler än en tabell måste du ofta skapa en fråga som kopplar tabellerna. Frågan matchar värdena i primärnyckelfältet i den första tabellen mot ett sekundärnyckelfält i den andra tabellen. Om du till exempel vill returnera rader som innehåller alla order för varje kund, skapar du en fråga som kopplar tabellen Kunder till tabellen Order via fältet Kundnummer. I fönstret Relationer kan du manuellt ange vilka fält som ska kopplas. Om du redan har definierat en relation mellan tabellerna skapar Access en standardkoppling automatiskt, utifrån den befintliga tabellrelationen. Om du använder någon av frågeguiderna i Access, används dessutom den information som samlas in från tabellrelationerna som du redan har definierat så att du får underbyggda alternativ och egenskapsinställningar automatiskt anges till lämpliga standardvärden.

  • Tabellrelationer förser formulär- och rapportdesign med information

    När du designar ett formulär eller en rapport i Access används dessutom den information som samlas in från tabellrelationerna som du redan har definierat så att du får underbyggda alternativ och egenskapsinställningar automatiskt anges till lämpliga standardvärden.

  • Tabellrelationer utgör grunden för referensintegriteten som förhindrar att överblivna poster skapas i databasen. En överbliven post är en som refererar till en post som inte finns, till exempel en orderpost som refererar till en kundpost som inte längre finns kvar.

    När du designar en databas delar du upp informationen i tabeller, där var och en har en primärnyckel. Du lägger sedan till sekundärnycklar i relaterade tabeller som refererar till dessa primärnycklar. Paren med primär- och sekundärnycklar utgör grunden för tabellrelationer och flertabellfrågor. Därför är det viktigt att dessa nyckelparsreferenser är synkroniserade. Referensintegritet, som är beroende av relationerna mellan tabellerna, är ett sätt att kontrollera att referenserna är synkroniserade.

Överst på sidan

Förstå referensintegritet

När du designar en databas delar du in informationen i många ämnesbaserade tabeller för att undvika dubbletter. Därefter förser du Access med de verktyg som behövs för att sammanföra data igen genom att placera gemensamma fält i relaterade tabeller. Om du till exempel vill representera en 1:N-relation tar du primärnyckeln från 1-tabellen och lägger till den som ett extra fält i N-tabellen. När data ska sammanföras igen hämtar Access värdet i N-tabellen och slår upp motsvarande värde i 1-tabellen. På det här sättet refererar värdena i N-tabellen till motsvarande värden i 1-tabellen.

Anta att du har en 1:N-relation mellan Speditörer och Order och du vill ta bort en speditör. Om speditören som du vill ta bort har beställningar i tabellen Order, kommer dessa order att bli "överblivna" när du tar bort posten för speditören. Beställningarna innehåller fortfarande ett speditörsnummer, men numret är inte längre giltigt eftersom posten som det refererar till inte längre finns.

Syftet med referensintegritet är att förhindra att överblivna poster skapas och synkronisera referenserna så att den här typen av situationer inte uppstår.

Du använder referensintegritet genom att aktivera det för en tabellrelation (i Använda referensintegritet finns stegvisa instruktioner för hur du gör det). När referensintegritet är aktiverat, går det inte att utföra några åtgärder i Access som skulle innebära att referensintegriteten i den aktuella tabellrelationen bryts. Det innebär att Access inte tillåter uppdateringar som ändrar målet för en referens, eller borttagningar som tar bort målet för en referens. I vissa fall kan du ha ett reellt behov av att till exempel ändra primärnyckeln för en speditör som det finns beställningar kopplade till i tabellen Order. I sådana situationer vill du antagligen att Access automatiskt ska uppdatera alla rader som påverkas av en uppdatering i ett och samma steg. På så sätt kan du säkerställa att uppdateringen i Access Access genomförs på ett sätt som inte riskerar att göra informationen inkonsekvens, så att vissa rader är uppdaterade och andra inte. I Access används alternativet Uppdatera poster i relaterade tabeller för att åstadkomma dessa automatiska uppdateringar. När du aktiverar referensintegritet och använder alternativet Uppdatera poster i relaterade tabeller i Access, och sedan uppdaterar en primärnyckel, updateras alla fält som refererar till primärnyckeln automatiskt.

Det kan också hända att du måste ta bort en rad och alla relaterade poster – till exempel posten Speditör och alla relaterade order för den speditören. Därför innehåller Access alternativet Ta bort poster i relaterade tabeller. När du använder referensintegritet och väljer alternativet Ta bort poster i relaterade tabeller i Access, och sedan tar bort en post på primärnyckelsidan av relationen, tas alla poster automatiskt bort som refererar till den primärnyckeln.

Överst på sidan

Visa tabellrelationer

Du visar tabellrelationerna genom att klicka på Relationer på fliken Databasverktyg. Fönstret Relationer öppnas och visar alla befintliga relationer. Om du ännu inte har definierat några tabellrelationer och öppnar fönstret Relationer för första gången i Access, ombeds du att lägga till en tabell eller fråga i fönstret.

Öppna fönstret Relationer

  1. Klicka på Arkiv och klicka sedan på Öppna.

  2. Klicka på databasen och öppna den.

  3. Klicka på Relationer i gruppen Relationer på fliken Databasverktyg.

    Om databasen innehåller relationer visas fönstret Relationer. Om databasen inte innehåller några relationer och du öppnar fönstret Relationer för första gången, visas dialogrutan Visa tabell. Stäng dialogrutan genom att klicka på Stäng.

  4. Klicka på Alla relationer i gruppen Relationer på fliken Design.

    Då visas alla relationer som har definierats i databasen. Observera att dolda tabeller (tabeller där kryssrutan Dold är markerad i tabellens Egenskaper-dialogruta) och deras relationer inte visas såvida inte kryssrutan Visa dolda objekt är markerad i dialogrutan Navigeringsalternativ.

En tabellrelation representeras av en relationslinje som ritas mellan tabellerna i fönstret Relationer. En relation som inte använder referensintegritet visas som en tunn linje mellan de gemensamma fälten i relationen. När du markerar relationen genom att klicka på linjen, blir linjen bredare vilket anger att den markeras. Om du använder referensintegritet för den här relationen är linjen bredare i vardera änden. Dessutom visas siffran 1 över den bredare delen av linjen på 1-sidan av relationen, och oändlighetssymbolen (8) visas över den bredare delen av linjen på den andra sidan.

När fönstret Relationer är aktivt kan du välja mellan följande kommandon i menyfliksområdet:

I gruppen Verktyg på fliken Design:

  • Redigera relationer    Öppnar dialogrutan Redigera relationer. När du markerar en relationslinje kan du klicka på Redigera relationer om du vill ändra tabellrelationen. Du kan också dubbelklicka på relationslinjen.

  • Radera layout    Döljer alla tabeller och relationer i fönstret Relationer. Observera att det här kommandot bara döljer tabellerna och relationerna, det tar inte bort dem.

  • Relationsrapport    Skapar en rapport som visar tabellerna och relationerna i databasen. Rapporten innehåller bara de tabeller och relationer som inte döljs i fönstret Relationer.

I gruppen Relationer på fliken Design:

  • Visa tabell    Öppnar dialogrutan Visa tabell så att du kan välja vilka tabeller och frågor som ska visas i fönstret Relationer.

  • Dölj tabell    Döljer den valda tabellen i fönstret Relationer.

  • Direkta relationer    Visar alla relationer och relaterade tabeller för den valda tabellen i fönstret Relationer, om de inte redan visas.

  • Alla relationer    Visar alla relationer och relaterade tabeller i databasen i fönstret Relationer. Observera att dolda tabeller (tabeller där kryssrutan Dold är markerad i tabellens Egenskaper-dialogruta) och deras relationer inte visas, såvida inte kryssrutan Visa dolda objekt är markerad i dialogrutan Navigeringsalternativ.

  • Stäng    Stänger fönstret Relationer. Om du har ändrat i layouten av fönstret Relationer visas en fråga om du vill spara ändringarna.

Överst på sidan

Utöka dina Office-kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Office Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

Tack för din feedback! Det låter som att det kan vara bra att koppla dig till en av våra Office-supportrepresentanter.

×