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