CONTRAINTES D'INTEGRITE - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

CONTRAINTES D'INTEGRITE

Description:

Assertion v rifi e par les donn es de la base, tout moment ... valeurs d'une colonne d'une relation est inclus dans l'ensemble des valeurs d'une colonne d'une autre ... – PowerPoint PPT presentation

Number of Views:129
Avg rating:3.0/5.0
Slides: 16
Provided by: michelmai
Category:

less

Transcript and Presenter's Notes

Title: CONTRAINTES D'INTEGRITE


1
CONTRAINTES D'INTEGRITE
2
NOTION DE CONTRAINTE D'INTEGRITE
  • OBJECTIF
  • Assurer la cohérence logique de la Base de
    Données
  • DEFINITION
  • Assertion vérifiée par les données de la base, à
    tout moment
  •  
  • CONCEPTION
  • -gt un schéma relationnel
  • -gt un ensemble de Contraintes d'Intégrité
    (CIs)

3
CLASSIFICATION DES CIs
  •   STRUCTURELLES
  • -gt liées au modèle relationnel
  • -gt unicité de valeur de clé, ...
  • COMPORTEMENTALES
  • -gt liées aux applications
  • -gt "La moyenne des salaires n'est pas
    inférieur à 10 000"
  • INTRA-RELATION
  • -gt met en jeu une seule relation
  • -gt non nullité d'un attribut 
  • INTER-RELATION
  • -gt met en jeu plusieurs relations
  • -gt intégrité référentielle

4
INTRA-RELATIONS
  • DOMAINE
  • "Le degré d'un vin varie entre 5 et 15"
  •  
  • NON NULLITE
  • "Toute valeur d'un numéro de vin est connue" 
  •  
  • UNICITE DE CLE
  • "Tous les numéros de vin sont différents"
  • DEPENDANCE FONCTIONNELLE
  • "Le numéro de vin détermine le cru "  
  •  
  • TEMPORELLE
  • "Le degré d'un vin ne peut pas croître"
  • AGREGAT 
  • "La moyenne des quantités de vin bu par tous les
    buveurs ne doit pas excéder 10 litres"

5
INTEGRITE REFERENTIELLE
  • DEFINITION
  • Un attribut (ou groupe d'attributs) d'une
    relation apparaît comme clé dans une autre
    relation
  • gt contrainte inter-relation
  •  
  • EXEMPLE
  • "Une récolte doit référencer un vin et un
    producteur existants"
  •  
  • VERIFICATION
  • 1/ Insertion d'une récolte
  • -gt le vin et le producteur doivent exister
  • 2/ Suppression d'un vin
  • -gt ce vin ne doit pas être récolté

6
INTER-RELATIONS
  • REFERENTIELLE
  • -gt notion de clé étrangère
  •  
  • INCLUSION
  • -gt L'ensemble des valeurs d'une colonne d'une
    relation est inclus dans l'ensemble des valeurs
    d'une colonne d'une autre relation
  • "Toute ville de résidence d'un buveur est une
    ville de résidence d'un producteur"
  • GENERALE
  • "La somme des quantités livrées à un buveur est
    inférieure ou égal à la somme des quantités
    commandées par ce buveur"

7
EXPRESSION
  • QUAND ? 
  • -gt à la création du schéma 
  • -gt au cours de la vie de la base
  • COMMENT ?
  • -gt à l'aide du langage de requêtes
  • (SQL, QUEL, ... )
  • -gt via un langage spécifique
  • QU'OFFRE LES SGBDs ?
  • -gt très peu de CIs en général
  • (unicité valeur et non nullité) 
  • -gt les autres CIs sont vérifiées
  • par des programmes

8
DECLARATIONS
  • NORME SQL
  • SQL86 unicité de valeur, non nullité,
  • vue avec "check option"
  • SQL89 domaine, clé, intégrité
  • référentielle avec "rejet"
  • SQL2 intégrité référentielle avec
  • "cascade delete et update"
  • INGRES
  • -gt Extension de SQL
  • -gt n'importe quelle CI mono-relation
  • -gt n'importe quelle CI multi-relations
  • avec les procédures BD et les règles

9
EXEMPLES EN SQL
  • SQL86
  • create table EMPLOYE (
  • Nom Char (20) unique not null,
  • Age Integer )
  •  
  • SQL89 
  • create table EMPLOYE (
  • Nom Char (20) primary key,
  • Age Integer check (Age gt 0)
  • Equipe Char (20) references GROUPE)
  •  
  • create table GROUPE (
  • Nom Char (20) primary key)
  •  
  • SQL92 
  • create table EMPLOYE (
  • Nom Char (20) primary key,
  • Equipe Char (20) references GROUPE
  • on delete cascade) 

10
EXEMPLES EN QUEL
  • EMPLOYE (Nom, Salaire, Nplus1)
  • 1/ Mono-relation
  • create integrity on EMPLOYE is Age gt 18 and
    Age lt 65
  • create integrity on EMPLOYE is
  • Nplus1 is not null
  • 2/ Multi-relations avec auto-jointure
  • range of E,M is EMPLOYE
  • create integrity on EMPLOYE is E.Salaire
    M.Salaire
  • or
  • E.Nplus1 / M.Nom

11
LA NOTION DE TRANSACTION
  • BD COHERENTE
  • -gt toutes les CIs sont vérifiées
  •  
  • TRANSACTION
  • -gt Unité d'exécution atomique pour le SGBD
  • -gt Un ensemble de requêtes SQL qui
    s'exécute en "tout ou rien"
  • -gt Fait passer la BD d'un état
    cohérent à un autre état cohérent
  • CONTEXTE DE VERIFICATION
  • -gt une transaction avec mise à jour

12
VERIFICATION
  • VERIFICATION DIFFEREE
  • -gt les mises à jour sont exécutées
  • -gt les CIs sont évaluées à la fin de la
    transaction, et les mises à jour ne
    satisfaisant pas les CIs sont défaites
  • -gt CIs Référentielle, générale
  •  
  • VERIFICATION IMMEDIATE
  • -gt CIs sont évaluées avant chaque requête de
    mise à jour
  • -gt Mise à jour est faite uniquement
  • si les CIs sont vérifiées
  • -gt CIs domaine, unicité, (pb cycle)

13
PROBLEMES D'OPTIMISATION
  • CONSISTANCE D'UN ENSEMBLE 
  • -gt pas de règle contradictoire 
  •  
  • ELIMINATION DES REDONDANCE
  • (utile avec la définition des vues)
  •  
  • 1/ Vin.Degré gt 15 (vue)
  • 2/ Vin.Degré lt 14 (requête)
  • gt Aucun Vin.Degré lt 14
  •  
  • VERIFICATION
  • -gt nombre minimal de données mises en jeu par
    la vérification 
  • -gt vérification sur certains types de mises à
    jour uniquement

14
LA NOTION DE TRIGGER
  • DEFINITION
  • Règle spécifiant une action à exécuter quand une
    condition sur la base est vérifiée suite à une
    mise à jour ou une interrogation
  • EXPRESSION D'UN TRIGGER
  • sur évènement
  • si ltconditiongt
  • alors ltactiongt
  • -gt nature déclarative
  • -gt l'action requête SQL, programme
  •  
  • EXEMPLE
  • sur Update de Produit
  • si Produit.Qté lt Seuil
  • alors
  • Commande de Produit

15
VUES et CIs
  • Check option sur un create view
  • (SQL86)
  • CI Domaine
  • create view VINS_OK
  • as select
  • from VINS
  • where DEG gt 8 and DEG lt 14
  • with check option
  •  
  • CI Referentielle
  • create view PRODUCTIONS_OK
  • as select P.
  • from PRODUCTIONS P
  • where P.NV in ( select NV
  • from VINS)
  • and P.NVT in ( select NVT
  • from VITIS)
  • with check option
Write a Comment
User Comments (0)
About PowerShow.com