Primærnøkkel vs Utenlandsk nøkkel: Hva er forskjellen?

Innholdsfortegnelse:

Anonim

Før vi lærer forskjellen mellom primærnøkkel og fremmednøkkel, la oss lære:

Hva er nøkler?

Taster er attributt som hjelper deg med å identifisere en rad (tuple) i en relasjon (tabell). De lar deg finne forholdet mellom to tabeller. Taster hjelper deg med å identifisere en rad i en tabell ved en kombinasjon av en eller flere kolonner i den tabellen. Databasenøkkelen er også nyttig for å finne en unik post eller rad fra tabellen.

Hva er databaseforhold?

Databaseforholdet er assosiasjoner mellom en eller flere tabeller som opprettes ved hjelp av sammenføyningssetninger. Den brukes til å effektivt hente data fra databasen. Det er primært tre typer relasjoner 1) En-til-en, 2) En-til-mange, 3) Mange-til-mange.

Hva er primærnøkkel?

En primær nøkkelbegrensning er en kolonne eller gruppe av kolonner som unikt identifiserer hver rad i tabellen til det relasjonelle databasestyringssystemet. Det kan ikke være et duplikat, noe som betyr at den samme verdien ikke skal vises mer enn en gang i tabellen.

En tabell kan ha mer enn én primærnøkkel. Primærnøkkel kan defineres på kolonnen eller på bordnivå. Hvis du oppretter en sammensatt primærnøkkel, bør den defineres på bordnivå.

Hva er Foreign Key?

Fremmednøkkel er en kolonne som skaper et forhold mellom to tabeller. Hensikten med den utenlandske nøkkelen er å opprettholde dataintegriteten og tillate navigering mellom to forskjellige forekomster av en enhet. Den fungerer som en kryssreferanse mellom to tabeller, da den refererer til hovednøkkelen til en annen tabell. Hvert forhold i databasen skal støttes av en fremmed nøkkel.

HOVEDFORSKJELL:

  • En primær nøkkelbegrensning er en kolonne som unikt identifiserer hver rad i tabellen til det relasjonelle databasestyringssystemet, mens fremmednøkkel er en kolonne som skaper et forhold mellom to tabeller.
  • Primærnøkkel godtar aldri nullverdier, mens fremmednøkkel kan akseptere flere nullverdier.
  • Du kan bare ha en enkelt primærnøkkel i en tabell mens du kan ha flere utenlandske nøkler i en tabell.
  • Verdien til primærnøkkelen kan ikke fjernes fra overordnet tabellen, mens verdien av utenlandsk nøkkelverdi kan fjernes fra underordnet tabell.
  • Ingen to rader kan ha identiske verdier for en primærnøkkel, derimot kan en utenlandsk nøkkel inneholde dupliserte verdier.
  • Det er ingen begrensning i å sette inn verdiene i tabellkolonnen mens du setter inn noen verdi i den utenlandske nøkkeltabellen. Forsikre deg om at verdien er tilstede i en kolonne i en primærnøkkel.

Hvorfor bruke primærnøkkel?

Her er ulempene / fordelene ved å bruke primærnøkkel:

  • Hovedmålet med primærnøkkelen er å identifisere hver post i databasetabellen.
  • Du kan bruke en primærnøkkel når du ikke tillater noen å oppgi nullverdier.
  • Hvis du sletter eller oppdaterer poster, vil handlingen du spesifiserte bli utført for å sikre dataintegriteten.
  • Utfør begrensning for å avvise sletting eller oppdatering for overordnet tabell.
  • Data er organisert i en sekvens av gruppert indeks når du fysisk organiserer DBMS-tabellen.

Hvorfor bruke Foreign Key?

Her er de viktige grunnene til å bruke utenlandsk nøkkel:

  • Utenlandske nøkler hjelper deg med å migrere enheter ved hjelp av en primærnøkkel fra foreldretabellen.
  • En utenlandsk nøkkel lar deg koble to eller flere tabeller sammen.
  • Det gjør databasedataene dine konsistente.
  • En utenlandsk nøkkel kan brukes til å matche en kolonne eller kombinasjon av kolonner med primærnøkkel i en overordnet tabell.
  • Begrensning med SQL-fremmednøkkel brukes til å sikre at referanseintegriteten til dataforelderen samsvarer med verdiene i underordnet tabell.

Eksempel på primærnøkkel

Syntaks:

Nedenfor er syntaksen til Primary Key:

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

Her,

  • Table_Name er navnet på tabellen du må opprette.
  • Kolonnenavn er navnet på kolonnen som har hovednøkkelen.

Eksempel:

StudID Rull nr Fornavn Etternavn E-post
1 11 Tom Pris Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
2 12 Nick Wright Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.
3 1. 3 Dana Natan Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.

I eksemplet ovenfor har vi laget en studenttabell med kolonner som StudID, Roll No, First Name, Last Name, and Email. StudID er valgt som primærnøkkel fordi det unikt kan identifisere andre rader i tabellen.

Eksempel på Foreign Key

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 Tabellnavn indikerer navnet på tabellen du skal lage.
  • Parameterne kolonne1, kolonne2 ... viser kolonnene som må legges til tabellen.
  • Begrensning angir navnet på begrensningen du oppretter.
  • Referanser indikerer en tabell med hovednøkkelen.

Eksempel:

DeptCode Avdelingsnavn
001 Vitenskap
002 Engelsk
005 Datamaskin
Lærer-ID Fname Lname
B002 David Warner
B017 Sara Joseph
B009 Mike Brunton

I eksemplet ovenfor har vi to bord, en lærer og en avdeling på en skole. Det er imidlertid ingen måte å se hvilket søk som fungerer i hvilken avdeling.

I denne tabellen, ved å legge den utenlandske nøkkelen i Deptcode til lærernavnet, kan vi opprette et forhold mellom de to tabellene.

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

Dette konseptet er også kjent som Referential Integrity.

Forskjellen mellom primærnøkkel og fremmednøkkel

Her er den viktige forskjellen mellom primærnøkkel og utenlandsk nøkkel:

Primærnøkkel Utenlandsk nøkkel
En primær nøkkelbegrensning er en kolonne eller gruppe av kolonner som unikt identifiserer hver rad i tabellen til det relasjonelle databasestyringssystemet. Fremmednøkkel er en kolonne som skaper et forhold mellom to tabeller.
Det hjelper deg med å identifisere en post i tabellen. Det er et felt i tabellen som er en primærnøkkel i en annen tabell.
Primærnøkkel godtar aldri nullverdier. En fremmed nøkkel kan akseptere flere nullverdier.
Primærnøkkelen er en gruppert indeks, og data i DBMS-tabellen er fysisk organisert i sekvensen til den grupperte indeksen. En utenlandsk nøkkel kan ikke automatisk opprette en indeks, gruppert eller ikke-gruppert.
Du kan ha den eneste primære nøkkelen i en tabell. Du kan ha flere utenlandske nøkler i en tabell.
Verdien til primærnøkkelen kan ikke fjernes fra foreldretabellen. Verdien av utenlandsk nøkkelverdi kan fjernes fra underordnet tabell.
Du kan definere primærnøkkelen implisitt i de midlertidige tabellene. Du kan ikke definere utenlandske nøkler i de lokale eller globale midlertidige tabellene.
Primærnøkkel er en gruppert indeks. Som standard er det ikke en gruppert indeks.
Ingen to rader kan ha identiske verdier for en primærnøkkel. En fremmed nøkkel kan inneholde dupliserte verdier.
Det er ingen begrensning i å sette inn verdiene i tabellkolonnen. Mens du setter inn en verdi i den utenlandske nøkkeltabellen, må du sørge for at verdien er tilstede i en kolonne med en primærnøkkel.