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’un SGBD Relationnel
– Le Gestionnaire de Transactions
Définition :
Une transaction est une séquence d’ordres SQL qui peuvent être considérés comme
des unités de traitement uniques et dans lesquelles chaque modification de donnée
peut être validée ou annulée intégralement.
Olivier Michelet 3
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Une transaction est une suite d’instructions qui réussissent ou qui échouent en totalité
► il ne peut pas y avoir de réussite partielle
Toutes les transactions sont enregistrées dans un fichier nommé le journal des
transactions.
Ce journal permet de restaurer la base de données en cas de panne sur le ou les
fichiers de données. Il sert également à effectuer le retour arrière sur un échec de
transaction.
Il doit être évidemment sauvegardé régulièrement, car pour restaurer complètement
une base, il faut être capable d'appliquer à nouveau toutes les modifications depuis la
dernière sauvegarde.
C’est le rôle du journal des transactions de répertorier toutes ces informations.
Olivier Michelet 4
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
• Atomicité :
une transaction est une unité d’exécution indivisible
• Cohérence :
respecte les contraintes d ’intégrité
les contraintes de type différé sont vérifiées à la validation
• Isolation :
l’exécution est indépendante de l ’exécution des autres transactions
• Durabilité :
le résultat d ’une transaction validée ne doit pas être perdu
Olivier Michelet 5
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Olivier Michelet 6
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Olivier Michelet 7
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
L’impact d’une transaction dans une session unique est simple à comprendre.
Olivier Michelet 8
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Si l ’on exécute :
T1a), T1b), T2a), T2b), T1c), T2c),
l ’effet de l ’opération T1b) est perdu.
T1 doit donc travailler en isolation jusqu’à sa terminaison, puis T2 s'exécutera à son tour.
Olivier Michelet 9
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Dirty Read
Une transaction T1 lit des changements non validés d’une transaction T2.
Si T2 applique une annulation de ces mises à jour, T1 aura utilisé des données
erronées.
Non-Repeatable Read
Une transaction T1 lit une valeur sur rang qui est en cours de modification et validé
par une transaction T2 ultérieurement.
Si T1 lit à nouveau le même rang, le résultat sera différent et paraîtra incohérent.
Phantom
Une transaction T1 lit un ensemble de rangs qui satisfont une condition.
Une seconde transaction T2 effectue des insertions qui satisfont cette condition.
Si T1 effectue la même requête une nouvelle fois, il recevra des rangs fantômes.
Olivier Michelet 10
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Le Gestionnaire de Transactions
Pour éviter ces phénomènes parasites, 4 niveaux d’isolation sont définis dans SQL:
Read Uncommitted
Niveau minimal d’isolation. Les trois types d'interactions sont possibles.
Read Committed
Les lectures Dirty Read sont évitées. Toutefois les Non-Repeatable Read et Phantom
sont encore possibles.
Repeatable Read
Les Dirty Read and Non-Repeatable Read sont évités mais pas les Phantom.
Serializable
C’est le plus haut niveau d’isolation, aucun des cas présentés ci-dessus n’est
possible.
La commande SET permet de modifier le niveau d’isolation pour la transaction courante:
SET TRANSACTION ISOLATION LEVEL D
Ou pour la session:
SET SESSION TRANSACTION ISOLATION LEVEL D
Olivier Michelet 11
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Les Accès Concurrents
Lors de la lecture de données dans une base, le SGBD met en place des « verrous ».
Ce sont des mécanismes qui permettent d’éviter les erreurs de lectures concurrentes.
Olivier Michelet 12
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Les Accès Concurrents
L’ordre LOCK TABLES pose un verrou sur une table. Il supprime les autres verrous :
LOCK TABLES nom_table {READ | WRITE}, ...;
●
Architecture d’un SGBD Relationnel
– Les Accès Concurrents
Compatibilité (O/N)
avec les autres modes
de verrouillage
Mode de verrouillage Commandes SQL RS R S SR X
correspondantes X X
RS : Lignes partagées - Select ...from ... for update
- Lock table ... in row share O O O O N
mode
- Insert into ...
- Update ...
- Delete from ...
RX : Lignes exclusives O O N N N
- Lock table ... in row exclusive
mode
S : Table partagée - Lock table ... in share mode O N O N N
SRX : Partage exclusif - Lock table ... in share O N N N N
de lignes exclusive mode
X : Table exclusive Lock table ... in exclusive N N N N N
mode
Olivier Michelet 14
CNAM Aix en Provence -
Conception et Administration des Bases de Données
●
Architecture d’un SGBD Relationnel
– Les Accès Concurrents
Il se produit lorsque deux transactions sont mutuellement en attente de données qui sont
verrouillées de manière exclusive par l’autre transaction.
Le système est alors bloqué jusqu’à ce qu’une des deux transactions soit « tuée ».
Lecture E1 Lecture E2
Lecture E2 Lecture E1
Blocage E1 Blocage E2
MàJ E1 MàJ E2
Demande de blocage E2 Demande de blocage E1
Attente de E2 Attente de E1
BLOCAGE
Olivier Michelet 15