Forskjellen mellom primærnøkkel og fremmednøkkel
Nøkkelforskjeller mellom primærnøkkel og fremmednøkkel
- En primærnøkkelbegrensning er en kolonne som unikt identifiserer hver rad i tabellen i relasjonsdatabasebehandlingssystemet, mens en fremmednøkkel er en kolonne som skaper en relasjon mellom to tabeller.
- Primærnøkkelen aksepterer aldri nullverdier, mens fremmednøkkelen kan godta flere nullverdier.
- Du kan bare ha en enkelt primærnøkkel i en tabell, mens du kan ha flere fremmednøkler i en tabell.
- Verdien til primærnøkkelen kan ikke fjernes fra den overordnede tabellen, mens verdien til den fremmede nøkkelen kan fjernes fra den underordnede tabellen.
- Ingen to rader kan ha identiske verdier for en primærnøkkel; på den annen side kan en fremmednøkkel inneholde dupliserte verdier.
- Det er ingen begrensning på å sette inn verdiene i tabellkolonnen mens du setter inn verdier i fremmednøkkeltabellen; sikre at verdien er tilstede i en kolonne i en primærnøkkel.

Her har jeg analysert forskjellen mellom primærnøkkelen og fremmednøkkelen og vil grundig evaluere fordeler og ulemper.
Hva er primærnøkkel?
En primærnøkkelbegrensning er en kolonne eller gruppe med kolonner som unikt identifiserer hver rad i tabellen i relasjonsdatabasebehandlingssystemet. Det kan ikke være et duplikat, noe som betyr at den samme verdien ikke skal vises mer enn én gang i tabellen.
En tabell kan ikke ha mer enn én primærnøkkel. De primærnøkkel kan defineres på kolonne- eller tabellnivå. Hvis du oppretter en sammensatt primærnøkkel, bør den defineres på tabellnivå.
Eksempel på en primærnøkkel
Syntaks:
Nedenfor er syntaksen til primærnøkkelen:
CREATE TABLE <Table-Name> ( Column1 datatype, Column2 datatype, PRIMARY KEY (Column-Name) . );
Her
- Tabellnavn er navnet på tabellen du må lage.
- Column_Name er navnet på kolonnen som har primærnøkkelen.
Eksempel:
StudID | Rulle nr | Fornavn | Etternavn | Epost |
---|---|---|---|---|
1 | 11 | Tom | Pris | abc@gmail.com |
2 | 12 | Nick | Wright | xyz@gmail.com |
3 | 13 | Dana | Natan | mno@yahoo.com |
I eksemplet ovenfor har vi laget en studenttabell med kolonner som StudID, Roll No., First Name, Last Name og Email. StudID er valgt som en primærnøkkel fordi den unikt kan identifisere andre rader i tabellen.
Hvorfor bruke primærnøkkel?
Gjennom årene med håndtering av databasesystemer har jeg lagt merke til disse ulempene og fordelene ved bruk av en primærnøkkel:
- Hovedmålet med primærnøkkelen er å identifisere hver eneste post i databasetabellen.
- Du kan bruke en primærnøkkel når du ikke lar noen angi nullverdier.
- Hvis du sletter eller oppdaterer poster, vil handlingen du spesifiserte bli utført for å sikre dataintegritet.
- Utfør restriksjonsoperasjonen for å avvise slette- eller oppdateringsoperasjonen for den overordnede tabellen.
- Data er organisert i en sekvens av grupperte indekser når du fysisk organiserer en DBMS-tabell.
Hva er fremmednøkkel?
Fremmednøkkel er en kolonne som skaper en relasjon mellom to tabeller. Formålet med fremmednøkkelen er å opprettholde dataintegriteten og tillate navigering mellom to forskjellige forekomster av en enhet. Den fungerer som en kryssreferanse mellom to tabeller ettersom den refererer til primærnøkkelen til en annen tabell. Hvert forhold i databasen bør støttes av en fremmednøkkel.
Eksempel på fremmednøkkel
Syntaks:
Nedenfor er syntaksen til Foreign Key:
CREATE TABLE <Table Name>( 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 angir navnet på tabellen du skal lage.
- Parametrene kolonne1, kolonne2... viser kolonnene som må legges til i tabellen.
- En begrensning angir navnet på begrensningen du oppretter.
- Referanser indikerer en tabell med primærnøkkelen.
Eksempel:
DeptCode | DeptName |
---|---|
001 | Vitenskap |
002 | Engelsk |
005 | datamaskin |
Lærer-ID | Fname | Lnavn |
---|---|---|
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | Mike | Brunton |
I eksemplet ovenfor har vi to tabeller: 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 til fremmednøkkelen i Deptcode til lærernavnet, kan vi opprette en relasjon mellom de to tabellene.
Lærer-ID | DeptCode | Fname | Lnavn |
---|---|---|---|
B002 | 002 | David | Warner |
B017 | 002 | Sara | Joseph |
B009 | 001 | Mike | Brunton |
Dette konseptet er også kjent som referanseintegritet.
Hvorfor bruke fremmednøkkel?
Fra det jeg har sett, her er de viktige grunnene til å implementere fremmednøkler:
- Fremmednøkler hjelper deg med å migrere enheter ved å bruke en primærnøkkel fra den overordnede tabellen.
- A utenlandsk nøkkel lar deg koble to eller flere tabeller sammen.
- Det gjør databasedataene dine konsistente.
- En fremmednøkkel kan brukes til å matche en kolonne eller kombinasjon av kolonner med primærnøkkelen i en overordnet tabell.
- SQL utenlandsk nøkkelbegrensning brukes for å sikre at referanseintegriteten til overordnet data samsvarer med verdiene i den underordnede tabellen.
Forskjellen mellom primærnøkkel og fremmednøkkel
La meg dele den viktige forskjellen mellom en primærnøkkel og en fremmednøkkel, som jeg personlig har opplevd:
Sammenligningsgrunnlag | Primærnøkkel | Foreign Key |
---|---|---|
Definisjon | En primærnøkkelbegrensning er en kolonne eller gruppe med kolonner som unikt identifiserer hver rad i tabellen relasjonsdatabasestyringssystem. | En fremmednøkkel er en kolonne som skaper en relasjon mellom to tabeller. |
Basic | Det hjelper deg å identifisere en post unikt i tabellen. | Det er et felt i tabellen som er primærnøkkelen til en annen tabell. |
NULL | Primærnøkkel godtar aldri nullverdier. | En fremmednøkkel kan godta flere nullverdier. |
Indeksering | Primærnøkkelen er en klynget indeks, og data i DBMS-tabellen er fysisk organisert i sekvensen til den klyngede indeksen. | En fremmednøkkel kan ikke automatisk opprette en indeks, gruppert eller ikke-klynget. |
Telle | Du kan ha en enkelt primærnøkkel i en tabell. | Du kan ha flere fremmednøkler i en tabell. |
sletting | Verdien til primærnøkkelen kan ikke fjernes fra den overordnede tabellen. | Verdien av fremmednøkkelen kan fjernes fra den underordnede tabellen. |
Midlertidig bord | Du kan definere primærnøkkelen implisitt i de midlertidige tabellene. | Du kan ikke definere fremmednøkler på de lokale eller globale midlertidige tabellene. |
Slektskap | Primærnøkkelen er en klynget indeks. | Som standard er det ikke en klynget indeks. |
duplisering | Ingen to rader kan ha identiske verdier for en primærnøkkel. | En fremmednøkkel kan inneholde dupliserte verdier. |
Innsetting | Det er ingen begrensning på å sette inn verdiene i tabellkolonnen. | Mens du setter inn en verdi i fremmednøkkeltabellen, sørg for at verdien finnes i en kolonne i en primærnøkkel. |
Hvordan velge mellom en primærnøkkel og en fremmednøkkel
Fra det vi har sett identifiserer primærnøkler tabelloppføringer unikt, og fremmednøkler kobler disse oppføringene på tvers av tabeller, både kritiske for å opprettholde dataintegriteten og forenkle effektiv datahenting.