Académique Documents
Professionnel Documents
Culture Documents
CHAPITRE 2 : Langage de
Définition de Données
1. Introduction
SQL : (Structured Query Language : langage de requêtes structuré) est un langage
complet pour gérer une base de données relationnelle ; il est composé de trois
sous-ensembles.
- un langage de définition de données (LDD ou en anglais DDL Data Definition
Language)), c'est-à-dire qu'il permet de créer des tables dans une base de données
relationnelle, et de mettre à jour la structure de la base de données (tables,
attributs, vues, index, ...).
- un langage de manipulation de données (LMD ou en anglais DML, Data
Manipulation Language), cela signifie qu'il permet de sélectionner, insérer,
modifier ou supprimer des données dans une table d'une base de données
relationnelle.
- un langage de protections d'accès, Il est possible avec SQL de définir des
permissions au niveau des utilisateurs d'une base de données. On parle de DCL
(Data Control Language).
Le langage SQL peut être considéré comme le langage d’accès normalisé aux
bases de données. Il est supporté par la plupart des produits commerciaux que ce
soit par les systèmes de gestion de bases de données Microsoft tel que Access ou
par les produits plus professionnels tels que Oracle, SQLServer, etc. Il a fait
l’objet de plusieurs normes ANSI/ISO dont la plus répandue aujourd’hui est la
norme SQL3.
Le succès du langage SQL est dû essentiellement à sa simplicité et au fait qu’il
s’appuie sur le schéma conceptuel pour énoncer des requêtes en laissant le SGBD
responsable de la stratégie d’exécution.
Néanmoins, le langage SQL ne possède pas la puissance d’un langage de
programmation : entrées/sorties, instructions conditionnelles, boucles et
affectations. Pour certains traitements il est donc nécessaire de coupler le langage
SQL avec un langage de programmation plus complet tel que PLSQL, VB,
Wlangage de Windev, etc
2. Types de données
Pour chaque attribut que l'on crée, il faut préciser le type de données que le champ
va contenir. Les types de données disponibles en SQL varient d'un SGBD à l'autre,
on peut néanmoins citer les types les plus utilisés que l'on retrouve dans le SGBD
Oracle :
3. Contraintes d’intégrité
Une contrainte d’intégrité est une règle qui permet de contrôler la validité et la
cohérence des valeurs entrées dans les différentes tables de la base.
Elle peut être définie sous deux formes :
- Dans les commandes de création des tables.
- Au moment de la modification de la structure de la table.
Application :
- Création de la table Dept dont la description est la suivante :
DEPT (DEPTNO, DNAME, LOC)
Il faut noter que la suppression d’attributs (colonnes) n'est possible que dans le
cas où :
· L’attribut ne fait pas partie d'une vue,
· L’attribut ne fait pas partie d'un index,
· L’attribut n'est pas l'objet d'une contrainte d'intégrité.
7. Création d’index
La création d’un index permet d’accélérer les recherches d’informations dans la
base. La ligne est retrouvée instantanément si la recherche peut utiliser un index,
sinon la recherche se fait séquentiellement. Une autre utilité de la création d’index
est de garantir l’unicité de la clé en utilisant l’option UNIQUE.
Syntaxe :
CREATE [UNIQUE] INDEX nom_index
ON nom_table (Attr1[ASC/DESC], Attr2[ASC/DESC], …);
· L'option UNIQUE permet de définir la présence ou non de doublons pour les
valeurs de l’attribut.
· Les options ASC/DESC permettent de définir un ordre de classement des
valeurs de l’attribut.
Remarque :
1. Ne pas créer d’index pour les tables moins de 200 à 300 lignes
2. Indexer les colonnes qui interviennent souvent dans les clauses Where,
Group by et Order by.