Skip to main content

Introduktion till databasrelationer

Relationsdatabaser, del 1 (av 2) (Juni 2026)

Relationsdatabaser, del 1 (av 2) (Juni 2026)
Anonim

Databas termen "relationell" eller "relation" beskriver hur data i tabeller är anslutna.

Nykomlingar i databasvärlden har ofta svårt att se skillnaden mellan en databas och ett kalkylblad. De ser datatabeller och erkänner att databaser låter dig organisera och söka data på nya sätt, men misslyckas med att förstå betydelsen av relationer mellan data som ger relationsdatabassteknologin sitt namn.

Relationer gör det möjligt att beskriva kopplingarna mellan olika databasbord på kraftfulla sätt. Dessa relationer kan sedan hanteras för att utföra kraftfulla cross-table-frågor, kända som föreningar.

Typer av databasförhållanden

Det finns tre olika typer av databasrelationer, var och en heter enligt antalet tabellrader som kan vara involverade i relationen. Var och en av dessa tre relationstyper finns mellan två tabeller.

  • En-till-en-relationer inträffa när varje inmatning i den första tabellen har en, och endast en, motsvarighet i den andra tabellen. En-till-en-relationer används sällan, eftersom det ofta är mer effektivt att helt enkelt sätta all information i ett enda bord. Vissa databasdesigners utnyttjar detta förhållande genom att skapa tabeller som innehåller en delmängd av data från en annan tabell.
  • En-till-många relationer är den vanligaste typen av databasrelation. De uppträder när varje post i tabell A motsvarar en eller flera poster i tabell B, men varje post i tabell B motsvarar endast en post i tabell A. Till exempel kan förhållandet mellan ett lärarbord och en elevbord i en grundskola databasen skulle sannolikt vara ett till många förhållande, eftersom varje elev bara har en lärare, men varje lärare har flera studenter. Den här en till många designen hjälper till att eliminera dubbla data.
  • Många till många relationer uppträder när varje post i tabell A motsvarar en eller flera poster i tabell B och varje post i tabell B motsvarar en eller flera poster i tabell A. Till exempel skulle förhållandet mellan en lärare och en kurser tabell troligen vara många- till-många eftersom varje lärare kan instruera mer än en kurs, och varje kurs får ha mer än en instruktör.

Självreferensrelationer: Ett speciellt fall

Självreferensrelationer uppstår när det bara finns ett bord. Ett vanligt exempel är en tabell med anställda som innehåller information om chefen för varje anställd. Varje handledare är också anställd och har egen handledare. I det här fallet finns det ett till många självreferensförhållande, eftersom varje anställd har en handledare, men varje handledare kan ha mer än en anställd.

Skapa relationer med utländska nycklar

Du skapar relationer mellan tabeller genom att ange en utländsk nyckel. Denna nyckel berättar för relationsdatabasen hur tabellerna är relaterade. I många fall innehåller en kolumn i tabell A primära nycklar som refereras från tabell B.

Tänk på igen exempel på lärare och studenter tabeller. Lärarnas tabell innehåller bara ett ID, ett namn och en kurskolumn:

lärare
InstructorIDLärarnamnKurs
001John Doeengelsk
002Jane SchmoeMatematik

I tabellen Elever ingår ett ID, namn och en utländsk nyckelkolumn:

studenter
Student-IDElevs namnTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Mendez002
0203Monica Jones001

Kolumnen Teacher_FK I Student-tabellen hänvisas det primära nyckelvärdet av en instruktör i lärarutbildningen.

Ofta använder databasdesigners "PK" eller "FK" i kolumnnamnet för att enkelt identifiera en primär nyckel eller utländsk nyckel kolumn.

Observera att dessa två tabeller illustrerar ett förhållande mellan lärarna och eleverna.

Relationer och referensintegritet

När du väl har lagt till en främmande nyckel till ett bord kan du sedan skapa en databasbegränsning som styr referensintegriteten mellan de två tabellerna. Detta säkerställer att relationerna mellan tabellerna förblir konsekventa. När ett bord har en främmande nyckel till en annan tabell anger att begreppet referensintegritet att valfritt främmande nyckelvärde i tabell B ska referera till en existerande post i tabell A.

Genomföra relationer

Beroende på din databas implementerar du relationer mellan tabeller på olika sätt. Microsoft Access tillhandahåller en guide som enkelt tillåter dig att länka tabeller och att även upprätthålla referensintegritet.

Om du skriver SQL direkt, skulle du först skapa tabellen Lärare, förklara en ID-kolumn som den primära nyckeln:

SKAPA TABELL Lärare (

InstructorID INT AUTO_INCREMENT PRIMARY KEY, Lärare_namn VARCHAR (100), Kurs VARCHAR (100));

När du skapar elevtabellen, förklarar du kolumnen Teacher_FK för att vara en främmande nyckel som hänvisar till instruktörs-kolumnen i lärarens bord:

SKAPA TABELL Studenter ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR (100), Teacher_FK INT, Utländsk nyckel (Teacher_FK) REFERENSER Lärare (InstructorID)));

Använda relationer för att gå med i tabeller

När du har skapat en eller flera relationer i din databas kan du utnyttja sin kraft genom att använda SQL JOIN-frågor för att kombinera information från flera tabeller. Den vanligaste typen av medlemskap är en SQL INNER JOIN, eller ett enkelt deltagande. Denna typ av deltagare returnerar alla poster som uppfyller anslutningsvillkoren från flera tabeller.Till exempel kommer det här JOIN-villkoret att returnera Student_Name, Teacher_Name och Course där den utländska nyckeln i Student-tabellen matchar primärnyckeln i lärartabellen:

VÄLJ Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseFRÅN STUDENTERINNER JOIN LärareON Students.Teacher_FK = Teachers.InstructorID;

Detta uttalande ger en tabell något som detta:

Returnerat tabell från SQL Join statement

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish