Les clés étrangères autorisent des valeurs de clé toutes NULL, même s'il n'y a pas de clés PRIMARY ou UNIQUE correspondantes
Aucune contrainte sur la clé étrangère
Lorsqu'aucune autre contrainte n'est définie sur la clé étrangère, n'importe quel nombre de lignes de la table enfant peut référencer la même valeur de clé parent. Ce modèle autorise les null dans la clé étrangère. ...
Contrainte NOT NULL sur la clé étrangère
Lorsque les valeurs NULL ne sont pas autorisées dans une clé étrangère, chaque ligne de la table enfant doit référencer explicitement une valeur dans la clé parent car les valeurs NULL ne sont pas autorisées dans la clé étrangère.
N'importe quel nombre de lignes de la table enfant peut référencer la même valeur de clé parent, ce modèle établit donc une relation un-à-plusieurs entre le parent et les clés étrangères. Cependant, chaque ligne de la table enfant doit avoir une référence à une valeur de clé parent; l'absence d'une valeur (null) dans la clé étrangère n'est pas autorisée. Le même exemple dans la section précédente peut être utilisé pour illustrer une telle relation. Cependant, dans ce cas, les employés doivent avoir une référence à un service spécifique.
Contrainte UNIQUE sur la clé étrangère
Lorsqu'une contrainte UNIQUE est définie sur la clé étrangère, une seule ligne de la table enfant peut référencer une valeur de clé parent donnée. Ce modèle autorise les null dans la clé étrangère.
Ce modèle établit une relation un à un entre le parent et les clés étrangères qui autorise des valeurs indéterminées (null) dans la clé étrangère. Par exemple, supposons que la table des employés contienne une colonne nommée MEMBERNO, faisant référence à un numéro de membre de l'employé dans le régime d'assurance de l'entreprise. De plus, une table nommée INSURANCE a une clé primaire nommée MEMBERNO et les autres colonnes de la table conservent les informations respectives relatives à une police d'assurance des employés. Le MEMBERNO dans la table des employés doit être à la fois une clé étrangère et une clé unique:
Pour appliquer des règles d'intégrité référentielle entre les tables EMP_TAB et INSURANCE (la contrainte FOREIGN KEY)
Pour garantir que chaque employé dispose d'un numéro de membre unique (la contrainte de clé UNIQUE)
Contraintes UNIQUES et NON NULES sur la clé étrangère
Lorsque les contraintes UNIQUE et NOT NULL sont définies sur la clé étrangère, une seule ligne de la table enfant peut référencer une valeur de clé parent donnée, et comme les valeurs NULL ne sont pas autorisées dans la clé étrangère, chaque ligne de la table enfant doit explicitement faire référence une valeur dans la clé parent.