Administration des
Bases de Données
Conservatoire National des Arts et
Métiers
Aix-en-Provence
Olivier Michelet
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Les systèmes de gestion de bases de données
– Les bases de données, SGBD, Définitions
●
Conception et modélisation des Bases de Données
– La modélisation conceptuelle de données : Le modèle Entité – Association
– La normalisation
– Du modèle conceptuel au modèle relationnel
●
Architecture d’une base de données Relationnelle
– Rappels : Les systèmes de fichiers
– La Structure Physique – La Structure Logique – Le Schéma
●
Architecture d’un SGBDR
– Analyseur syntaxique, Optimiseur de Requêtes, Gestionnaire des Transactions,
Accès Concurrents, Principe de verrouillage des Données, Sécurité / Reprise
●
Mise en œuvre d’une base de données relationnelle
– Algèbre Relationnelle – Opérations Logiques
– Création / Manipulation de Bases de Données
●
Administration / Optimisation / Sécurité / Règles de programmation
●
Approche de la gestion des SI répartis et fédérés
●
Nouvelles technologies et Bases de Données
Olivier Michelet 2
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’une Base de Données Relationnelle
– L’Analyseur de Requête
– L’Optimiseur de Requêtes
– Le Gestionnaire de Transactions
– Les Accès Concurrents
– Les Systèmes de Sécurité – Reprise après Incidents
Olivier Michelet 3
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
Olivier Michelet 4
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
Optimiseur de requête :
– décide de la meilleure stratégie d ’accès aux données, traite les requêtes et les
transforme en interne pour en faciliter l’exécution
Gestionnaire de méthodes d ’accès :
– effectue les accès physiques aux données, selon la stratégie définie par
l’optimiseur
Gestionnaire de tampon :
– responsable des transferts de page de mémoire secondaire en mémoire centrale
Système de contrôle de la fiabilité :
– préserve le contenu de la BD en cas de panne
Système de contrôle de concurrence :
– régule les accès simultanés
– empêche les incohérences en cas d’interférences entre applications
Olivier Michelet 5
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Analyseur de Requêtes
C’est un mécanisme interne qui analyse et interprète le code qui lui est soumis, pour
détecter :
- les éventuelles erreurs de codification
- les objets requis à utiliser et à mettre en œuvre pour exécuter ce code
- les éventuelles erreurs de conversion de données
Il est chargé de :
- la vérification syntaxique de la requête, en adéquation avec le langage SQL.
- puis, il doit s’assurer que ces données soient disponibles à l’utilisateur, l’étape
sémantique.
- localiser les données et les retrouver en analysant leurs différents chemins
d’accès.
Olivier Michelet 6
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 7
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Toutefois, selon le besoin (interface client ou programme batch), les contraintes peuvent
différer et ainsi requérir des fonctionnements opposés (meilleurs temps de réponse
pour une requête « simple », lecture complète de la table pour un traitement en
masse).
Le programmeur peut laisser le système décider de la meilleure stratégie ou fixer le choix
du mode d'exécution des requêtes
Pour cela, le système nécessite de s'appuyer sur des données collectées pour estimer et
calculer le meilleur plan.
Ces données sont recueillies lors de calcul et de mise à jour de statistiques de
traitement, notamment sur la profondeur de la recherche dans les index et la
distribution des données.
Ces données demandent à être régulièrement mises à jour, selon l'activité de la base.
Elles demandent à être exhaustives et récentes, pour garantir leur pertinence.
Olivier Michelet 8
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
La mise à jour des données de statistiques est effectuée à l'aide d'outils du SGBD :
- DBMS_STATS
qui effectue la collecte des informations
- ANALYZE (commande)
Les statistiques ainsi collectées fournissent des informations sur l'unicité et sur la
distribution des données dans la base.
L'optimiseur s'en sert pour établir des plans d'exécution d'un haut niveau de
représentativité.
Olivier Michelet 9
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Résultat
Requête SQL
statistiques
Générateur
de lignes
Execution SQL
Olivier Michelet 10
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
– LES ETAPES :
- Analyse de la requête
► correction et simplification des ordres
- Exécution
Olivier Michelet 11
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 12
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
La sélectivité est calculée à partir d'un jeu de lignes sur lequel on applique le prédicat de
la requête. Elle varie entre 0 (aucune ligne retournée) et 1(toutes les lignes).
En cas d'absence de statistiques, le SGBD se base sur ces valeurs.
Olivier Michelet 13
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
L'optimisation par coût consiste à estimer le coût d’exécution de chaque opérateur d’un
arbre algébrique en fonction :
Olivier Michelet 14
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Depuis le parseur
Transformateur
de requêtes
Requête transformée
Estimateur Dictionnaire
Requête + estimations
Générateur
de plan
Plan d'exécution
Olivier Michelet 15
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Calcul de coût
Coût de la transaction
Olivier Michelet 16
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
- les constantes
- les opérateurs LIKE, IN, ANY, SOME, ALL, BETWEEN
- NOT
- la transitivité
Olivier Michelet 17
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes – Les arbres relationnels
Olivier Michelet 18
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes – Les arbres relationnels
Olivier Michelet 19
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes – Les arbres relationnels
Olivier Michelet 20
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes – Les arbres relationnels
Exemple :
Olivier Michelet 21
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes – Les arbres relationnels
Olivier Michelet 22
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 23
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Exécution
On peut aussi incorporer des directives d’optimisation dans une requête (choix d’index,
par exemple)
Olivier Michelet 24
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 25
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Limites de l’optimiseur
Tout optimiseur a des limites qu’il est bon de pouvoir cerner :
en nombre maximal de tables manipulées, de jointures, de niveau d'imbrication
de sous-requêtes.
Informations fournies par l’optimiseur
Il est essentiel que l’optimiseur soit capable de fournir des renseignements sur la
façon dont il a calculé (déterminé) le plan d’exécution de la requête.
En effet, ces informations sont capitales pour l’administrateur de la base de
données afin d'ajuster l’organisation de la base de données et pour le
programmeur afin de modifier la structure de ses requêtes.
L’utilitaire le plus connu dans ce domaine est la commande EXPLAIN.
Olivier Michelet 26
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
La commande EXPLAIN affiche les plans d'exécution traités par l'optimiseur sur les
ordres SELECT, INSERT, UPDATE et DELETE
Il est composé de
- l'ordonnancement des tables participant à la requête
- la méthode d'accès pour chacune des tables
- la méthode de jointure
EXPLAIN ne permet pas de déterminer de la performance d'un ordre. Il décrit l'ensemble
des opérations effectuées par le moteur.
D'autres outils sont disponibles, tels que SQL Trace, par exemple, pour fournir plus
d'informations sur le nombre de recherches, le temps écoulé, le nombre de lectures,
le nombre de lignes retournées, etc...
Olivier Michelet 27
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 28
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
* index unique
** index non unique
^ avec ou sans
Olivier Michelet 29
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Plan d'exécution :
0 SELECT STATEMENT
1 CONCATENATION
2 TABLE ACCESS BY ROWID SALLE
3 INDEX RANGE SCAN IDX-CAPACITE
4 TABLE ACCESS BY ROWID SALLE
5 INDEX RANGE SCAN IDX-SALLE-CINEMA-ID
Olivier Michelet 30
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Plan d ’exécution :
• 0 SELECT STATEMENT
• 1 TABLE ACCESS FULL CINEMA
L'opération 1 est très coûteuse car elle balaie entièrement la table Cinéma
Olivier Michelet 31
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Plan d'exécution :
0 SELECT STATEMENT
1 TABLE ACCESS FULL SALLE
Olivier Michelet 32
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Plan d'exécution :
0 SELECT STATEMENT
1 NESTED LOOPS
2 TABLE ACCESS FULL SEANCE
3 TABLE ACCESS BY ROWID FILM
4 INDEX UNIQUE SCAN IDFILM_IDX
Olivier Michelet 33
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
4 algorithmes
• boucles imbriquées -> si tables de grande taille Nested loop
• tri-fusion Merge (tempdb)
• hachage Hash (tempdb)
• par groupement -> en cas de cluster
Directives d ’optimisation
Choose : stratégie à base de coûts avec optimisation globale si des stats existent,
sinon à base de règles
Rule : stratégie à base de règles (défaut)
all_rows : à base de coûts avec optimisation globale
first_rows : à base de règles avec minimisation du temps de réponse
Olivier Michelet 34
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
EXEMPLE
Schéma relationnel :
Requête :
SELECT nom
FROM ENSEIGNANT, UV, EXAMEN
WHERE ENSEIGNANT.no-enseignant = UV.no-enseignant
AND UV.code-uv = EXAMEN.code-uv
AND date-examen = 10/06/2002
Olivier Michelet 35
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 36
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 37
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– L’Optimiseur de Requêtes
Olivier Michelet 38