Anzeige
Anzeige

Más contenido relacionado

Anzeige

controle donnee.pptx

  1. Contrôle de données Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) Ministère de l’Enseignement Supérieur et de la Recherche Scientifique Université Dr Tahar Moulay de Saïda Faculté de Technologie Département d’Informatique Master II - Réseaux Informatiques et Systèmes Répartis (RISR) UEF32 - Administration et Sécurité des Systèmes d’Information Répartis (ASSIR)
  2. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 1- Gestion des contraintes Types de contraintes  Domaine  Unicité  Intégrité référentielle Dans un SGBD centralisé, c’est bien géré  Dans la définition des tables Les contraintes peuvent être déclarées de deux manières :  Inline constraints : En même temps que la colonne (valable pour les contraintes monocolonnes), ces contraintes sont dites « en ligne ».  Out-of-line constraints : Une fois la colonne déclarée, ces contraintes ne sont pas limitées à une colonne et peuvent être personnalisées par un nom.
  3. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 1- Gestion des contraintes Contraintes de Domaine  Check  NOT NUL Se gère par fragment Exemple: Inline constraints CREATE TABLE Etudiant (num_etud NUMBER(6) PRIMARY KEY, nom_etud CHAR(20) NOT NULL, Prenom_etud CHAR(30), note NUMBER(4,2) CHECK (note BETWEEN 0 AND 20));
  4. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 1- Gestion des contraintes Exemple: Out-of-line constraints CREATE TABLE Etudiant (num_etud NUMBER(6) PRIMARY KEY, nom_etud CHAR(20), Prenom_etud CHAR(30), note NUMBER(4,2), CONSTRAINT nn_nom CHECK (nom IS NOT NULL), CONSTRAINT ck_note CHECK (note BETWEEN 0 AND 20)); Conventions recommandées - Préfixez par pk_ le nom d’une contrainte clé primaire, fk_ une clé étrangère, ck_ une vérification, un_ une unicité. - Si vous ne nommez pas une contrainte, un nom est automatiquement généré sous la forme suivante : SYS_Cnnnnnn (n entier).
  5. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 1- Gestion des contraintes Contraintes d’unicité  Unique  Primary key  Gérable par fragment  Globalement non  Utilisation de trigger Exemple: Out-of-line constraints CREATE TABLE Produit (num_prod NUMBER(5), design_prod CHAR(20), Qte_stk NUMBER(10,2) DEFAULT 0, CONSTRAINT pk_produit PRIMARY KEY(num_prod), CONSTRAINT un_design UNIQUE (design_prod));
  6. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 2- Gestion de la clé primaire distribuée CREATE TRIGGER cle_primmaire INSTEAD OF INSERT ON Table BEGIN IF :New.cle < 1000 THEN INSERT INTO Table1@site1(cle,attr1) VALUES(:New.cle,:New.attr); ELSE INSERT INTO Table2@site2(cle,attr2) VALUES (:New.cle,:New.attr); END IF; END; 1- Utilisation d’un trigger pour la gestion de la clé primaire selon une politique (clé<1000 dans site 1 les autres dans site2). CREATE VIEW Table AS SELECT * FROM Table1@site1 UNION SELECT * FROM Table2@site2;
  7. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 2- Gestion de la clé primaire distribuée CREATE TRIGGER Existe_cle BEFORE INSERT ON Table1 FOR EACH ROW DECLARE v_cle NUMBER := 0; BEGIN SELECT COUNT(*) INTO v_cle FROM Table2@site2 WHERE cle2 = :NEW.cle1; IF v_cle=1 THEN RAISE_APPLICATION_ERROR(-20102, 'Le numéro de la cle existe dans la table Table2!'); END IF; END; 2- Utilisation d’un trigger pour la recherche de l’existence de la clé primaire dans le deuxième site, sinon on insert le tuple.
  8. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 3- Gestion de la clé étrangère distribuée  Intégrité référentielle  Gérable si la table mère et fille sont dans le même site  Globalement non  Utilisation de trigger Exemple: Out-of-line constraints CREATE TABLE Achat (num_achat NUMBER(5), num_prod NUMBER(5), prix_ach NUMBER(10,2), Qte_ach NUMBER(10,2), CONSTRAINT pk_produit PRIMARY KEY(num_achat), CONSTRAINT fk_ach_prod FOREIGN KEY (num_prod) REFERENCES Produit(num_prod));
  9. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) 3- Gestion de la clé étrangère distribuée Utilisation d’un trigger pour la recherche de l’existence de la clé étrangère dans la table mère. CREATE TRIGGER not_existe_cle BEFORE INSERT ON Table_enfant FOR EACH ROW DECLARE v_cle NUMBER := 0; BEGIN SELECT COUNT(*) INTO v_cle FROM Table_parent@site2 WHERE cle_parent = :NEW.cle_enfant; IF v_cle=0 THEN RAISE_APPLICATION_ERROR(-20102, 'Le numéro de la clé inexistant dans la table parent!'); END IF; END;
  10. Master II - RISR ... Adminstartion et Sécurité des Systèmes d'Information Répartis (ASSIR) Correspondance Oracle norme SQL
Anzeige