Toutes les liaisons ne sont pas des contraintes.
Le constructeur de DDS ne permet d'exporter que les liaisons de type 0,n à 0,1 ou 1,1. Il proposera de convertir les liaisons 0,n à 0,1 ou 1,1 en liaisons 1,n à 0,1 ou 1,1.
Les autres liaisons sont des relations entre fichiers mais sans avoir le caractère de contrainte.
C'est le type de liaison le plus courant, par exemple une liaison sur la clé IDClient d'un fichier Client et d'un fichier Facture. Chaque client peut avoir 0, une ou plusieurs factures et chaque facture a un unique client.
Les attributs des clés doivent bien sûr être identiques.
Cette liaison se retrouve dans le constructeur avec un nom par défaut composé du nom du fichier parent suivi du fichier dépendant : CONTRAINTE_CLIENT_FACTURE.
Sur l'AS/400 cette contrainte sera associé au fichier dépendant (Facture) bien qu'elle apparaisse dans l'onglet du fichier parent dans le constructeur.
Il s'agit d'une contrainte de type *REFCST, c'est à dire une contrainte référentielle.
Certaines options exigent que le fichier soit journalisé (les options de type *NOACTION où le contrôle d'intégrité se fait au moment de la validation de la transaction (COMMIT).
Règles en modification
Il est toujours interdit de modifier la clé primaire si elle est présente dans un ou plusieurs enregistrements du fichier dépendant (on ne supprime pas un client qui a des factures).
*NOACTION le contrôle est fait lors du
COMMIT (journalisation obligatoire)
*RESTRICT le contrôle est immédiat
Règles en suppression (DLTRULE)
En suppression d'autres règles sont possibles, la journalisation est nécessaire pour tous les modes à l'exception de *RESTRICT.
*NOACTION suppression interdite, le contrôle est
fait lors du COMMIT (journalisation obligatoire)
*RESTRICT suppression interdite, le contrôle est immédiat
*CASCADE entraîne la suppression des
enregistrements dépendants,
*SETNULL entraîne la mise à blanc (NULL) des clés étrangères,
*SETDFT entraîne la modification des clés étrangères à leur valeur par
défaut.
Pour plus d'informations sur ces options, consulter l'aide en ligne de la commande ADDPFCST avec un type *REFCST.