Die Krag van Buitelandse Sleutels in Relasionele Databasisse

'N Buitelandse sleutel maak die deur oop vir 'n hele wêreld van data

Databasisontwerpers maak wye gebruik van sleutels by die ontwikkeling van relasionele databasisse. Onder die algemeenste van hierdie sleutels is primêre sleutels en vreemde sleutels. 'N Databasis vreemde sleutel is 'n veld in 'n relasionele tabel wat ooreenstem met die primêre sleutel kolom van 'n ander tabel. Om te verstaan ​​hoe 'n vreemde sleutel werk, kom ons kyk na die idee van 'n relationele databasis.

Sommige basiese beginsels van relasionele databasisse

In 'n relasionele databasis word data gestoor in tabelle wat rye en kolomme bevat, wat dit maklik maak om te soek en te manipuleer. Daar is 'n paar ernstige wiskunde agter die konsep van 'n relationele databasis (relasionele algebra, voorgestel deur EF

Codd by IBM in 1970), maar dit is nie die onderwerp van hierdie artikel nie.

Vir praktiese doeleindes (en nie-wiskundiges), hou 'n relasionele databasis "verwante" data in rye en kolomme. Verder - en hier is dit interessant - die meeste databasisse is ontwerp sodat die data in een tafel toegang tot die data in 'n ander tabel kan kry. Hierdie vermoë om verhoudings tussen tabelle te skep, is die werklike krag van 'n relasionele databasis.

Gebruik buitelandse sleutels

Die meeste tafels, veral dié in groot, komplekse databasisse, het primêre sleutels. Tabelle wat ontwerp is om toegang tot ander tabelle te verkry, moet ook 'n vreemde sleutel hê.

Om die algemeen-aangehaalde Northwinds-databasis te gebruik, is hier 'n uittreksel uit 'n produktabel:

Die Northwind-databasis se uittreksel uit die tabel
ProductNr Produk Naam CategoryID QuantityPerU Eenheidsprys
1 Chai 1 10 bokse x 20 sakke 18.00
2 Chang 1 24 - 12 oz bottels 19.00
3 Aniseed Stroop 2 12 - 550 ml bottels 10.00
4 Sjef Anton se Cajun seisoen 2 48 - 6 oz potte 22.00
5 Chef Anton's Gumbo Mix 2 36 bokse 21,35
6 Ouma se Boysenberry Spread 2 12 - 8 oz potte 25.00
7 Oom Bob se organiese gedroogde pere 7 12 - 1 lb pkgs. 30.00

Die ProductID- kolom is die primêre sleutel van hierdie tabel. Dit gee 'n unieke ID aan elke produk.

Hierdie tabel bevat ook 'n vreemde sleutel kolom, CategoryID . Elke produk in die produktabel skakel na 'n inskrywing in die kategorieë kategorieë wat die kategorie van die produk definieer.

Let op hierdie uittreksel uit die kategorietabel van die databasis:

Northwind Database se kategorieë tabel uittreksel
CategoryID categorienaam beskrywing
1 Drank Soda, koffie, tee, bier, en ales
2 speserye Soet en hartige souse, lekkernye, versprei en geurmiddels
3 snoepgoed Nagerechten, snoepjes en soet broodjes
5 Suiwelprodukte kase

Die kolom CategoryID is die primêre sleutel van hierdie kolom. (Daar is geen vreemde sleutel nie omdat dit nie nodig is om toegang tot 'n ander tabel te kry nie.) Elke vreemde sleutel in die produktabel skakel na 'n primêre sleutel in die kategorieë kategorieë. Byvoorbeeld, die produk Chai word 'n kategorie "Beverages" toegeken, terwyl Aniseed Syrup in die kategorie Smaakmiddels is.

Hierdie soort koppeling skep 'n magdom maniere om data in 'n relationele databasis te gebruik en weer te gebruik.