Vue (base de données)
Une vue dans une base de données est une synthèse d'une requête d'interrogation de la base. On peut la voir comme une table virtuelle, définie par une requête.
Les avantages des vues sont :
- d'éviter de taper une requête très longue : la vue sert à donner un nom à la requête pour l'utiliser souvent,
- de masquer certaines données à certains utilisateurs. En SQL, les protections d'une vue ne sont pas forcément les mêmes que celles des tables sous-jacentes.
Stockage des vues
Les vues ne sont pas forcément purement virtuelles. Certains SGBD comme Oracle Database[1] permettent de stocker la vue sur disque, elle devient alors un véritable système de cache.
En SQL
Les vues se créent avec la commande CREATE VIEW
. Un exemple, où les employés d'une entreprise sont dans une table, les départements de l'entreprise dans une autre et où on doit faire une jointure pour afficher le nom du département à côté de celui de l'employé :
CREATE TABLE Employes (id SERIAL, nom TEXT, departement INTEGER);
CREATE TABLE Departements (id SERIAL, nom TEXT);
SELECT e.nom as Employe, d.nom as Departement
FROM Employes e,Departements d WHERE e.departement = d.id;
Si, par contre, on crée une vue :
CREATE VIEW ToutLeMonde AS
SELECT e.nom as Employe, d.nom as Departement
FROM Employes e,Departements d
WHERE e.departement = d.id;
On pourra alors écrire la requête SELECT ci-dessus bien plus simplement, la jointure ne sera plus visible :
SELECT * FROM ToutLeMonde ;
Les vues s'utilisent pratiquement comme des tables (elles peuvent être dans une clause FROM
d'un SELECT
, dans un UPDATE
, etc) avec quelques restrictions, qui dépendent du SGBD.
Notes et références
- « Oracle Database Cache Views », sur docs.oracle.com (consulté le )