WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Gestion d'informations. Mutation vers les bases de données relationnelles et le langage SQL.


par Jacques MUDUMBI
Université de Yaoundé 1 - Master 2017
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

III.6. Intégrité structurelle

III.6.1. Notion et classification

Est appelé contrainte d'intégrité (CI), une propriété ou une règle que doivent satisfaire les données de la base pour être considérées comme correctes (sans ambiguïtés ni incohérences). Une base de données est dite intègre ou cohérente si ses contraintes d'intégrité sont satisfaites.

Cela dit, qu'en pratique, ces contraintes ont pour effet de limiter les occurrences possibles des structures d'informations. La conception d'une base de données relationnelle se compose du schéma relationnel même et d'un ensemble de CIs.

De cette présentation faite, il convient de classer les contraintes selon les valeurs d'attributs à savoir:

? Les contraintes d'intégrité statiques sont des propriétés qui doivent être vérifiées à tout moment :

? Les contraintes individuelles imposent un type de donnée (ex. entier long), un

ensemble de valeurs (par exemple, AnnéeEmbauche={2010..2017},
AnnéeEmbauche={2001, 2010, 2015}, AnnéeEmbauche>AnnéeNaissance) ou une valeur obligatoire (ex. "l'attribut pilote doit être obligatoirement renseigné").

? Les contraintes intra-relation portent sur les valeurs des attributs : unicité devaleur, cardinalité, dépendances entre les valeurs d'attributs différents (ex. "les espèces e3 et e6 ne peuvent cohabiter").

? Les contraintes inter-relations sont des dépendances référentielles ou existentielles (ex. "tout vol doit avoir comme commandant de bord une personne référencée dans la table des pilotes").

63

? Les contraintes d'intégrité dynamiques sont des propriétés que doit respecter tout changement d'état de la base de données; elles en définissent les séquences possibles de changement d'état. (ex. "le salaire d'un employé ne peut qu'augmenter")

Il s'ensuit que trois catégories de contraintes d'intégrité structurelles sont particulièrement importantes dans le modèle relationnel : les contraintes d'unicité (chaque table possède une clé d'identification qui en identifie les tuples de manière unique), les contraintes de domaine (les valeurs possibles d'un attribut sont restreintes à un ensemble de valeurs prédéfinies) et les contraintes d'intégrité référentielle (chaque valeur d'une clé étrangère doit exister comme valeur de la clé d'identification dans la table référencée).

III.6.2. Intégrité référentielle

Ces choses étant dites, un avantage demeure, car le mécanisme d'intégrité référentielle impose que chaque valeur d'une clé étrangère existe comme valeur de la clé d'identification dans la table référencée.

Tout SGBDR digne de ce nom attire et supporte ce concept fondamental ; prenons un exemple pour l'illustrer. Prenons le cas de la normalisation en 3NF de la table ELEVE, dans laquelle figure la classe d'inscription, ait fourni la table de la figure III.14. On remarque qu'aucune valeur de la clé étrangère _Class ne viole l'intégrité référentielle. Mais l'insertion d'un tuple tel que "0005, Mader, DESSDC" serait rejetée si la clé primaire de la table CLASSE ne contient pas la valeur "DESSDC".

Partant de ces figures, l'on remarque que le respect de l'intégrité référentielle implique certaines actions. On a vu que le SGBDR vérifiait l'existence d'une valeur de clé étrangère lors de l'insertion d'un nouveau tuple ; mais que se passe-t-il si l'on supprime ou si

64

l'on modifie une valeur de la clé primaire dont dépendent d'autres valeurs dans une clé étrangère ? Plusieurs stratégies sont possibles:

Tout d'abord, la suppression (ou la mise à jour) interdite : l'opération est tout simplement refusée ( ex. la suppression de la ligne "MEEA, Maîtrise EEA" est impossible car des tuples d'ELEVE y font référence),

Ensuite, la suppression(ou la mise à jour) en cascade: dans ce mode, lorsqu'un tuple de la table référencée est supprimé (ou, respectivement, modifié dans ses attributs clés), tous les tuples dépendants sont aussi supprimés (resp. modifiés). Par exemple, la suppression du tuple "MEEA, Maîtrise EEA" entraîne celle des élèves portant les numéros 0001 et 0003 ; le changement de clé "MEEA" en "MEA" affecte de la même façon les valeurs de la clé étrangère pour ces élèves.

Enfin, la suppression avec initialisation: toutes les clés étrangères égales à la clé primaire supprimée sont mises à la valeur nulle ( ex. la suppression du tuple "MEEA, Maîtrise EEA" entraîne la mise à NULL de l'attribut _Class des élèves portant les numéros 0001 et 0003).

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Qui vit sans folie n'est pas si sage qu'il croit."   La Rochefoucault