Ces deux notions sont proches, mais je ne dirais pas, loin de là, que c’est la même chose ; si c’était le cas, il faudrait équiper de camisoles de force tous les ingénieurs qui ont travaillé sur Access. C’est une question qui tombait souvent dans les formations que j’avais en charge (sous Office 2003) et qui est, à mon avis, au cœur du système et des erreurs de conception.
Les relations entre deux tables sont au nombre de quatre :
- Relation 1 : liaison brute entre 2 tables sans intégrité référentielle. Lorsqu’on crée une table, il n’est pas obligatoire de mettre une clé primaire et il est possible d’établir une relation entre deux tables qui n’en possèdent pas. Bien sûr, c’est tellement déconseillé qu’on peut immédiatement oublier.
- Relation 2 (la plus importante) : l’application de l’intégrité référentielle entre la table/requête (interne) et la table/requête liée (externe). Si la table externe ne possède pas de clé primaire (donc d’index unique), l’intégrité référentielle ne peut être appliquée.
- Relation 3 : mise à jour en cascade des champs correspondants : lorsqu’on modifie une clé primaire, toutes les clés externes sont mises à jour
- Relation 4 : effacement en cascade des enregistrements correspondants. Lorsqu’on supprime un enregistrement dans la table primaire, les enregistrements liés sont automatiquement supprimés.
Les jointures sont au nombre de trois :
- Jointure 1 (par défaut) : inclusion seulement des lignes des deux tables pour lesquelles les champs joints sont égaux.
- Jointure 2 : inclusion de tous les enregistrements de la table externe et seulement ceux de la table interne pour lesquels les champs joints sont égaux.
- Jointure 3 : inclusion de tous les enregistrements de la table interne et seulement ceux de la table externe pour lesquels les champs joints sont égaux.