Vous êtes sur la page 1sur 15

Bases de données Multi-Media

Gestion des vues

Raida ElMansouri
Faculté des NTIC
Raida.elmansouri@univ-constantine2.dz

Université Constantine 2 Semestre 1


Définition
• Une VUE est une table virtuelle dont le schéma et le
contenu sont dérivés de la base réelle par un
ensemble de requêtes.
• C’est le résultat d’une requête (select) à laquelle on a
donné un nom.
• Elle n'a aucune implémentation physique de ses
données. La définition de la vue est enregistrée dans
le base de données et à chaque appel d’une vue, le
SGBD réactive sa construction à partir de la BD.

Université Constantine 2 2
Pour quoi faire?

Les vues permettent de


• Simplifier des requêtes complexes
• Résoudre des problèmes de confidentialité
• Garantir l’integrité d’une base
• ...

Université Constantine 2 3
Vues
• La vue mono-table est créée à partir d’une table, les
modifications sont possibles, les modifications dans la
table → jointure en forme procédurale est autorisée. Une
vue mono-table pourra être mise à jour avec contraintes
• Vue multi-table est crée par une jointure en forme
relationnelle, par contre aucune modification
n'est autorisée. Les vues multi-table servent à simplifier
des requêtes, pas de modifications possibles dans ce
type de vue,

Université Constantine 2 4
Création de vues

• CREATE [OR REPLACE]VIEW <nom de vue> [<liste attributs>)]


AS <clause select>
[WITH CHECK OPTION [CONSTRAINT <nom de contrainte>]]
[WITH READ ONLY];

• OR REPLACE : recrée la vue si elle existe déjà,


• nom_vue : est le nom de la vue crée.
• La spécification des noms de colonnes de la vue est
facultative. Par défaut, les noms des colonnes de la vue sont
les mêmes que les noms des colonnes résultat du SELECT (si
certaines colonnes résultant du SELECT sont des expressions,
il faut renommer ces colonnes dans le SELECT, ou spécifier les
noms de colonne de la vue).
Université Constantine 2 5
Création de vues
• Une fois créée, une vue s'utilise comme une table. Il n'y a
pas de duplication des informations mais un stockage de
la définition de la vue.

• Utilisée partout où l’on peut mettre le nom d’une table :


• SELECT, UPDATE, DELETE, INSERT, GRANT

Université Constantine 2 6
Exemple

création d'une vue constituant une restriction de la table


" emp" aux employés du département 10

• CREATE VIEW emp10 AS


SELECT *
FROM emp
WHERE n_dept = 10 ;

Université Constantine 2 7
Exemples

• Dans le service responsable de la gestion des candidats


libres au bac :
CREATE VIEW candidat-libre
AS SELECT (num_insc, nom, prenom, adr, n-tel, état)
FROM inscrit
WHERE lycée=null

Université Constantine 2 8
Conditions générales de mise à jour
UPDATE, DELETE, INSERT possibles si :
• On peut retrouver la ou les lignes de la table originale
concernée.
• La vue ne doit pas contenir :
• Un opérateur ensembliste (UNION, EXCEPT, INTERSECT)
• Un opérateur DISTINCT
• Une fonction d’aggrégation comme attribut
• Une clause GROUP BY, ORDER BY ou CONNECT BY
• Une jointure (vue construite sur une seule table)

Université Constantine 2 9
Conditions générales de mise à jour
Exemple
• modification des salaires du département 10 à travers la
vue emp 10.
UPDATE emp10
SET sal = sal *1.1;

• Toutes les lignes de la table " emp ", telles que le contenu
de la colonne n_dept est égal à 10 seront modifiées.

Université Constantine 2 10
Suppression d’une vue
DROP VIEW nom_vue;
• Cette commande supprime la définition de la vue dans la
métabase (ou catalogue) de la base. En général et sauf
pour les vues concrètes, un vue n’a pas d’existence
physique, c’est une fenêtre dynamique non matérialisée
sur les disques. La destruction d’une vue n’affecte aucun
tuple.

Université Constantine 2 11
vues concrètes
• Une vue est en principe une fenêtre dynamique sur une
base de données, dont une partie est instanciée lors
d’une question.
• La concrétisation de la vue par le serveur peut être plus
avantageuse si celle-ci est souvent utilisée et si les tables
sources sont peu modifiées. Ainsi, certains serveurs
supportent des vues concrètes.

Université Constantine 2 12
Définition
• Vue concrète (Concrete view) :Table calculée à partir des
tables de la base par une question et matérialisée sur
disques par le SGBD.
• Certains SGBD supportent les vues concrètes qui sont
avantageuses lorsqu’elles sont souvent utilisées, si leurs
tables sources sont peu modifiées et quand elles
contiennent des agrégats : elle permettent ici de
mémoriser des résumés compacts des tables.

Université Constantine 2 13
Definition
• Ce genre de vues est calculé dès sa définition et est modifié
chaque fois que ses tables sources sont modifiées. La
modification est différentielles . C’est -à-dire que seuls les
tuples modifiés sont pris en compte pour calculer les
modifications à apporter à la vue.
• Les vues concrètes sont définies par la requête :
• CREATE CONCRETE VIEW

Université Constantine 2 14
SQL2
• ON DELETE et ON UPDATE permettent de prendre en
charge la contrainte d’intégrité référentielle en contrôlant la
suppression ou la mise à jour de la clé étrangère:
• NO ACTION : ne rien faire
• CASCADE : supprimer ou faire les m.à.j. nécessaire en
cascade.
• SET DEFAULT : indique qu’il faut remplacer la valeur de la clé
étrangère dans la relation référençante par la valeur par
défaut déclarée dans CREATE
• SET NULL : fait exactement la même chose mais avec la
valeur NULL

Université Constantine 2 15

Vous aimerez peut-être aussi