Liste des contraintes
Fondamental : KEY, UNIQUE, NOT NULL
On pensera à exprimer les clés candidates KEY, les attributs UNIQUE et NOT NULL.
R1 (#pk, k, u, a) avec k KEY, u UNIQUE, a NOT NULL
Méthode : Contraintes exprimées sur le MCD
Les contraintes exprimées au niveau conceptuel doivent être traduites au niveau relationnel.
Si les contraintes ne sont pas trop nombreuses, on peut commenter chaque relation directement lors de la formalisation du MLD.

Personne (... loue=>Logement, possède=>Logement) avec (loue OR possède)
Logement (...)
Méthode :
Si l'expression des contraintes nuit à la lisibilité, on les reportera une liste à la fin du MLD (voire dans un document annexe qui accompagnera le modèle logique).
Attention : Extension des contraintes exprimées
On s'attachera lors de la modélisation logique à exprimer l'ensemble des contraintes pesant sur le modèle, même celles qui ont été considérées comme secondaires ou évidentes lors de la modélisation conceptuelle.
Méthode : Expression des contraintes
Pour exprimer les contraintes on favorisera un langage formel dans la mesure du possible :
algèbre relationnelle
expression logique ou mathématique
expression SQL ou procédurale
...
Remarque : Immutabilité
La contrainte {frozen} n'existe pas en base de données relationnelle standard. On ajoutera donc cette contrainte en complément dans le modèle relationnel (et on pourra ajouter un déclencheur au moment de l'implémentation pour empêcher la modification d'un attribut).