La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

© INT 1 Evry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception dune BD relationnelle.

Présentations similaires


Présentation au sujet: "© INT 1 Evry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception dune BD relationnelle."— Transcription de la présentation:

1 © INT 1 Evry, mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception dune BD relationnelle +Protection des informations Perspectives des BD

2 © INT 2 Evry, mai 2000 Protection des informations +Respect des règles de gestion des données (contraintes dintégrité) Définition de schémas externes (vues relationnelles) Définition de droits daccès en fonction des utilisateurs

3 © INT 3 Evry, mai 2000 Contraintes dintégrité Règles de gestion des données Etat cohérent de la base Vérifiées en permanence

4 © INT 4 Evry, mai 2000 Exemples de contraintes dintégrité Schéma de la BD Vins Vins(num, cru, annee, degre) Producteurs(num, nom, prénom, region) Recoltes(nprod, nvin, quantité) Modèle relationnel : Unicité de la clé (num dans vins) CI référentielle (nvin vers num) Domaine : Année entre 1970 et 2000 Région : Bourgogne, Beaujolais, … Non nullité : Nom de cru de vin obligatoire Comportementale: Le degré dun vin est supérieur à 7 Le degré dun vin augmente

5 © INT 5 Evry, mai 2000 Les CIs dans les SGBD Quand les déclarer ? À la création du schéma de BD Au cours de la vie de la BD Comment les exprimer? SQL Extensions de SQL Quoffrent les SGBD ? Peu de CIs en général Autres CIs vérifiées par programme

6 © INT 6 Evry, mai 2000 Les CIs dans les SGBD (2) Normes : SQL 86 : unicité, non nullité, vue avec « check option » SQL89 : domaine, clé, intégrité référentielle avec « rejet » SQL2 (SQL92) : intégrité référentielle avec «cascade delete et update » Définition d une CI 2 possibilités: v À chaque définition dattribut v À la fin de la définition dune relation

7 © INT 7 Evry, mai 2000 Exemple CREATE TABLE VINS ( num integer PRIMARY KEY, cru char (40) NOT NULL, annee integer CONSTRAINT Cannee CHECK (annee between 1970 and 2000), degre number(4,2) CONSTRAINT Cdegre CHECK (degre between 9.0 and 15.0)) CREATE TABLE PRODUCTEURS ( num integer PRIMARY KEY, nom char(40), prenom char(40), region char(40)) ALTER TABLE PRODUCTEURS add CONSTRAINT Cregioncheck (region in ('Bourgogne', 'Beaujolais', 'Alsace', 'Jura', 'Corse')) CREATE TABLE RECOLTES( nprod integer, nvin integer, quantite integer) ALTER TABLE RECOLTES add primary key (nprod, nvin) ALTER TABLE RECOLTES add constraint refVIN foreign key (nvin) references VINS(num) on delete cascade ALTER TABLE RECOLTES add constraint refREP foreign key (nprod) references PRODUCTEURS(num) on delete cascade

8 © INT 8 Evry, mai 2000 BD incohérente ? CI et transactions BD cohérente : toutes les CIs sont vérifiées Transaction = ensemble de traitements sur la BD Fait passer la BD dun état cohérent à un autre état cohérent Il se peut que ces contraintes dintégrité ne soit pas vérifiées au cours de la transaction Exécution atomique

9 © INT 9 Evry, mai 2000 Problèmes liés aux CIs Cohérence Pas de règles contradictoires Redondance Age > 18 et âge > 21 Optimisation Nombre minimal de données mises à jour en jeu pour la vérification Vérification sur certains types de màj uniquement

10 © INT 10 Evry, mai 2000 Protection des informations Respect des règles de gestion des données (contraintes dintégrité) +Définition de schémas externes (vues relationnelles) Définition de droits daccès en fonction des utilisateurs

11 © INT 11 Evry, mai 2000 Vues relationnelles

12 © INT 12 Evry, mai 2000 Vues relationnelles (2) Objectifs : Indépendance logique Adaptation aux applications Intégration des applications existantes Dynamique du schéma de la base Confidentialité et sécurité Décentralisation de ladministration dune BD Hétérogénéité des modèles

13 © INT 13 Evry, mai 2000 Vues relationnelles Relation virtuelle Ensemble de tuples n existe pas physiquement Calculable à l exécution Définie par une requête SQL Utilisable comme une relation Utilisable pour définir une autre vue

14 © INT 14 Evry, mai 2000 Syntaxe CREATE VIEW nom_vue [{nom_attribut}] AS requête [WITH CHECK OPTION ] WITH CHECK OPTION interdit : dinsérer des tuples qui ne respectant pas les restrictions de la vue de modifier un tuple en violant les contraintes définies sur la vue ExempleCREATE VIEW vins_beaujolais (no, nom, degre) AS SELECT num, cru, degre FROM vins WHERE cru=Beaujolais ;

15 © INT 15 Evry, mai 2000 Exemples Create view crus (nom) as select distinct cru from vins; Create view buveurs_beaujolais_paris (num, nom, qté_cdée) as select B. nb, B.nom, sum(qté) from buveurs B, cdes C, Vins V where B. nb = C.nb and C.nv=V.nv and V.cru = Beaujolais and B.ville = Paris group by B. nb, B.nom;

16 © INT 16 Evry, mai 2000 Exemples (2) Relation : Parent (asc, dsc) create view grand_parent (asc, dsc)as select P1.asc, P2.dsc from parent P1, parent P2 where P1.dsc = P2.asc; create view arr_grd_parent (asc, dsc) as select P.asc, GP.dsc from parent P, grand_parent GP where P.dsc=GP.asc;

17 © INT 17 Evry, mai 2000 Manipulation de la BD au travers des vues Consultation Toujours possible Nom de la vue dans la clause from SELECT * FROM vins_beaujolais; Mises à jour : Rarement possible

18 © INT 18 Evry, mai 2000 Mises à jour La clause DISTINCT ne doit pas être utilisée dans la requête La clause FROM ne doit contenir qu'une seule relation; si la relation source est une vue, celle-ci doit vérifier cette contrainte La clause SELECT ne doit pas faire référence à des expressions, ou des fonctions La clause WHERE ne doit pas contenir de requête imbriquée La requête ne doit pas contenir de clause GROUP BY ni de clause HAVING

19 © INT 19 Evry, mai 2000 Mises à jour (2) Create view Vins_bordeaux as select nv, mil, deg from vins where cru = Bordeaux create view deg_moy_par_cru as select cru, avg (deg) from vins group by cru Tuples identifiables Augmenter la moyenne des degrés de 1?

20 © INT 20 Evry, mai 2000 Mises à jour (2) Create view buveurs_beaujolais_paris (num, nom, qté,_cdée) as select B. nb, B.nom, sum(qté) from buveurs B, cdes C, Vins V where B. nb = C.nb and C.nv=V.nv and V.cru = Beaujolais and B.ville = Paris group by B. nb, B.nom Ajouter 10 à la quantité commandée par le buveur 10?

21 © INT 21 Evry, mai 2000 Suppressions et renommage Destruction: DROP VIEW Toutes les vues qui utilisent cette vue sont automatiquement détruites Relation de base détruite => toutes les vues définies sur cette relation sont automatiquement détruites Renommage: RENAME ancien_nom TO nouveau_nom

22 © INT 22 Evry, mai 2000 Traitements des vues par un SGBD Techniques: Modification de question (Ingres) Restructuration d arbre algébriques (System/R) Matérialisation de la vue (Sabre)

23 © INT 23 Evry, mai 2000 Modification de question Principe: modification de la question posée sur la vue en réintégrant les relations de base Exemple create view recoltes10 as select nvin select * from recoltes from recoltes10 where nprod = 10where qte > 250 select nvin from recoltes where nprod = 10 and qte > 250

24 © INT 24 Evry, mai 2000 Restructuration algébrique Nécessite une compilation préalable des vues Principe : fusionner les arbres algébriques optimiser le nouvel arbre

25 © INT 25 Evry, mai 2000 Matérialisation des vues Réalisée à lexécution de la requête Principe : Matérialisation de la vue par exécution de la question la spécifiant Optimisation et exécution de la requête sur la vue, considérée comme une relation de base

26 © INT 26 Evry, mai 2000 Critiques des vues Sécurité Différentes façons de voir la BD Indépendance logique Faciliter la manipulation Mise à jour impossibles en général

27 © INT 27 Evry, mai 2000 Protection des informations Respect des règles de gestion des données (contraintes dintégrité) Définition de schémas externes (vues relationnelles) +Définition de droits daccès en fonction des utilisateurs

28 © INT 28 Evry, mai 2000 Autorisations Techniques pour assurer la confidentialité: Définition de contraintes d'autorisation Contrôle de flux de données Contrôle d'inférence Cryptographie

29 © INT 29 Evry, mai 2000 Concepts SQL Notion d'utilisateur : User_name + mot de passe Notion de BD logique == propriétaire Classes d'utilisateurs hiérarchisées Utilisateur final : CONNECT Programmeur : RESSOURCE Administrateur : DBA

30 © INT 30 Evry, mai 2000 Privilèges Créateur d'une relation ou d'une vue = propriétaire Peut donner un droit Peut autoriser à transmettre un droit Droits sur un objet : SELECT : consultation DELETE : suppression INSERT : insertion UPDATE : modification

31 © INT 31 Evry, mai 2000 Langage de définition de contraintes d'autorisation GRANT ON TO [WITH GRANT OPTION]; Defude GRANT SELECT ON vins TO carpentier; GRANT SELECT, UPDATE(cru) ON vins TO carpentier, assar WITH GRANT OPTION; GRANT ALL ON vins TO carpentier ; Carpentier select * on defude.vins Synonyme défini vins=defude.vins select * on vins

32 © INT 32 Evry, mai 2000 Rôles Droit 1 (lect. sur vins) Droit 2 (lect. sur récoltes) Droit 3 (lect. sur prod.) Droit 1 (lect. sur vins) Droit 2 (lect. sur récoltes) Droit 3 (lect. sur prod.) Rôle

33 © INT 33 Evry, mai 2000 Droits et vues Donner des droits de lecture non pas sur la relation entière, mais sur une vue basée sur la relation => restreindre laccès à quelques attributs CREATE VIEW vins_beaujolais AS SELECT num, cru, degre FROM vins WHERE cru= Beaujolais ; GRANT SELECT ON vins_beaujolais TO producteurs_beaujolais; Droits + vues => bonne protection des données

34 © INT 34 Evry, mai 2000 Retirer des droits REVOKE ON FROM Retire les droits transmis REVOKE ALL ON vins FROM defude;


Télécharger ppt "© INT 1 Evry, 29-31 mai 2000 Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception dune BD relationnelle."

Présentations similaires


Annonces Google