VUES RELATIONNELLES


1- PRINCIPES


LES TROIS NIVEAUX D'ABSTRACTION D'UNE BD

. FONCTIONS D'UN SGBD

-> offrir les TROIS NIVEAUX

-> assurer la CORRESPONDANCE

entre les NIVEAUX

==>

principe d'INDEPENDANCE DES DONNEES

- au niveau LOGIQUE

- au niveau PHYSIQUE


UN EXEMPLE DE VUES

SCHEMA BASE COOPERATIVE

VINS (NV, CRU, MIL, DEG)

VITIS (NVT, NOM, PRENOM, VILLE, REGION)

PRODUCTIONS (NV, NVT)

BUVEURS (NB, NOM, PRENOM, VILLE)

COMMANDES (NC, DATE, NB, NV, QTE)

EXPEDITIONS (NC, DATE, QTE)

. APPLICATION "Gestion des Vins"

VINS (NV, CRU, MIL, DEG)

DEGRE_MOYEN_PAR_CRU (CRU, DEGMOY)

. APPLICATION "Gestion des Viticulteurs Bordelais"

VITIS_BORDELAIS (NVT, NOM, PRENOM, VILLE)

. APPLICATION "Gestion des Buveurs Parisiens"

BUVEURS_PARIS(NB, NOM, PRENOM)

CDES_PARIS (NC, DATE, NB, NV, QTE)

QTE_CDEE_PAR_BUVEURS (NB, QTE)

EXPE_PARIS (NC, DATE, QTE)

==>

chaque APPLICATION

(ou chaque groupe d'UTILISATEURS)

possède sa VISION PROPRE de la BASE


QU'OFFRE UN SGBD RELATIONNEL?

. NIVEAU CONCEPTUEL

-> SCHEMA RELATIONNEL

-> CONTRAINTES D'INTEGRITE

. NIVEAU EXTERNE

-> VUES RELATIONNELLES

. NIVEAU PHYSIQUE

-> METHODES DE PLACEMENT

-> INDEX

. PRINCIPE D'INDEPENDANCE

UNE APPLICATION EST INDEPENDANTE DES MODIFICATIONS APPORTEES AUX SCHEMAS CONCEPTUEL ET PHYSIQUE DES DONNEES


2- VUE RELATIONNELLE


. DEFINITION

-> RELATION DERIVEE (VIRTUELLE) CONSTRUITE A PARTIR DE RELATIONS DE BASE ET/OU DE VUES RELATIONNELLES

-> UNE VUE EST SPECIFIEE PAR UNE QUESTION

. UN EXEMPLE DE VUE EN SQL

'Viticulteurs de vins de Bordeaux'

create view

VITIS_BORDEAUX (NVT, NOM, VILLE)

as select VT.NVT, VT.NOM, VT.VILLE

from VITIS VT, VINS V, PRODUCTIONS P

where VT.NVT=P.NVT

and P.NV=V.NV

and V.CRU='Bordeaux'

. DIFFERENCE AVEC UNE REL. DE BASE

-> L'ENSEMBLE DES TUPLES D'UNE VUE N'EXISTE PAS PHYSIQUEMENT

-> IL EST CALCULABLE PAR L'EXECUTION DE LA QUESTION DEFINISSANT LA VUE


GESTION DES VUES

A PARTIR DU LANGAGE DE REQUETES SQL

. DEFINITION D'UNE VUE

create view < nom vue>

as < requête d'interrogation select >

. SUPRESSION D'UNE VUE

drop view < nom vue >

. INTERROGATION D'UNE VUE

-> TOUJOURS POSSIBLE

-> IDENTIQUE A L'INTERROGATION

D'UNE RELATION DE BASE

. MISE A JOUR D'UNE VUE

-> NON DEFINIE DANS DE NOMBREUX CAS

-> SYNTAXE IDENTIQUE A LA MISE A JOUR D'UNE RELATION DE BASE

( si la mise à jour sur la vue est autorisée )


DES EXEMPLES DE VUES

. VUE MONO-RELATION

create view CRUS (NOM)

as select distinct CRU

from VINS

. VUE MULTI-RELATIONS

create view BUVEURS_BEAUJOLAIS_PARIS

(NUM, NOM, QTE_CDEE)

as select B.NB, B.NOM, Sum(QTE)

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

. VUE DEFINIE A PARTIR D'UNE AUTRE VUE

-> relation de base PARENT (ASC, DSC)

-> vue GRAND_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

-> vue ARR_GRAND_PARENT (ASC, DSC)

create view ARR_GRAND_PARENT (ASC, DSC)

as select P.ASC, GP.DSC

from PARENT P, GRAND_PARENT GP

where P.DSC=GP.ASC


MISE A JOUR AU TRAVERS DES VUES

COMMENT REPORTER LA MISE A JOUR DE LA VUE SUR LES RELATIONS DE BASE ?

. EXEMPLE 1

create view VINS_BORDEAUX

as select NV, MIL, DEG

from VINS

where CRU='Bordeaux'

. EXEMPLE 2

create view DEG_MOY_PAR_CRU (CRU,DEGMOY)

as select CRU, Avg(DEG)

from VINS

group by CRU

. EXEMPLE 3

create view BUVS_BORDEAUX (NB, NOM, SQTE)

as select B.NB, B.NOM, Sum(QTE)

from BUVEURS B, CDES C, VINS V

where B.NB=C.NB and C.NV=V.NV and V.CRU='Bordeaux'

group by B.NB, B.NOM


3- EVALUATION DES VUES PAR UN SGBD


TROIS TECHNIQUES

. MODIFICATION DE QUESTIONS

(INGRES)

. RESTRUCTURATION ALGEBRIQUE

(SYSTEM/R)

. MATERIALISATION DE LA VUE

(SABRE)


MODIFICATION DE QUESTION

APPLIQUEE AU NIVEAU DU SOURCE DE LA REQUETE

. PRINCIPE

MODIFICATION DE LA QUESTION Q POSEE SUR UNE VUE V EN UNE QUESTION PORTANT UNIQUEMENT SUR LES RELATIONS DE BASE

. EXEMPLE

VUE VINS_77 QUESTION Q

create view VINS_77

as select NV, CRU, DEG select *

from VINS from VINS_77 where MIL=1977 where CRU<>'Fronsac'

=====>

QUESTION Q MODIFIEE

select NV, CRU, DEG

from VINS

where MIL=1977 and CRU<>'Fronsac'


RESTRUCTURATION ALGEBRIQUE

NECESSITE UNE COMPILATION PREALABLE DES VUES

. PRINCIPE

(1) FUSIONNER LES ARBRES ALGEBRIQUES RESULTANT DE LA COMPILATION DE LA VUE V ET DE LA QUESTION Q

(2) OPTIMISATION DE L'ARBRE ALGEBRIQUE AINSI OBTENU

MATERIALISATION DES VUES

REALISEE A L'EXECUTION DE LA REQUETE

. PRINCIPE

(1) MATERIALISATION DE LA VUE V PAR EXECUTION DE LA QUESTION LA SPECIFIANT

(2) OPTIMISATION ET EXECUTION DE LA REQUETE SUR LA VUE V, CONSIDEREE COMME UNE RELATION DE BASE


CRITIQUE DES VUES

* AVANTAGES

-> ADAPTATION AUX APPLICATIONS UTILISATEUR

-> INTEGRATION D'APPLICATIONS EXISTANTES

-> DYNAMIQUE DU SCHEMA DE LA BASE

-> CONFIDENTIALITE DES DONNEES

-> DEFINITION DE CONTRAINTES D'INTEGRITE (option check de SQL 86)

* INCONVENIENT

-> MISE A JOUR NON POSSIBLE EN GENERAL


VUES et CIs

* CONTEXTE

-> norme SQL 86

-> option check associée à create view

-> uniquement les vues autorisées en mise à jour

* CI DOMAINE

create view VINS_OK

as select *

from VINS

where DEG >= 8 and DEG <= 13

with check option

* CI REFERENTIELLE

create view PRODUCTIONS_OK

as select P.*

from PRODUCTIONS P,

where P.NV in (select NV from VINS)

and P.NVT in (select NVT from VITIS)

with check option


Pour toutes remarques, contacter Bruno .Defude@int-evry.fr



© B. Defude - INT Evry