Vous êtes sur la page 1sur 18

Pr. M.

Ben Salah
1

Introduction

Aspect important prendre en compte par un SGBD :


le contrle de laccs aux donnes : privilges,
la condentialit des informations :
assure par lutilisation de vues (views),

Rappel : Niveaux de description des donnes


- La conception dune BD ncessite de considrer et de spcifier
les trois niveaux ANSI/SPARC

Schma
externe 1

Schma
externe 2

Schma
externe n
Schma
externe

Structure des donnes


Description de leurs
proprits
Smantique inhrentes
(aux donnes)

1- Modlisation

Schma
conceptuel

Schma conceptuel

5- vues
2- Traduction

Schma
logique
3- Implantation
Schma
physique
4- stockage

Schma
interne
BD

Le vues
Les vues correspondent au niveau externe de la BD
Cest la partie visible de la base de donnes pour chaque utilisateur
== > lquivalent dune fentres sur la base de donnes.
Cest un objet qui associe un nom (vue) une requte. Une fois cre, on
pourra consulter cette vue comme si ctait une table
un regroupement d'informations au sein d'une entit
Cre par lordre CREATE et laide dune requte de dfinition ( instruction )
impliquant une au plusieurs tables (ou vues)

Le vues

Quelques avantages des vues :


Les vues restreignent laccs aux donnes, car les vues peuvent afficher
certaines colonnes de la table.
Peuvent tre utilises pour faire les requtes simples pour retrouver
des rsultats des requtes compliques
Peut tre utilise pour afficher des donnes de plusieurs tables.

Le vues

Peut tre considre comme une table viruelle


pas dexistence propre : seule sa structure est stocke dans le dictionnaire
de donnes
value chaque consultation : se recharge chaque fois quelle est
interroge

Classification

Elment
nombre de tables
contient des fonctions
contient des groupes de donnes
opration DML

Simple
une
non
non
oui

complexe
une ou plusieurs
oui
oui
pas toujours

Cration dune vue


Syntaxe :
CREATE [or replace] [ FORCE | NOFORCE ] view [ schma . ] [ ( liste
alias) ]
AS <requte> [ <clause> ] ;
<clause> = with read only | with check option

Cration dune vue


- OR REPLACE: Recre le vue si elle existe.
- FORCE et NOFORCE (par dfaut) indiquent respectivement que :
* la vue est cre sans se soucier de l'existence des tables qu'elle rfrence ou
des privilges adquats sur les tables,
* la vue est cre seulement si les tables existent et si les permissions requises
sont donnes.
- Alias : Spcifie des noms pour les expressions slectionnes (dsigne le nom de
chaque colonne de la vue). Si lalias nest pas prsent, la colonne
prend le nom de lexpression renvoye par la requte de dnition.
- with read only : interdit toute tentative de modification de la vue (insert, update,
delete) ainsi que lattachement de trigger instead of.
- WITH CHECK OPTION garantit que toute mise jour de la vue par INSERT ou
UPDATE seffectuera conformment au prdicat contenu dans la requte de
dfinition
- requte-select : requte de dnition interrogeant une (ou des) table(s), vue(s),
clich(s) pouvant contenir jusqu mille expressions dans la clause SELECT

Cration dune vue


Exemple :

Vue simple

Vue complexe

CREATE OR REPLACE VIEW empvu


AS
SELECT ename,sal
FROM emp
WHERE deptno=30;

CREATE OR REPLACE VIEW deptvu


(depname,minsal, maxsal,avgsal)
AS
SELECT d.dname, MIN(e.sal), MAX(e.sal),
AVG(e.sal)
FROM dept d, emp e
WHERE e.deptno=d.deptno
GROUP BY d.dname;

CREATE OR REPLACE VIEW empdeptV1 as


select empno, d.deptno, ename, dname from emp e, dept d
where e.deptno=d.deptno;

Description de la vue : idem quune table


SQL> desc empvu;

utiliser describe ou desc


10

Interroger une vue

Se fait de la mme faon que linterrogation dune table


exemple :
SELECT * FROM empvu;

11

Vues en lecture seule

Utiliser loption WITH READ ONLY lors de la cration de la vue pour la


dclarer non modiable par INSERT, UPDATE, ou DELETE.

12

Vue modifiable

Une vue est dite modifiable sil est possible dexcuter des instructions
INSERT, UPDATE ou DELETE cette dernire.
Les mises jour sont automatiquement rpercutes au niveau dune ou de
plusieurs tables qui participent la dfinition de la vue

13

Vue modifiable

Condition de mise jour dune vue :


- il doit exister une correspondance biunivoque entre les lignes de la
vue et celles de lobjet source
- La requte de dnition doit respecter les critres suivants :
* pas de directive DISTINCT,
* pas de fonction (AVG, COUNT, MAX, MIN, STDDEV, SUM, ou
VAR),
* pas dexpression ou de pseudo-colonne (ROWNUM, ROWID) dans le
SELECT.
* pas de GROUP BY, ORDER BY, HAVING

14

Vue modifiable

Pour insrer un nouveau enregistrement dans une vue simple (monotable)


il faut que la dfinition de la vue comporte le champ cl primaire de la
table sources
Exemple : impossible dinsrer un nouveau enregistrement dans la vue empv1
car la cl primaire de la table source ne serait pas renseigne

15

Modification d'une vue

La vue USER_UPDATABLE_COLUMNS du dictionnaire donne des


informations sur les colonnes modifiables ou non.

Il est rarement possible de modifier une vue qui contient une jointure. La
modification ne doit porter que sur une seule table, telle que la cl
primaire de la table reste une cl pour la vue.

Crer la vue empdeptV1 (diapo 10) et afficher les colonne modifiables


Essayer dinserer un tuple dans vue empdeptV1 ? Conclusion
Essayez de mettre jour le nom dun employ ? . Conclusion

16

clause WITH CHECK OPTION


Permet de spcifier que les requtes INSERT et UPDATE ne peuvent pas
crer des enregistrements ne pouvant tre slectionns par la vue.

17

Modification et suppression dune vue

modifier une vue :


1- avec CREATE OR REPLACE
2- avec ALTER
ALTER VIEW view [ schma . ] [ ( liste alias> ) ]
AS <requte> [ <clause> ] ;

Suppression dune vue :


DROP VIEW nom_vue;

18

Vous aimerez peut-être aussi