Académique Documents
Professionnel Documents
Culture Documents
Interrogation de données
Présentation de SQL
52
Interrogation de données
Langage de définition de données (LDD)
En tant que langage de définition des données, SQL permet de créer des tables dans une
base de données relationnelle, ainsi que d’en modifier ou en supprimer.
Création d’une base de données
CREATE DATABASE nom_bdd ;
Exemple:
CREATE DATABASE GestionProduits ;
Supprimer une Bases de données
DROP DATABASE nom_bdd ;
Exemple:
DROP DATABASE GestionProduits ;
53
Interrogation de données
Langage de définition de données (LDD)
54
Interrogation de données
Langage de définition de données (LDD)
• Prenom CHAR(10) A h m e d
Ahmed
• Prenom VARCHAR2(10) A h m e d 55
Interrogation de données
Langage de définition de données (LDD)
56
Interrogation de données
Langage de définition de données (LDD)
Exemple:
DROP TABLE Produit ;
63
Interrogation de données
Langage de définition de données (LDD)
Création d’index
64
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Comment alors ce mécanisme est utilisé dans les bases de
données?
Un disque est divisé entre plusieurs pistes et de secteurs.
L’intersection entre une piste et un secteur forme un bloc
Une base de données est un ensemble de fichiers stockés sur
un support persistant
Un fichier de données est constitué d’un ensemble
d’enregistrements (n-uplet)
Un ensemble d’enregistrements est stocké sur un bloc
Un fichier de données d’une table est stocké sur un ou
plusieurs blocs
65
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Exemple de bloc de données contenant une table client
66
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Exemple
Retrouver les client provenant de Marrakech
select * from client where ville='Marakech’;
Le serveur va parcourir la table client d’une manière
séquentielle à partir du premier enregistrement jusqu’au
dernier en vérifiant pour chaque client s’il satisfait ou non
ville='Marakech'
67
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Pour chercher des données dans une table, on parcours de
manière séquentiel tous les blocs associés à cette table
jusqu’à trouver le ou les enregistrements recherchés
Création d’index
Les index sont des structures de données qui améliorent les performances des requêtes
en accélérant le processus de recherche de données dans une table.
Utilisations courantes des index en SQL :
Accélération de la recherche
Les index permettent de rechercher des données plus rapidement en fournissant
un moyen efficace d'accéder directement aux enregistrements pertinents dans une
table, plutôt que de parcourir l'intégralité de la table.
Création d’index
Index=couple[clé, adresse]
Clé: une Valeur de la
colonne indexée
Adresse: l’adresse du
bloc
Exemple: index sur la
colonne ville de la table
client
71
Interrogation de données
Langage de définition de données (LDD)
Création d’index
B-arbre (index multi-
niveaux): est la technique la
plus utilisée dans les bases de
données relationnelles.
Un index B-arbre est une
structure multi-niveaux appelé
arbre équilibré contenant un
nœud racine et des pointeurs
vers les niveaux bas suivants
dans l’arbre.
Utilisé pour les requêtes
d’égalité: =,<>,>,<,<= et >=
72
Interrogation de données
Langage de définition de données (LDD)
Création d’index
73
Interrogation de données
Langage de définition de données (LDD)
Création d’index
B-arbre (index multi-niveaux)
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 présentes dans l’attribut.
74
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index bitmap:
recommandé en particulier
si la cardinalité de l’attribut
indexé est faible (faible
nombre de valeurs
distinctes par rapport au
nombre total de lignes dans
la table)
Syntaxe:
CREATE INDEX index_bitmap
ON ma_table (colonne2)
USING BITMAP;
76
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index de jointure:
précalculer la jointure et
stocker le résultat dans une
table
77
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index par hachage:
est très performant pour les recherches
d’égalité: = ou <>
Ne fonctionne pas avec les recherche
par intervalle et pour les inégalité
Permet un accès direct à un
enregistrement dans le cas des valeurs
uniques
Est préconisé pour les valeurs uniques
78
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index par hachage:
Syntaxe:
CREATE [UNIQUE] INDEX nom_index ON nom_table (colonne)
USING HASH;
79
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index par hachage:
80
Interrogation de données
Langage de définition de données (LDD)
Création d’index
Index par hachage:
81
Interrogation de données
Langage de définition de données (LDD)
83
Interrogation de données
Langage de définition de données (LDD)
84
Interrogation de données
Langage de définition de données (LDD)
Création de vues
L'architecture ANSI/SPARC, datant de 1975,
définit des niveaux d'abstraction pour un
système de gestion de bases de données :
Niveau interne (ou physique) : il définit la
façon selon laquelle sont stockées les
données et les méthodes pour y accéder
Niveau conceptuel : appelé aussi MCD
(modèle conceptuel des données) ou MLD
(modèle logique des données). Il définit
l'arrangement des informations au sein de
la base de données
Niveau externe : il définit les vues des
utilisateurs 85
Interrogation de données
Langage de définition de données (LDD)
Création de vues
Une vue est une vision partielle ou particulière des données d’une ou plusieurs tables
de la base.
C’est une fenêtre dynamique sur la base de données.
La définition d’une vue est donnée par un select qui indique les données de la base qui
seront vues.
Les utilisateurs pourront consulter la base (avec certaines restrictions) à travers la vue,
c-à-d manipuler les données renvoyées par la vue comme si c’était des données d’une
table réelle.
Seule la définition de la vue est enregistrée dans la base, et pas les données de la vue.
On peut parler de table virtuelle (il n’existe pas de fichier physique qui présente la vue).
A deux instants distincts, le « contenu » d’une vue peut changer (si le contenu des
tables qui entrent dans la description de la vue a évolué). En effet, le contenu d’une vue
86
est recalculé à chaque utilisation de la vue par SQL.
Interrogation de données
Langage de définition de données (LDD)
Création de vues
Quatre raisons d’utiliser des vues
Effet macro : remplacer une requête compliquée par des requêtes plus simples
Confidentialité: les vues peuvent également être utilisées pour restreindre l'accès aux
données sensibles en créant une vue qui inclut uniquement les colonnes nécessaires à un
utilisateur particulier ou à un groupe d'utilisateurs.
Contraintes d’intégrité: les vues peuvent être utilisées pour appliquer des contraintes
d'intégrité au niveau logique. Par exemple, vous pouvez créer une vue qui combine des
données provenant de plusieurs tables, garantissant ainsi que les données restent
cohérentes et conformes aux règles métier.
Augmenter l’indépendance logique: Si la structure de la base de données change, les vues
peuvent être ajustées pour refléter ces changements sans impacter les applications qui
utilisent ces vues.
87