Utenlandske nøkler lar databaseadministratorer enkelt identifisere de forskjellige tilkoblingene som finnes i et SQL-databasesystem.

SQL utfører matematiske operasjoner på data i et databasestyringssystem. Disse databasene inneholder forskjellige tabeller som hver lagrer data på en bestemt enhet. Hvis du har en leiebildatabase, vil en enhet (eller tabell) i databasen være kunder (som lagrer alle personopplysningene på hver kunde).

Disse databasetabellene inneholder rader og kolonner, der hver rad er vert for en post, og hver kolonne inneholder attributt-spesifikke data.

I et databasestyringssystem skal hver post (eller rad) være unik.

Primære nøkler

Selv om bestemmelsen er at hver post i en tabell skal være forskjellige, er dette ikke alltid tilfelle. Fortsetter med eksemplet på leiebildatabasen, hvis databasen inneholder to kunder som hver har navnet “John Brown”, en John Brown kan forventes å returnere en Mercedes-Benz som han ikke gjorde leie.

Å lage en primærnøkkel vil redusere denne risikoen. I et SQL-databasesystem er en primærnøkkel en unik identifikator som skiller en post fra en annen.

instagram viewer

Derfor bør hver post i et SQL-databasesystem ha en primærnøkkel.

Bruke primære nøkler i en database

For å inkludere primærnøkler i et databasestyringssystem ved hjelp av SQL, kan du bare legge det til som et vanlig attributt når du oppretter en ny tabell. Så kundenes tabell vil inneholde fire attributter (eller kolonner):

  • CarOwnerID (som lagrer primærnøkkelen)
  • Fornavn
  • Etternavn
  • Telefonnummer

I slekt: Hvordan lage en tabell i SQL

Nå vil hver kundeoppføring som kommer inn i databasen ha et unikt identifikasjonsnummer, samt et fornavn, etternavn og telefonnummer. Telefonnummeret er ikke unikt nok til å være en primærnøkkel, for selv om det er unikt for en person om gangen, kan en person enkelt endre nummeret sitt, noe som betyr at det nå vil tilhøre noen andre.

En plate med et primært nøkkeleksempel

/ * oppretter en ny post i kundetabellen * /
INSERT I KUNDER VERDIER
('0004',
'John',
'Brun',
'111-999-5555');

SQL-koden ovenfor vil legge til en ny post til den eksisterende Kunder bord. Tabellen nedenfor viser den nye kundetabellen med de to John Brown-postene.

Den utenlandske nøkkelen

Nå har du primærnøkler som unikt skiller en billeier fra en annen. Det eneste problemet er at det i databasen ikke er noen reell sammenheng mellom hver John Brown og bilen han leier.

Derfor eksisterer fremdeles muligheten for å gjøre en feil. Det er her utenlandske nøkler spiller inn. Å bruke en primærnøkkel for å løse problemet med eierforståelse er bare oppnåelig hvis primærnøkkelen fungerer som en fremmed nøkkel.

Hva er en fremmed nøkkel?

I et SQL-databasesystem er en fremmed nøkkel en unik identifikator eller en kombinasjon av unike identifikatorer som kobler to eller flere tabeller i en database.

Av de fire eksisterende SQL-databasesystemene er det relationsbaserte databasesystemet det mest populære. Når du bestemmer hvilken tabell i en relasjonsdatabase som skal ha en fremmed nøkkel, bør du først identifisere hvilken tabell som er emnet og hvilket objekt som er i deres forhold.

Å gå tilbake til leiebildatabasen for å koble hver kunde til riktig bil, må du forstå at en kunde (motivet) leier en bil (objektet). Derfor bør den utenlandske nøkkelen være i biltabellen.

SQL-koden som genererer en tabell med en fremmed nøkkel, er litt annerledes enn normen.

Lage et bord med et utenlandsk nøkkeleksempel

/ * oppretter en ny biltabell i bilutleiedatabasen * /
LAG BORD Biler
(
LicenseNumber varchar (30) NOT NULL PRIMARY KEY,
CarType varchar (30) IKKE NULL,
CustomerID varchar (30) UTENLANDSKE NØKKELREFERANSER Kunder (CustomerID)
);

Som du kan se i koden ovenfor, må en fremmed nøkkel eksplisitt identifiseres som sådan, sammen med en referanse til den primære nøkkelen som blir koblet til den nye tabellen.

I slekt: The Essential SQL Commands Cheat Sheet for Beginners

For å legge til en post i den nye tabellen, må du sørge for at verdien i feltet utenlandsk nøkkel samsvarer med verdien i det primære nøkkelfeltet i den opprinnelige tabellen.

Legge til en plate med et utenlandsk nøkkeleksempel

/ * oppretter en ny post i biltabellen * /
INNSETT I BILER VERDIER
('100012',
'Mercedes-Benz',
'0004');

Koden ovenfor skaper en ny post i den nye Biler tabellen, og gir følgende resultat.

Biler Tabell

Fra tabellen ovenfor kan du identifisere den riktige John Brown som leier en Mercedes-Benz av den utenlandske nøkkelen i posten.

Avanserte utenlandske nøkler

Det er to andre måter å bruke en fremmed nøkkel i en database.

Hvis du ser tilbake på definisjonen av en fremmed nøkkel ovenfor, vil du oppdage at det står at en utenlandsk nøkkel kan være en unik identifikator eller en kombinasjon av unike identifikatorer.

Når du går tilbake til eksemplet på leiebildatabasen, ser du at å opprette en ny post (av samme bil) hver gang en kunde leier den bilen, beseirer formålet med Biler bord. Hvis bilene er til salgs og selges til en enkelt kunde en gang, er den eksisterende databasen perfekt. men gitt at bilene leies, er det en bedre måte å representere disse dataene på.

Sammensatte nøkler

En sammensatt nøkkel har to eller flere unike identifikatorer. I en relasjonsdatabase vil det være tilfeller når bruken av en enkelt fremmed nøkkel ikke i tilstrekkelig grad representerer forholdene som finnes i databasen.

I bilutleieeksemplet er den mest praktiske tilnærmingen å lage et nytt bord som lagrer leieopplysningene. For at informasjonen i bilutleietabellen skal være nyttig, må den koble til både bil- og kundetabellene.

Lage et bord med sammensatte utenlandske nøkler

/ * oppretter en CarRental-tabell i leiebildatabasen * /
OPPRETT BORD CarRental
(
Dato leid DATO IKKE NULL,
LicenseNumber varchar (30) IKKE NULL UTENLANDSKE NØKKELREFERANSER Biler (LicenseNumber),
CustomerID varchar (30) IKKE NULLE UTENLANDSKE NØKKELREFERANSER Kunder (CustomerID),
PRIMÆR NØKKEL (Daterented, LicenseNumber, CustomerID)
);

Koden ovenfor viser et viktig poeng; Selv om en tabell i en SQL-database kan ha mer enn en utenlandsk nøkkel, kan den bare ha en enkelt primærnøkkel. Dette er fordi det bare skal være en unik måte å identifisere en post på.

Det er nødvendig å kombinere alle tre attributtene i tabellen for å ha en unik nøkkel. En kunde kan leie mer enn én bil samme dag (altså Kunde ID og Dato leid er ikke en god kombinasjon) kan flere kunder også leie samme bil samme dag (altså Lisensnummer og Dato leid er ikke en god kombinasjon).

Imidlertid er opprettelsen av en sammensatt nøkkel som forteller hvilken kunde, hvilken bil og på hvilken dag, en utmerket unik nøkkel. Denne unike nøkkelen representerer både en sammensatt fremmednøkkel og en sammensatt primærnøkkel.

Utenlandske primærnøkler

Å ja, utenlandske primærnøkler går ut. Selv om det ikke er noe offisielt navn på det, kan en utenlandsk nøkkel også være en primærnøkkel i samme tabell. Dette skjer når du oppretter en ny tabell som inneholder spesialiserte data om en eksisterende enhet (eller registrerer i en annen tabell).

Si Fred (som jobber i bilutleiefirmaet) er i selskapets database under arbeidstabellen. Etter noen år blir han veileder og blir lagt til veilederbordet.

Fred er fortsatt ansatt og vil fortsatt ha samme ID-nummer. Så Freds ansatt-ID er nå i veiledertabellen som en fremmed nøkkel som også vil bli en primærnøkkel tast inn tabellen (da det ikke gir mening å opprette et nytt ID-nummer for Fred nå som han er veileder).

Nå kan du identifisere utenlandske nøkler i SQL-databaser

Utenlandske nøkler kobler forskjellige tabeller i en SQL-database. Fra denne artikkelen kan du se hva en fremmed nøkkel er, hvordan den fungerer, og hvorfor det er viktig å ha dem i en database. Du forstår også de grunnleggende, og enda mer komplekse, formene for fremmednøkler.

Hvis du synes fremmede nøkler er interessante, kommer du til å ha en feltdag når du begynner å bruke prosjekt- og utvalgsoperasjonene for å spørre SQL-databasene dine.

E-post
Lær hvordan du bruker prosjekt- og valgoperasjoner i SQL

Gjør deg kjent med SQL-relasjonsdatabaser ved å forstå prosjekt- og seleksjonsoperasjonene med disse eksemplene.

Les Neste

Relaterte temaer
  • Programmering
  • Programmering
  • SQL
  • database
Om forfatteren
Kadeisha Kean (14 artikler publisert)

Kadeisha Kean er en full-stack programvareutvikler og teknisk / teknologiforfatter. Hun har den distinkte evnen til å forenkle noen av de mest komplekse teknologiske konseptene; produsere materiale som lett kan forstås av enhver nybegynner. Hun brenner for å skrive, utvikle interessant programvare og reise verden rundt (gjennom dokumentarer).

Mer fra Kadeisha Kean

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.