Cours de bases de données – Aspects système Version 1.1 Philippe

Cours de bases de données – Aspects
système
Version 1.1
Philippe Rigaux
janv. 05, 2017
Table des matières
1 Introduction 3
2 Dispositifs de stockage 5
2.1 S1 : Supports de stockage ........................................ 5
2.1.1 Mémoires ............................................ 6
2.1.2 Performances des mémoires .................................. 7
2.1.3 Disques ............................................. 8
2.1.4 Un mot sur les Solid State Drives ................................ 10
2.1.5 Quiz ............................................... 11
2.1.6 Exercices ............................................ 11
2.2 S2 : Gestion des mémoires ........................................ 12
2.2.1 Les lectures ........................................... 12
2.2.2 Les mises à jour ......................................... 14
2.2.3 Le principe de localité ..................................... 16
2.2.4 Quiz ............................................... 19
2.2.5 Exercices ............................................ 19
3 Fichiers séquentiels 21
3.1 S1 : Enregistrements, blocs et fichiers .................................. 21
3.1.1 Enregistrements ......................................... 21
3.1.2 Blocs .............................................. 24
3.1.3 Fichiers ............................................. 27
3.1.4 Exercices ............................................ 29
3.2 S2 : Oracle ................................................ 29
4 Indexation : l’arbre B 31
4.1 S1 : Indexation de fichiers ........................................ 32
4.1.1 Structure et contenu des index ................................. 32
4.1.2 Comment chercher avec un index ................................ 33
4.1.3 Index non-dense ......................................... 34
4.1.4 Index dense ........................................... 36
4.1.5 Index multi-niveaux ....................................... 37
4.1.6 Quiz ............................................... 39
4.2 S2 : L’arbre-B .............................................. 40
4.2.1 Structure de l’arbe B ...................................... 40
4.2.2 Construction de l’arbre B .................................... 42
4.2.3 Recherches avec un arbre-B .................................. 46
4.2.4 Création d’un arbre B ...................................... 47
i
4.2.5 Propriétés de l’arbre B ..................................... 48
4.2.6 Quiz ............................................... 48
5 Opérateurs et algorithmes 51
5.1 S1 : Introduction à l’optimisation et à l’évaluation ........................... 51
5.1.1 Quiz ............................................... 52
5.2 S2 : Modèle d’exécution : les itérateurs ................................. 53
5.2.1 Matérialisation et pipelinage .................................. 53
5.2.2 Opérateurs bloquants ...................................... 55
5.2.3 Itérateurs ............................................ 56
5.2.4 Quiz ............................................... 57
5.3 S3 : les opérateurs de base ........................................ 58
5.3.1 Parcours séquentiel ....................................... 58
5.3.2 Parcours d’index ........................................ 58
5.3.3 Accès par adresse ........................................ 59
5.3.4 Opérateurs de sélection et de projection ............................ 60
5.3.5 Exécution de requêtes mono-tables ............................... 61
5.3.6 Quiz ............................................... 63
5.4 S4 : Le tri externe ............................................ 64
5.4.1 Phase de tri ........................................... 65
5.4.2 Phase de fusion ......................................... 65
5.4.3 Coût du tri-fusion ........................................ 67
5.4.4 L’opérateur de tri-fusion .................................... 68
5.4.5 Quiz ............................................... 69
5.5 S5 : Algorithmes de jointure ....................................... 69
5.5.1 Jointure avec un index ..................................... 70
5.5.2 Jointure avec deux index .................................... 72
5.5.3 Jointure par boucles imbriquées ................................ 72
5.5.4 Jointure par tri-fusion ...................................... 75
5.5.5 Jointure par hachage ...................................... 77
5.5.6 Quiz ............................................... 79
6 Evaluation et optimisation 81
6.1 S1 : traitement de la requête ....................................... 81
6.1.1 Décomposition en bloc ..................................... 81
6.1.2 Traduction et réécriture ..................................... 84
6.2 S2 : optimisation de la requête ...................................... 85
6.2.1 La réécriture ........................................... 85
6.2.2 Plans d’exécution ........................................ 86
6.2.3 Arbres en profondeur à gauche ................................. 90
6.2.4 Quiz ............................................... 92
6.3 S3 : illustration avec ORACLE ..................................... 92
6.3.1 Paramètres et statistiques .................................... 92
6.3.2 Plans d’exécution ORACLE .................................. 93
7 Transactions 99
7.1 S1 : Transactions ............................................. 100
7.1.1 Notions de base ......................................... 100
7.1.2 Exécutions concurrentes .................................... 102
7.1.3 Propriétés ACID des transactions ................................ 104
7.1.4 Un exemple de concurrence sous ORACLE .......................... 106
7.2 S2 : effets indésirables des transactions concurrentes .......................... 108
7.2.1 Défauts de sérialisabilité .................................... 108
7.2.2 Défauts de recouvrabilité .................................... 112
ii
7.2.3 Exercices ............................................ 114
7.3 S3 : choisir un niveau d’isolation .................................... 114
7.3.1 Les modes d’isolation SQL ................................... 115
7.3.2 Verrouillage explicite ...................................... 116
7.3.3 Le mode read committed ................................. 118
7.3.4 Le mode repeatable read ................................ 118
7.3.5 Le mode serializable ................................... 120
7.3.6 Exercices ............................................ 122
8 Contrôle de concurrence 123
8.1 S1 : Les mécanismes ........................................... 123
8.1.1 Versionnement ......................................... 123
8.1.2 Verrouillage ........................................... 124
8.1.3 Exercices ............................................ 126
8.2 S2 : les algorithmes ........................................... 126
8.2.1 Contrôle par verrouillage à deux phases ............................ 127
8.2.2 Contrôle de concurrence multi-versions ............................ 129
8.2.3 Exercices ............................................ 130
9 Reprise sur panne 131
9.1 S1 : mécanismes fondamentaux ..................................... 131
9.1.1 Pannes et mémoires ....................................... 132
9.1.2 Le journal des transactions ................................... 133
9.2 S2 : Algorithmes de reprise sur panne .................................. 134
9.2.1 La notion de checkpoint .................................... 134
9.2.2 Avec mises à jour différées ................................... 135
9.2.3 Avec mise à jour immédiate .................................. 135
9.2.4 Journaux et sauvegardes .................................... 136
9.2.5 Quiz ............................................... 137
10 Indices and tables 141
iii
1 / 147 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !