II.5.4. Transparence
vis-à-vis de la fragmentation
II.5.4.1. Vue
Un des principaux objectifs de bases de données
réparties est la transparence à la fragmentation. Ainsi,
même fragmentés, les enregistrements doivent apparaître
comme sur un seul site. Pour cela, on utilise les vues : View.
Les utilisateurs pourront consulter la base, ou modifier la
base (avec certaines restrictions) à travers la vue, c'est-à-dire
manipuler la table résultat du SELECT comme si c'était une table
réelle.
Les vues correspondent à ce qu'on appelle le niveau
externe qui reflète la partie visible de la base de données pour
chaque utilisateur. Seules les tables contiennent des données et
pourtant, pour l'utilisateur, une vue apparaît comme une table. En
théorie, les utilisateurs ne devraient accéder aux informations
qu'en questionnant des vues. Ces dernières masquant la structure des
tables interrogées. Outre le fait d'assurer la confidentialité
des informations, une vue est capable de réaliser des contrôles de
contraintes d'intégrité et de simplifier la formulation de
requêtes complexes.Utilisées conjointement avec des synonymes et
attribuées comme des privilèges (GRANT), les vues
améliorent la sécurité des informations
stockées.
Pour pouvoir créer une vue dans votre schéma
vous devez posséder le privilège CREATE VIEW. Pour créer
des vues dans d'autres schémas, le privilège CREATE ANY VIEW est
requis.La syntaxe SQL de création d'une vue est la suivante :
CREATE [OR REPLACE] [[NO]FORCE] VIEW [schéma.]nomVue
[ ( { alias [ContrainteInLine [ContrainteInLine]...] |
ContrainteOutLine }
[, { alias ContrainteInLine [ContrainteInLine]... |
ContrainteOutLine } ] ) ]
AS requêteSELECT [ WITH { READ ONLY | CHECK OPTION
[CONSTRAINT nomContrainte] } ];
On distingue les vues simples des vues complexes en fonction
de la nature de la requête de définition (Tableau 2).
Requête de définition
|
Vue simple
|
Vue complexe
|
Nombre de table
|
1
|
1 ou plusieurs
|
Fonction
|
Non
|
Oui
|
Regroupement
|
Non
|
Oui
|
Mises à jour possibles ?
|
Oui
|
Pas toujours
|
Tableau 2. Types de
vues
a) Vues monotables
Une vue monotable est définie par une requête
SELECT ne comportant qu'une seule table dans sa clause FROM. L'objet source
d'une vue est en général une table mais peut aussi être une
vue ou un cliché.
b) Vues en lecture seule
L'option WITH READ ONLY déclare la vue non modifiable
par INSERT, UPDATE, ou DELETE.
c) Vues modifiables
Lorsqu'il est possible d'exécuter des instructions
INSERT, UPDATE ou DELETE sur une vue, cette dernière est dite modifiable
(updatable view). Vous pouvez créer une vue qui est modifiable
intrinsèquement. Si elle ne l'est pas, il est possible de programmer un
déclencheur INSTEAD OF qui permet de rendre toute vue modifiable. Les
mises à jour sont automatiquement répercutées au niveau
d'une ou de plusieurs tables.
|