Contraintes simples et contraintes compliquées
Les contraintes exprimées dans le cadre de la conception de bases de données peuvent être catégorisées en trois types, du plus simple au plus complexe.
Fondamental :
Il faut préférer les contraintes plus simples à celles plus compliquées dans la mesure où elles permettent d'obtenir le modèle recherché (principe du rasoir d'Ockham).
Cela minimisera le travail d'implémentation et de maintenance, et augmentera la fiabilité.
Les contraintes exprimables directement en relationnel
Ce sont les plus simples :
UNIQUE
NOT NULL
Les contraintes facilement réalisables en SQL (qui ne concernent qu'une seule relation)
Elles peuvent être exprimées directement en SQL au sein du CREATE TABLE via un CHECK.
Les contraintes compliquées qui nécessitent une couche de programmation en plus du SQL
On favorisera l'expression de vues (permettant de détecter les anomalies typiquement).
On utilisera les déclencheurs ou la couche applicative.