CHAPITRE 4 Gestion des transactions Dr Kiswendsida Kisito Kaboré , Enseignant C

CHAPITRE 4 Gestion des transactions Dr Kiswendsida Kisito Kaboré , Enseignant Chercheur Au Département d’Informatique à l’UFR-SEA / Université JKZ Janvier 2021 http://kisitokab.xyz 401 Master 1 (M1) IBAM UJKZ Objectif Gestion des transactions 402 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Chapitre 12 - Objectifs Le but de la restauration de base de données, Le rôle et l’importance des transactions, Les propriétés d’une transaction 403 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Soutien des transactions •Transaction •Une action ou une suite d’actions demandée par un seul utilisateur ou programme d’application, qui lit ou met à jour le contenu de la base de données. •Une transaction est une unité logique de travail sur la base de données. Ce peut être un programme tout entier, une partie de programme ou une seule commande (par exemple, une commande SQL du genre INSERT ou UPDATE) qui peut impliquer un nombre quelconque d’opérations sur la base de données. Dans le contexte de la base de données, l’exécution d’un programme d’application peut se voir comme une ou plusieurs transactions avec du calcul intermédiaire qui ne fait pas appel à la base de données. •Pour illustrer le concept de transaction, examinons deux relations de l’instance de la base de données locative Maisons de Rêve 404 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Exemples de transactions 405 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Soutien des transactions •Une transaction doit toujours transformer la base de données d’un état cohérent en un autre état cohérent, même si nous sommes obligés d’accepter que la cohérence soit violée pendant la progression de la transaction. •Une transaction peut donner deux résultats possibles. Si elle s’achève avec succès, la transaction est dite validée ou confirmée (committed) et la base de données atteint un nouvel état cohérent. •Par contre, si la transaction ne s’exécute pas avec succès, la transaction est avortée (aborted). Dans ce cas, la base de données doit retrouver l’état cohérent qu’elle avait avant le début de la transaction. Une transaction qui subit cette réinitialisation est dite annulée (rolled back). 406 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Soutien des transactions •Une transaction validée ne peut plus être annulée. •Si nous considérons après coup qu’une transaction validée était erronée, la seule manière de l’annuler est d’exécuter une transaction de compensation pour en inverser les effets. •D’un autre côté, une transaction annulée peut être relancée plus tard et, si la cause de son annulation a disparu, peut s’exécuter cette fois avec succès et être validée.. 407 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Le diagramme de transitions d’états d’une transaction. 408 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Propriétés des transactions „ Les 4 propriétés de base: … Atomicité : 'tout ou rien', … Cohérence : Doit transformer la BD d'un état cohérent à un autre, … Isolation : Les effets partiels de transactions incomplètes ne peuvent pas être visible aux autres transactions, … Durabilité : Les effets d'une transaction validée sont permanents et ne doivent pas être perdus par des défaillances subséquentes. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Sous-système de transaction d'un SGBD Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Contrôle de concurrence „ Processus de gestion des opérations simultanées sur la BD sans qu'elles n'interfèrent entre elles, „ Prévient les incohérences lorsque deux ou plusieurs utilisateurs accèdent à la BD de façon simultanée et qu'au moins 1 est à modifier les données, „ Bien que deux transactions soit correctes en elles- mêmes, l’interfoliage des opérations peut produire un résultat incorrect, 3 exemples des problèmes potentiels de la concurrence: … Problème de mise à jour perdue, … Problème de dépendance non validée, … Problème de l'analyse incohérente. 11 Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Problème de mise à jour perdue „ Une mise à jour complétée avec succès peut être écrasée par un autre utilisateur, „ T1 retire 10$ d'un compte dont le solde est initialement de 100$, „ T2 dépose 100$ dans le même compte, „ À la fin, le solde final est de 90$. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Problème de mise à jour perdue Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Capacité de sérialisation et de récupération L’objectif du protocole de contrôle de la concurrence est de planifier les transactions de manière à éviter toute interférence entre elles et, donc, d’éviter les problèmes des types évoqués à la section précédente. Une solution évidente consiste à ne permettre l’exécution que d’une seule transaction à la fois : une transaction est validée avant d’autoriser la transaction suivante à débuter. Or, la raison d’être du SGBD est d’atteindre un niveau optimal de simultanéité, de parallélisme dans le système, de sorte que les transactions puissent s’exécuter sans interférence, certes, mais surtout autant que possible en parallèle. Par exemple, les transactions qui accèdent à des parties complètement distinctes d’une même base de données peuvent être planifiées ensemble, sans risquer d’interférence. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Capacité de sérialisation et de récupération Planification (schedule) Une séquence d’opérations d’un ensemble de transactions concurrentes qui préserve l’ordre des opérations dans chacune des transactions. Planification sérielle Une planification où les opérations de chaque transaction sont exécutées de manière consécutive, sans aucune opération interfoliée d’autres transactions. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Capacité de sérialisation et de récupération Planification non sérielle Une planification où les opérations d’un ensemble de transactions sont exécutées de manière interfoliée. Dans le contexte de la capacité de sérialisation, l’ordre des opérations de lecture et d’écriture importe : •Si deux transactions ne font que lire des données, elles n’entrent pas en conflit et leur ordre est sans importance. •Si deux transactions soit lisent, soit écrivent complètement des données différentes, elles n’entrent pas en conflit et leur ordre est sans importance. •Si une transaction écrit dans des données et si une autre transaction lit ou écrit dans ces mêmes données, alors l’ordre de leur exécution importe. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Test de conflits de la capacité de sérialisation Sous la règle d’écriture contrainte (c’est-à-dire qu’une transaction modifie une donnée en fonction de son ancienne valeur, lue en premier lieu par la transaction), un graphe de précédence (ou de sérialisation) peut être produit pour tester la sérialisation des conflits. Pour une planification P, un graphe de précédence est un graphe dirigé G = (N, F) constitué d’un ensemble N de nœuds et d’un ensemble F de flèches, construit comme suit : Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Test de conflits de la capacité de sérialisation •Créer un noeud pour chaque transaction. •Créer une flèche dirigée Ti → Tj, si Tj lit la valeur d’un élément écrit par Ti . •Créer une flèche dirigée Ti → Tj, si Tj écrit une valeur dans un élément après qu’il a été lu par Ti . •Créer une flèche dirigée Ti → Tj, si Tj écrit une valeur dans élément après qu’il a été écrit par Ti . •Si une flèche Ti → Tj existe dans le graphe de précédence pour P, alors dans toute planification sérielle S′ équivalente à S, Ti doit apparaître avant Tj . •Si le graphe de précédence contient un cycle, la planification n’est pas sérialisable en vue de résoudre les conflits. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Exemple - Deux transactions de modification concurrentes qui n’ont pas la capacité de sérialisation des conflits. Graphe de précédence correspondant à la figure ci dessus. Le graphe présente un cycle, de sorte que la planification ne permet pas la sérialisation des conflits. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Récupération La capacité de sérialisation identifie des planifications qui conservent toute sa cohérence à une base de données, en admettant qu’aucune transaction planifiée n’échoue. Si une transaction défaille, la propriété d’atomicité impose que nous annulions les effets de la transaction. En outre, la propriété de durabilité indique qu’une fois qu’une transaction est validée, il n’est plus possible d’annuler les modifications qu’elle a apportées (du moins sans exécuter une transaction distincte, de compensation). En d’autres termes, cette planification est une planification irrécupérable qu’il ne faut pas permettre d’utiliser. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Techniques de contrôle de concurrence L’aspect sérialisable s’obtient de diverses manières. Il existe deux techniques de contrôle de concurrence principales qui permettent d’exécuter des transactions en parallèle en toute sécurité, à condition de faire appel à certaines contraintes : les méthodes de verrouillage ou "Locking", et d’estampillage ou "Timestamping’’ . Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Techniques de contrôle de concurrence Le verrouillage et l’estampillage sont des approches fondamentalement conservatrices (ou pessimistes), en ceci qu’elles provoquent un retardement des transactions au cas où elles entreraient en conflit avec d’autres transactions dans un certain délai à venir. Les méthodes optimistes, reposent sur l’hypothèse que les conflits sont rares, de sorte qu’elles permettent aux transactions de procéder de manière désynchronisée et ne vérifient la présence de conflits qu’en fin de transactions, lors de leur validation. Dr Kiswendsida Kisito Kaboré. http://Kisitokab.xyz Méthodes de verrouillage Verrouillage Une procédure employée pour contrôler les accès concurrents aux données. Lorsqu’une transaction accède à une base de données, un verrou est susceptible de bloquer l’accès à d’autres transactions pour éviter de faux résultats. Verrou partagé Si une transaction dispose d’un verrou partagé sur une donnée, elle peut lire la donnée mais uploads/Finance/chpt-4-cours-bdd-transaction-ibam-m1-2021-v1.pdf

  • 37
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 10, 2022
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 1.3456MB