Hvad er nøgler i DBMS?
Nøgler i DBMS er en attribut eller et sæt attributter, som 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. Nøglen er også nyttig til at finde en unik post eller række fra tabellen. Database-nøgle er også nyttig til at finde en unik post eller række fra tabellen.
Eksempel:
Medarbejder-ID | Fornavn | Efternavn |
11 | Andrew | Johnson |
22 | Tom | Træ |
33 | Alex | Hale |
I det ovennævnte eksempel er medarbejder-ID en primær nøgle, fordi det entydigt identificerer en medarbejderpost. I denne tabel kan ingen andre medarbejdere have det samme medarbejder-id.
I denne vejledning lærer du:
- Hvad er nøgler?
- Hvorfor har vi brug for en nøgle?
- Forskellige nøgler i Database Management System
- Hvad er Super-nøgle?
- Hvad er primær nøgle?
- Hvad er alternativ nøgle?
- Hvad er kandidatnøgle?
- Hvad er fremmed nøgle?
- Hvad er sammensat nøgle?
- Hvad er sammensat nøgle?
- Hvad er surrogatnøgle?
- Forskellen mellem primærnøgle og fremmednøgle
Hvorfor har vi brug for en nøgle?
Her er nogle grunde til at bruge sql-nøglen i DBMS-systemet.
- Taster hjælper dig med at identificere enhver række data i en tabel. I en applikation i den virkelige verden kan en tabel indeholde tusindvis af poster. Desuden kunne poster kopieres. Tasterne sikrer, at du entydigt kan identificere en tabeloptegnelse på trods af disse udfordringer.
- Giver dig mulighed for at etablere et forhold mellem og identificere forholdet mellem tabeller
- Hjælp dig med at håndhæve identitet og integritet i forholdet.
Typer af nøgler i Database Management System
Der er hovedsageligt syv forskellige typer nøgler i DBMS, og hver nøgle har forskellige funktioner:
- Supernøgle - En supernøgle er en gruppe af enkelt- eller flere nøgler, der identificerer rækker i en tabel.
- Primær nøgle - er en kolonne eller gruppe af kolonner i en tabel, der entydigt identificerer hver række i den pågældende tabel.
- Kandidatnøgle - er et sæt attributter, der entydigt identificerer tupler i en tabel. Kandidatnøgle er en supernøgle uden gentagne attributter.
- Alternativ nøgle - er en kolonne eller gruppe af kolonner i en tabel, der entydigt identificerer hver række i den pågældende tabel.
- Foreign Key - er en kolonne, der skaber et forhold mellem to tabeller. Formålet med udenlandske nøgler er at opretholde dataintegritet og tillade navigation mellem to forskellige forekomster af en enhed.
- Compound Key - har to eller flere attributter, der giver dig mulighed for entydigt at genkende en bestemt post. Det er muligt, at hver kolonne muligvis ikke er unik i sig selv i databasen.
- Composite Key - En kunstig nøgle, der sigter mod at identificere hver post entydigt, kaldes en surrogatnøgle. Denne type nøgle er unik, fordi de oprettes, når du ikke har nogen naturlig primærnøgle.
- Surrogatnøgle - En kunstig nøgle, der sigter mod at entydigt identificere hver post, kaldes en surrogatnøgle. Denne type nøgle er unik, fordi de oprettes, når du ikke har nogen naturlig primærnøgle.
Hvad er Super-nøglen?
En supernøgle er en gruppe af enkelte eller flere nøgler, der identificerer rækker i en tabel. En supernøgle kan have yderligere attributter, der ikke er nødvendige for unik identifikation.
Eksempel:
EmpSSN | EmpNum | Empname |
9812345098 | AB05 | Vist |
9876512345 | AB06 | Roslyn |
199937890 | AB07 | James |
I ovennævnte eksempel er EmpSSN og EmpNum navn supernøgler.
Hvad er en primær nøgle?
PRIMÆR NØGLE er en kolonne eller gruppe af kolonner i en tabel, der entydigt identificerer hver række i den pågældende tabel. Primærnøglen kan ikke være en duplikat, hvilket betyder, at den samme værdi ikke kan vises mere end én gang i tabellen. En tabel kan ikke have mere end en primær nøgle.
Regler til definition af primærnøgle:
- To rækker kan ikke have den samme primære nøgleværdi
- Det skal for hver række have en primær nøgleværdi.
- Det primære nøglefelt kan ikke være nul.
- Værdien i en primær nøglekolonne kan aldrig ændres eller opdateres, hvis nogen fremmed nøgle henviser til den primære nøgle.
Eksempel:
I det følgende eksempel er StudID
en primær nøgle.
StudID | Rulle nr | Fornavn | Efternavn | |
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. |
Hvad er den alternative nøgle?
ALTERNATE TASTER er en kolonne eller gruppe af kolonner i en tabel, der entydigt identificerer hver række i den pågældende tabel. En tabel kan have flere valg for en primær nøgle, men kun en kan indstilles som den primære nøgle. Alle nøgler, der ikke er primærnøgle, kaldes en alternativ nøgle.
Eksempel:
I denne tabel er StudID, Roll No, Email kvalificeret til at blive en primær nøgle. Men da StudID er den primære nøgle, Roll No, bliver e-mail den alternative nøgle.
StudID | Rulle nr | Fornavn | Efternavn | |
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. |
Hvad er en kandidatnøgle?
CANDIDATE KEY er et sæt attributter, der entydigt identificerer tupler i en tabel. Kandidatnøgle er en supernøgle uden gentagne attributter. Den primære nøgle skal vælges blandt kandidatnøglerne. Hver tabel skal have mindst en enkelt kandidatnøgle. En tabel kan have flere kandidatnøgler, men kun en enkelt primærnøgle.
Egenskaber ved kandidatnøgle:
- Den skal indeholde unikke værdier
- Kandidatnøglen kan have flere attributter
- Må ikke indeholde nulværdier
- Det skal indeholde mindstefelter for at sikre unikhed
- Identificer hver post entydigt i en tabel
Eksempel: I den givne tabel er stud-id, rulle nr og e-mail kandidatnøgler, der hjælper os med at identificere de studereposter i tabellen entydigt.
StudID | Rulle nr | Fornavn | Efternavn | |
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. |
Hvad er den udenlandske nøgle?
UDENLANDSK KEY er en kolonne, der skaber et forhold mellem to tabeller. Formålet med udenlandske nøgler er at opretholde dataintegritet og tillade navigation mellem to forskellige forekomster af en enhed. Det fungerer som en krydsreference mellem to tabeller, da det refererer til den primære nøgle til en anden tabel.
Eksempel:
DeptCode | Afdelingsnavn |
001 | Videnskab |
002 | engelsk |
005 | Computer |
Lærer-id | Fname | Lname |
B002 | David | Warner |
B017 | Sara | Joseph |
B009 | Mike | Brunton |
I denne nøgle i dbms-eksempel har vi to bord, undervisning og 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.
Hvad er den sammensatte nøgle?
COMPOUND KEY har to eller flere attributter, der giver dig mulighed for entydigt at genkende en bestemt post. Det er muligt, at hver kolonne muligvis ikke er unik i sig selv i databasen. Men når det kombineres med den eller de andre kolonner, bliver kombinationen af sammensatte nøgler unik. Formålet med den sammensatte nøgle i databasen er at identificere hver post i tabellen entydigt.
Eksempel:
Ordre nummer | PorductID | produktnavn | Antal |
B005 | JAP102459 | Mus | 5 |
B005 | DKT321573 | USB | 10 |
B005 | OMG446789 | LCD-skærm | 20 |
B004 | DKT321573 | USB | 15 |
B002 | OMG446789 | Laser printer | 3 |
I dette eksempel kan OrderNo og ProductID ikke være en primær nøgle, da det ikke entydigt identificerer en post. Imidlertid kunne en sammensat nøgle til ordre-id og produkt-id bruges, da den entydigt identificerede hver post.
Hvad er den sammensatte nøgle?
COMPOSITE KEY er en kombination af to eller flere kolonner, der entydigt identificerer rækker i en tabel. Kombinationen af søjler garanterer unikhed, selvom individuel unikhed ikke garanteres. Derfor kombineres de for entydigt at identificere poster i en tabel.
Forskellen mellem sammensat og sammensat nøgle er, at en hvilken som helst del af sammensat nøgle kan være en fremmed nøgle, men den sammensatte nøgle kan eller måske ikke en del af den fremmede nøgle.
Hvad er en surrogatnøgle?
SURROGATE KEYS er en kunstig nøgle, der sigter mod at entydigt identificere hver post, kaldes en surrogatnøgle. Denne form for delvis nøgle i dbms er unik, fordi den oprettes, når du ikke har nogen naturlig primærnøgle. De giver ikke mening til dataene i tabellen. Surrogatnøgle er normalt et heltal. En surrogatnøgle er en værdi, der genereres lige før posten indsættes i en tabel.
Fname | Efternavn | Starttidspunkt | Sluttid |
Anne | Smith | 09:00 | 18:00 |
Jack | Francis | 08:00 | 17:00 |
Anna | McLean | 11:00 | 20:00 |
Vist | Willam | 14:00 | 23:00 |
Ovenfor, givet eksempel, vist skifttidspunkter for den forskellige medarbejder. I dette eksempel er der brug for en surrogatnøgle til entydigt at identificere hver medarbejder.
Surrogatnøgler i sql er tilladt, når
- Ingen egenskab har den primære nøgles parameter.
- I tabellen, når den primære nøgle er for stor eller kompliceret.
Forskellen mellem primærnøgle og fremmednøgle
Primærnøgle | Fremmed nøgle |
Hjælper dig med at identificere en post entydigt i tabellen. | Det er et felt i tabellen, der er den primære nøgle til en anden tabel. |
Primær nøgle accepterer aldrig nulværdier. | En fremmed nøgle accepterer muligvis flere nulværdier. |
Primær nøgle er et grupperet indeks, og data i DBMS-tabellen er fysisk organiseret i sekvensen af det grupperede indeks. | En fremmed nøgle kan ikke automatisk oprette et indeks, grupperet eller ikke-grupperet. Du kan dog manuelt oprette et indeks på den udenlandske nøgle. |
Du kan have den eneste primære nøgle i en tabel. | Du kan have flere fremmednøgler i en tabel. |
Resumé
- En nøgle i SQL er en attribut eller et sæt attributter, der hjælper dig med at identificere en række (tuple) i en relation (tabel)
- DBMS-nøgler giver dig mulighed for at etablere et forhold mellem og identificere forholdet mellem tabeller
- Syv typer DBMS-nøgler er Super-, Primær-, Kandidat-, Alternativ-, Fremmed-, Forbindelse-, Komposit- og Surrogatnøgle.
- En supernøgle er en gruppe af enkelte eller flere nøgler, der identificerer rækker i en tabel.
- En kolonne eller gruppe af kolonner i en tabel, som hjælper os med entydigt at identificere hver række i denne tabel kaldes en primær nøgle
- Alle taster, der ikke er primærnøgle, kaldes en alternativ nøgle
- En supernøgle uden gentagen attribut kaldes kandidatnøgle
- En sammensat nøgle er en nøgle, der har mange felter, der giver dig mulighed for entydigt at genkende en bestemt post
- En nøgle, der har flere attributter til entydigt at identificere rækker i en tabel, kaldes en sammensat nøgle
- En kunstig nøgle, der sigter mod at identificere hver post entydigt, kaldes en surrogatnøgle
- Primær nøgle accepterer aldrig nulværdier, mens en fremmed nøgle muligvis accepterer flere nulværdier.