Het verschil tussen composite key (Samengestelde sleutel), primary key (Primaire sleutel) and foreign key (Vreemde sleutel) toont op een eenvoudige manier de complexe en soms verwarrende aard van relationele databases. Deze maken databasebeheer tot een geavanceerde taak, met gespecialiseerde vaardigheden.
Primaire sleutel (Primary Key)
Ten eerste identificeert een primaire sleutel elke record in een databasetabel op unieke wijze. Elke individuele sleutel die dit doet kan een kandidaatsleutel worden genoemd, maar slechts één kan door database-ingenieurs worden geselecteerd als primaire sleutel.
Samengestelde sleutel (Composite Key)
Vervolgens is er de samengestelde sleutel, die bestaat uit twee of meer attributen die samen elke record uniek identificeren.
Een voorbeeld is een lijst van huizen in een vastgoedmarkt. In een goed geordende database moet er een primaire sleutel zijn die elk record uniek identificeert.
In sommige gevallen zijn huizen alleen uniek geïdentificeerd door een hypotheeknummer – andere gegevens (plaatsen, straten, huisnummers) zijn niet uniek voor elke record. Het hypotheeknummer zou dan de primaire sleutel zijn. Laten we echter aannemen dat de technologie van een MLS-makelaar zijn eigen unieke nummers toekent aan de records in de tabel.
Dan zijn er twee sleutels die ontwikkelaars “kandidaatsleutels” zouden kunnen noemen:
- Het hypotheeknummer.
- Het MLS nummer.
Eén daarvan komt in aanmerking als “primaire sleutel”, die als willekeurig kan worden beschouwd.
Een samengestelde sleutel is dan de combinatie van twee sleutels.
Bijvoorbeeld, de combinatie van huisnummer en straatadres zou een samengestelde sleutel kunnen zijn, omdat marktnoteringen lokaal zijn. In dat geval zou een zoekopdracht naar huisnummer en straat slechts één record moeten opleveren.
Vreemde sleutel (Foreign key)
Als er een sleutel is in een gekoppelde tabel, zoals een koperstabel, die verwijst naar de primaire sleutel, is het een vreemde sleutel.
Hoewel een primaire sleutel en een samengestelde sleutel dezelfde taken kunnen uitvoeren, bestaat de primaire sleutel uit één kolom, terwijl de samengestelde sleutel uit twee of meer kolommen bestaat.
De relatie tussen primaire sleutel en vreemde sleutel is zeer verschillend. Het belangrijkste is dat de primaire sleutel in een databasetabel de vreemde sleutel wordt in een andere databasetabel, en omgekeerd.
Een vreemde sleutel in een databasetabel wordt overgenomen uit een andere tabel en toegepast om databasegegevens te koppelen aan die vreemde tabel.
De vreemde sleutel in de databasetabel is in feite de primaire sleutel van de andere tabel.
Ter illustratie volgt hier een voorbeeld: Als we een databasetabel “bestellingen” en een vreemde sleutel “klanten” hebben, kunnen we die vreemde sleutel koppelen aan een primaire sleutel die elke klant in een aparte tabel identificeert.
Samengevat: Al deze koppelingen van sleutelcategorieën laten zien hoe gedetailleerd het is om geavanceerde patronen en relaties in relationele databasesystemen te creëren.
Database-ingenieurs kennen deze categorieën en attributen door en door en passen ze toe om ervoor te zorgen dat SQL-queries en andere methoden om gegevens op te vragen die door eindgebruikers worden geactiveerd, effectief zijn.
Samen met databasenormalisatie en de bevordering van gestructureerde gegevens zijn deze sleutelrelaties kerncomponenten van de integriteit van databasesystemen en best practices voor gegevensopslag.