Constraint (databases)

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Een constraint in een database is een vastgelegde voorwaarde, bedoeld om de integriteit of logica van de opgeslagen gegevens te bewaken. Een constraint zorgt er voor dat er een foutmelding wordt gegeven als de betreffende regel overtreden dreigt te worden.

Tabel-constraint[bewerken]

Vorm:

ALTER TABLE tabel_naam ADD [CONSTRAINT constraint_naam] constraint_definitie

Kolom-constraint[bewerken]

Vorm:

kolom_definitie constraint_definitie_1 [constraint_definitie_2]

Primary Key (PK)[bewerken]

Constraint-definitie als tabel-constraint[bewerken]

[CONSTRAINT constraint_naam] PRIMARY KEY ( kolom_1 [, kolom_2 [, ...] ] )

Merk op dat als tabel-constraint, de primary key meerdere kolommen kan omvatten.

Constraint-definitie als kolom-constraint[bewerken]

[CONSTRAINT constraint_naam] PRIMARY KEY

Merk op dat als kolom-constraint, enkel de kolom waarop de constraint wordt toegepast, de Primary Key vormt.

Elke tabel kan slechts 1 pk bezitten.

1rightarrow blue.svg Zie Primaire sleutel voor het hoofdartikel over dit onderwerp.

Foreign Key (FK)[bewerken]

Een veelgebruikte constraint in relationele databases is de foreign key. Deze zorgt er voor dat als gegevens in een record verwijzen naar gegevens in een andere record, er alleen verwezen kan worden naar werkelijk bestaande gegevens. Als er bijvoorbeeld in een tabel met bestellingen wordt verwezen naar een tabel met klanten, dan moet in iedere bestelling de desbetreffende klant zijn opgenomen in de tabel met klanten. Een bestelling van een niet-bestaande klant kan op deze manier nooit in de database terechtkomen. En als een bepaalde klant eenmaal in de tabel met bestellingen wordt gebruikt, dan kan de klant niet uit de tabel van klanten worden verwijderd zonder dat eerst de betreffende bestellingen zijn verwijderd.

Constraint-definitie als tabel-constraint[bewerken]

[CONSTRAINT constraint_naam] FOREIGN KEY ( eigen_kolom_1 [, eigen_kolom_2 [, ...] ] ) 
REFERENCES gerefereerde_tabel ( ref_tabel_kol_1 [, ref_tabel_kol_2 [, ...] ] )

Merk op dat het aantal eigen kolommen gelijk moet zijn aan het aantal gerefereerde kolommen. Ook moeten de gerefereerde kolommen de volledige PK opmaken van de gerefereerde kolom teneinde een specifieke rij aan te kunnen duiden.

Constraint-definitie als kolom-constraint[bewerken]

[CONSTRAINT constraint_naam] REFERENCES gerefereerde_tabel ( gerefereerde_kolom )

Merk op dat slechts 1 kolom (de kolom waarop de constraint wordt toegepast) de FK uitmaakt en dat dusdanig naar slechts 1 kolom uit de gerefereerde tabel kan worden verwezen. Ook hier moet de gerefereerde kolom de volledige PK van de gerefereerde tabel zijn.

CHECK-constraint[bewerken]

Constraint-definie als tabel- of kolom-constraint:

[CONSTRAINT constraint_naam] CHECK ( criteria )

De criteria moeten een booleaanse waarde opleveren (true of false).

UNIQUE-constraint[bewerken]

Constraint-definitie als kolom-constraint:

[CONSTRAINT constraint_naam] UNIQUE

Wanneer toegepast op een kolom vereist deze constraint dat alle waarden in de kolom over de gehele tabel uniek zijn (met andere woorden er worden geen twee dezelfde waarden voor deze kolom toegelaten).

Deze constraint verschilt van een PK als volgt:

  • meerdere UNIQUE-constraints per tabel zijn toegelaten
  • PK wordt geïndexeerd, een UNIQUE-constraint niet noodzakelijk
  • een PK kan worden gerefereerd door een FK, een UNIQUE-kolom niet

Wiskunde[bewerken]

Zie Randvoorwaarde (wiskunde).