Skip to main content

Kraften i udenlandske nøgler i relationelle databaser

Sangundervisning - MICPH - Music Institute of Copenhagen (Juni 2025)

Sangundervisning - MICPH - Music Institute of Copenhagen (Juni 2025)
Anonim

Databasedesignere gør bred brug af nøgler til udvikling af relationsdatabaser. Blandt de mest almindelige af disse nøgler er primære nøgler og udenlandske nøgler. En database udenlandsk nøgle er et felt i et relationeltabel, som matcher den primære nøglekolonne i en anden tabel. For at forstå, hvordan en fremmed nøgle fungerer, lad os se nærmere på ideen om en relationsdatabase.

Nogle grundlæggende oplysninger om relationelle databaser

I en relationsdatabase lagres data i tabeller indeholdende rækker og kolonner, hvilket gør det let at søge og manipulere. Der er noget seriøst matematik bag begrebet relational database (relationel algebra, foreslået af E.F.

Codd hos IBM i 1970), men det er ikke emnet for denne artikel.

Til praktiske formål (og ikke-matematikere) gemmer en relationsdatabase relaterede data i rækker og kolonner. Yderligere - og her er hvor det bliver interessant - de fleste databaser er designet, så dataene i en tabel kan få adgang til dataene i en anden tabel. Denne evne til at skabe relationer mellem tabeller er den reelle effekt af en relationsdatabase.

Brug af udenlandske nøgler

De fleste tabeller, især dem i store, komplekse databaser, har primære nøgler. Tabeller, der er designet til at få adgang til andre tabeller, skal også have en fremmed nøgle.

For at bruge den almindeligt citerede Northwinds database er her et uddrag fra en produkttabel:

Northwind-databasens produkttabeluddrag
ProductIDProduktnavnCategorylDQuantityPerUPris per stk
1Chai110 kasser x 20 poser18.00
2Chang124 - 12 oz flasker19.00
3Anis sirup212 - 550 ml flasker10.00
4Kok Antons Cajun Krydderier248 - 6 oz krukker22.00
5Kokken Antons Gumbo Mix236 kasser21.35
6Bedstemor's Boysenberry Spread212 - 8 oz krukker25.00
7Onkel Bobs Økologiske Tørrede Pærer712 - 1 lb pkgs.30.00

Det ProductID kolonne er denne tabels primære nøgle. Det tildeler et unikt id til hvert produkt.

Denne tabel indeholder også en fremmed nøglesøjle, CategorylD. Hvert produkt i produkttabellen henviser til en post i kategoristabellen, der definerer produktets kategori.

Bemærk dette uddrag fra databasens kategoristabel:

Northwind Database's kategorier tabel uddrag
CategorylDCategoryNameBeskrivelse
1drikkevarerLæskedrikke, kaffe, te, øl og øl
2KrydderierSøde og salte saucer, relishes, spreads og krydderier
3confectionsDesserter, slik og sweetbreads
5MejeriprodukterOste

Kolonnen CategorylD er denne søjlens primære nøgle. (Det har ingen fremmednøgle, fordi det ikke behøver at få adgang til en anden tabel.) Hver fremmednøgle i produkttabellen forbinder til en primærnøgle i kategoristabellen. For eksempel er produktet Chai tildelt en kategori "Drikkevarer", mens anis sirup er i kategorien Smagspræparater.

Denne form for sammenkædning skaber et utal af måder at bruge og genbruge data i en relationsdatabase på.