PBi_Primary en Foreign Key

We gaan even kijken wat precies een ‘primaire sleutel‘ is, wat een ‘buitenlandse (of externe) sleutel‘ is, en wat precies het verschil is tussen beide.

Beiden zijn belangrijk bij het aanmaken en onderhouden van relationele database-structuren.

PRIMAIRE SLEUTEL (primary key)

De primaire sleutel is één attribuut van een entiteit die de entiteit als uniek identificeert.

Om een ​​tabel te kwalificeren als een relationele tabel, moet deze een primaire sleutel hebben.

De primaire sleutel bestaat uit één (of meerdere) kolommen waarvan de gegevens worden gebruikt om elke rij in de tabel als uniek te identificeren. U kunt ze zien als een adres. Bijvoorbeeld: als de rijen in een tabel boeken waren, dan zou de primaire sleutel het unieke ISBN-nummer zijn van het boek.

Om een ​​primaire sleutel te zijn, moeten verschillende voorwaarden gelden.

Ten eerste moeten de kolommen, zoals al gezegd, uniek zijn. Ter verduidelijking: we verwijzen naar de gegevens in de rijen, niet naar de kolomnamen zelf.

Bij het aanmaken of definiëren van een tabel specificeer je de primaire sleutel. Een tabel heeft slechts één primaire sleutel en de definitie ervan is verplicht. Deze primaire sleutel kan bestaan ​​uit een enkele kolom of uit meerdere kolommen (velden).

Geen enkele waarde in deze kolom mag leeg of NULL zijn.

EXTERNE SLEUTEL (foreign key)

Externe sleutels dienen om dubbele gegevens tegen te gaan. Ze verwijzen naar attributen van een andere entiteit.

Een externe sleutel is een set van één of meer kolommen in een tabel (één of meer attributen van een entiteit) die verwijst naar de primaire sleutel in een andere tabel. Er zijn geen speciale codes, configuraties of tabeldefinities die u moet plaatsen bij het maken van een database om een ​​externe sleutel officieel ‘aan te duiden’.

Momenteel kunnen we dit zo voorstellen:

Gerelateerde gegevens

Entiteitstypes kunnen relaties hebben met andere entiteitstypes (relational data). Zo kan er een soort van link tussen meerdere tabellen ontstaan.

Soms is het nodig om een extra entiteit toe te voegen om de verschillende tabellen te koppelen: