Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
Tabellrelationer När man har skapat en tabell för varje ämne i databasen måste man sammanföra dem. Det göra man genom att placera ut gemensamma fält i tabeller som är relaterade. Detta för att kunna skapa frågor, formulär och rapporter som visas från flera tabeller samtidigt. Informationen i det här formuläret kommer från tabellen kunder …tabellen order… …tabellen produkter… …och tabellen orderdetaljer. Ett syfte med en ändamålsenlig databasdesign är att undvika dublettdata. Det syftet uppnår man gnom att dela upp data i många ämnesbaserade tabeller så varje uppgift bara finns med en gång. Därefter förser du Access med de verktyg som behövs för att sammanföra den uppdelade informationen igen. Det gör du genom att placera ut gemensamma fält i tabeller som är relaterade. Den här relationen är nödvändig för att kunna skapa frågor, formulär, och rapporter som visas från flera tabeller samtidigt. Här är ett exempel: I det här formuläret vi ser här till höger kommer information från fyra olika tabeller: Kunder, order, produkter och orderdetaljer.
Hur gör man tabellrelationer En tabellrelation skapas genom att data i två tabeller matchas i nyckelfält. Fälten har oftast samma namn i de båda tabellerna. Nyckelfältet i den ena tabellen är oftast primärnyckeln, medan nyckelfältet i den andra tabellen är sekundärnyckeln. I exemplet vi tittade på i den förra bilden måste fälten i tabellerna samordnas så de visar information om samma order. Det är det som menas med tabellrelationer. En tabellrelation fungerar genom att data i två tabeller matchas i nyckelfält. Dessa fält har ofta samma namn i de båda tabellerna. Nyckelfältet i den ena tabellen är oftast primärnyckeln, vilken ger en unik identifierare för varje post medan nyckelfältet i den andra tabellen är sekundärnyckeln (främmande nyckel) Ex Anställda kan tex kopplas til de order de ansvarar för genom att en tabellrelation skapas mellan fälten Anställningsnummer i tabellerna anställda och order. Anställningsnummer finns i båda tabellerna – som primärnyckel… …och som sekundärnyckel
Varför skapa tabellrelationer? Tabellrelationer förser frågedesignen med information. Tabellrelationer förser formulär- och rapportdesign med information Tabellrelationer utgör grunden för referensintegriteten som förhindrar att överblivna poster skapas i databasen. (En överbliven post är en post som refererar till något som inte längre finns tex en order till en borttagen kund) Varför man ska skapa tabellrelationer har vi nästan svarat på tidigare men en viktig del är den sista punkten här. Tabellrelationer utgör grunden för referensintegriteten som förhindrar att överblivna poster skapas i databasen. En överbliven post är en post som refererar till något som inte längre finns tex en order till en borttagen kund. Men det här sker inte automatiskt bara för man skapar tabellrelationer. Detta är en tilläggsfunktion för en tabellrelation. Som man kan lägga till när man skapat tabellrelationen. Det finns en övning på detta
Förstå referensintegritet Syftet med referensintegritet är att förhindra att överblivna poster skapas och synkronisera referenserna så den här typen av situationer inte uppstår. Följande villkor måste uppfyllas för att det ska gå att använda referensintegritet, annars kan problem uppstå: De gemensamma fälten från primärtabellen måste antingen vara en primärnyckel eller ha ett unikt index. De gemensamma fälten måste ha samma datatyp. Det enda undantaget är att ett Räknare-fält kan vara relaterat till ett talfält som har egenskapen Fältstorlek inställd på Långt heltal. Båda tabellerna måste finnas i samma Access-databas. Syftet med referensintegritet är att förhindra att överblivna poster skapas och synkronisera referenserna så att den här typen av situationen inte uppstår. När det används går det inte att utföra några åtgärder som bryter mot referensintregiteten för den tabellrelationen. Det innebär att du varken kan utföra uppdateringar som ändrar målet i en referens eller ta bort målet för en referens. Men ibland finns det gånger som man vill kunna ta bort poster i alla fall. Då kan man göra lite olika val att när man tar bort en post som är kopplad så uppdaterar den alla poster då försvinner allt eller uppdaterar allt. Det är lite villkor som måste uppfyllas innan det ska gå att använda referensintegritet.
Visa tabellrelationer När man har skapat en tabellrelation ser det ut så här: 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 är markerad. Och om det är som på bilden här att den visar siffran 1 och symbolen oo som är oändlighetssymbolen i andra änden betyder det att den här relationen använder referensintegritet. Primärnyckeln Den här linjen representerar relationen Sekundärnyckeln
Skapa, redigera och ta bort en tabellrelation Man kan skapa en tabellrelation på flera olika sätt. I dokumentfliken relationer I fönstret Fältlista Redigera en relation gör du genom att dubbelklicka på relationslinjen så öppnas en dialog för redigering Ta bort en tabellrelation gör du genom att markera relationslinjen och tryck på delete. (Då försvinner även referensintegriteten om det fanns någon.) Man kan skapa en tabellrelation på flera olika sätt. I dokumentfliken relationer I fönstret Fältlista Redigera en relation gör du genom att dubbelklicka på relationslinjen så öppnas en dialog för redigering Ta bort en tabellrelation gör du genom att markera relationslinjen och tryck på delete. (Då försvinner även referensintegriteten om det fanns någon.)