SGBDR : la gestion des vues

28
1 J. PHILIPP d'après G. Gardarin SGBDR : la gestion des vues SGBDR : la gestion des vues 1. Contexte 2. Vues externes 3. Interrogation des vues 4. Mises à jour des vues 5. Vues multidimensionnelles 6. Sécurité et autorisations 7. Conclusion

description

SGBDR : la gestion des vues. 1. Contexte 2. Vues externes 3. Interrogation des vues 4. Mises à jour des vues 5. Vues multidimensionnelles 6. Sécurité et autorisations 7. Conclusion. 1. Contexte d'utilisation. Analyse syntaxique. ANALYSEUR. Analyse sémantique. Gestion des schémas. - PowerPoint PPT Presentation

Transcript of SGBDR : la gestion des vues

Page 1: SGBDR : la gestion des  vues

1J. PHILIPP d'après G. Gardarin

SGBDR : la gestion des vuesSGBDR : la gestion des vues

1. Contexte 2. Vues externes 3. Interrogation des vues 4. Mises à jour des vues 5. Vues multidimensionnelles 6. Sécurité et autorisations 7. Conclusion

Page 2: SGBDR : la gestion des  vues

2J. PHILIPP d'après G. Gardarin

1. Contexte d'utilisation1. Contexte d'utilisation

Plan d'Accès

Analyse syntaxiqueAnalyse sémantiqueGestion des schémas

Modification de requêtesContrôle d'intégritéContrôle d'autorisation

OrdonnancementOptimisationElaboration d'un plan

Exécution du planMéthodes d'accèsContrôle de concurrenceAtomicité des transactions

META-BASE

BD

ANALYSEUR

TRADUCTEUR

OPTIMISEUR

EXECUTEUR

Page 3: SGBDR : la gestion des  vues

3J. PHILIPP d'après G. Gardarin

Gestion du schémaGestion du schéma

L'ensemble des schémas des BD est géré comme une base de données relationnelles appelée méta-base ou catalogue.

SQL2 normalise les tables de la méta-base (plus précisément des vues de ces tables)

SCHEMA

TABLES

COLONNES CLES

CONTRAINTES

DOMAINES

Page 4: SGBDR : la gestion des  vues

4J. PHILIPP d'après G. Gardarin

Méta-base relationnelleMéta-base relationnelle

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, …)

Elle peut être manipulée à partir des outils classiques (SQL).

Page 5: SGBDR : la gestion des  vues

5J. PHILIPP d'après G. Gardarin

2. Vues externes2. Vues externes

Objectif Indépendance logique des applications par rapport à la base.

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.

Problèmes Efficacité de l'interrogation. Mise à jour de la base au travers de ses vues.

Page 6: SGBDR : la gestion des  vues

6J. PHILIPP d'après G. Gardarin

DéfinitionDéfinition

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.

Une vue est donc un ensemble de relations déduites d'une bases de données, par composition de ses relations.

Par abus de langage, une vue d'une base de données relationnelle est une table virtuelle.

Page 7: SGBDR : la gestion des  vues

7J. PHILIPP d'après G. Gardarin

Création et destructionCréation et destruction

Création d'une vue CREATE VIEW <NOM DE VUE> [ (LISTE D'ATTRIBUT)] AS <QUESTION> [WITH CHECK OPTION]

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.

Destruction d'une vue DROP <nom_de_la_vue>

Page 8: SGBDR : la gestion des  vues

8J. PHILIPP d'après G. Gardarin

Exemples : la base des buveursExemples : la base des buveurs

BUVEURS (NB, NOM, PRENOM, ADRESSE, TYPE)

VINS (NV, CRU, REGION, MILLESIME, DEGRE)

ABUS (NV, NB, DATE, QUANTITE)

(V1) Les vins de Bordeaux

CREATE VIEW VINSBORDEAUX (NV, CRU, MILL, DEGRE) AS

SELECT NV, CRU, MILLESIME, DEGRE

FROM VINS WHERE REGION = "Bordelais"

Page 9: SGBDR : la gestion des  vues

9J. PHILIPP d'après G. Gardarin

Exemples (suite)Exemples (suite)

(V2) 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

(V3) 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

Page 10: SGBDR : la gestion des  vues

10J. PHILIPP d'après G. Gardarin

Exemple : la base des produitsExemple : la base des produits

VENTES(NUMV, NUMPRO, NUMFOU, DATE, QUANTITE, PRIX)

PRODUITS (NUMPRO, NOM, MARQUE, TYPE,PRIX)

FOURNISSEURS (NUMFOU, NOM, VILLE, REGION, TEL)

(V4) 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

Page 11: SGBDR : la gestion des  vues

11J. PHILIPP d'après G. Gardarin

3. INTERROGATION DE VUES3. INTERROGATION DE VUES

Transparence d'accès pour l'utilisateur identique à celui des tables de la base.

Simplification des requêtes utilisateurs. Garantie de bonnes performances en architecture client-

serveur. Techniques développées à la fin des années 70

Ingres à l'université de Berkeley, System R à l'université de San José.

Page 12: SGBDR : la gestion des  vues

12J. PHILIPP d'après G. Gardarin

Schéma fonctionnelSchéma fonctionnel

...

R1

Rn

Base

Vue

F

Réponse

Q

Page 13: SGBDR : la gestion des  vues

13J. PHILIPP d'après G. Gardarin

Modification de questionsModification de questions

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.

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é.

Page 14: SGBDR : la gestion des  vues

14J. PHILIPP d'après G. Gardarin

ExempleExemple (1) Question : recherche des gros buveurs de Versailles

SELECT NOM, PRENOM FROM GROSBUVEURS WHERE ADRESSE LIKE "Versailles".

(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.

(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.

Page 15: SGBDR : la gestion des  vues

15J. PHILIPP d'après G. Gardarin

Concaténation d'arbresConcaté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

Page 16: SGBDR : la gestion des  vues

16J. PHILIPP d'après G. Gardarin

4. MISES A JOUR DE VUES4. MISES A JOUR DE VUES

Vue "mettable à jour" (Updatable view) Vue comportant suffisamment d'attributs pour permettre un report

des mises à jour dans la base sans ambiguïté.

Conditions suffisantes de mise à jour simple Clés des tables participantes déductibles de la vue. Vues monotables avec clé de la table.

Page 17: SGBDR : la gestion des  vues

17J. PHILIPP d'après G. Gardarin

Classification des vuesClassification des vues

Vues multitables

avec clés

Vues monotablesavec clés

Mettable à jour en SQL( la qualification peut invoquer

plusieurs tables)

Vue théoriquementmettable à jour

Ensemble de toutes les vues

Page 18: SGBDR : la gestion des  vues

18J. PHILIPP d'après G. Gardarin

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éoriqueApproche théorique

Vue Vue'

as Question V

BD BD'

as Question V

Mise à jour répercutée u'

Mise à jour u

Page 19: SGBDR : la gestion des  vues

19J. PHILIPP d'après G. Gardarin

5. VUES MULTIDIMENSIONNELLES5. VUES MULTIDIMENSIONNELLES

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).

Exemples d'applications bancaire : regroupement des informations d'un client

réponse à ses demandes mailing ciblés pour le marketing

grande distribution : regroupement des informations ventes produits à succès, modes, habitudes d'achat, préférences par secteurs géographiques.

Page 20: SGBDR : la gestion des  vues

20J. PHILIPP d'après G. Gardarin

Entrepôt de donnéesEntrepôt de données

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.

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.

Page 21: SGBDR : la gestion des  vues

21J. PHILIPP d'après G. Gardarin

Vue concrète et prise de décisionVue concrète et prise de décision 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.

Exemple : vues concrètes avec agrégats de la table VENTES définie dans l'introduction : VENTES(NUMV, NUMPRO, NUMFOU, DATE, QUANTITE, PRIX)

Etendue selon les dimensions PRODUITS et FOURNISSEURS par les tables : PRODUITS (NUMPRO, NOM, MARQUE, TYPE,PRIX) FOURNISSEURS (NUMFOU, NOM, VILLE, REGION, TEL.)

Page 22: SGBDR : la gestion des  vues

22J. PHILIPP d'après G. Gardarin

ExempleExemple 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 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

Page 23: SGBDR : la gestion des  vues

23J. PHILIPP d'après G. Gardarin

Exemple (suite)Exemple (suite)

Dérivable de la vue précédenteCREATE CONCRETE VIEW VENTESPD (NUMPRO, DATE, COMPTE, QUANTOT) AS

SELECT NUMPRO, DATE, SUM(COMPTE) AS COMPTE, SUM(QUANTOT) AS QUANTOT

FROM VENTESPFD

GROUP BY NUMFOU

Page 24: SGBDR : la gestion des  vues

24J. PHILIPP d'après G. Gardarin

NUMPRO, NUMFOU, DATE

NUMPRO, DATENUMPRO, NUMFOU NUMFOU, DATE

NUMPRO NUMFOU DATE

Le treillis des vuesLe treillis des vues

En OLAP, il est important de garder les vues utiles

Page 25: SGBDR : la gestion des  vues

25J. PHILIPP d'après G. Gardarin

Problèmes de la mise à jourProblèmes de la mise à jour

La vue peut être distante. On envoie alors seulement le "différentiel" à savoir les tuples

ajoutés et/ou supprimés.

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.

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.

Page 26: SGBDR : la gestion des  vues

26J. PHILIPP d'après G. Gardarin

Vue auto-maintenable ?Vue auto-maintenable ?

BD

BD'

FV

V'

F'

BD

BD'

FV

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

Page 27: SGBDR : la gestion des  vues

27J. PHILIPP d'après G. Gardarin

Conception d'application OLAPConception d'application OLAP

Quelques règles Concrétiser les vues multidimensionnelles de base. Eventuellement concrétiser des vues compactées

permet d'optimiser le « drill-down » évite les calculs d'agrégats dynamiques

Ne jamais concrétiser des vues non auto-maintenables.

Page 28: SGBDR : la gestion des  vues

28J. PHILIPP d'après G. Gardarin

7. CONCLUSION7. CONCLUSION

Des techniques uniformes bien maîtrisées. Support de l'architecture client/serveur. Support des datawarehouse et de l'OLAP.