Vous êtes sur la page 1sur 27

Vues

1/27

Indpendance donnes / applications


Les 3 niveaux dabstraction:
Plusieurs vues, un seul
schma conceptuel (logique) et
schma physique.
Les vues dcrivent comment
certains utilisateurs/groupes
voient les donnes.
Le schma conceptuel dfinit
la structure logique des
donnes.
Le schma physique dcrit les
fichiers et les index utiliss.

Vue 1

Vue 2

Vue 3

Schma conceptuel
Schma physique

2/27

Dfinition
Vue
Base de donnes virtuelle dont le schma et le
contenu sont calculs de la base relle.

Une vue est donc un ensemble de relations


dduites d'une bases de donnes, par
composition des relations de la base.
Par abus de langage, une vue relationnelle est
dite table virtuelle
3/27

Vues (externes)
Objectif
1) Indpendance logique des applications par
rapport la base
2) Vues pour la scurit

Moyen
Les vues sont des relations virtuelles dont la
dfinition est stocke dans la mta-base.
Elles sont interroges et mises jour comme des
relations normales

Avantages/Inconvnients
Interrogation efficace
Mises jour travers les vues

4/27

Cration et Destruction
Cration
CREATE VIEW <NOM DE VUE> [ (LISTE D'ATTRIBUT)]
AS <QUESTION>
[WITH CHECK OPTION]
La clause WITH CHECK OPTION permet de spcifier que les
tuples de la vue insrs ou mis jour doivent satisfaire aux
conditions de la question

Destruction
DROP VIEW <nom de vue>
5/27

Exemples
BUVEURS (NB, Nom, Prnom, Adresse, Type)
VINS (NV, Cru, Rgion, Millsime, Degr)
ABUS (NV, NB, Date, Quantit)
(V1) Les vins de Bordeaux :
CREATE VIEW vinsbordeaux (nv, cru, mill, degr) AS
SELECT nv, cru, millsime, degr
FROM vins WHERE Rgion = "Bordelais";
(V2) Les gros buveurs :
CREATE VIEW grosbuveurs AS
SELECT nb, nom, prnom, adresse
FROM buveurs b, abus a
WHERE b.nb = a.nb and a.quantit > 10
(V3) Les quantits de vins bues par cru :
CREATE VIEW vinsbus (cru, mill, degr, total) AS
SELECT cru, millsime, degr, SUM(quantit)
FROM vins v, abus a WHERE v.nv = a.nv
GROUP BY Cru

6/27

Interrogation de Vues
Transparence pour l'utilisateur
manipules comme des tables de la base

Simplifier les requtes utilisateurs


Utiles en architecture client-serveur
Base
Vue

Rponse

R1
...
Rn
7/27

Techniques d valuation
Rcriture de requte
Peut tre effectue au niveau de l expression SQL ou
par concatnation d'arbres (plans d excution)
Au niveau SQL, en remplaant certaines relations
virtuelles du FROM par leurs sources et en enrichissant
les conditions de la clause WHERE pour obtenir le
rsultat de la question initiale.
Concatnation d'arbre : mcanisme consistant
remplacer un nud pendant dans un arbre relationnel
par un autre arbre calculant le nud remplac.
8/27

Concatnation d'arbres
Rsultat
B.NOM, B.PRENOM

B.ADRESSE= " Paris"

Requte

Vue

Vue

B.NB, B.NOM, B.PRENOM, B.ADRESSE

A.NB

A.QTE > 10

B.NB

Dfinition de vue

BUVEURS B

ABUS A
9/27

Exemple
(1) Question
SELECT nom, prnom FROM grosbuveurs
WHERE adresse LIKE "Paris".

(2) Dfinition de vue


CREATE VIEW grosbuveurs AS
SELECT nb, nom, prnom, adresse FROM buveurs b, abus a
WHERE b.nb = a.nb AND a.quantit > 10.

(3) Question modifie


SELECT nom, prnom FROM buveurs b, abus a
WHERE b.adresse LIKE " Paris" AND b.nb = a.nb AND
a.quantit > 10.
10/27

Exemple
SELECT nom, prenom FROM (SELECT nb, nom, prenom, adresse

FROM buveurs b, abus a

WHERE b.nb = a.nb AND a.quantite > 10)

WHERE adresse LIKE "Paris" ;


VS.
SELECT nom, prenom FROM buveurs b, abus a
WHERE b.adresse LIKE " Paris" AND b.nb = a.nb AND a.quantite > 10;
Sont elles quivalentes?
11/27

liminer l imbrication du FROM


(semantique bag vs semantique set )
Set/set
SELECT DISTINCT a,b,c
FROM (SELECT DISTINCT u,v
FROM R,S
WHERE ), T
WHERE . . .
Devient
SELECT DISTINCT a,b,c
FROM R, S, T
WHERE . . .
12/27

liminer l imbrication du FROM


(semantique bag vs semantique set )
Set/Bag
SELECT DISTINCT a,b,c
FROM (SELECT u,v
FROM R,S
WHERE ), T
WHERE . . .
Devient
SELECT DISTINCT a,b,c
FROM R, S, T
WHERE . . .
13/27

liminer l imbrication du FROM


(semantique bag vs semantique set )
Bag/Bag
SELECT a,b,c
FROM (SELECT u,v
FROM R,S
WHERE ), T
WHERE . . .
Devient
SELECT a,b,c
FROM R, S, T
WHERE . . .
14/27

liminer l imbrication du FROM


(semantique bag vs semantique set )
Bag/Set
SELECT a,b,c
FROM (SELECT DISTINCT u,v
FROM R,S
WHERE ), T
WHERE . . .
Ne peut pas tre transform dans un seul select-from-where!

15/27

Partitionnement des donnes


Parfois les donnes d une base sont partitionnes:
Horizontale: ex., projection sur certains attributs
utile quand certains attributs sont volumineux ou utiliss
rarement
dans les bases de donnes reparties

Une vue avec jointures peut donner la vision


d ensemble
Verticale: slection sur certaines valeurs (ClientsParis,
ClientsLyon)
Une vue avec union peut donner la vision
d ensemble
16/27

Vues pour la scurit


Compte(Nom, Type, Solde)
Bob n a pas le droit d accder l attribut solde.
CREATE View CompteInfo AS
SELECT nom, type
FROM Compte;
Bob ne peut pas interroger Compte, peut interroger
CompteInfo.
17/27

Mises jour de vues


Vue mettable jour
Vue comportant suffisamment d'information pour
permettre un report des mises jour dans la base
sans ambigut.

Conditions ncessaire
Cls des tables participantes dductibles de la vue

18/27

Exemple
VINS (NV, Cru, Rgion, Millsime, Degr)
CREATE VIEW vinsbordeaux AS
SELECT nv, millsime
FROM vins WHERE Rgion = "Bordeaux"

INSERT INTO vinsbordeaux values ( 543 , 2001 )
INSERT INTO vins values( 543 , NULL, "Bordeaux", NULL, 2001)

19/27

Exemple: Vue non-mettable jour


BUVEURS (NB, Nom, Prnom, Adresse, Type)
VENTES (Acheteur, Vendeur, Produit)
CREATE VIEW Paris-vue AS
SELECT vendeur, produit
FROM buveurs, ventes
WHERE buveurs.adresse = Paris
ventes.acheteur;

AND buveurs.nom =

INSERT INTO Paris-vue values (Joe, xyz) ?

20/27

Classification
Ensemble de toutes les vues

Vue thoriquement
mettable jour
Mettable jour en SQL
( la qualification peut invoquer
plusieurs tables)

Vues multi-tables
Vues mono-tables
avec cls
avec cls

21/27

Principe
Problme
Il peut manquer des donnes dans la vue pour effectuer le report
dans la BD
Comment dfinir une stratgie de report cohrente ?
Mise jour m

Vue
as Question V

BD

Mise jour rpercute m

Vue'
as Question V
BD'

La mise jour sur le contenu de la vue doit correspondre au contenu


de la vue aprs le report de la mise jour sur la BD.
22/27

With Check Option


CREATE VIEW vinsbordeaux AS
SELECT nv, rgion
FROM vins WHERE Rgion = "Bordelais"
UPDATE vinsbordeaux SET rgion= "Alsace" ?
CREATE VIEW vinsbordeaux AS
SELECT nv, rgion
FROM vins WHERE Rgion = "Bordelais"
WITH CHECK OPTION

23/27

Exemple de besoin de vues


Besoin des entreprises
accder toutes les donnes de l entreprise
regrouper les informations dissmines dans les
bases
analyser et prendre des dcisions rapidement
(OLAP)

Exemples d'applications concernes


bancaire : regrouper les infos sur un client
rponse ses demandes
mailing cibls pour le marketing

grande distribution : regrouper les infos ventes


produits succs
modes, habitudes d achat
prfrences par secteurs gographiques

24/27

Entrept de donnes
DataWarehouse
Ensemble de donnes historises variant dans le temps,
organis par sujets, consolid dans une base de donnes
unique, gr dans un environnement de stockage
particulier, aidant la prise de dcision dans
l entreprise.

Trois fonctions essentiels :


collecte de donnes de bases existantes et chargement
gestion des donnes dans l entrept
analyse de donnes pour la prise de dcision

Vue matrialise (concrte) :


idale pour modliser un sous-ensemble de donnes
extrait du datawarehouse et cibl sur un sujet unique

25/27

Vue concrte
Vue concrte
Table calcule partir des tables de la base par une question et
matrialise sur disques par le SGBD.

Exemple : vues concrtes avec agrgats de la table


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

Etendue selon les dimensions PRODUITS et


FOURNISSEURS par les tables :
PRODUITS (NUMPRO, NOM, MARQUE, TYPE, PRIX)
FOURNISSEURS (NUMFOU, NOM, VILLE, RGION, TEL.)
26/27

Conclusion
Deux types de vues, scnarios d applications diffrents
Vues virtuelles
Utilises dans les bases de donnes
Calcules la vol , lent l excution (runtime)
Toujours jour
Vues matrialises
Utilises dans les entrept de donnes
Pre-calcules offline , rapide l excution
Peuvent avoir des donnes expires
Les indexes sont des vues matrialises

27/27

Vous aimerez peut-être aussi