Skip to main content

Introduksjon til Database Relasjoner

07 Magnus Nohr SPOT17 (April 2025)

07 Magnus Nohr SPOT17 (April 2025)
Anonim

Databaseteksten "relasjonell" eller "forhold" beskriver måten dataene i tabellene er koblet til.

Nykommere til databasernes verden har ofte vanskelig å se forskjellen mellom en database og et regneark. De ser datatabeller og gjenkjenner at databaser lar deg organisere og spørre data på nye måter, men unnlater å forstå betydningen av forhold mellom data som gir relasjonell databaseteknologi sitt navn.

Relasjoner lar deg beskrive forbindelsene mellom ulike databasetabeller på kraftige måter. Disse relasjonene kan da brukes til å utføre kraftige spørreundersøkelser, kjent som sammenhenger.

Typer Database Relationships

Det er tre ulike typer databaselasjoner, hver oppkalt etter antall tabellrader som kan være involvert i forholdet. Hver av disse tre forholdstypene eksisterer mellom to tabeller.

  • En-til-en-relasjoner oppstår når hver oppføring i den første tabellen har en og bare en motpart i den andre tabellen. En-til-en-relasjoner brukes sjelden, fordi det ofte er mer effektivt å bare sette all informasjonen i et enkelt bord. Enkelte databasedesignere utnytter dette forholdet ved å lage tabeller som inneholder en delmengde av dataene fra en annen tabell.
  • En-til-mange relasjoner er den vanligste typen database forhold. De oppstår når hver post i tabell A tilsvarer en eller flere poster i tabell B, men hver post i tabell B tilsvarer bare en plate i tabell A. For eksempel, forholdet mellom en lærerstabell og en studentbord i en grunnskole databasen vil trolig være en til mange forhold, fordi hver student har bare en lærer, men hver lærer har flere studenter. Denne en-til-mange-designen bidrar til å eliminere dupliserte data.
  • Mange til mange relasjoner forekommer når hver post i tabell A tilsvarer en eller flere poster i tabell B, og hver post i tabell B tilsvarer en eller flere poster i tabell A. For eksempel vil forholdet mellom en lærer og et kursbord trolig være mange- til mange fordi hver lærer kan instruere mer enn ett kurs, og hvert kurs kan ha mer enn en instruktør.

Self-Referencing Relasjoner: Et spesielt tilfelle

Selvreferanseforhold oppstår når det bare er ett bord involvert. Et vanlig eksempel er en tabell med ansatte som inneholder informasjon om veileder for hver ansatt. Hver veileder er også en ansatt og har egen veileder. I dette tilfellet er det en til mange selvreferanseforhold, da hver ansatt har en veileder, men hver veileder kan ha mer enn en ansatt.

Opprette relasjoner med utenlandske nøkler

Du oppretter sammenhenger mellom tabeller ved å angi en fremmednøkkel. Denne nøkkelen forteller relasjonsdatabasen hvordan tabellene er relaterte. I mange tilfeller inneholder en kolonne i tabell A primære nøkler som refereres fra tabell B.

Tenk på eksemplet på lærer- og studentbordene. Lærerbordet inneholder bare en ID, et navn og en kurskolonne:

lærere
InstructorIDLærernavnKurs
001John DoeEngelsk
002Jane SchmoeMatte

Studentens tabell inneholder et ID, navn og en fremmednøkkelkolonne:

studenter
Student IDStudent navnTeacher_FK
0200Lowell Smith001
0201Brian Short001
0202Corky Mendez002
0203Monica Jones001

Kolonnen Teacher_FK I Student-tabellen refereres den primære nøkkelverdien til en instruktør i lærerbordet.

Ofte vil databasedesignere bruke "PK" eller "FK" i kolonnenavnet for å enkelt identifisere en primærnøkkel eller utenlandsk nøkkelkolonne.

Vær oppmerksom på at disse to tabellene illustrerer et forhold mellom lærerne og studentene.

Forhold og referanseintegritet

Når du har lagt til en utenlandsk nøkkel til et bord, kan du deretter opprette en databasebegrensning som styrker referanseintegritet mellom de to tabellene. Dette sikrer at forhold mellom tabeller forblir konsistente. Når ett bord har en fremmednøkkel til en annen tabell, forteller begrepet referanseintegritet at enhver fremmednøkkelverdi i tabell B må referere til en eksisterende post i tabell A.

Gjennomføring av relasjoner

Avhengig av databasen implementerer du forhold mellom tabeller på forskjellige måter. Microsoft Access gir en veiviser som enkelt lar deg koble tabeller og også håndheve referensintegritet.

Hvis du skriver SQL direkte, vil du først opprette tabellen Lærere, som erklærer en ID-kolonne som den primære nøkkelen:

SKAP TABELL Lærere (

InstructorID INT AUTO_INCREMENT PRIMARY KEY, Lærer_navn VARCHAR (100), Kurset VARCHAR (100));

Når du oppretter Student-tabellen, erklærer du Teacher_FK-kolonnen for å være en utenlandsk nøkkel som refererer til InstruktørID-kolonnen i lærerbordet:

SKAP TABELL Studenter ( StudentID INT AUTO_INCREMENT PRIMARY KEY, Studentnavn VARCHAR (100), Teacher_FK INT, UTENLANDSKE KEY (Teacher_FK) REFERANSER Lærere (InstructorID)));

Bruke relasjoner til å bli med på tabeller

Når du har opprettet ett eller flere relasjoner i databasen, kan du utnytte sin kraft ved hjelp av SQL JOIN-spørringer for å kombinere informasjon fra flere tabeller. Den vanligste typen med å delta er en SQL INNER JOIN, eller en enkel bli med. Denne typen delta returnerer alle poster som oppfyller tilmeldingsbetingelsen fra flere tabeller.For eksempel vil denne JOIN-tilstanden returnere Student_Name, Teacher_Name og Course, hvor den utenlandske nøkkelen i Student-tabellen samsvarer med primærnøkkelen i lærerbordet:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.CourseFRA studenterINNER JOIN LærerePÅ Students.Teacher_FK = Teachers.InstructorID;

Denne uttalelsen produserer et bord noe som dette:

Returnert tabell fra SQL Join statement

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish