Les vues, indexes, séquences
Ce document présente les concepts fondamentaux des vues, des index et des séquences dans les bases de données relationnelles. Il s'adresse aux étudiants en informatique ou en gestion de bases de données souhaitant comprendre ces outils essentiels pour la manipulation, l'optimisation et la gestion des données.
D'après le document Les vues, indexes, séquences
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Database Management, SQL · PPTX · 11 pages · 2009
Ce document présente les concepts fondamentaux des vues, des index et des séquences dans les bases de données relationnelles. Il s'adresse aux étudiants en informatique ou en gestion de bases de données souhaitant comprendre ces outils essentiels pour la manipulation, l'optimisation et la gestion des données.
Les vues
Définition
Une vue est une représentation partielle ou spécifique des données issues d'une ou plusieurs tables d'une base de données. Elle est définie par une requête SELECT qui précise quelles données seront visibles. Contrairement à une table, seule la définition de la vue est stockée dans la base, pas les données elles-mêmes, ce qui en fait une table virtuelle.
Les vues permettent aux utilisateurs d'accéder uniquement à une partie des données, correspondant à leurs besoins.
Syntaxe de création
CREATE VIEW vue [(col1, col2...)] AS SELECT ...
La spécification des noms de colonnes dans la vue est facultative. Par défaut, les colonnes de la vue portent les noms des colonnes issues du SELECT. Si certaines colonnes résultantes sont des expressions sans nom, il est obligatoire de spécifier les noms des colonnes de la vue.
Exemple : création d'une vue restreignant la table EMP aux employés du département 10 :
CREATE VIEW EMP10 AS
SELECT * FROM EMP
WHERE deptno = 10
Syntaxe de suppression
DROP VIEW vue;
Cette commande supprime la vue nommée « vue ».
Utilisation des vues
Consultation
Une vue se consulte comme une table classique. Par exemple :
SELECT ENAME, JOB FROM EMP10;
Mise à jour
Il est possible de modifier les données via une vue (INSERT, UPDATE, DELETE) sous certaines conditions :
- Pour un DELETE, la requête SELECT définissant la vue ne doit pas contenir de jointure, GROUP BY, DISTINCT ou fonction d’agrégation.
- Pour un UPDATE, en plus des conditions précédentes, les colonnes modifiées doivent correspondre à des colonnes réelles de la table sous-jacente.
- Pour un INSERT, en plus des conditions précédentes, toutes les colonnes NOT NULL de la table sous-jacente doivent être présentes dans la vue.
Les index
Utilité
Un index accélère les recherches dans une table. Par exemple, pour afficher les employés dont le poste est « CLERK » :
SELECT * FROM emp
WHERE job = 'CLERK';
Sans index, la base doit parcourir toutes les lignes de la table EMP pour évaluer la condition, ce qui peut être long si la table est volumineuse. Si cette requête est fréquente, il est judicieux de créer un index sur la colonne JOB.
Concept de base
Un index contient une liste d’indices pour chaque valeur distincte de la colonne indexée. Ces indices pointent vers les lignes correspondantes dans la table.
Par exemple, un index sur la colonne JOB pourrait ressembler à :
| Valeur JOB | Indices des lignes dans EMP |
|---|---|
| CLERK | 1, 11, 12, 14 |
| ANALYST | 8, 13 |
| MANAGER | 4, 6, 7 |
| PRESIDENT | 9 |
| SALESMAN | 2, 3, 5, 10 |
Grâce à cet index, la requête précédente accède directement aux lignes concernées sans parcourir toute la table.
Création d’un index
CREATE INDEX nom_ind ON tab(col1, col2, ...);
Cette commande crée un index nommé nom_ind sur la table tab, portant sur les colonnes spécifiées.
Exemple :
CREATE INDEX emp_job ON emp(job);
Inconvénients
- Un index consomme de l’espace disque supplémentaire.
- Il nécessite une maintenance lors des opérations d’insertion, mise à jour ou suppression sur la table indexée.
Les séquences
Utilité
Les séquences servent à générer des nombres séquentiels et uniques, souvent utilisés pour les clés primaires.
Une séquence est un objet de base de données qui stocke une valeur s’incrémentant à chaque consultation.
Création d’une séquence
CREATE SEQUENCE nom_seq
MINVALUE min_val MAXVALUE max_val
START WITH val INCREMENT BY val_inc
[CYCLE | NOCYCLE]
Exemple
CREATE SEQUENCE emp_seq
MINVALUE 100 MAXVALUE 1000
START WITH 500 INCREMENT BY 1 CYCLE;
Pour utiliser la séquence, on emploie les pseudo-colonnes nom_seq.curval (valeur courante) et nom_seq.nextval (valeur suivante).
Exemple d’insertion d’un nouvel employé en utilisant la séquence pour la clé primaire empno :
INSERT INTO emp(empno, ename, sal)
VALUES(emp_seq.nextval, 'PATRICK', 1200);
Glossaire des termes clés
- Vue : Table virtuelle définie par une requête SELECT, ne stockant pas les données mais leur définition.
- Index : Structure de données permettant un accès rapide aux lignes d’une table selon une ou plusieurs colonnes.
- Séquence : Objet générant des nombres uniques et séquentiels, souvent utilisés pour les clés primaires.
- Table sous-jacente : Table réelle sur laquelle une vue est basée.
- NOT NULL : Contraintes indiquant qu’une colonne ne peut pas contenir de valeur nulle.
- INSERT, UPDATE, DELETE : Opérations de modification des données dans une table ou une vue.
- Jointure : Opération combinant des lignes de plusieurs tables selon une condition.
- GROUP BY : Clause SQL regroupant les résultats selon une ou plusieurs colonnes.
- DISTINCT : Clause SQL éliminant les doublons dans les résultats.
- Fonction d’agrégation : Fonction calculant une valeur à partir d’un ensemble de lignes (ex : SUM, AVG).
Points clés à retenir
- Une vue est une table virtuelle définie par une requête SELECT, permettant de restreindre ou personnaliser l’accès aux données.
- Les vues peuvent être mises à jour sous certaines conditions strictes liées à la simplicité de la requête et aux colonnes modifiées.
- Un index améliore considérablement la vitesse des requêtes de recherche mais nécessite un espace disque et une maintenance supplémentaires.
- Les séquences génèrent des valeurs numériques uniques et séquentielles, utiles notamment pour les clés primaires.
- La création et la suppression des vues, index et séquences se font via des commandes SQL spécifiques.
Commentaires
Aucun commentaire pour le moment. Posez la première question.