Primær nøgle vs fremmed nøgle: Hvad er forskellen?

Indholdsfortegnelse:

Anonim

Før vi lærer forskellen mellem primærnøgle og fremmednøgle, lad os lære:

Hvad er nøgler?

Nøgler er attribut, der hjælper dig med at identificere en række (tuple) i en relation (tabel). De giver dig mulighed for at finde forholdet mellem to tabeller. Taster hjælper dig med at identificere en række i en tabel entydigt ved en kombination af en eller flere kolonner i den pågældende tabel. Databasenøglen er også nyttig til at finde en unik post eller række fra tabellen.

Hvad er databaseforhold?

Databaseforholdet er tilknytning mellem en eller flere tabeller, der oprettes ved hjælp af join-sætninger. Det bruges til effektivt at hente data fra databasen. Der er primært tre typer forhold 1) En-til-en, 2) En-til-mange, 3) Mange-til-mange.

Hvad er primær nøgle?

En primær nøglebegrænsning er en kolonne eller gruppe af kolonner, der entydigt identificerer hver række i tabellen i det relationelle databasesystem. Det kan ikke være en duplikat, hvilket betyder at den samme værdi ikke skal vises mere end en gang i tabellen.

En tabel kan have mere end en primær nøgle. Primær nøgle kan defineres på kolonnen eller på bordniveau. Hvis du opretter en sammensat primærnøgle, skal den defineres på bordniveau.

Hvad er fremmed nøgle?

Fremmed nøgle er en kolonne, der skaber et forhold mellem to tabeller. Formålet med den udenlandske nøgle er at opretholde dataintegritet og tillade navigation mellem to forskellige forekomster af en enhed. Det fungerer som en krydshenvisning mellem to tabeller, da det refererer til den primære nøgle til en anden tabel. Ethvert forhold i databasen skal understøttes af en fremmed nøgle.

Nøgleforskelle:

  • En primær nøglebegrænsning er en kolonne, der entydigt identificerer hver række i tabellen i det relationsdatabasehåndteringssystem, mens fremmed nøgle er en kolonne, der skaber et forhold mellem to tabeller.
  • Primær nøgle accepterer aldrig nulværdier, mens fremmed nøgle muligvis accepterer flere nulværdier.
  • Du kan kun have en enkelt primærnøgle i en tabel, mens du kan have flere udenlandske nøgler i en tabel.
  • Værdien af ​​den primære nøgle kan ikke fjernes fra den overordnede tabel, mens værdien af ​​den udenlandske nøgleværdi kan fjernes fra den underordnede tabel.
  • Ingen to rækker kan have identiske værdier for en primær nøgle, på den anden side kan en fremmed nøgle indeholde duplikatværdier.
  • Der er ingen begrænsning i at indsætte værdierne i tabelkolonnen, mens du indsætter en værdi i den fremmede nøgletabel, og sørg for, at værdien er til stede i en kolonne i en primær nøgle.

Hvorfor bruge primær nøgle?

Her er ulemperne / fordelene ved at bruge den primære nøgle:

  • Hovedformålet med den primære nøgle er at identificere hver eneste post i databasetabellen.
  • Du kan bruge en primær nøgle, når du ikke tillader nogen at indtaste nulværdier.
  • Hvis du sletter eller opdaterer poster, udføres den handling, du har angivet, for at sikre dataintegriteten.
  • Udfør begrænsning for at afvise sletning eller opdatering af overordnet tabel.
  • Data er organiseret i en sekvens af grupperet indeks, når du fysisk organiserer DBMS-tabel.

Hvorfor bruge Foreign Key?

Her er de vigtige grunde til at bruge fremmed nøgle:

  • Udenlandske nøgler hjælper dig med at migrere enheder ved hjælp af en primær nøgle fra den overordnede tabel.
  • En fremmed nøgle giver dig mulighed for at linke to eller flere tabeller sammen.
  • Det gør dine databasedata konsistente.
  • En fremmed nøgle kan bruges til at matche en kolonne eller en kombination af kolonner med den primære nøgle i en overordnet tabel.
  • SQL-fremmednøglebegrænsning bruges til at sikre, at dataforældres henvisningsintegritet svarer til værdier i underordnet tabel.

Eksempel på primær nøgle

Syntaks:

Nedenfor er syntaksen for den primære nøgle:

CREATE TABLE (Column1 datatype,Column2 datatype, PRIMARY KEY (Column-Name).);

Her,

  • Table_Name er navnet på den tabel, du skal oprette.
  • Kolonne_Navn er navnet på den kolonne, der har den primære nøgle.

Eksempel:

StudID Rulle nr Fornavn Efternavn E-mail
1 11 Tom Pris Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.
2 12 Nick Wright Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.
3 13 Dana Natan Denne e-mail-adresse er beskyttet mod spambots. Du skal aktivere JavaScript for at kunne se den.

I ovenstående eksempel har vi oprettet en elevtabel med kolonner som StudID, Roll No, First Name, Last Name og Email. StudID vælges som en primær nøgle, fordi den entydigt kan identificere andre rækker i tabellen.

Eksempel på fremmed nøgle

Syntaks:

Nedenfor er syntaksen for Foreign Key:

CREATE TABLE 
(column1 datatype,column2 datatype,constraint (name of constraint)FOREIGN KEY [column1, column2… ]REFERENCES [primary key table name] (List of primary key table column)… );

Her,

  • Parameteren Tabelnavn angiver navnet på den tabel, du skal oprette.
  • Parameterne kolonne1, kolonne2 ... viser de kolonner, der skal føjes til tabellen.
  • Begrænsning angiver navnet på den begrænsning, du opretter.
  • Henvisninger angiver en tabel med den primære nøgle.

Eksempel:

DeptCode Afdelingsnavn
001 Videnskab
002 engelsk
005 Computer
Lærer-id Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

I ovenstående eksempel har vi to tabeller, en lærer og en afdeling på en skole. Der er dog ingen måde at se, hvilken søgning der fungerer i hvilken afdeling.

I denne tabel, ved at tilføje den fremmede nøgle i Deptcode til lærerens navn, kan vi skabe et forhold mellem de to tabeller.

Lærer-id DeptCode Fname Lname
B002 002 David Warner
B017 002 Sara Joseph
B009 001 Mike Brunton

Dette koncept er også kendt som Referential Integrity.

Forskel mellem primærnøgle og fremmednøgle

Her er den vigtige forskel mellem primærnøgle og fremmednøgle:

Primærnøgle Fremmed nøgle
En primær nøglebegrænsning er en kolonne eller gruppe af kolonner, der entydigt identificerer hver række i tabellen i det relationelle databasesystem. Fremmed nøgle er en kolonne, der skaber et forhold mellem to tabeller.
Det hjælper dig med entydigt at identificere en post i tabellen. Det er et felt i tabellen, der er en primær nøgle til en anden tabel.
Primær nøgle accepterer aldrig nulværdier. En fremmed nøgle accepterer muligvis flere nulværdier.
Den primære nøgle er et klynget indeks, og data i DBMS-tabellen er fysisk organiseret i sekvensen af ​​det klyngede indeks. En fremmed nøgle kan ikke automatisk oprette et indeks, grupperet eller ikke-grupperet.
Du kan have den eneste primære nøgle i en tabel. Du kan have flere fremmednøgler i en tabel.
Værdien af ​​den primære nøgle kan ikke fjernes fra den overordnede tabel. Værdien af ​​den udenlandske nøgleværdi kan fjernes fra underordnet tabel.
Du kan definere den primære nøgle implicit i de midlertidige tabeller. Du kan ikke definere fremmednøgler i de lokale eller globale midlertidige tabeller.
Primær nøgle er et grupperet indeks. Som standard er det ikke et grupperet indeks.
Ingen to rækker kan have identiske værdier for en primær nøgle. En fremmed nøgle kan indeholde duplikatværdier.
Der er ingen begrænsning i at indsætte værdierne i tabelkolonnen. Mens du indsætter en værdi i den udenlandske nøgletabel, skal du sikre dig, at værdien er til stede i en kolonne i en primær nøgle.