Les vues, indexes, séquences

Ce document présente les concepts fondamentaux des vues, des index et des séquences en bases de données relationnelles. Il s’adresse aux étudiants et professionnels souhaitant comprendre leur utilité, leur création, ainsi que leurs conditions d’utilisation. Les vues 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.

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.

Les vues, indexes, séquences

Document source

Les vues, indexes, séquences

Database Management · PPTX · 11 pages · 2009

Consulter le document original →

Ce document présente les concepts fondamentaux des vues, des index et des séquences en bases de données relationnelles. Il s’adresse aux étudiants et professionnels souhaitant comprendre leur utilité, leur création, ainsi que leurs conditions d’utilisation.

Les vues

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. La vue ne stocke pas les données elles-mêmes, mais uniquement sa définition, ce qui en fait une sorte de table virtuelle.

Les utilisateurs peuvent ainsi accéder uniquement à une portion des données qui les intéresse, sans manipuler directement les tables sous-jacentes.

Syntaxe de création

CREATE VIEW vue [(col1, col2...)] AS SELECT ...

La spécification des noms des colonnes de la vue est facultative. Par défaut, les colonnes portent les noms des colonnes résultant du SELECT. Cependant, 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

Une vue se consulte comme une table classique :

SELECT ENAME, JOB FROM EMP10;

Il est possible de mettre à jour (INSERT, UPDATE, DELETE) une vue sous certaines conditions :

  • Pour un DELETE, la requête SELECT définissant la vue ne doit pas contenir de jointure, ni de clause 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é d’un index

Un index accélère les recherches dans une table en évitant de parcourir toutes les lignes. Par exemple, pour afficher les employés dont le poste est « CLERK » :

SELECT * FROM emp
WHERE job = 'CLERK';

Sans index, chaque ligne de la table EMP est examinée, ce qui peut être long si la table est volumineuse. Si cette requête est fréquente, il est pertinent 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
CLERK1, 11, 12, 14
ANALYST8, 13
MANAGER4, 6, 7
PRESIDENT9
SALESMAN2, 3, 5, 10

La requête d’exemple peut alors accéder directement aux lignes concernées via l’index, améliorant considérablement la performance.

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 pour les colonnes spécifiées.

Exemple :

CREATE INDEX emp_job ON emp(job);

Inconvénients d’un index

  • Consommation d’espace disque supplémentaire.
  • Nécessite une maintenance à chaque modification (INSERT, UPDATE, DELETE) de la table indexée, ce qui peut ralentir ces opérations.

Les séquences

Utilité d’une séquence

Une séquence est un objet de base de données permettant de générer des nombres séquentiels et uniques, souvent utilisés pour les clés primaires.

Elle stocke une valeur qui s’incrémente à 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 une 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é avec une clé primaire générée par la séquence :

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 qui accélère l’accès aux lignes d’une table en fonction de la valeur d’une ou plusieurs colonnes.
  • Séquence : Objet générant des nombres entiers uniques et séquentiels, souvent utilisés pour les clés primaires.
  • CREATE VIEW : Commande SQL pour créer une vue.
  • DROP VIEW : Commande SQL pour supprimer une vue.
  • CREATE INDEX : Commande SQL pour créer un index sur une table.
  • CREATE SEQUENCE : Commande SQL pour créer une séquence.
  • curval : Pseudo-colonne retournant la valeur courante d’une séquence.
  • nextval : Pseudo-colonne retournant la prochaine valeur d’une séquence.

Points clés à retenir

  • Une vue est une table virtuelle définie par une requête SELECT, permettant de restreindre ou de présenter les données sous une forme spécifique.
  • Les vues peuvent être mises à jour sous certaines conditions liées à la simplicité de leur définition et à la présence des colonnes nécessaires.
  • Un index améliore considérablement la vitesse des requêtes de recherche mais consomme de l’espace et nécessite une maintenance.
  • Une séquence génère des valeurs numériques uniques et séquentielles, très utiles pour les clés primaires.
  • Les commandes SQL CREATE VIEW, DROP VIEW, CREATE INDEX et CREATE SEQUENCE sont essentielles pour manipuler ces objets.

Partager

Commentaires

Aucun commentaire pour le moment. Posez la première question.

Les commentaires sont relus avant publication. Votre e-mail n'est jamais affiché.

← Toutes les révisions