Int Grit Referentielle

Int Grit Referentielle

Intégrité Referentielle Source : Stephane Baret I . Révision : l. 1. Le modèle relationnel une base de données relationnelle est constituée d’un ensemble de tables reliées entre elles. une table est un tableau dans lequel les lignes sont appelées les enregistrements (ou tuples) et l’intitulé des colonnes sont des champs. A l’intersection d’une ligne et d’une colonne figure une valeur. Exemples de tables : Fig. 1 : Une table MS Fig. 2 : une table My cc or7 Sni* to View Complétez le tableau ci-dessous : Fig 10 Nom de la table CARCON PRODUIT Exemple de tuple l, « sanne », « Hubert », 10/10/1960, « Le sympa ») L 100… , « montée à la mode. Exemple de champ Dossard, Prenom, Enseigne Refproduit, proxttcproduit Exemple de valeur est caractérisé par un nom et un type. Exemples : Nom de l’attribut : Type de l’attribut Exemple de valeur : Soit la relation LECTEUR (Nom Lecteur, PrenomLecteur) et le contenu de la table correspondante Fig. 3 : Table lecteur Que pensez-vous de l’exemple ci-dessus ? La présence d’un homonyme (le lecteur BERTRAND) ne permettra pas d’identifier de manière certaine un lecteur. Il faut définir une clé pour cette relation. Une clé est donc :

La clé est un attribut

Désolé, mais les essais complets ne sont disponibles que pour les utilisateurs enregistrés

Choisissez un plan d'adhésion
qui permet de distinguer chaque occurrence d’une relation par rapport à toutes les autres de manière unique. Toutes les valeurs de cet attribut doivent être uniques. La clé est par conséquent non vide et non nulle. Une relation doit posséder au moins un attribut et si c’est le cas, ce doit être la clé. PAG » rif 7 Fig. 4 : Caractéristiques de la table Lecteur Dans l’exemple ci-dessous, préclsez pour chaque champ s’il peut ou non être clé candidate. Justifiez. Fig. 5 : Table Eleve Code élève oui car unique Date naissance non car plusieurs peuvent être nés le même jour

Code insee oui car unique Codedivision non car vide 11,2. Clé étrangère Reprenons l’exemple de la « Fig. 2 . Une table MySQL » en entier Table « Produit » Fig. 6 : Relations entre tables Table « Gamme » A quoi correspond la dernière colonne de la table produit ? le dernier champ appelé codegamme correspond en fait à une valeur existante dans une autre table : la table Gamme. Ce type d’attribut permet de matérialiser les liens entre les différentes tables. Une clé étrangère correspond à la clé primaire d’une autre table.

Le champ codegamme assure la liaison entre les deux tables. Ainsi, dans la table Produit, on note que le produit désigné par « Lit 140x 190 cm » fait partie de la gamme na3. Dans la table Gamme on trouvera que la gamme n03 correspond aux produits fabriqué en teck. Par convention, une clé étrangère est précédée d’un # et est placée en dernier dans la liste des attributs d’une relation. Le schéma relationnel de cette base peut donc s’écrire de la manière suivante : GAMME (codegamme, libel PAGF3Cf7 autres de maniere unique.

Toutes les valeurs de cet attribut doivent être uniques. La clé est par conséquent non vide et non nulle. Qu’est-ce qu’une clé candidate ? Les clés candidates sont des attributs susceptibles de pouvoir jouer le rôle de clé. Qu’est-ce qu’une clé étrangère ? C’est un attribut qui permet de matérialiser les liens entre les Ill. Représentations possibles La représentation du modèle relationnel est indépendante de la base de données utilisée et peut se présenter sous plusieurs formes.

Tout schéma relationnel doit cependant préciser : Les tables avec leurs noms Les champs des tables Les clés primaires Les clés étrangères Les liaisons clés primaires/clés étrangères Pour illustrer les différents modes de représentation nous artirons d’un exemple classique, des commandes réalisées par des clients Un client est identifié par un numéro et on note son nom, son adresse. pour une commande, identifiée par un numéro, on précisera sa date ainsi que le client qui l’a passée. 111. 1 .

Représentation en intention . CLIENT (Numclient, Nomcl Client) relations entre des champs qui ne portent pas forcement le même nom. Ainsi nous aurions pu avoir : COMMANDE (NumCmde, DateCmde, NumClientCmde) NumCmde : Clé primaire NumClientCmde : Clé étrangère en référence à NumClient de la table Client IV. Notions d’intégrité Dans le cours des fonctionnalités d’un SGBD, nous avons vu que fun des principaux objectifs d’un SGBDR était dassurer : la cohérence des données appelée également intégrité des données.

Cette cohérence est en partie assurée par la mise en place de contraintes d’intégrité. IV. I. Intégrité de « niveau table » Utilisons l’exemple ci-dessous : Quelles sont les clés candidates et la clé primaire ? Clé candldate : refproduit Clé primaire : refproduit Quelles sont les caractéristiques d’une clé primaire Doit être unique et par conséquent non vide et non nulle. Comment mettre en place ces caractéristiques ? A la création de la table, il faut mettre en place ces caractéristiques aussi appelées les contraintes de domaines.

Elles sont liées aux colonnes des tables (attribut non nul, entier positif, valeurs comprises dans un intervalle… ). IV. 2. Intégrité référentielle Reprenons l’exemple des meubles : vous basant sur les données ci-dessus et en effectuant les actions ci-dessous, dites, selon vous et en justifiant, si ces actions suivantes respectent la cohérence des données : Action Cohérence respectée ? Créer une nouvelle gamme (codegamme 4)

Créer un nouveau produit avec le codegamme 4 Créer un nouveau produit avec le codegamme 5 non Supprimer le produit « CHOOI » Supprimer la gamme avec le codegamme 2 Créer une nouvelle gamme (codegamme 5) Supprimer la gamme avec le codegamme 5 Modifier de 2 à 3 le codegamme du produit « CHOOZ » Modifier de 2 à 6 le codegamme du produit « CH003 » Modifier le codegamme de 3 à 10 du teck Modifier le codegamme de 1 à 7 du rotin Synthèse . Le SQGBR vérifie la cohérence clé étrangère/clé primaire. La définition d’une telle contrainte forcera le SGBDR à faire les contrôles suivants :

Dans un champ clé étrangère il est impossible de renseigner une valeur qui n’existe pas dans la clé rimaire de la table référente (Le code gamme no 5 ne p té à un produit si la Application La représentation graphique suivante reprend l’exemple vu en cours d’un étudiant qui peut s’inscrire à O, 1 ou plusieurs modules. a) Donner des exemples de tuples pour chaque table. Etudiant • 0001 PAYET Charles 0002 GRONDIN Laure 0003 HOARAU jean Module OOOA Math OOOB Français oooc Anglais Inscription oooa b) Donner les différentes r s possibles de ce modèle b) Donner les différentes représentations possibles de ce modèle