Skip to content

Introduktion till databasrelationer

16 de juni de 2021
GettyImages 763160545 5a469015f1300a00377839f0

Databasvillkoren relationellt och relation beskriva hur data i tabeller är anslutna. En relationsdatabas består av en serie med två eller flera tabeller som är länkade med en specifik nyckel. En relationsdatabas skiljer sig från ostrukturerade databaser, vilket är vanligare i massiva big-data-initiativ. Relationsdatabaser tenderar att kräva strikta regler om hur tabeller definieras och vad som utgör ett giltigt förhållande mellan tabeller. Relationer låter dig beskriva anslutningarna mellan olika databastabeller på kraftfulla sätt. Dessa relationer kan sedan utnyttjas för att utföra kraftfulla frågor över bord, så kallade sammanfogningar.

 

Typer av databasrelationer

Det finns tre typer av databasrelationer, var och en namngiven efter antalet tabellrader som är involverade i relationen. Var och en av dessa tre relationstyper finns mellan två tabeller.

  • En-till-en-relation inträffar när varje post i den första tabellen har en, och endast en, motsvarighet i den andra tabellen. En-till-en-relation används sällan eftersom det ofta är effektivare att lägga all information i en och samma tabell. Vissa databasdesigners utnyttjar denna relation 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 databasförhållande. 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 förhållandet mellan en lärartabell och en studenttabell i en grundskola databasen skulle sannolikt vara en en-till-många relation eftersom varje elev bara har en lärare, men varje lärare har flera elever. Denna en-till-många design hjälper till att eliminera duplicerad data.
  • Många till många relationer inträffar 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 kurstabell sannolikt vara många- till många för att varje lärare kan instruera mer än en kurs, och varje kurs kan ha mer än en instruktör.

 

Självhänvisande förhållanden: ett speciellt fall

Självhänvisande relationer uppstår när det bara är en tabell inblandad. Ett vanligt exempel är en anställdstabell som innehåller information om handledaren för varje anställd. Varje handledare är också anställd och har en handledare. I det här fallet finns det en-till-många-självreferensrelationer, 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 främmande nyckel. Den här nyckeln berättar för relationsdatabasen hur tabellerna är relaterade. I många fall innehåller en kolumn i tabell A primära nycklar som det hänvisas till från tabell B. Tänk igen på exemplet i tabellerna lärare och studenter. Lärartabellen innehåller bara ett ID, ett namn och en kurskolumn:

Lärare

Instruktör-ID Lärarnamn Kurs
001 John Doe engelsk
002 Jane Schmoe Matematik

Studenttabellen innehåller ett ID, namn och en utländsk nyckelkolumn:

Studenter

Student-ID Elevs namn Lärare_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 Corky Mendez 002
0203 Monica Jones 001

Kolumnen Lärare_FK i tabellen Studenter hänvisar det primära nyckelvärdet för en instruktör i tabellen lärare. Ofta använder databasdesigners ”PK” eller ”FK” i kolumnnamnet för att enkelt identifiera en primär nyckel eller främmande nyckelkolumn. Dessa två tabeller illustrerar ett en-till-många-förhållande mellan lärarna och eleverna.

 

Relationer och referensintegritet

När du har lagt till en främmande nyckel i en tabell skapar du en databasbegränsning som tillämpar referensintegritet mellan de två tabellerna. Detta steg säkerställer att relationer mellan tabeller förblir konsekventa. När en tabell har en främmande nyckel till en annan tabell kräver referensintegritet att alla främmande nyckelvärden i tabell B måste referera till en befintlig post i tabell A.

Implementera relationer

Beroende på din databas implementerar du relationer mellan tabeller på olika sätt. Microsoft Access tillhandahåller en guide som låter dig länka tabeller och även genomdriva referensintegritet. Om du skriver SQL direkt skulle du först skapa tabellen Lärare och förklara en ID-kolumn som den primära nyckeln: CREATE TABLE Teachers (Instruktör-ID INT AUTO_INCREMENT PRIMÄR NYCKEL,
Teacher_Name VARCHAR (100),
Kurs VARCHAR (100)
);

type = ”code”> När du skapar tabellen Elever förklarar du kolumnen Teacher_FK som en främmande nyckel som refererar till kolumnen Instruktör-ID i lärartabellen: SKAPA TABELL Elever (
StudentID INT AUTO_INCREMENT PRIMÄR NYCKEL
Student_Name VARCHAR (100), Teacher_FK INT,
UTLÄNDSK KEY (Teacher_FK) REFERENSER Lärare (Instruktör-ID))
);

typ = ”kod”>

 

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

När du har skapat en eller flera relationer i din databas, utnyttja deras kraft genom att använda SQL JOIN-frågor för att kombinera information från flera tabeller. Den vanligaste typen av koppling är en SQL INNER JOIN, som är en enkel koppling. Denna typ av koppling returnerar alla poster som uppfyller kopplingsvillkoret från en eller flera tabeller. Till exempel returnerar detta JOIN-villkor Student_Name, Teacher_Name och Course, där den främmande nyckeln i tabellen Students matchar den primära nyckeln i tabellen Teachers: SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
FRÅN studenter
INNRE GÅ MED Lärare
PÅ Students.Teacher_FK = Teachers.InstructorID;

type = ”code”> Detta uttalande ger en tabell ungefär så här:

Returnerad tabell från SQL Join-uttalandet

Student_Name Teacher_Name Course
Lowell Smith John Doe engelska
Brian Short John Doe engelska
Corky Mendez Jane Schmoe Math
Monica Jones John Doe engelska