Vous êtes sur la page 1sur 6
Chapitre 5 : Intégrité dans les bases de données Les conditions d'intégrité étudiées dans les requétes des bases de données servent essentiellement 4 filer d'un ensemble d’états d'une base de données les états valides. Elles sont des conditions sémantiques issues de l'application correspondante et sont fixées pendant la conception de la base de données. Le présent chapitre discute des conditions d'intégrité pour étudier les modalités de fixation de ces contraintes d'intégrité. Aussi les facilités de contrle de ces contraintes sont étudiées. 5.1 Les contraintes d'intégrité Le contréle dintégrité désigne le fait déviter les fautes ou erreurs sémantiques ou des états sémantiquement insensés de la base de donnée par la surveillance et le respect des contraintes diintégrité requises. Il existe plusieurs possibilités de fixer le contrdle d'intégrité 1. La tache de contréle dintégrité peut étre laissée au concepteur de application (ou méme & Vutilisateur). Cependant ceci est non satisfaisant car le SGBD n'aurait donc pas de contrdle propre sur la consistance des données enregistrées. Les examens de correction par les tests de plausibilité pour les requétes se trouvent si possible dans les applications. 2. Cette téche peut étre aussi attribuée au concepteur des transactions, Cest-a-dire que les programmes de transactions doivent prendre en compte la consistance de la base de donnée, Les problémes procédent du fait que pendant la conception de la base de donnée les contraintes diintégrité doivent étre intégrées dans la spécification des transactions et les spécifications ainsi obtenues doivent étre traduites en des programmes exécutables pendant l'implémentation. De telles applications sont encore dans les langes des programmes de recherche. 3. Aujourd'hui, dans la pratique le contrale di égrité est laissé au SGBD. Celui-ci est généralement pourvu d'un moniteur spécial qui vérifie les contraintes d'intégrité, Cela signifie que niimporte quelle transaction peut-étre conduite et cest le SGBD qui renvoie celle qui ne respecte pas la consistance de la base de donnée. La demiére approche a des avantages par rapport aux deux autres, En effet, non seulement différentes transactions sont permises mais les programmes d'applications et les utilisateurs ad hoc ne doivent pas s'occuper des transactions. Généralement les sortes de contraintes d'intégrité suivantes sont possibles : 1. Les contraintes statiques limitent les états de la base de donnée pour un schéma correspondant. Elles relient alors des états de la base de donnée a une valeur booléenne. 2, Les contraintes transitionnelles ou semi-dynamiques limitent les transitions d’états possibles est-a-dire la maniére dont on passe d'un état 4 un autre, On ne se rapporte pas seulement a un état mais & une paire d'états consécutifs. 3. Les contraintes dintégrité consécutives en tant que généralisation des contraintes transitionnelles limitent les séquences possibles des états clest-i-dire qu’elles ne se rapportent pas seulement & deux mais 8 plusieurs états qui s'exécuttent dans une suite temporelle. Les contraintes dynamiques sont aussi désignées de contraintes temporelles. A partir du modéle relationnel Yon peut énumérer toute une série de contraintes d'intégrité statiques. Toutes les contraintes s'appliquent Jocalement sur les valeurs dattributs, les n-uplets, les relations ou les bases de données. 1. Les contraintes de domaine ou d'attributs limitent les valeurs que peut prendre un n-uplet dans une relation. Concrétement, il s'agit de : a) La fixation des bornes supérieures ou inférieures pour les valeurs numériques d'un attribut année between 1982 and 2010 ou edition > 0 b) définition de certaines valeurs (dans le sens d'une énumération) pour un attribut alphanumérique. Par exemple Typ in ('M', 'S") pour fixer les entrées dans la table Livre. c) contraintes de nullité (not-null) excluent l'utilisation des valeurs nulles pour certains attributs, Un exemple ISBN smallint not null pourla table Livre. 2) les contraintes de n-uplets concernent les n-uplets individuels dans une relation donnée. Elles spécifient par exemple par une comparaison un rapport entre les valeurs de plusieurs attributs. Exemple: On peut requérir que le n? de fax et de tél d'un éditeur soit différent ou que le nom de Ja librairie soit différent du nom de lieu, 3) Les contraintes de relation concement Yensemble de TOUS les n-uplets d'une relation. Quelques formes spécifiques sont : a) Les contraintes de clé exigeant pour un ou plusieurs attributs d'un schéma relationnel la propriété de clé, b) Les contraintes d'agrégat. Par exemple “La somme des salaires de tous les lecteurs d'une maison dition ne doit pas dépasser une certaine valeur maximale". ©) Les contraintes récursives qui s'impliquent dans la fermeture transitive d'une relation. Par exemple dans une base de donnée des routes, 'on peut requérir que chaque lieu soit atteignable & partir de chaque autre, 4) Les contraintes référentielles définissent les liaisons spécifiques entre des paires de relation et cela généralement sous forme dinclusion ou d'exclusion, Llutilisation typique se trouve dans la définition des clés étrangéres avec un ou plusieurs attributs avec ou sans valeurs nulles. Comme indiqué, les conditions transitionnelles se rapportent a la transition d'un état ancien a un état nouveau de la base de donnée, Par exemple le nombre de livres dans une base de données ne doit pas se réduice. COUNT(LivreNouveau) >= COUNT (Livre). Dans SQL on retrouve les contraintes d'intégrité suivantes : 1) contraintes de clé 2) intégrité référentielle et clé étrangére 3) contraintes d'attributs comme supplément not null ou clause check 4) contraintes de n-uplets comme clause check. L’on peut aussi définir des contraintes de domaines ou de contraintes globales. Exemples create domain recent as smallint check (value between 1982 and 2010) create domain posint as smallint check (value > 6) L’on peut alors définir create table Book (ee Jahr recent not null, Edition posint, 2) 5.2 Dépendances des données et régles d’intégrité Les conditions d’intégrité fixent, en plus des noms, des attributs et des domaines de valeurs, quels sous-ensembles d’un produit cartésien sont des relations valables. Des conditions d’intégrité spéciales sont les dépendances des données. L’on distingue les dépendances fonctionnelles (FD), les dépendances multi-valeurs (MVD), les dépendances d’inclusion (ID) entre les tables. D’une maniére générale, un modéle de donnée relationnel doit satisfaire aux deux contraintes suivantes © Intégrité d’entité ‘© Intégrité référentielle L'intégrité d’entité signifie que les domaines des valeurs de I’attribut de la clé primaire ne doivent pas contenir des valeurs nulles. Lintégrité référentielle signifie que une clé étrangére Z d’une relation R2 correspond a une clé primaire Y d’une relation R1, alors chaque valeur Z de R2 apparait comme valeur Y dans R1 ou elle est nulle (dans chaque composante). Client | NePersonel AbreEe 2 Hard&Soft R22 [24 Softtech 19 : Firme | Abrége Nom Hard&Sofi RL Softtech 5.2.1 Dépendances fonctionnelles Un des concepts les plus importants dans la conception d'un schéma relationnel est la notion de dépendance fonctionnelle. Définition : Une dépendance fonctionnelle (functional dependency) est une contrainte entre deux ensembles d'attributs d'une base de donnée. Une dépendance fonctionnelle FD, X->¥Y spécifie une contrainte sur les n-uplets possibles d'un état r d'une relation R, ‘elles que les n-uplets tI et 12 appartenant & r, tI[X]= t2[X] => tl[Y] = 2[Y]. Personne | Nom Prénom _| Rue CodePostal_| Liew DateNaissance {Nom, Prénom, Rue, CodePostal, Lieu} -> {DateNaissance}. Une combinaison des valeurs Nom, Prénom, Rue, CodePostal, Lieu définit exactement une valeur de l’attribut DateNaissance, C’est-a- dire que dans la relation Personne aucun autre tuplet (Amadou, Haram, Fontaine 22, 13489, Kaélé, 2- 1-69} pour Nom, Prénom, Rue, CodePostal, Lieu ne doit exister avec une autre valeur que 2-1-96 pour date de naissance. Cela signifie que les valeurs de la composante Y d'un n-uplet r dépendent ou sont déterminés par les valeurs de X ou alternativement les valeurs de X déterminent d'une maniére univoque (fonctionnelle) les valeurs de la composante Y. On dit alors qu'il y a une dépendance fonctionnelle entre X et Y ou ¥ dépend fonctionnellement de X. X est la partie gauche pendant que Y est la partie droite de la FD La dépendance fonctionnelle est une propriété de la sémantique des attributs. TI existe un rapport Gtroit entre les dépendances des clés et les FDs. ar rapport aux opérations ¢'actualisation (updates) les FD représentent des contraintes spéciales intégrité et de consistance. Dans la pratique, il est impossible de spécifier toutes les dépendances fonctionnelles. L’ensemble de toutes les dépendances fonctionnelles est désigné par F*. On peut déduire (inférer) automatiquement certaines FD. Fs {SSN -> {ENANE, BDATE, ADDRESS, ONUNBER}, DNUMBER -> {DNAME, DMGRSSN}} On peut inférer FOL SSN ->{ONAME, DNGRSSN} FD2SSN -> SSN FO3 DUMBER -> DNAME Nota Bene : FD {X, Y} -> Z est abrégé XY -> Z et FD {X,Y,Z} > {U,V} est abrégé XYZ -> UV Régles dinférence pour les FDs Abréviation nom de la régle énoncé IRI reflexive rule XY alors XY IR2 augmentation rule (XY) | XZ->YZ IR3 transitive rule (XS Y, YoZ}]= XZ, Ra decomposition or projective rule {XPYZJ[= XOZY IRS union or additive rule (XY, XOZ}/= XOVZ IR6 pseudotransitive rule {XY, WZ] [= WXDZ Les régles de référence IR1 a IR3 sont appelées les régles d'inférence ou axiomes d'Amstrong qui a prouvé en 1974 qu'elles sont saines (sound) et complates (complete). Les concepteurs des bases de données spécifient généralement l'ensemble des dépendances fonctionnelles F déterminables facilement & partir de la sémantique ds attributs de R, ensuite les régles IRI, IR2 et IR3 sont utilisées pour inférer d'autres ED additionnelles. Une maniére systématique pour le faire consiste déterminer chaque ensemble d'attributs X qui appara la partie gauche d'une ED et de fixer tous les attributs qui en dépendent, Ainsi pour chaque ensemble d'attributs X, Yon détermine Yensemble X* d'attributs qui dépendent fonctionnellement de X par rapport a F. X* est appelé la closure de X sous F. Lialgorithme suivant calcule X* x xX} repeat oldxt:= x*; for each functional dependency Y->Z in F do if x* contains Y then x*:=x* Union Z until (x* = oldx*); Algorithme déterminant X*, la closure de X sous F Exemple. F = {SSN->ENAME, PNUMBER->{PNAME, PLOCATION}, {SSN, PNUMBER}->HOURS} {SSN}*=(SSN, ENAME} {PNUMBER}*={PNUMBER, PNAME, PLOCATION} {SSN, PNUMBER}*={SSN, PNUMBER, ENAME, PNAME, PLOCATION, HOURS} Lion peut aussi déteriner I'équivalence de deux ensembles de FD. Deux ensembles de FD sont équivalents si E+ = F+ c'est-a-dire que chaque FD de E peut étre inférée a partir de F et chaque FD de F peut étre inférée a partir de B. Aussi un ensemble de FD est dit minimal sil satisfait aux conditions suivantes 1, Chaque dépendance dans F posséde un seul attribut comme partie droite [Y|= 1 2, Lion ne peut pas remplacer une dépendance X->A dans F par une dépendance Y-> A oit ¥ est un sous-ensemble au sens propre de X et on obtient un ensemble de dépendance équivalent a F. 3. L’on ne peut pas supprimer une dépendance de F et obtenir un ensemble de dépendances équivalent a F. Une couverture! G de F est appelé base (de dépendance) de F si G est minimal et non redondant. Soit {A2BC, B>C, AB->D} F'={A>B, A>C, B->C, AB->D} est une couverture minimale droite (r-minimal) de F F'={A->B, A->C, B->C, A->D} est une couverture minimale de F (aussi bien droite que gauche), G= {A>B, B>C, A->D} est une base de F. NB. La notion de base est analogue a celui des espaces vectoriels. 5.3 Les transactions L’accés 8 des données sauvegardées dans une base de donnée est réglé par le SGBD. Il garantit pour la protection des données la sécurité des données. Les accés sont examinés par des autorisations utilisateurs, 'intégrité des données est assurée pendant la manipulation par les opérations appropriées et la consistance des données est maintenue dans utilisation paralléle des données par plusieurs utilisateurs. Le concept de transaction assure que 1’état de consistance de la base de données est transformé en un état consistant. Il obéit au principe dit ACID. * ATOMICITY : une transaction ne peut étre interrompue * CONSISTENCY : Le maintien de la base de donnée consistante * ISOLATION : Plusieurs utilisateurs n’interférent pas * DURABILITY : Les changements sont durables, 'Soit F et G des ensembles FD avec F=G alors G est appelé couverture de F et F est couverture de G.

Vous aimerez peut-être aussi