MySQL Sleutels (keys)
Een sleutel in SQL bestaat uit één enkele kolom of uit een combinatie van meerdere kolommen in een tabel. De sleutel wordt gebruikt om rijen in de tabel te indentificeren en dus op te halen volgens een welbepaalde voorwaarde. Sleutels worden ook gebruikt om een relatie te creëren tussen verschillende tabellen of views.
Probleem
Gegevens in een tabel dienen om geraadplaagd te kunnen worden. Daarbij moeten de gegevens voldoen aan twee voorwaarden:
- identificeerbaar zijn
- niet redundant, geen dubbels
Oplossing
- Supersleutel: een supersleutel is een verzameling van één of meerdere sleutels die gebruikt kunnen worden om een rij in een tabel te identificeren, bijvoorbeeld: primaire sleutel, unieke sleutel, alternatieve sleutels zijn deelverzamelingen van supersleutels.
- Kandidaat sleutel:
- een Kandidaatsleutel (candidate key) is een set van eéén of meerdere kolommen die een rijk in een tabel kunnen identificeren;
- er kunnen meerdere kandidaatsleutels in één tabel zijn;
- elke Kandidaatsleutel kan dienen als primaire sleutel.
- Primaire sleutel:
- een verzameling van een of meerdere kolommen van een tabel die op een rij in de databasetabel identificeren;
- het kan geen nul-, of dubbele waarden accepteren;
- slechts één kandidaatsleutel kan de primaire sleutel zijn;
- Alternatieve sleutel (alternate key): een alternatieve sleutel is een sleutel die als primaire sleutel zou kunnen gebruikt worden, eigenlijk is het een kandidaatsleutel die momenteel geen primaire sleutel is.
- Samengestelde sleutel (Composite Key): een combinatie van meerdere kolommen van een tabe, dit kan een kandidaatsleutel of primaire sleutel zijn.
- Unieke sleutel (Unique Key): een verzameling van een of meerdere kolommen van een tabel die op unieke wijze een rij in de databasetabel identificeren, het is als primaire sleutel, maar het kan slechts één nulwaarde accepteren en het kan geen dubbele waarden hebben.
- Vreemde sleutel (Foreign Key): een kolom in de databasetabel dat de primaire sleutel in een andere tabel is. Het kan meerdere null en/of dubbele waarden accepteren.
Inhoud
2018-05-01 20:53:40