Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier
|
|
|
- Arsène Clermont
- il y a 10 ans
- Total affichages :
Transcription
1 ENSTA Mastère Spécialisé en Architecture des Systèmes d Information Cours C1-3 Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier Partie II : les SGBD vus du coté Administrateur de Bases de Données Architecture générale d un SGBD Organisation des données Évaluation et optimisation de requêtes Gestion de la concurrence / transactions Reprise sur pannes
2 BIBLIOGRAPHIE Ouvrages de référence utilisés pour le cours : R. Ramakrishnan et J. Gehrke, Database Management Systems, Second Edition; McGraw-Hill, 2000, disponible à la BU RAM H. Garcia Molina, J.D. Ullman et J. Widom, Database System Implementation, Prentice Hall, 2000, disponible à la BU GAR H. Garcia Molina, J.D. Ullman et J. Widom, Database Systems - The Complete Book, Prentice Hall, 2002 T. Connoly, C. Begg et A. Strachan, Database Systems A Pratical Approach to Desigh, Implementation and Management, 1998, disponible à la BU CON A. Silberschatz, H.F. Korth et S. Sudarshan, Database System Concepts, McGraw- Hill, 2002, version de 1996 disponible à la BU DAT C.J. Date, An Introduction aux bases de données, 6ème édition, Thomson publishing, 1998, disponible à la BU DAT R.A. El Masri et S.B. Navathe, Fundamentals of Database Systems, Prentice Hall, disponible à la BU ELM G. Gardarin, Bases de Données - objet/relationnel, Eyrolles, 1999, disponible à la BU GAR + Le client - serveur, Eyrolles, GAR 2
3 Chapitre 3 Gestionnaire de fichiers Chapitre 1 Chapitre 4 Chapitre 5 Chapitre 2 3
4 Chap. I - Architecture d un SGBD Vision des données par le SGBD : un ensemble d enregistrements mémoire Vision des données par le gestionnaire de fichiers : un ensemble de pages mémoire Vision des données par le gestionnaire de disque : un ensemble de pages disque Rôle du gestionnaire de buffer : passage des pages du disque vers la mémoire (et inversement) 4
5 Chap. I - Architecture Gestionnaire de buffer Rôle : placer, au moment voulu, une page du disque vers la mémoire et inversement Politique de remplacement (ex. LRU) Gestion des pages mises à jour Partition de la mémoire Vérification des droits sur les pages 5
6 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
7 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
8 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
9 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
10 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
11 Chap. I - Architecture Gestionnaire de buffer Mémoire Page mémoire libre Disque Page de données Page de données modifiées 6
12 Chap. I - Architecture Gestionnaire de buffer Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
13 Chap. I - Architecture Gestionnaire de buffer Page non accédée depuis longtemps (LRU) Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
14 Chap. I - Architecture Gestionnaire de buffer Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
15 Chap. I - Architecture Gestionnaire de buffer Page non accédée depuis longtemps (LRU) Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
16 Chap. I - Architecture Gestionnaire de buffer Page non accédée depuis longtemps (LRU) Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
17 Chap. I - Architecture Gestionnaire de buffer Page non accédée depuis longtemps (LRU) Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
18 Chap. I - Architecture Gestionnaire de buffer Page non accédée depuis longtemps (LRU) Mémoire Date de montée Date de dernier accès Page mémoire libre Disque Page de données Page de données modifiées 6
19 Chap. I - Architecture Système de fichiers Intégration ou non des fonctionnalités du SGF du système d exploitation : A chaque relation correspond un fichier liaison forte du SGBD et du SGF Stockage de toute la base de données dans un seul fichier le SGF donne accès aux différentes pages le SGBD contrôle tout Les pages doivent être connues du SGBD 7
20 Chap. II - Organisation des données Stockage des données Conservation Accès Structuration des données Moyens de manipulation des données 8
21 Chap. II - Organisation Gestion des fichiers Relation : collection de pages ou blocs disque ou mémoire champ : séquences d octets de taille fixe ou variable représentant la valeur d un attribut de nuplet sur le disque ou en mémoire enregistrement : collection de taille fixe ou variable de champs 9
22 Chap. II - Organisation Identification des enregistrements 10
23 Chap. II - Organisation Placement des enregistrements de taille fixe segn seg2 seg1 11
24 Chap. II - Organisation Placement des enregistrements de taille variable 12
25 Chap. II - Organisation Organisation des fichiers Modèle de coût [RG00] : B pages de disque R enregistrements par page Temps moyen de lecture d une page : D Temps moyen d accès à un enregistrement : C Temps de calcul d une valeur de fonction de hachage : H 13
26 Chap. II - Organisation Organisation des fichiers Trois organisations de fichier : aléatoire (Heap File) ordonné (Sorted File) hachage (Hash File) Plusieurs opérations : Lecture complète du fichier Recherche par égalité Recherche par intervalle Insertion Suppression 14
27 Chap. II - Organisation Fonction de hachage : Fichier de hachage calcule la page où doit être stocké l enregistrement en fonction de la valeur d un ou plusieurs de ses champs Regroupement de pages d un fichier de hachage en buckets composés de segments Gestion de pages d overflow Placement des enregistrements par ordre d arrivée dans le bucket Pas de garantie d adresse unique Gestion des collisions 15
28 Chap. II - Organisation Hachage statique 16
29 Chap. II - Organisation Gestion des collisions Open adressing : Recherche linéaire du premier segment vide Unchained overflow : Maintien d une zone d overflow Chained overflow : Maintien, pour chaque bucket, d un pointeur vers une zone d overflow Multiple hashing : Utilisation d une deuxième fonction de hachage pour placer les enregistrements dans la zone d overflow 17
30 Chap. II - Organisation Hachage extensible (1/2) Entrées r telles que h(r)=00 Ex. 32 en binaire =
31 Chap. II - Organisation Hachage extensible (1/2) Entrées r telles que h(r)=00 Ex. 32 en binaire = Insertions : 13 en binaire =
32 Chap. II - Organisation Hachage extensible (1/2) Entrées r telles que h(r)=00 Ex. 32 en binaire = Insertions : 13 en binaire =
33 Chap. II - Organisation Hachage extensible (1/2) Entrées r telles que h(r)=00 Ex. 32 en binaire = Insertions : 13 en binaire = en binaire = mais bucket A plein 18
34 Chap. II - Organisation Hachage extensible (2/2) La taille du répertoire est doublée et le bucket A est divisé en 2 19
35 Chap. II - Organisation Hachage extensible (2/2) La taille du répertoire est doublée et le bucket A est divisé en
36 Chap. II - Organisation Hachage extensible (2/2) La taille du répertoire est doublée et le bucket A est divisé en 2 13 h(4)=100 h(12)=100 h(16) = 000 h(32)=000 h(20) =
37 Chap. II - Organisation Hachage extensible (2/2) Taille globale La taille du répertoire est doublée et le bucket A est divisé en 2 13 h(4)=100 h(12)=100 h(16) = 000 h(32)=000 h(20) =
38 Chap. II - Organisation Hachage extensible (2/2) Taille globale La taille du répertoire est doublée et le bucket A est divisé en 2 13 Taille locale h(4)=100 h(12)=100 h(16) = 000 h(32)=000 h(20) =
39 Chap. II - Organisation Autre exemple de hachage extensible (1/4) 0 1 Répertoire de buckets buckets On ajoute l entrée 26 (11010)
40 Chap. II - Organisation Autre exemple de hachage extensible (2/4) Répertoire de buckets buckets Pages d overflow 21
41 Chap. II - Organisation Autre exemple de hachage extensible (3/4) Répertoire de buckets buckets Pages d overflow 22
42 Chap. II - Organisation Autre exemple de hachage extensible (3/4) Insertion de 17 (10001 en binaire) Répertoire de buckets buckets Pages d overflow 22
43 Chap. II - Organisation Autre exemple de hachage extensible (4/4) Répertoire de buckets 7 15 buckets Pages d overflow 23
44 Chap. II - Organisation Hachage linéaire (1/6) Prochain bucket à diviser Buckets existant au début du round dans l intervalle h level Buckets dédoublés pendant le round Si h level (clé) est dans cet intervalle, il faut utiliser h level +1 (clé) pour savoir si l entrée est dans les buckets dédoublés Buckets dédoublés pendant le round 24
45 Chap. II - Organisation Hachage linéaire (2/6) Entrées r telles que ho(r)=01 25
46 Chap. II - Organisation Hachage linéaire (2/6) Entrées r telles que ho(r)=01 Insertion de l entrée 43 : 43 en binaire = h 0 (43)=11 Or le bucket est plein Division du bucket Next 25
47 Chap. II - Organisation Hachage linéaire (3/6) 26
48 Chap. II - Organisation Hachage linéaire (3/6) 26
49 Chap. II - Organisation Hachage linéaire (3/6) Bucket divisé Bucket dédoublé 26
50 Chap. II - Organisation Hachage linéaire (3/6) Bucket divisé Bucket dédoublé 26
51 Chap. II - Organisation Hachage linéaire (3/6) Insertion des entrées 37 ( en binaire) et 29 (11101 en binaire) Bucket divisé Bucket dédoublé 26
52 Chap. II - Organisation Hachage linéaire (3/6) Insertion des entrées 37 ( en binaire) et 29 (11101 en binaire) Bucket divisé 37 Bucket dédoublé 26
53 Chap. II - Organisation Hachage linéaire (4/6) Insertion de 22 (10110 en binaire) division du bucket Next 27
54 Chap. II - Organisation Hachage linéaire (5/6) Insertion de 66 ( en binaire) et de 34 (10010 en binaire) Insertion de 50 (110010) division du bucket Next 28
55 Chap. II - Organisation Hachage linéaire (6/6) Après la division du bucket Next = N-1 N = N*2 et Next =
56 Chap. II - Organisation 3 alternatives Index (1/4) Les entrées de clé de recherche k sont les enregistrements mêmes Les entrées sont des couples (k,rid) Les entrées sont des couples (k,liste_rid) Index primaire Clé de recherche = clé primaire de la relation Index secondaire (clé de recherche, valeur(s) de clé primaire) (clé de recherche, pointeur(s) vers les pages du fichier) l index primaire doit être lu après l index secondaire 30
57 Chap. II - Organisation Clustered index Index (2/4) 31
58 Chap. II - Organisation Unclustered index Index (3/4) 32
59 Chap. II - Organisation Index (4/4) Index dense / non dense (sparce) 33
60 Chap. II - Organisation Index basé sur les structures arborescentes : Arbre B+ (1/3) Exemple d index primaire n f1 (1, GAMOTTE, Albert, ) (2, HIBULAIRE, Pat, ) f2 (23, PABIEN, Yvon, ) (24, DEBECE, Aude, ) f3 (46, PAN, Amédée, ) (47, DENT, Malo, ) Pages de la relation et feuilles de l index 34
61 Chap. II - Organisation Exemple d index secondaire Arbre B+ (2/3) n0 GAMOTTE PABIEN f1 (DEBECE, 24) (DENT,47) f2 (GAMOTTE, 1) (HIBULAIRE,2) f3 (PABIEN, 23) (PAN, 46) 35
62 Chap. II - Organisation Exemple d index secondaire Arbre B+ (2/3) n0 GAMOTTE PABIEN f1 (DEBECE, 24) (DENT,47) f2 (GAMOTTE, 1) (HIBULAIRE,2) f3 (PABIEN, 23) (PAN, 46) Pages de la relation (1, GAMOTTE, Albert, ) (23, PABIEN, Yvon, ) (46, PAN, Amédée, ) (2, HIBULAIRE, Pat, ) (24, DEBECE, Aude, ) (47, DENT, Malo, ) 35
63 Chap. II - Organisation Arbre B+ (3/3) HIBULAIRE FRICE PAN f1 (DEBECE, 24) f2 (FRICE, 70) f3 (HIBULAIRE,2) f4 (PAN, 46) (DENT,47) (GAMOTTE, 1) (PABIEN, 23) (ZEN, 98) 36
64 Chap. III - Optimisation de requêtes Exécution de requête : séries d opérations permettant d extraire des données de la base Optimisation de requête : activité permettant de choisir la meilleure stratégie d exécution d une requête 37
65 Chap. III - Optimisation Phases d exécution d une requête 38
66 Chap. III - Optimisation Exemple "Quels sont les noms de commerciaux basés dans les filiales de Londres?» SELECT e.nom FROM Employe e, Filiale f WHERE e.#filiale=f.#filiale AND e.position = Commercial AND f.ville= Londres Employe contient 1000 nuplets, Filiale en contient 50 Il y a 50 commerciaux et 5 filiales à Londres Trois requêtes possibles en algèbre relationnelle Calcul du coût de chaque requête en terme E/S 39
67 Chap. III - Optimisation Phase 1 : Décomposition Transformation de la requête SQL en une requête en algèbre relationnelle Vérification syntaxique et sémantique de la requête Utilisation du catalogue du système Représentation de la requête par un arbre d opérateurs algébriques 40
68 Chap. III - Optimisation Catalogue du système (1/2) Appelé également dictionnaire de données Contient la description des données de la base Pour chaque relation : nom de la relation, identificateur du fichier et structure du fichier nom et domaine de chaque attribut nom des index contraintes d intégrité Pour chaque index : nom et structure de l index attribut appartenant à la clé de recherche Pour chaque vue : nom de la vue définition de la vue 41
69 Chap. III - Optimisation Catalogue du système (2/2) Contient également des données statistiques Cardinalité de chaque relation Nombre de pages de chaque relation Nombre de valeurs distinctes de clé de recherche pour chaque index Hauteur des index de structures arborescente Valeur minimum et valeur maximum de chaque clé de recherche dans chaque index Exemple sous Oracle8 : USER_ALL_TABLES, USER_CONSTRAINTS etc. 42
70 Chap. III - Optimisation Arbre algébrique (1/2) Représentation des relations impliquées dans la requête par les nœuds feuille de l arbre Représentation des résultats intermédiaires par des nœuds non feuille Représentation du résultat de la requête par la racine de l arbre Ordre des séquences d opérations : des feuilles vers la racine 43
71 Chap. III - Optimisation Arbre algébrique (2/2) (Employe.#Filiale=Filiale.#Filiale) σ (Position = Commercial ) σ (Ville = Londres) Employe Filiale 44
72 Chap. III - Optimisation Phase 2 : Optimisation Equivalences d expressions (1/3) 1) Cascade de sélections : σ p q r (R) = 2) Commutativité des sélections : σ p (σ q ( R) ) = 3) Séquence de projections : Π L (Π M ( Π N ( R) )) = 4) Commutativité des sélections et des projections : Π A1 A n σ p (R) = 5) Commutativité des jointures : R p S = 6) Commutativité des jointures et des sélections σ p (R p S ) = et σ p ( R * S ) = 45
73 Chap. III - Optimisation Equivalence d expressions (2/3) 7) Commutativité des jointures et des projections Π L1 L 2 (R p S) = 8) Commutativité des unions et des intersections (R S ) = et ( R S ) = 9) Commutativité des unions, intersections, différences et des sélections σ p (R S) = σ p (R S) = σ p (R -S) = 46
74 Chap. III - Optimisation Equivalence d expressions (3/3) 10) Commutativité des projections et des unions Π L (R S) = 11) Associativité des jointures (R S) T= 12) Associativité des unions et des intersections (R S) T= (R S) T= 47
75 Chap. III - Optimisation Transformation d un arbre algébrique Division des conjonctions de sélections Ré-ordonnancement des sélections en utilisant les règles 2 et 4 Application des sélections les plus sélectives en premier Transformation des produits cartésiens en jointure Ré-ordonnancement des équi-jointures en utilisant la règle 11 Déplacement des projections et création de nouvelles projections en utilisant les règles 4 et 48
76 Chap. III - Optimisation Π Nom SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=
77 Chap. III - Optimisation Π Nom SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=
78 Chap. III - Optimisation Π Nom SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973 Projet Employe Equipe 49
79 Chap. III - Optimisation Π Nom SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973 * * Projet Employe Equipe 49
80 Chap. III - Optimisation Π Nom SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe AND #Equipe = #Appartenance AND DaeNais=1973 * * Projet Employe Equipe 49
81 Chap. III - Optimisation Π Nom σ (Nom_Projet= Siruis ) (#Projet=#Projet_Equipe) (#Equipe=#Appartenance) (DateNais=1973) SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe * AND #Equipe = #Appartenance AND DaeNais=1973 * Projet Employe Equipe 49
82 Chap. III - Optimisation Π Nom σ (Nom_Projet= Siruis ) (#Projet=#Projet_Equipe) (#Equipe=#Appartenance) (DateNais=1973) SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe * AND #Equipe = #Appartenance AND DaeNais=1973 * Projet Employe Equipe 49
83 Chap. III - Optimisation Π Nom σ (Nom_Projet= Siruis ) (#Projet=#Projet_Equipe) (#Equipe=#Appartenance) (DateNais=1973) SELECT Nom FROM Employe, Equipe, Projet WHERE Nom_Projet = Sirius AND #Projet = #Projet_Equipe * AND #Equipe = #Appartenance AND DaeNais=1973 * Projet Employe Equipe 49
84 Chap. III - Optimisation Π Nom σ (Nom_Projet= Siruis ) Division des conjonctions de sélections σ (#Projet=#Projet_Equipe) σ (#Equipe=#Appartenance) σ (DateNais=1973) * * Projet Employe Equipe 50
85 Chap. III - Optimisation Π Nom σ (#Projet=#Projet_Equipe) Ré-ordonnancement des sélections et application des sélections les plus sélectives en premier σ (#Equipe=#Appartenance) σ (DateNais=1973) Employe * * Equipe σ (Nom_Projet= Siruis ) Projet 51
86 Chap. III - Optimisation Π Nom Transformation des produits cartésiens en jointure (#Projet=#Projet_Equipe) (#Equipe=#Appartenance) σ (DateNais=1973) Employe Equipe σ (Nom_Projet= Siruis ) Projet 52
87 Chap. III - Optimisation Π Nom Ré-ordonnancement des jointures (les plus sélectives en premier) (#Equipe=#Appartenance) (#Projet=#Projet_Equipe) σ (Nom_Projet= Siruis ) Projet Equipe σ (DateNais=1973) Employe 53
88 Chap. III - Optimisation création de nouvelles projections Π Nom (#Equipe=#Appartenance) Π #Equipe Π Nom, #appartenance Π #Projet (#Projet=#Projet_Equipe) σ (DateNais=1973) Employe σ (Nom_Projet= Siruis ) Π #Projet_Equipe, #Equipe Projet Equipe 54
89 Chap. III - Optimisation Statistiques (1/2) Pour chaque relation R [CBS98] : NTuples(R) : nombre de nuplets Bfactor(R) : nombre de nuplets par bloc NBlocks(R) : nombre de blocs pour la relation NBlocks(R) = Pour chaque attribut A de R : NDistinct A (R) : nombre de valeurs distinctes de A Min A (R) et Max A (R) : valeurs min et max de A SC A (R) : nombre moyen de nuplets satisfaisant un prédicat sur A 55
90 Chap. III - Optimisation Statistiques (2/2) SC A (R) dépend du prédicat Egalité : A > c A < c A {c 1,, c n } A B A B Pour index I de R sur un attribut A : NLevels A (I) : nombre de niveaux pour I NLBlocks A (I) : nombre de blocs utilisés pour I 56
91 Chap. III - Optimisation Coût de σ p (R) Stratégies : Recherche linéaire (fichier non ordonné sans index) Recherche binaire (fichier ordonné sans index) Condition d égalité sur la valeur d une fonction de hachage Condition d égalité sur la clé primaire Condition d inégalité sur la clé primaire Condition d égalité sur la clé d un index secondaire clustered Condition d égalité sur la clé d un index secondaire unclustered Condition d inégalité sur un index secondaire en arbre B+ 57
92 Chap. III - Optimisation Coût de σ p (R) Exemple : Fonction de hachage Index clustered Employe(NSS, Departement, Salaire, Position ) NTuples(e)=3000 BFactor(e)=30 Index unclustered NDistinct D (e)=500 NDistinct P (e)=10 NDistinct S (e)=500 Min s (e)=1000 Max s (e)=5000 NLevels D (I)=2 NLevels S (I)=2 NBlocks S (I)=50 σnss = ( e σposition = ' Commercial '.( σdepartemen t = ' RH '.( ) e) e) σsalaire > σ 2000.( e) ( Position = ' Cadres ' ) ( Departement = ' R & D ' )( e) 58
93 Chap. III - Optimisation Coût de R F S Stratégies d implantations de la jointure : Boucles imbriquées (Block nested loop join) Boucles imbriquées en utilisant un index (Indexed nested loop join) Tri-fusion (Sort-merge join) Hachage (Hash join) Pour chaque algorithme, possibilité de le faire en multi-passes 59
94 Chap. III - Optimisation Cardinalité de la R F S NTuples(R F S) NTuples(R) * NTuples(S) Lorsque le prédicat est R.A=S.B Si A est clé de R : NTuples(R F S) NTuples(S) Si B est clé de S : NTuples(R F S) NTuples(R) Si ni A ni B ne sont clés : NTuples(R F S) ~ Max(SC A (R)* NTuples(S), SC B (S)* NTuples(R)) 60
95 Chap. III - Optimisation Boucles imbriquées Zone mémoire du buffer Les blocs de S sont montés en mémoire autant de fois qu il y a de blocs pour R S il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages disque S il existe un index sur l attribut de jointure d une des deux relations, on l utilise pour trouver les nuplets participant à la jointure 61
96 Chap. III - Optimisation Boucles imbriquées Page de R Zone mémoire du buffer Les blocs de S sont montés en mémoire autant de fois qu il y a de blocs pour R S il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages disque S il existe un index sur l attribut de jointure d une des deux relations, on l utilise pour trouver les nuplets participant à la jointure 61
97 Chap. III - Optimisation Boucles imbriquées Zone mémoire du buffer Les blocs de S sont montés en mémoire autant de fois qu il y a de blocs pour R Page de R Page de S S il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages disque S il existe un index sur l attribut de jointure d une des deux relations, on l utilise pour trouver les nuplets participant à la jointure 61
98 Chap. III - Optimisation Boucles imbriquées Zone mémoire du buffer Page de R Page de S Page de R S Les blocs de S sont montés en mémoire autant de fois qu il y a de blocs pour R S il y a NBuffer places en mémoire, on monte les pages de R en mémoire par paquets de (NBuffer - 2) pages disque S il existe un index sur l attribut de jointure d une des deux relations, on l utilise pour trouver les nuplets participant à la jointure 61
99 Chap. III - Optimisation Tri-Fusion Tri des relations sur l attribut de jointure Ex. Tri externe ou tri par séries monotones Equi-jointure des deux relations triées En parcourant simultanément les deux relations pages par pages 62
100 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
101 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
102 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
103 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
104 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
105 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
106 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
107 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
108 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
109 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
110 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
111 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
112 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
113 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
114 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
115 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
116 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
117 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
118 Chap. III - Optimisation Tri externe : 1ère étape La mémoire contient 3 emplacements disque 63
119 Chap. III - Optimisation Tri externe Ensemble de départ Après la 1ère étape de tri : Les pages sont triées par paquets de 2 3 paquets triés de 2 pages soit 2*5 E/S 64
120 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
121 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
122 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
123 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
124 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
125 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
126 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
127 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
128 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
129 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
130 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
131 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
132 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
133 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
134 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
135 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
136 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
137 Chap. III - Optimisation Tri externe : 2ème étape La mémoire contient 3 emplacements disque 65
138 Chap. III - Optimisation Tri externe Ensemble de départ Après la 1ère étape de tri : Les pages sont triées par paquets de 2 3 paquets triés de 2 pages soit 2*5 E/S Après la 2ème étape de tri : Les paquets sont triés 2 par 2 1 paquets trié de 4 pages et 1 paquet de 1 pages soit 2*5 E/S
139 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/
140 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 67
141 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 67
142 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 67
143 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 67
144 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 67
145 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/
146 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/
147 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/ Jeanne 9 175KF R&D 05/02/
148 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/ Jeanne 9 175KF R&D 05/02/
149 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/ Jeanne 9 175KF R&D 05/02/
150 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour 28 Jeanne 9 175KF R&D 02/02/ Jeanne 9 175KF R&D 05/02/
151 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour Jeanne Jeanne Paul KF 175KF 200KF... R&D R&D Compta... 02/02/ /02/ /02/
152 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour Jeanne Jeanne Paul KF 175KF 200KF... R&D R&D Compta... 02/02/ /02/ /02/
153 Chap. III - Optimisation Fusion RID Nom Heure Salaire SID Département Jour 22 Daniel 7 145KF 28 R&D 02/02/ Jeanne 9 175KF 28 R&D 05/02/ Paul KF 31 Compta 03/02/ Pierre 6 120KF 31 Direction 05/02/ Compta 06/02/2001 RID Nom Heure Salaire Département Jour Jeanne Jeanne Paul KF 175KF 200KF... R&D R&D Compta... 02/02/ /02/ /02/
154 Chap. III - Optimisation Exemples en utilisant PostgreSQL Commandes VACUUM : Mise à jour des statistiques VACUUM ANALYSE VERBOSE : met à jour analyse et affiche le résultat de l analyse des statistiques EXPLAIN : affiche le plan d exécution d une requête SET ENABLE_SEQSCAN TO OFF : interdit l utilisation du parcours séquentiel (pour forcer l utilisation des index) CREATE INDEX "Nom_Index" ON Relation USING btree (nom) : pour créer un index en précisant son type 68
155 Chap. III - Optimisation Exemples en utilisant PostgreSQL Attention à l écriture des requêtes!! Temps d extraction des données : 161 ms 69
156 Chap. III - Optimisation Exemples en utilisant PostgreSQL Temps d extraction des données : 250 ms (pour un requête donnant le même résultat que précédemment) Ces opérations ont été ajoutées par rapport à l exécution de la requête précédente 70
157 Chap. III - Optimisation Exemples en utilisant PostgreSQL Temps d extraction des données : 280ms 71
158 Chap. III - Optimisation Exemples en utilisant PostgreSQL Temps d extraction des données : 231ms (pour une requête donnant le même résultat) 72
159 Chap. III - Optimisation Exemples en utilisant PostgreSQL Utilisation des index : quand un balayage séquentiel est plus coûteux Temps d extraction des données : 231ms 73
160 Chap. III - Optimisation Exemples en utilisant PostgreSQL Si l index n est pas utile pour la requête, il n est pas utilisé Temps d extraction des données : 220ms 74
161 Chap. III - Optimisation Exemples en utilisant PostgreSQL Si l index est utile pour la requête, il est utilisé Temps d extraction des données : 230ms 75
162 Chap. III - Optimisation Exemples en utilisant PostgreSQL L utilisation des index dépend du nombre de nuplets potentiellement résultats Temps d extraction des données : 231ms 76
163 Chap. III - Optimisation Exemples en utilisant PostgreSQL Création d un index 77
164 Chap. III - Optimisation Exemples en utilisant PostgreSQL Le SGBD peut choisir de ne pas utiliser les index Temps d extraction des données : 221ms 78
165 Chap. III - Optimisation Exemples en utilisant PostgreSQL On peut forcer l utilisation des index On empêche le balayage séquentiel On a forcé l utilisation de l index Temps d extraction des données : 220ms 79
166 Chap. III - Optimisation Exemples en utilisant PostgreSQL Algorithmes de jointure Temps d extraction des données : 201ms 80
167 Chap. III - Optimisation Exemples en utilisant PostgreSQL Algorithmes de jointure Temps d extraction des données : 190ms 81
168 Chap. III - Optimisation Exemples en utilisant PostgreSQL Algorithmes de jointure Temps d extraction des données : 200ms 82
169 Chap. III - Optimisation Exemples en utilisant PostgreSQL Algorithmes de jointure Temps d extraction des données : 200ms 83
170 Chap. III - Optimisation Coût de π A R Élimination des attributs n apparaissant pas dans la projection Élimination des doublons Par tri Par hachage 84
171 Chap. III - Optimisation Élimination des doublons par tri 2, 5, 2, 1, 2, 2, 4, 5, 4, 3, 4, 2, 1, 5, 2, 1, 3 17 nuplets 2 nuplets / bloc 4 pages en mémoire 1, 2, 2, 2, 2, 5, 2, 3, 4, 4, 4, 5, 1, 1, 2, 3, 5 Étape 1 : Tri des blocs par paquets de 3 en mémoire entrée entrée Page résultat 1 Page résultat 1 Etape 2 : la valeur 1 est la plus petite valeur, on l écrit dans le résultat et on supprime les doublons Etape 3 : la valeur 1 est la plus petite valeur, on l écrit dans le résultat et on supprime les doublons... 85
172 Chap. IV - Gestion de la concurrence Transaction : action ou série d actions d un utilisateur ou d une application, qui accède(nt) ou modifie(nt) les données de la base [BEGIN TRANSACTION] COMMIT / ROLLBACK Lecture Placement des pages en mémoire + Copies éventuelles de valeurs dans les variables de programme Ecriture Mise à jour des données en mémoire + Ecriture des pages sur le disque APRES validation 86
173 Propriétés des transactions Atomicité : Tout ou rien Une transaction effectue toutes ses actions ou aucune. En cas d annulation, les modifications engagées doivent être défaites. Cohérence : Intégrité des données Passage d un état cohérent de la base à un autre état cohérent de la base de données Isolation : Pas d interférence entre transactions Les résultats d une transaction ne sont visibles par les autres transactions qu après sa validation Durabilité : Journalisation des mises à jour Les modifications effectuées sont garanties même en cas de panne 87
174 Exemple de transaction 88
175 Exemple de transaction Virement = 2 opérations atomiques 88
176 Exemple de transaction Virement = 2 opérations atomiques Op. 1. Retrait Op. 2. Dépôt Compte courant = CODEVI =
177 Exemple de transaction Virement bancaire sans transaction Virement = 2 opérations atomiques Op. 1. Retrait Op. 2. Dépôt Compte courant = CODEVI =
178 Exemple de transaction Virement bancaire sans transaction Virement = 2 opérations atomiques Que se passe-t-il si le Dépôt échoue? Op. 1. Retrait Op. 2. Dépôt Compte courant = CODEVI =
179 Exemple de transaction Virement bancaire sans transaction Virement = 2 opérations atomiques Que se passe-t-il si le Dépôt échoue? Op. 1. Retrait Op. 2. Dépôt Compte courant = CODEVI =
180 Exemple de transaction Virement bancaire sans transaction Virement = 2 opérations atomiques Que se passe-t-il si le Dépôt échoue? Op. 1. Retrait Op. 2. Dépôt Compte courant = 400 Compte courant = 400 CODEVI = 110 Appelez la banque!!! CODEVI =
181 Exemple de transaction 89
182 Exemple de transaction Virement bancaire dans une transaction (1/2) 89
183 Exemple de transaction Virement bancaire dans une transaction (1/2) Virement = 1 transaction de 2 opérations atomiques 89
184 Exemple de transaction Virement bancaire dans une transaction (1/2) Virement = 1 transaction de 2 opérations atomiques Begin transaction 1. Retrait Compte courant 2. Dépôt CODEVI = =
185 Exemple de transaction Virement bancaire dans une transaction (1/2) Virement = 1 transaction de 2 opérations atomiques Begin transaction 1. Retrait Compte courant 2. Dépôt CODEVI Commit transaction = =
186 Exemple de transaction Virement bancaire dans une transaction (1/2) Virement = 1 transaction de 2 opérations atomiques Begin transaction 1. Retrait Dépôt Compte courant = CODEVI 110 Commit transaction = = =
187 Exemple de transaction 90
188 Exemple de transaction Virement bancaire dans une transaction (2/2) 90
189 Exemple de transaction Virement bancaire dans une transaction (2/2) Begin transaction 1. Retrait Compte courant 2. Dépôt = CODEVI
190 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Begin transaction 1. Retrait Compte courant 2. Dépôt = CODEVI
191 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Begin transaction 1. Retrait Compte courant 2. Dépôt = CODEVI
192 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Begin transaction 1. Retrait Compte courant 2. Dépôt CODEVI Rollback transaction =
193 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Begin transaction 1. Retrait Compte courant Dépôt CODEVI Rollback transaction =
194 Exemple de transaction Virement bancaire dans une transaction (2/2) Que se passe-t-il si le Dépôt échoue? Compte courant = 500 CODEVI = 110 Recommencez! Begin transaction 1. Retrait Compte courant Dépôt CODEVI Rollback transaction =
195 Degrés d isolation sous SQL2 Degré 0 : Une transaction T ne modifie pas de données salies par d autres transactions Degré 1 : Degré 0 + T ne confirme pas ses changements avant la fin de la transaction Degré 2 : Degré 1 + T ne lit pas de données salies par d autres transactions Degré 3 : Degré 2 + D autres transactions ne salissent pas les données lues par T avant que T ne soit terminée 91
196 Architecture du système de transactions Missions du système de transactions Gérer les transactions, maintenir la cohérence, gérer les pannes Gestionnaire de transactions : Coordination des actions des différentes transactions En communication avec l ordonnanceur Ordonnanceur (scheduler): Maintien de la cohérence Gestion des verrous (gestionnaire de verrous) Gestionnaire de pannes (recovery manager) Remise de la base de données dans un état cohérent après panne 92
197 Ordonnancement Opération d une transaction T R T (i) : lecture de l item i par T W T (i) : modification de la valeur de l item i par T Commit T : validation de T Abort T : annulation de T Ordonnancement de transactions Liste d actions de plusieurs transactions T 1,, T n telle que chaque opération de T i apparaisse dans le même ordre dans T i et dans l ordonnancement Ordonnancement séquentiel Pas d entrelacement des actions des différentes transactions 93
198 Concurrence Transactions concurrentes Deux transactions accédant en même temps aux mêmes items Ordonnancement sérialisable Résultat équivalent au résultat d un ordonnancement séquentiel Les items voient passer toutes les transactions dans le même ordre Anomalies dues à l entrelacement des transactions Pas de conflit si accès simultanés à un même item en lecture par deux transactions différentes Pas de conflit si accès simultanés à deux items différents en lecture ou écriture par deux transactions 94
199 Odonnancement sérialisable T 1 : Solde A - x; Solde B + x; T 2 : Solde A - y; Solde B + y; T 3 : Solde A - z; Solde B + z; Exécution séquentielle : T 1 T 2 T 3 Une exécution sérialisable équivalente à T 1 T 2 T 3 : Solde A - x; Solde A - y; Solde B + x; Solde A - z; Solde B + y; Solde B + z; L item A voit passer les transaction dans l ordre T1 T2 T3 L item B voit passer les transaction dans l ordre T1 T2 T3 95
200 Ecriture - Lecture : Conflits Lecture impropre ou parasite (dirty read) Placement momentanée de la base dans un état incohérent Annulation en cascade de transactions Lecture - Ecriture : Lecture non reproductible (unrepeatable read) Incohérence Ecriture- Ecriture : Perte de mises à jour (blind write) 96
201 Degrés d isolation et conflits ANSI SQL92 définit 3 types d'anomalies d'isolation Lectures sales ou impropres Une transaction T1 lit des modifications non validées d items effectuées par T2. En cas de annulation de T2, T1 a lu des valeurs invalides Lecture non reproductibles T1 lit un item, T2 modifie ce même item, T1 relit ce item et obtient une valeur différente Lectures fantômes T1 lit un ensemble de nuplets, T2 ajoute/supprime des nuplets, T1 relit l ensemble de nuplets et obtient un ensemble différent comme résultat 97
202 Degrés d isolation et conflits Degré 0 Résolution des pertes de mises à jour Degré 1 Pas d annulation en cascade + Degré 0 Degré 2 Pas de lecture impropre + Degré 1 Degré 3 Isolation totale - Mise en attente des transactions en conflit 98
203 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
204 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
205 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
206 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 A T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
207 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 A T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
208 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) T 2 A T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
209 Graphe de précédence Pour trouver les conflits potentiels Chaque nœud représente une transaction Un arc de T i vers T j signifie qu une action de T i précède et entre en conflit avec une ou plusieurs actions de T j R 2 (A), R 1 (B), W 2 (A), R 3 (A), W 1 (B), W 3 (A), R 2 (B), W 2 (B) B T 2 A T 1 T 3 Si le graphe est sans cycle (tri topologique) alors l ordonnancement est sérialisable 99
210 Gestion des verrous Verrouillage des données V T (i) : Verrouillage de l item i par la transaction T Verrou partagé VP T (i) ou exclusif VX T (i) D T (i) : Déverrouillage de l item i par T Table des verrous : pour chaque item verrouillé Mode de verrouillage Indicateur de transactions en attente Liste des transactions détenant un verrou ou en attente d un verrou Nom de la transaction Mode de verrouillage obtenu ou souhaité Indicateur d attente Lien vers les autres items verrouillés par la transaction 100
211 Architecture du gestionnaire de verrous Réception de la requête par le 1 er module Transmission des transactions au 2 ème module après insertion des verrous Détection des demandes de verrous par le 2 ème module Vérification dans la table des verrous Si demande acceptée, exécution de l action sur la BD Si demande rejetée, mise en attente de la transaction Après validation ou annulation d une transaction, libération des verrous par le 1 er module informé par le 2 ème Après libération d un verrou, transmission du verrou à une transaction en attente par le 2 ème module 101
212 Inter-blocage Inter-blocage (Deadlock) : Attente mutuelle de deux transactions Détection par un graphe d attente Chaque nœud représente une transaction en cours d exécution Un arc de T i vers T j signifie que T i attend un verrou détenu par T j sur un même item Ajout d un arc par le gestionnaire de verrous à chaque demande insatisfaite et inversement Prévention par estampillage Association d une estampille à chaque transaction au début de l exécution Plus la transaction est ancienne, plus la priorité est grande Wait-Die : Si T i a une priorité plus forte que T j alors T i attend, sinon T i est annulée Wound-Wait : Si T i a une priorité plus forte que T j alors T j est annulée, sinon T i attend 102
213 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous T 2 T 1 T 3 T 4 103
214 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 2 T 1 T 3 T 4 103
215 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 2 T 1 T 3 T 4 103
216 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 2 T 1 T 3 T 4 103
217 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 2 T 1 T 3 T 4 103
218 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) T 2 T 1 T 3 T 4 103
219 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B T 2 T 1 T 3 T 4 103
220 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 1 T 2 T 3 T 4 103
221 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 1 T 2 T 3 T 4 103
222 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 1 T 2 T 3 T 4 103
223 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 T 3 T 4 103
224 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 T 4 103
225 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 T 4 103
226 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 T 4 103
227 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 T 4 103
228 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 A T 4 103
229 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 A T 4 103
230 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 A T 4 103
231 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) T 3 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 A T 4 103
232 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) T 3 (VX) B VX (T 2 ) T 1 (VP) B C VP (T 3 ) T 2 (VX) T 1 T 2 C T 3 A T 4 A 103
233 Graphe d attente VP 1 (A), R 1 (A), VX 2 (B), W 2 (B), VP 1 (B), VP 3 (C), R 3 (C), VX 2 (C), VX 4 (A), VX 3 (A) Table des verrous A VP (T 1 ) T 4 (VX) T 3 (VX) B VX (T 2 ) T 1 (VP) B T 2 C C VP (T 3 ) T 2 (VX) T 1 T 3 Cycle dans le graphe d attente détection d un inter-blocage Annulation de T 3 A T 4 A 103
234 Protocole de verrouillage en deux phases Principe (Two-Phases Locking) Phase 1 : Verrouillage des items / Phase ascendante Phase 2 : Déverrouillage des items / Phase descendante Théorème Un ordonnancement obtenu par le protocole V2P est sérialisable Inconvénients Risque d annulation de transactions en cascade et d inter-blocages Protocole V2P strict Les verrous sont conservés par une transaction jusqu à la fin 104
235 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : 105
236 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 Protocole V2P : 105
237 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
238 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
239 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
240 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
241 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
242 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
243 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : T 1 T 2 Protocole V2P : 105
244 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable 105
245 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 105
246 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 R 1 (x) 105
247 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) 105
248 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) R 2 (x) 105
249 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) VP 2 (x) R 2 (x) 105
250 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) VX 1 (x) VP 2 (x) R 2 (x) 105
251 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) VX 1 (x) () W 1 (x) VP 2 (x) R 2 (x) 105
252 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : R 1 (x), R 2 (x),w 1 (x), W 2 (x) Graphe de précédence : Protocole V2P : T 1 T 2 Cycle dans le graphe de précédence ordonnancement non sérialisable T 1 T 2 VP 1 (x) R 1 (x) VX 1 (x) () W 1 (x) VP 2 (x) R 2 (x) Pour durcir le verrou de T 1, il faudrait que T 2 n ait pas de verrou sur x V2P non applicable 105
253 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : Protocole V2P strict : Protocole V2P non strict : 106
254 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 Protocole V2P strict : Protocole V2P non strict : 106
255 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict : Protocole V2P non strict : 106
256 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict : Protocole V2P non strict : 106
257 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict : Protocole V2P non strict : 106
258 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict : Protocole V2P non strict : 106
259 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : 106
260 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : T 1 T 2 106
261 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : T 1 T 2 W 1 (x) 106
262 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) 106
263 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) R 2 (y) 106
264 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) 106
265 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) 106
266 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) 106
267 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VP 1 (y) R 1 (y) R 2 (x) 106
268 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
269 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
270 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
271 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) T 1 T 2 VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
272 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) T 1 T 2 W 1 (x) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
273 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VX 1 (x) W 1 (x) T 1 T 2 VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
274 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VX 1 (x) T 1 T 2 W 1 (x) R 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
275 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (x) 106
276 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VP 2 (x) R 2 (x) 106
277 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VP 2 (x) R 2 (x) 106
278 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VP 2 (x) R 2 (x) R 2 (x) 106
279 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) R 2 (y) VP 2 (x) R 2 (x) VP 2 (x) R 2 (x) 106
280 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : T 1 T 2 VX 1 (x) W 1 (x) VP 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (y) R 2 (x) VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) D 1 (x) VP 2 (x) R 2 (y) R 2 (x) 106
281 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 1 (y), R 2 (x), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable Protocole V2P strict : Protocole V2P non strict : T 1 T 2 VX 1 (x) W 1 (x) VP 2 (y) VP 1 (y) R 1 (y) VP 2 (x) R 2 (y) R 2 (x) VX 1 (x) VP 1 (y) T 1 T 2 W 1 (x) VP 2 (y) R 1 (y) D 1 (x) VP 2 (x) R 2 (y) R 2 (x) 106
282 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : 107
283 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 Protocole V2P strict ou non strict : 107
284 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict ou non strict : 107
285 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict ou non strict : 107
286 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict ou non strict : 107
287 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Protocole V2P strict ou non strict : 107
288 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable 107
289 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable T 1 T 2 107
290 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable T 1 T 2 W 1 (x) 107
291 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) 107
292 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) R 2 (y) 107
293 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) 107
294 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) R 2 (x) 107
295 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) VP 2 (x) R 2 (y) R 2 (x) 107
296 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) VP 2 (x) R 2 (y) R 2 (x) 107
297 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P VP 2 (x) R 2 (x) 107
298 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P R 1 (y) VP 2 (x) R 2 (x) 107
299 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : Protocole V2P strict ou non strict : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) T 1 T 2 W 1 (x) VP 2 (y) R 2 (y) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P VP 2 (x) VP 1 (y) R 1 (y) R 2 (x) 107
300 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) VP 1 (y) Protocole V2P strict ou non strict : T 1 T 2 W 1 (x) R 1 (y) VP 2 (y) VP 2 (x) R 2 (y) R 2 (x) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P application V2P impossible 107
301 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) VP 1 (y) Protocole V2P strict ou non strict : T 1 T 2 W 1 (x) R 1 (y) VP 2 (y) VP 2 (x) R 2 (y) R 2 (x) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P application V2P impossible V2P sérialisable 107
302 Protocole de verrouillage en deux phases Exemple Soit l ordonnancement : W 1 (x), R 2 (y), R 2 (x), R 1 (y), C 1, C 2 Graphe de précédence : T 1 T 2 Pas de cycle dans le graphe de précédence ordonnancement sérialisable VX 1 (x) VP 1 (y) Protocole V2P strict ou non strict : T 1 T 2 W 1 (x) R 1 (y) VP 2 (y) VP 2 (x) R 2 (y) R 2 (x) Opération impossible car pour que VP 2 (x) il faudrait D 1 (x) or T 1 est en phase ascendante du protocole V2P application V2P impossible V2P sérialisable V2P sérialisable 107
303 Ordonnancement par estampillage Association d une estampille TS(T) à chaque transaction T Association de deux estampilles à chaque item RTS(A) et WTS(A) Si T veut lire l item x Si TS(T) < WTS(x) alors T est annulée et relancée avec une nouvelle estampille Sinon, RTS(x)=Max[TS(T), RTS(x)] Si T veut écrire sur l item x Si TS(T) < RTS(x) alors T est annulée et relancée avec une nouvelle estampille Si TS(T) < WTS(x), alors l action de T est ignorée (règle de Thomas) Sinon, WTS(x)=TS(T) 108
304 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS T i + ancienne que T j 109
305 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) T i + ancienne que T j 109
306 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 T i + ancienne que T j 109
307 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) T i + ancienne que T j 109
308 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j 109
309 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) 109
310 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) TS(T i ) >WTS(y) et la dernière transaction la plus récente ayant lu y est toujours T j 109
311 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) 125 TS(T i ) >WTS(y) et la dernière transaction la plus récente ayant lu y est toujours T j 109
312 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) R j (x) 125 TS(T i ) >WTS(y) et la dernière transaction la plus récente ayant lu y est toujours T j 109
313 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) R j (x) 125 TS(T i ) >WTS(y) et la dernière transaction la plus récente ayant lu y est toujours T j TS(T j ) > WTS(x) la dernière transaction ayant mis à jour x est plus ancienne que T j écriture autorisée 109
314 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) R j (x) TS(T i ) >WTS(y) et la dernière transaction la plus récente ayant lu y est toujours T j TS(T j ) > WTS(x) la dernière transaction ayant mis à jour x est plus ancienne que T j écriture autorisée 109
315 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j 110
316 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) T i + récente que T j 110
317 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 T i + récente que T j 110
318 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) T i + récente que T j 110
319 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) 80 T i + récente que T j 110
320 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) 80 T i + récente que T j R i (y) 110
321 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) 80 T i + récente que T j R i (y)
322 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) 80 T i + récente que T j R i (y) 99 R j (x) 110
323 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), R j (x) T i T j x y RTS WTS RTS WTS W i (x) 99 R j (y) 80 T i + récente que T j R i (y) 99 R j (x) T j aurait du lire la valeur de x avant que T i, plus récente, n ait modifié la valeur de x annulation de T j 110
324 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + ancienne que T j 111
325 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) T i + ancienne que T j 111
326 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 T i + ancienne que T j 111
327 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) T i + ancienne que T j 111
328 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) 125 T i + ancienne que T j 111
329 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) 111
330 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) TS(T i ) >WTS(y) la dernière transaction la plus récente ayant lu y est toujours T j 111
331 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) 125 TS(T i ) >WTS(y) la dernière transaction la plus récente ayant lu y est toujours T j 111
332 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 100 R j (y) 125 T i + ancienne que T j R i (y) W j (x) 125 TS(T i ) >WTS(y) la dernière transaction la plus récente ayant lu y est toujours T j 111
333 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + ancienne que T j R i (x) 100 R j (y) 125 R i (y) W j (x) 125 TS(T i ) >WTS(y) la dernière transaction la plus récente ayant lu y est toujours T j TS(T j ) >RTS(x) la dernière transaction ayant lu x est plus ancienne que T j écriture autorisée 111
334 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + ancienne que T j R i (x) 100 R j (y) 125 R i (y) W j (x) TS(T i ) >WTS(y) la dernière transaction la plus récente ayant lu y est toujours T j TS(T j ) >RTS(x) la dernière transaction ayant lu x est plus ancienne que T j écriture autorisée 111
335 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j 112
336 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) T i + récente que T j 112
337 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 T i + récente que T j 112
338 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) T i + récente que T j 112
339 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) 80 T i + récente que T j 112
340 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) 80 T i + récente que T j R i (y) 112
341 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) 80 T i + récente que T j R i (y)
342 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) 80 T i + récente que T j R i (y) 99 W j (x) 112
343 Ordonnancement par estampillage Soit l ordonnancement : R i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS R i (x) 99 R j (y) 80 T i + récente que T j R i (y) 99 W j (x) T j aurait dû modifier la valeur de x avant que T i, plus récente, ne la lise annulation de T j 112
344 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j 113
345 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS W i (x) T i + récente que T j 113
346 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x)
347 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y) 113
348 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y)
349 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R i (y) R j (y)
350 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y) 80 R i (y)
351 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y) 80 R i (y) 99 W j (x) 113
352 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y) 80 R i (y) 99 W j (x) T j aurait dû modifier la valeur de x avant que T i, plus récente, ne la modifie si l ordre des estampilles avait été suivi, la MàJ de T j aurait été remplacée par celle de T i (règles de Thomas) 113
353 Ordonnancement par estampillage Soit l ordonnancement : W i (x), R j (y), R i (y), W j (x) T i T j x y RTS WTS RTS WTS T i + récente que T j W i (x) 99 R j (y) 80 T j aurait dû modifier la valeur de x avant que T i, R i (y) 99 plus récente, ne la modifie si l ordre des estampilles avait été suivi, la MàJ de T j W j (x) aurait été remplacée par celle de T i (règles de Thomas) L opération W j (x) est ignorée, et T j n est pas annulée 113
354 Ordonnancement par estampillage T i T j T k T n A RTS=0 WTS=0 R i (A) RTS=150 WTS=0 W i (A) RTS=150 WTS=150 R j (A) RTS=200 WTS=150 W j (A) RTS=200 WTS=200 R k (A) Abort R n (A) RTS=252 WTS=200 T k n a pas le droit de lire un item modifié par une transaction plus récente 114
355 Estampillage multiversion T i T j T k T n A 0 A 150 A R i (A) Lue W i (A) Crée R j (A) Lue W j (A) Crée R k (A) Lue Abort R n (A) Lue T k lit une ancienne version de l item 115
356 Verrouillage hiérarchique Hiérarchie : relation, page, nuplet Intention d obtenir un verrou partagé (IP) ou exclusif (IX) Protocole garantissant la sérialisation et évitant les interblocages IP IX VP VX IP OUI OUI OUI OUI Matrice de compatibilité IX OUI OUI NON NON des verrous et VP OUI NON OUI NON des intentions de verrous VX NON NON NON NON 116
357 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour 117
358 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 117
359 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 (1) VP 117
360 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 (1) VP (2) VP 117
361 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 (1) VP (3) D (2) VP 117
362 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 (1) VP (3) D (2) VP (4) VP 117
363 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Lecture de l item de clé de recherche 9 (1) VP (3) D (2) VP (5) D (4) VP 117
364 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour 118
365 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 118
366 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 (1) VP 118
367 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 (1) VP (2) VP 118
368 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 (1) VP (3) D car N 0 non plein (2) VP 118
369 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 (1) VP (3) D car N 0 non plein (2) VP (4) VX 118
370 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 7 (1) VP (3) D car N 0 non plein (2) VP (5) Transformation de VP en VX car F1 pleine (4) VX 118
371 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour 119
372 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche
373 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 13 (1) VP 119
374 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 13 (1) VP (2) VP Verrou non relâché sur N 2 car N 1 est plein 119
375 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 13 (1) VP (2) VP Verrou non relâché sur N 2 car N 1 est plein (3) VX 119
376 Concurrence dans un arbre B+ Les niveaux hauts de l arbre servent pour les recherches Pour les modifications : verrouillage exclusif d un nœud s il risque d être touché par la mise à jour Insertion de l item de clé de recherche 13 (4) F3 est non pleine, les verrous sur N2 et N1 sont relâchés (1) VP (2) VP Verrou non relâché sur N 2 car N 1 est plein (3) VX 119
377 Transactions et SQL2 Une transaction commence dès la 1ère requête ou tout de suite après un COMMIT ou un ROLLBACK Propriétés READ ONLY ou READ WRITE Degrés d isolation Degré Lecture Lecture Références impropre non reproductible fantômes READ UNCOMMITTED OUI OUI OUI READ COMMITTED NON OUI OUI REPEATABLE READ NON NON OUI SERIALIZABLE NON NON NON SET TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY 120
378 Exemple de PostgreSQL Pour le niveau d isolation par défaut : READ COMMITTED Repris de CHU Xiang, 2002, 121
379 Exemple de PostgreSQL Pour le niveau d isolation par défaut : READ COMMITTED Ré-exécute la Repris de CHU Xiang, 2002, 122
380 Exemple de PostgreSQL Pour le niveau d isolation : SERIALIZABLE Repris de CHU Xiang, 2002, 123
381 Exemple de PostgreSQL Pour le niveau d isolation : SERIALIZABLE Repris de CHU Xiang, 2002, 124
382 Chap. V - Reprise après panne Types de panne dans les SGBD Journaux des mises à jour Validation des transactions Procédures de reprise Algorithme ARIES 125
383 Chap. V - Panne Pannes Fonctions du gestionnaire de pannes Atomicité Durabilité Différents types de panne [Gar99] Panne d action Panne de transaction Panne du système Panne de la mémoire secondaire 126
384 Chap. V - Panne Exemple 127
385 Chap. V - Panne Journal ou log Journaux Historique des modifications effectuées sur la base Journal des images avant (rollback segment) Valeurs des pages avant modifications Pour défaire (undo) les mises à jour d une transaction Journal des images après (redo log) Valeurs des pages après modifications Pour refaire (redo) les mises à jour d une transaction Points de reprise 128
386 Chap. V - Panne Processus de journalisation Mémoire Journal (2) log (4) log Page de données lue (3) mise à jour Page de données modifiée (1) lecture BD (5) écriture 129
387 Chap. V - Panne Gestion du journal Ecriture des pages du journal dans un buffer en mémoire Sauvegarde du journal lorsque le buffer est plein Sauvegarde du journal lorsqu il y a validation d une transaction ou d un groupe de transactions Ecriture du journal sur le disque avant l écriture des pages de données modifiées Structures des enregistrements Numéro de transaction Type d enregistrement (start, update, commit, abort ) Adresse de la page modifiée Image avant Image après 130
388 Chap. V - Panne Etapes Modification immédiate Insertion d un enregistrement de début de transaction dans le journal A chaque opération d écriture, insertion d un enregistrement de modification dans le journal Une fois les enregistrements de modifications inscrits dans le journal, modification des pages de données du buffer Report des mises à jour sur le disque quand le buffer est plein ou quand la transaction valide Insertion d un enregistrement de validation dans le journal Opérations undo et redo Lecture du journal en sens inverse pour annuler une transaction 131
389 Chap. V - Panne Modification différée Etapes Insertion d un enregistrement de début de transaction dans le journal A chaque opération d écriture, insertion d un enregistrement de modification dans le journal Insertion d un enregistrement de validation dans le journal Après la validation de la transaction, mise à jour des pages du buffer en fonction du contenu du journal Pas d opérations undo Opération redo 132
390 Chap. V - Panne Objectif Procédures de reprise Reconstruire, à partir du journal et éventuellement de sauvegarde, un état proche de l état cohérent de la base avant la panne, en perdant le minimum de travail Reprise à chaud Perte de la mémoire mais pas de la mémoire secondaire No Undo, Redo Undo, Redo Undo, No Redo Reprise à froid Perte de tout ou partie de la mémoire secondaire 133
391 Chap. V - Panne Algorithme ARIES (1/2) Algorithm for Recovery and Isolation Exploiting Semantics (IBM DB2) Structure des enregistrements LSN (Log Sequence Number) Type PrevLSN PageID UndoNxtLSN Data Table des transactions : transactions actives ou validées Tables des pages sales 134
392 Chap. V - Panne Algorithme ARIES (2/2) Journalisation avant écriture (Write Ahead Loging - WAL) Validation après écriture (WriteBeforeCommit) Validation à deux phases Enregistrement de compensation (Compensation Log Record) Algorithme à trois étapes Analyse Reconstruction avant Reconstruction après 135
393 Info sur les SGBD [Gar99] Index en arbre B+ Gestion des pannes Journal Avant et Journal Après Ecriture des journaux sur le disque à chaque validation de transaction Possibilité de différer l écriture des journaux et des pages mémoire pour les groupes de transactions courtes Utilisation des boucles imbriquées et du tri-fusion Verrouillage nuplet Dans le cas réparti Validation à deux phases Réplication asynchrone et synchrone Oracle 136
394 Info sur les SGBD [Gar99] DB2 Index en arbre B+ Gestion des pannes Journal Avant Journal Après Blocage des validations Utilisation des boucles imbriquées et du tri-fusion Verrouillage nuplet-table escaladant Dans le cas réparti Validation à deux phases Réplication asynchrone 137
395 Info sur les SGBD [Gar99] Sybase Index en arbre B* Gestion des pannes Journalisation des intentions d écriture Blocage des écritures Utilisation des boucles imbriquées avec ou sans index Verrouillage page-table escaladant Dans le cas réparti Validation à deux phases Réplication asynchrone 138
396 Info sur les SGBD [Gar99] CA-OpenIngres Index en arbre B, ISAM et table de hachage Gestion des pannes Journal avant et journal après Blocage des écritures Utilisation des boucles imbriquées, tri fusion et hachage Verrouillage en deux phases table ou page Dans le cas réparti Validation à deux phases Réplication asynchrone et synchrone 139
Bases de données et sites WEB Licence d informatique LI345
Bases de données et sites WEB Licence d informatique LI345 Anne Doucet [email protected] http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet
Implémentation des SGBD
Implémentation des SGBD Structure générale des applications Application utilisateur accédant à des données d'une base Les programmes sous-jacents contiennent du code SQL Exécution : pendant l'exécution
Cours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage
SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)
SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients
Bases de données avancées Introduction
Bases de données avancées Introduction Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan Objectifs et contenu du cours Rappels BD relationnelles Bibliographie Cours BDA (UCP/M1)
Les transactions 1/46. I même en cas de panne logicielle ou matérielle. I Concept de transaction. I Gestion de la concurrence : les solutions
1/46 2/46 Pourquoi? Anne-Cécile Caron Master MAGE - SGBD 1er trimestre 2014-2015 Le concept de transaction va permettre de définir des processus garantissant que l état de la base est toujours cohérent
Cours Bases de données
Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine [email protected] Transparents Disponibles
Réplication des données
Réplication des données Christelle Pierkot FMIN 306 : Gestion de données distribuées Année 2009-2010 Echange d information distribuée Grâce à un serveur central Une seule copie cohérente Accès à distance
Cours de Base de Données Cours n.12
Cours de Base de Données Cours n.12 Gestion des transactions : contrôle de concurrence Elisabetta De Maria - http://www.i3s.unice.fr/ edemaria/ UFR Sciences et Laboratoire I3S, CNRS 2013-2014 Université
Évaluation et optimisation de requêtes
Évaluation et optimisation de requêtes Serge Abiteboul à partir de tranparents de Philippe Rigaux, Dauphine INRIA Saclay April 3, 2008 Serge (INRIA Saclay) Évaluation et optimisation de requêtes April
Bases de données cours 1
Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre
Données Réparties. Thibault BERNARD. [email protected]
Données Réparties Thibault BERNARD [email protected] Sommaire Introduction Gestion de la concurrence Reprise après panne Gestion des données dupliquées Sommaire Introduction Gestion de la
IT203 : Systèmes de gestion de bases de données. A. Zemmari [email protected]
IT203 : Systèmes de gestion de bases de données A. Zemmari [email protected] 1 Informations pratiques Intervenants : Cours : (A. Zemmari [email protected]) TDs, TPs : S. Lombardy et A. Zemmari Organisation
Bases de données avancées Concurrence d'accès et reprise
Bases de données avancées Concurrence d'accès et reprise Dan VODISLAV Université de Cergy-Pontoise Master Informatique M1 Cours BDA Plan La notion de transaction Les problèmes de la concurrence Problèmes
Administration des bases de données relationnelles Part I
Administration des bases de données relationnelles Part I L administration des bases de données requiert une bonne connaissance - de l organisation et du fonctionnement interne du SGBDR : structures logiques
Gestion des transactions et accès concurrents dans les bases de données relationnelles
Gestion des transactions et accès concurrents dans les bases de données relationnelles Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Fev.
Bases de données relationnelles : Introduction
Bases de données relationnelles : Introduction historique et principes V. Benzaken Département d informatique LRI UMR 8623 CNRS Université Paris Sud [email protected] https://www.lri.fr/ benzaken/
Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43
Techniques de stockage Techniques de stockage, P. Rigaux p.1/43 Techniques de stockage Contenu de ce cours : 1. Stockage de données. Supports, fonctionnement d un disque, technologie RAID 2. Organisation
Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Structure fonctionnelle d un SGBD
Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert
Optimisations des SGBDR. Étude de cas : MySQL
Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique
INTRODUCTION AUX BASES de DONNEES
INTRODUCTION AUX BASES de DONNEES Équipe Bases de Données LRI-Université Paris XI, Orsay Université Paris Sud Année 2003 2004 1 SGBD : Fonctionnalités et Principes Qu est qu une base de données? Un Système
TP Bases de données réparties
page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure
Bases de Données. Plan
Université Mohammed V- Agdal Ecole Mohammadia d'ingénieurs Rabat Bases de Données Mr N.EL FADDOULI 2014-2015 Plan Généralités: Définition de Bases de Données Le modèle relationnel Algèbre relationnelle
Les bases de données
Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive
Module BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 9- Transactions réparties Anne Doucet [email protected] Transactions réparties Gestion de transactions Transactions dans un système réparti Protocoles de
Année Universitaire 2009/2010 Session 2 de Printemps
Année Universitaire 2009/2010 Session 2 de Printemps DISVE Licence PARCOURS : CSB4 & CSB6 UE : INF 159, Bases de données Épreuve : INF 159 EX Date : Mardi 22 juin 2010 Heure : 8 heures 30 Durée : 1 heure
Introduction aux SGBDR
1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux
ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;
RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines
Le langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Information utiles. [email protected]. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : [email protected] webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Bases de données - Modèle relationnel
Bases de données - Modèle relationnel Introduction SITE :http://www.univ-orleans.fr/lifo/members/mirian.halfeld/ BD - Mírian Halfeld-Ferrari p. 1 Les bases de données - Bibliographie Ullman and Widom,
Bases de données. Chapitre 1. Introduction
Références : Bases de données Pierre Wolper Email : [email protected] URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,
Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)
Avant-propos 1. Lectorat 11 2. Pré-requis 12 3. Objectifs 12 4. Environnement technique 13 Choisir la bonne architecture matérielle 1. Introduction 15 2. Architecture disque 16 2.1 La problématique de
4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre [email protected] Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Cours Bases de données 2ème année IUT
Cours Bases de données 2ème année IUT Cours 13 : Organisation d une base de données, ou comment soulever (un peu) le voile Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les clusters de table
Introduction aux bases de données
Introduction aux bases de données Références bibliographiques Jeff Ullman,Jennifer Widom, «A First Course in Database systems», Prentice-Hall, 3rd Edition, 2008 Hector Garcia-Molina, Jeff Ullman, Jennifer
Présentation du module Base de données spatio-temporelles
Présentation du module Base de données spatio-temporelles S. Lèbre [email protected] Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE
SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur
1 Introduction et installation
TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on
SYSTÈME DE GESTION DE FICHIERS
SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, [email protected]
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, [email protected] Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
UNION INTERCEPT SELECT WHERE JOINT FROM ACID
STOCKAGE TRANSACTION, SÉRIALISABILITÉ, NIVEAUX D'ISOLATION 1 BASE RELATIONNELLE Un serveur de données relationnel : Rend compte de la «réalité» sous forme de table Met en relation la perception logique
Le Langage De Description De Données(LDD)
Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,
A QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans [email protected] A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Langage SQL : créer et interroger une base
Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,
IFT3030 Base de données. Chapitre 2 Architecture d une base de données
IFT3030 Base de données Chapitre 2 Architecture d une base de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL
ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte [email protected] 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé
Bases de données élémentaires Maude Manouvrier
Licence MI2E- 1ère année Outils en Informatique Bases de données élémentaires Maude Manouvrier Définitions générales et positionnement du cours dans la formation Vocabulaire relatif aux bases de données
COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1
1 COMPOSANTS DE L ARCHITECTURE D UN SGBD Chapitre 1 Généralité 2 Les composants principaux de l architecture d un SGBD Sont: Les processus Les structures mémoires Les fichiers P1 P2 Pn SGA Fichiers Oracle
Cours Base de données relationnelles. M. Boughanem, IUP STRI
Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),
Gestion de données réparties. Cours 1
Gestion de données réparties Cours 1 SGBD distribué Rend la distribution (ou répartition) des BD locales transparente catalogue des BD traitement des requêtes distribuées gestion de transactions distribuées
Bases de Données. Stella MARC-ZWECKER. [email protected]. Maître de conférences Dpt. Informatique - UdS
Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS [email protected] 1 Plan du cours 1. Introduction aux BD et aux SGBD Objectifs, fonctionnalités et évolutions
16H Cours / 18H TD / 20H TP
INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES
Du 10 Fév. au 14 Mars 2014
Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN
//////////////////////////////////////////////////////////////////// Administration bases de données
////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données
CHAPITRE 1 ARCHITECTURE
07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA
Cours de Systèmes d Exploitation
Licence d informatique Synchronisation et Communication inter-processus Hafid Bourzoufi Université de Valenciennes - ISTV Introduction Les processus concurrents s exécutant dans le système d exploitation
Performances. Gestion des serveurs (2/2) Clustering. Grid Computing
Présentation d Oracle 10g Chapitre VII Présentation d ORACLE 10g 7.1 Nouvelles fonctionnalités 7.2 Architecture d Oracle 10g 7.3 Outils annexes 7.4 Conclusions 7.1 Nouvelles fonctionnalités Gestion des
A QUOI SERVENT LES BASES DE DONNÉES?
BASE DE DONNÉES OBJET Virginie Sans [email protected] A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès
Bases de données réparties: Fragmentation et allocation
Pourquoi une base de données distribuée? Bibliographie Patrick Valduriez, S. Ceri, Guiseppe Delagatti Bases de données réparties: Fragmentation et allocation 1 - Introduction inventés à la fin des années
La présente publication est protégée par les droits d auteur. Tous droits réservés.
Editeur (Medieninhaber/Verleger) : Markus Winand Maderspergerstasse 1-3/9/11 1160 Wien AUSTRIA Copyright 2013 Markus Winand La présente publication est protégée par les droits d auteur.
Bases de données Cours 1 : Généralités sur les bases de données
Cours 1 : Généralités sur les bases de données POLYTECH Université d Aix-Marseille [email protected] http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 1 Qu est ce qu une
Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions
Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces
BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98. J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES
BASES DE DONNÉES CNAM Centre associé de Clermont-Ferrand Cycle A Année 1997-98 J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES III. LES SYSTÈMES RÉSEAU IV. LES SYSTÈMES RELATIONNELS V. LE LANGAGE
Gestion des bases de données
Gestion des bases de données DU Chef de Projet en Recherche Clinique 23/11/2012 Fabrice GOURMELON URC/CIC Necker - Cochin 2 A. Qu est-ce qu une donnée? B. Qu est-ce qu une base de données? C. Définition
Gestion répartie de données - 1
Gestion répartie de données - 1 Sacha Krakowiak Université Joseph Fourier Projet Sardes (INRIA et IMAG-LSR) http://sardes.inrialpes.fr/~krakowia Gestion répartie de données Plan de la présentation Introduction
Rappel sur les bases de données
Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant
Notes de cours : bases de données distribuées et repliquées
Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées
1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228
Intro Modèle Algèbre SQL Stockage Intro Modèle Algèbre SQL Stockage Plan du cours Les Bases de Données Rattrapages École Centrale de Paris Nicolas Travers Équipe Vertigo Laboratoire CEDRIC Conservatoire
Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Introduction au Système de Gestion de Base de Données et aux Base de Données
Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière
Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques
Plan de formation : Certification OCA Oracle 11g Description Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques industriels les plus avancés. Cette formation permettra
CESI Bases de données
CESI Bases de données Introduction septembre 2006 Bertrand LIAUDET EPF - BASE DE DONNÉES - septembre 2005 - page 1 PRÉSENTATION GÉNÉRALE 1. Objectifs généraux L objectif de ce document est de faire comprendre
Bases de données et sites WEB
Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues
INTRODUCTION AU DATA MINING
INTRODUCTION AU DATA MINING 6 séances de 3 heures mai-juin 2006 EPF - 4 ème année - Option Ingénierie d Affaires et de Projets Bertrand LIAUDET TP DE DATA MINING Le TP et le projet consisteront à mettre
Big Data et Graphes : Quelques pistes de recherche
Big Data et Graphes : Quelques pistes de recherche Hamamache Kheddouci Laboratoire d'informatique en Image et Systèmes d'information LIRIS UMR 5205 CNRS/INSA de Lyon/Université Claude Bernard Lyon 1/Université
Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers
Programme détaillé Objectifs de la formation Les systèmes de gestion de bases de données prennent aujourd'hui une importance considérable au regard des données qu'ils hébergent. Véritable épine dorsale
Systèmes d information et bases de données (niveau 1)
Systèmes d information et bases de données (niveau 1) Cours N 1 Violaine Prince Plan du cours 1. Bibliographie 2. Introduction aux bases de données 3. Les modèles 1. Hiérarchique 2. Réseau 3. Relationnel
Partie II Cours 3 (suite) : Sécurité de bases de données
Partie II Cours 3 (suite) : Sécurité de bases de données ESIL Université de la méditerranée [email protected] http://odile.papini.perso.esil.univmed.fr/sources/ssi.html Plan du cours 1 Introduction
ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010
ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle
SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste
Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en
L exclusion mutuelle distribuée
L exclusion mutuelle distribuée L algorithme de L Amport L algorithme est basé sur 2 concepts : L estampillage des messages La distribution d une file d attente sur l ensemble des sites du système distribué
Administration de Bases de Données : Optimisation
Administration de Bases de Données : Optimisation FIP 2 année Exercices CNAM Paris Nicolas.Travers(at) cnam.fr Table des matières 1 Stockagedans unsgbd 3 1.1 Stockage.............................................
NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)
1/23 2/23 Anne-Cécile Caron Master MIAGE - BDA 1er trimestre 2013-2014 I : Not Only SQL, ce n est pas du relationnel, et le contexte d utilisation n est donc pas celui des SGBDR. I Origine : recherche
Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Module BDR Master d Informatique (SAR)
Module BDR Master d Informatique (SAR) Cours 6- Bases de données réparties Anne Doucet [email protected] 1 Bases de Données Réparties Définition Conception Décomposition Fragmentation horizontale et
Optimisation SQL. Quelques règles de bases
Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR
Encryptions, compression et partitionnement des données
Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des
TP Contraintes - Triggers
TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution
Chapitre 1. 1. Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties
Université du Havre MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES 2010/2011 COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : [email protected] Chapitre 1 1. Introduction : Notion de Bases
Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université
Systèmes d Exploitation - ENSIN6U3 Systèmes de gestion de fichiers - SGF Leonardo Brenner 1 Jean-Luc Massat 2 1 [email protected] 2 [email protected] Aix-Marseille Université Faculté
BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer
Bases de Données Réparties Définition Architectures Outils d interface SGBD Réplication SGBD répartis hétérogènes BD réparties Principe : BD locales, accès locaux rapides accès aux autres SGBD du réseau
1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours
Bases de données Réparties, Fédérées et Réplication Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Avril 2013 1. Répartition & Fédération 2.
Chapitre VIII. Les bases de données. Orientées Objet. Motivation
Chapitre VIII Motivation Le modèle relationnel connaît un très grand succès et s avère très adéquat pour les applications traditionnelles des bases de données (gestion) Les bases de données Orientées Objet
Les bases de données Page 1 / 8
Les bases de données Page 1 / 8 Sommaire 1 Définitions... 1 2 Historique... 2 2.1 L'organisation en fichier... 2 2.2 L'apparition des SGBD... 2 2.3 Les SGBD relationnels... 3 2.4 Les bases de données objet...
Programmation parallèle et distribuée
Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2014) Marc Parizeau, Département de génie électrique et de génie informatique Plan Mégadonnées («big data») Architecture Hadoop distribution
Programmation parallèle et distribuée
Programmation parallèle et distribuée (GIF-4104/7104) 5a - (hiver 2015) Marc Parizeau, Département de génie électrique et de génie informatique Plan Données massives («big data») Architecture Hadoop distribution
Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre
Bases de Données Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre Synthèse : conception de BD langage de modélisation famille de SGBD SGBD Analyse du
