Notion de références
Clé étrangère
Une base de données est en général constituée de plusieurs tables. Ces tables se référencent entre elles en utilisant une clé étrangère : c'est à dire qu'une des colonnes de la table est utilisée pour faire référence à la colonne d'une autre table.
On va à présent créer une seconde table, qui permettra d'associer des Unités de Valeurs (UVs) aux étudiants, puis insérer des valeurs dans cette table.
CREATE TABLE tUv (
pk_code CHAR(4) NOT NULL,
fk_etu CHAR(13) NOT NULL,
PRIMARY KEY (pk_code, fk_etu),
FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu));
INSERT INTO tUV (pk_code, fk_etu)
VALUES ('NF17', '1800675001066');
INSERT INTO tUV (pk_code, fk_etu)
VALUES ('NF26', '1800675001066');
INSERT INTO tUV (pk_code, fk_etu)
VALUES ('NF29', '1800675001066');
Question
Expliciter ce qu'exprime le contenu de la table tUv .
Solution
Que l'étudiant dont le numéro de sécurité sociale est « 1800675001066 » est associé aux UVs NF17, NF26 et NF29.
Il y est inscrit, ou bien il les a suivi, il faudra se référer au modèle conceptuel de données pour en savoir plus, ce dernier nous donnera en effet plus d'information à ce sujet que la simple représentation relationnelle.
Contraintes d'intégrité référentielle
Lorsque nous avons défini la table tUv, nous avons défini une contrainte supplémentaire, dite d'intégrité référentielle : contrainte de type FOREIGN KEY.
Question
En exécutant les instructions suivantes, expliquer quel est le rôle d'une contrainte d'intégrité référentielle.
INSERT INTO tUV (pk_code, fk_etu)
VALUES ('NF17', '2810592012232');
INSERT INTO tUV (pk_code, fk_etu)
VALUES ('NF17', '1700792001278');