1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues l 1. Contexte l 2. Vues externes l 3. Interrogation des vues l 4. Mises à jour des vues l 5. Vues multidimensionnelles l 6. Sécurité et autorisations l 7. Conclusion
2 J. PHILIPP d'après G. Gardarin 1. Contexte d'utilisation Plan d'Accès Analyse syntaxique Analyse sémantique Gestion des schémas Modification de requêtes Contrôle d'intégrité Contrôle d'autorisation Ordonnancement Optimisation Elaboration d'un plan Exécution du plan Méthodes d'accès Contrôle de concurrence Atomicité des transactions META-BASE BD ANALYSEUR TRADUCTEUR OPTIMISEUR EXECUTEUR
3 J. PHILIPP d'après G. Gardarin Gestion du schéma l L'ensemble des schémas des BD est géré comme une base de données relationnelles appelée méta-base ou catalogue. l SQL2 normalise les tables de la méta-base (plus précisément des vues de ces tables) SCHEMA TABLES COLONNES CLES CONTRAINTES DOMAINES
4 J. PHILIPP d'après G. Gardarin Méta-base relationnelle l STRUCTURE TYPIQUE DU NOYAU (SQL2) SCHEMAS (CATALOG, NOMB, Créateur, Caractère_Set, …) TABLES (CATALOG, NOMB, NOMR, Type, …) DOMAINS (CATALOG, NOMB,NOMD, Type, Défaut, Contrainte, …) COLUMNS (CATALOG, NOMB, NOMR, NOMA, Pos, Type, …) TYPES (CATALOG, NOMB, NOM, MaxL, Precision, …) CONSTRAINTS (CATALOG, NOMB, NOMC, TypeC, NomR, …) USERS (NOM, …) l Elle peut être manipulée à partir des outils classiques (SQL).
5 J. PHILIPP d'après G. Gardarin 2. Vues externes l Objectif Indépendance logique des applications par rapport à la base. l Moyen Les vues sont des relations virtuelles dont la définition est stockée dans la méta-base. Elles sont interrogées et mises à jour comme des relations normales. l Problèmes Efficacité de l'interrogation. Mise à jour de la base au travers de ses vues.
6 J. PHILIPP d'après G. Gardarin Définition l Vue (View) Base de données virtuelle dont le schéma et le contenu sont dérivés de la base réelle à partir d'un ensemble de questions. l Une vue est donc un ensemble de relations déduites d'une bases de données, par composition de ses relations. l Par abus de langage, une vue d'une base de données relationnelle est une table virtuelle.
7 J. PHILIPP d'après G. Gardarin Création et destruction l Création d'une vue CREATE VIEW [ (LISTE D'ATTRIBUT)] AS [WITH CHECK OPTION] l La clause WITH CHECK OPTION permet de spécifier que les tuples de la vue insérés ou mis à jour doivent satisfaire aux conditions de la question. l Destruction d'une vue DROP
8 J. PHILIPP d'après G. Gardarin Exemples : la base des buveurs BUVEURS (NB, NOM, PRENOM, ADRESSE, TYPE) VINS (NV, CRU, REGION, MILLESIME, DEGRE) ABUS (NV, NB, DATE, QUANTITE) l (V 1 ) Les vins de Bordeaux CREATE VIEW VINSBORDEAUX (NV, CRU, MILL, DEGRE) AS SELECT NV, CRU, MILLESIME, DEGRE FROM VINS WHERE REGION = "Bordelais"
9 J. PHILIPP d'après G. Gardarin Exemples (suite) l (V 2 ) Les gros buveurs CREATE VIEW GROSBUVEURS AS SELECT NB, NOM, PRENOM, ADRESSE FROM BUVEURS B, ABUS A WHERE B.NB = A.NB AND A.QUANTITE > 10 l (V 3 ) Les quantités de vins bues par cru CREATE VIEW VINSBUS (CRU, MILL, DEGRE, TOTAL) AS SELECT CRU, MILLESIME, DEGRE, SUM(QUANTITE) FROM VINS V, ABUS A WHERE V.NV = A.NV GROUP BY CRU
10 J. PHILIPP d'après G. Gardarin Exemple : la base des produits VENTES(NUMV, NUMPRO, NUMFOU, DATE, QUANTITE, PRIX) PRODUITS (NUMPRO, NOM, MARQUE, TYPE,PRIX) FOURNISSEURS (NUMFOU, NOM, VILLE, REGION, TEL) l (V 4 ) les ventes documentées CREATE VIEW (NUMV, NOMPRO, MARQUE, NOMFOU, VILLE, REGION, DATE, QUANTITE, PRIX) AS SELECT V.NUMV, P.NOM, P.MARQUE, F.NOM, F.VILLE, F.REGION, V.DATE, V.QUANTITE, V.PRIX FROM VENTES V, PRODUITS P, FOURNISSEURS F WHERE V.NUMPRO=P.NUMRO AND V.NUMFOU=F.NUMFOU
11 J. PHILIPP d'après G. Gardarin 3. INTERROGATION DE VUES l Transparence d'accès pour l'utilisateur identique à celui des tables de la base. l Simplification des requêtes utilisateurs. l Garantie de bonnes performances en architecture client- serveur. l Techniques développées à la fin des années 70 Ingres à l'université de Berkeley, System R à l'université de San José.
12 J. PHILIPP d'après G. Gardarin Schéma fonctionnel... R1R1 RnRn Base Vue F Réponse Q
13 J. PHILIPP d'après G. Gardarin Modification de questions l Modification de question (Query modification) Mécanisme consistant à modifier une question du code source en remplaçant certaines vues de la clause FROM par les relations de base de ces vues et en enrichissant les conditions de la clause WHERE pour obtenir un résultat identique à celui de la question initiale. l Peut être effectuée au niveau du code source ou par concaténation d'arbre (Tree concaténation) Mécanisme consistant à remplacer un noeud pendant dans un arbre relationnel par un autre arbre permettant de calculer le noeud remplacé.
14 J. PHILIPP d'après G. Gardarin Exemple l (1)Question : recherche des gros buveurs de Versailles SELECT NOM, PRENOM FROM GROSBUVEURS WHERE ADRESSE LIKE "Versailles". l (2)Définition de vue CREATE VIEW GROSBUVEURS AS SELECT NB, NOM, PRENOM, ADRESSE FROM BUVEURS B, ABUS A WHERE b.NB = a.NB AND A.QUANTITE > 10. l (3)Question modifiée SELECT NOM, PRENOM FROM BUVEURS B, ABUS A WHERE B.ADRESSE LIKE "Versailles" AND B.NB = A.NB AND A.QUANTITE > 10.
15 J. PHILIPP d'après G. Gardarin Concaténation d'arbres Vue B.NB, B.NOM, B.PRENOM, B.ADRESSE A.NB B.NB BUVEURS B = ABUS A A.QTE > 10 Vue B.ADRESSE= "Versailles" Question Définition de vue Résultat B.NOM, B.PRENOM
16 J. PHILIPP d'après G. Gardarin 4. MISES A JOUR DE VUES l Vue "mettable à jour" (Updatable view) Vue comportant suffisamment d'attributs pour permettre un report des mises à jour dans la base sans ambiguïté. l Conditions suffisantes de mise à jour simple Clés des tables participantes déductibles de la vue. Vues monotables avec clé de la table.
17 J. PHILIPP d'après G. Gardarin Classification des vues Vues multitables avec clés Vues monotables avec clés Mettable à jour en SQL ( la qualification peut invoquer plusieurs tables) Vue théoriquement mettable à jour Ensemble de toutes les vues
18 J. PHILIPP d'après G. Gardarin l Problème Des données peuvent manquer dans la vue pour report dans la BD. Définition d'une stratégie de report cohérente. L'équation u(V(B)) = V(u'(B)) doit donc être vérifiée, en notant B la base, V le calcul de vue, u la mise à jour sur la vue et u' les mises à jour correspondantes sur la base. Approche théorique Vue Vue' as Question V BD BD' as Question V Mise à jour répercutée u' Mise à jour u
19 J. PHILIPP d'après G. Gardarin 5. VUES MULTIDIMENSIONNELLES l Les besoins accès à toutes les données, regroupement des informations disséminées dans différentes bases, analyse et prise de décision rapide (OLAP). l Exemples d'applications bancaire : regroupement des informations d'un client l réponse à ses demandes l mailing ciblés pour le marketing grande distribution : regroupement des informations ventes l produits à succès, l modes, habitudes d'achat, l préférences par secteurs géographiques.
20 J. PHILIPP d'après G. Gardarin Entrepôt de données l Datawarehouse Ensemble de données historiées variant dans le temps, organisé par sujets, consolidé dans une base de données unique, géré dans un environnement de stockage particulier, aidant à la prise de décision dans l'entreprise. l Trois fonctions essentielles Collecte de données de base existantes et chargement. Gestion des données dans l'entrepôt. Analyse de données pour la prise de décision.
21 J. PHILIPP d'après G. Gardarin Vue concrète et prise de décision l Vue concrète (Concrete view) Idéale pour modéliser un sous-ensemble de données extrait du datawarehouse et ciblé sur un sujet unique. C'est une table calculée à partir des tables de la base par une question et matérialisée sur disques par le SGBD. l Exemple : vues concrètes avec agrégats de la table VENTES définie dans l'introduction : VENTES(NUMV, NUMPRO, NUMFOU, DATE, QUANTITE, PRIX) l Etendue selon les dimensions PRODUITS et FOURNISSEURS par les tables : PRODUITS (NUMPRO, NOM, MARQUE, TYPE,PRIX) FOURNISSEURS (NUMFOU, NOM, VILLE, REGION, TEL.)
22 J. PHILIPP d'après G. Gardarin Exemple l Vue des ventes totalisées par produit, fournisseurs, dates CREATE CONCRETE VIEW VENTESPFD (NUMPRO,NUMFOU,DATE,COMPTE,QUANTOT) AS SELECT NUMPRO,NUMFOU,DATE,COUNT(*) AS COMPTE, SUM(QUANTITE) AS QUANTOT FROM VENTES GROUP BY NUMPRO, NUMFOU, DATE l Vue plus compacte (sans fournisseurs) : CREATE CONCRETE VIEW VENTESPD (NUMPRO,DATE,COMPTE,QUANTOT) AS SELECT NUMPRO, DATE,COUNT(*)AS COMPTE,SUM(QUANTITE) AS QUANTOT FROM VENTES GROUP BY NUMPRO, DATE
23 J. PHILIPP d'après G. Gardarin Exemple (suite) l Dérivable de la vue précédente CREATE CONCRETE VIEW VENTESPD (NUMPRO, DATE, COMPTE, QUANTOT) AS SELECT NUMPRO, DATE, SUM(COMPTE) AS COMPTE, SUM(QUANTOT) AS QUANTOT FROM VENTESPFD GROUP BY NUMFOU
24 J. PHILIPP d'après G. Gardarin NUMPRO, NUMFOU, DATE NUMPRO, DATENUMPRO, NUMFOUNUMFOU, DATE NUMPRONUMFOU DATE Le treillis des vues l En OLAP, il est important de garder les vues utiles
25 J. PHILIPP d'après G. Gardarin Problèmes de la mise à jour l La vue peut être distante. On envoie alors seulement le "différentiel" à savoir les tuples ajoutés et/ou supprimés. l Vue auto-maintenable (Self-maintenable view) Vue contenant suffisamment d'informations pour être mise à jour à partir des mises à jour des relations de la base, sans accès à ses tuples. l Agrégats auto-maintenable (Self-maintenable aggregate) Ensemble d'agrégats pouvant être calculés à partir des anciennes valeurs des fonctions d'agrégats et des mises à jour des données de base servant au calcul de la vue.
26 J. PHILIPP d'après G. Gardarin Vue auto-maintenable ? BD BD' F V V' F' BD BD' F V V' F' mise à jour Vue autono-maitenable : une mise à jour est suffisante pour la mise à jour de la vue. Vue non-auto-maitenable : une mise à jour n'est pas suffisante pour mettre la vue à jour; il faut en plus les tuples de la base. mise à jour
27 J. PHILIPP d'après G. Gardarin Conception d'application OLAP l Quelques règles Concrétiser les vues multidimensionnelles de base. Eventuellement concrétiser des vues compactées l permet d'optimiser le « drill-down » l évite les calculs d'agrégats dynamiques Ne jamais concrétiser des vues non auto-maintenables.
28 J. PHILIPP d'après G. Gardarin 7. CONCLUSION l Des techniques uniformes bien maîtrisées. l Support de l'architecture client/serveur. l Support des datawarehouse et de l'OLAP.