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
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
. 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
. 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
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 )
. 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
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
TROIS TECHNIQUES
. MODIFICATION DE QUESTIONS
(INGRES)
. RESTRUCTURATION ALGEBRIQUE
(SYSTEM/R)
. MATERIALISATION DE LA VUE
(SABRE)
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
* 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
* 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