logo

Nøkler

  • Nøkler spiller en viktig rolle i relasjonsdatabasen.
  • Den brukes til å unikt identifisere enhver post eller rad med data fra tabellen. Det brukes også til å etablere og identifisere relasjoner mellom tabeller.

For eksempel, ID brukes som nøkkel i elevtabellen fordi den er unik for hver student. I PERSON-tabellen er pass_number, license_number, SSN nøkler siden de er unike for hver person.

DBMS-nøkler

Typer nøkler:

DBMS-nøkler

1. Primærnøkkel

  • Det er den første nøkkelen som brukes til å identifisere én og bare én forekomst av en enhet unikt. En enhet kan inneholde flere nøkler, som vi så i PERSON-tabellen. Nøkkelen som er best egnet fra disse listene blir en primærnøkkel.
  • I ANSATTE-tabellen kan ID være primærnøkkelen siden den er unik for hver ansatt. I EMPLOYEE-tabellen kan vi til og med velge License_Number og Passport_Number som primærnøkler siden de også er unike.
  • For hver enhet er primærnøkkelvalget basert på krav og utviklere.
DBMS-nøkler

2. Kandidatnøkkel

  • En kandidatnøkkel er et attributt eller sett med attributter som unikt kan identifisere en tuppel.
  • Bortsett fra primærnøkkelen, anses de resterende attributtene som en kandidatnøkkel. Kandidatnøklene er like sterke som primærnøkkelen.

For eksempel: I EMPLOYEE-tabellen er id best egnet for primærnøkkelen. Resten av attributtene, som SSN, Passport_Number, License_Number, etc., anses som en kandidatnøkkel.

DBMS-nøkler

3. Supernøkkel

Supernøkkel er et attributtsett som unikt kan identifisere en tuppel. En supernøkkel er et supersett av en kandidatnøkkel.

DBMS-nøkler

For eksempel: I tabellen ovenfor, for (EMPLOEE_ID, EMPLOYEE_NAME), kan navnet på to ansatte være det samme, men deres EMPLYEE_ID kan ikke være det samme. Derfor kan denne kombinasjonen også være en nøkkel.

Supernøkkelen vil være EMPLOYEE-ID (EMPLOYEE_ID, EMPLOYEE-NAME), etc.

4. Fremmednøkkel

  • Fremmednøkler er kolonnen i tabellen som brukes til å peke på primærnøkkelen til en annen tabell.
  • Hver ansatt jobber i en bestemt avdeling i en bedrift, og ansatt og avdeling er to forskjellige enheter. Så vi kan ikke lagre avdelingens informasjon i ansatttabellen. Det er derfor vi kobler disse to tabellene gjennom primærnøkkelen til én tabell.
  • Vi legger til primærnøkkelen til DEPARTMENT-tabellen, Department_Id, som et nytt attributt i EMPLOYEE-tabellen.
  • I EMPLOYEE-tabellen er Department_Id fremmednøkkelen, og begge tabellene er relaterte.
DBMS-nøkler

5. Alternativ nøkkel

Det kan være en eller flere attributter eller en kombinasjon av attributter som unikt identifiserer hver tuppel i en relasjon. Disse attributtene eller kombinasjonene av attributtene kalles kandidatnøklene. Én nøkkel velges som primærnøkkel fra disse kandidatnøklene, og den gjenværende kandidatnøkkelen, hvis den finnes, kalles den alternative nøkkelen. Med andre ord, det totale antallet av alternative nøkler er det totale antallet kandidatnøkler minus primærnøkkelen. Den alternative nøkkelen eksisterer kanskje ikke. Hvis det bare er én kandidatnøkkel i en relasjon, har den ikke en alternativnøkkel.

For eksempel, ansattrelasjon har to attributter, Employee_Id og PAN_No, som fungerer som kandidatnøkler. I denne relasjonen velges Employee_Id som primærnøkkel, så den andre kandidatnøkkelen, PAN_No, fungerer som den alternative nøkkelen.

fibonacci kode java
DBMS-nøkler

6. Sammensatt nøkkel

Når en primærnøkkel består av mer enn ett attributt, er det kjent som en sammensatt nøkkel. Denne nøkkelen er også kjent som sammenkoblet nøkkel.

DBMS-nøkler

For eksempel, i medarbeiderrelasjoner antar vi at en ansatt kan tildeles flere roller, og en ansatt kan jobbe med flere prosjekter samtidig. Så primærnøkkelen vil være sammensatt av alle tre attributtene, nemlig Emp_ID, Emp_role og Proj_ID i kombinasjon. Så disse attributtene fungerer som en sammensatt nøkkel siden primærnøkkelen omfatter mer enn én attributt.

DBMS-nøkler

7. Kunstig nøkkel

Nøkkelen opprettet ved hjelp av vilkårlig tildelte data er kjent som kunstige nøkler. Disse nøklene opprettes når en primærnøkkel er stor og kompleks og ikke har noe forhold til mange andre relasjoner. Dataverdiene til de kunstige nøklene er vanligvis nummerert i seriell rekkefølge.

For eksempel, primærnøkkelen, som er sammensatt av Emp_ID, Emp_role og Proj_ID, er stor i ansattrelasjoner. Så det ville være bedre å legge til et nytt virtuelt attributt for å identifisere hver tuppel i relasjonen unikt.