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.

1
CREATE TABLE tUv (
2
pk_code CHAR(4) NOT NULL,
3
fk_etu CHAR(13) NOT NULL,
4
PRIMARY KEY (pk_code, fk_etu),
5
FOREIGN KEY (fk_etu) REFERENCES tEtu(pk_numSecu));
1
INSERT INTO tUV (pk_code, fk_etu)
2
VALUES ('NF17', '1800675001066');
3
INSERT INTO tUV (pk_code, fk_etu)
4
VALUES ('NF26', '1800675001066');
5
INSERT INTO tUV (pk_code, fk_etu)
6
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.

1
INSERT INTO tUV (pk_code, fk_etu)
2
VALUES ('NF17', '2810592012232');
3
INSERT INTO tUV (pk_code, fk_etu)
4
VALUES ('NF17', '1700792001278');