Qu'est-ce qu'une transaction de base de données?
Une transaction de base de données est une unité logique de traitement dans un SGBD qui implique une ou plusieurs opérations d'accès à la base de données. En un mot, les transactions de base de données représentent les événements du monde réel de toute entreprise.
Tous les types d'opérations d'accès à la base de données qui sont conservés entre les instructions de transaction de début et de fin sont considérés comme une seule transaction logique dans le SGBD. Pendant la transaction, la base de données est incohérente. Ce n'est qu'une fois la base de données validée que l'état passe d'un état cohérent à un autre.
Dans ce tutoriel, vous apprendrez:
- Faits sur les transactions de base de données
- Pourquoi avez-vous besoin de simultanéité dans les transactions?
- États des transactions
- Que sont les propriétés ACID?
- Types de transactions
- Qu'est-ce qu'un horaire?
Faits sur les transactions de base de données
- Une transaction est une unité de programme dont l'exécution peut ou non modifier le contenu d'une base de données.
- Le concept de transaction dans le SGBD est exécuté comme une seule unité.
- Si les opérations de base de données ne mettent pas à jour la base de données mais récupèrent uniquement des données, ce type de transaction est appelé une transaction en lecture seule.
- Une transaction réussie peut changer la base de données d'un ÉTAT CONSISTANT à un autre
- Les transactions SGBD doivent être atomiques, cohérentes, isolées et durables
- Si la base de données était dans un état incohérent avant une transaction, elle resterait dans l'état incohérent après la transaction.
Pourquoi avez-vous besoin de simultanéité dans les transactions?
Une base de données est une ressource partagée accessible. Il est utilisé simultanément par de nombreux utilisateurs et processus. Par exemple, le système bancaire, les systèmes de réservation ferroviaire et aérienne, la surveillance des marchés boursiers, l'inventaire des supermarchés, les caisses, etc.
Ne pas gérer l'accès simultané peut créer des problèmes tels que:
- Panne matérielle et plantages du système
- Exécution simultanée de la même transaction, blocage ou performances lentes
États des transactions
Les différents états d'un concept de transaction dans le SGBD sont répertoriés ci-dessous:
État | Types de transaction |
État actif | Une transaction entre dans un état actif lorsque le processus d'exécution commence. Pendant cet état, des opérations de lecture ou d'écriture peuvent être effectuées. |
Partiellement engagé | Une transaction passe à l'état partiellement validée après la fin d'une transaction. |
État engagé | Lorsque la transaction est validée à l'état, elle a déjà terminé son exécution avec succès. De plus, toutes ses modifications sont enregistrées en permanence dans la base de données. |
État défaillant | Une transaction considère comme échouée lorsqu'une des vérifications échoue ou si la transaction est annulée alors qu'elle est à l'état actif. |
État terminé | L'état de la transaction atteint l'état terminé lorsque certaines transactions qui quittent le système ne peuvent pas être redémarrées. |
![](https://cdn.css-code.org/images/1/100518_0500_DBMSTransac6.png.webp)
Étudions un diagramme de transition d'état qui met en évidence la façon dont une transaction se déplace entre ces différents états.
- Une fois qu'une transaction déclare exécution, elle devient active. Il peut émettre une opération de lecture ou d'écriture.
- Une fois les opérations READ et WRITE terminées, les transactions deviennent partiellement validées.
- Ensuite, certains protocoles de récupération doivent garantir qu'une défaillance du système n'entraînera pas une incapacité à enregistrer les modifications de la transaction de manière permanente. Si cette vérification réussit, la transaction est validée et entre dans l'état validé.
- Si la vérification échoue, la transaction passe à l'état Échec.
- Si la transaction est abandonnée alors qu'elle est à l'état actif, elle passe à l'état d'échec. La transaction doit être annulée pour annuler l'effet de ses opérations d'écriture sur la base de données.
- L'état terminé fait référence à la transaction quittant le système.
Que sont les propriétés ACID?
Les propriétés ACID sont utilisées pour maintenir l'intégrité de la base de données pendant le traitement des transactions. ACID dans le SGBD signifie A tomicité, C onsistance, I solation et D urabilité.
- Atomicité: Une transaction est une seule unité d'opération. Soit vous l'exécutez entièrement, soit vous ne l'exécutez pas du tout. Il ne peut pas y avoir d'exécution partielle.
- Cohérence: une fois la transaction exécutée, elle doit passer d'un état cohérent à un autre.
- Isolation: la transaction doit être exécutée indépendamment des autres transactions (pas de verrous). Lors de l'exécution de transactions simultanées, les résultats des transactions intermédiaires des transactions exécutées simultanément ne doivent pas être mis à la disposition de l'autre. (Niveau 0,1,2,3)
- Durabilité: · Après l'achèvement réussi d'une transaction, les changements dans la base de données devraient persister. Même en cas de défaillance du système.
Propriété ACID dans le SGBD avec exemple:
Voici un exemple de propriété ACID dans un SGBD:
Transaction 1: Begin X=X+50, Y = Y-50 ENDTransaction 2: Begin X=1.1*X, Y=1.1*Y END
La transaction 1 transfère 50 $ du compte X au compte Y.
La transaction 2 crédite chaque compte d'un paiement d'intérêt de 10%.
Si les deux transactions sont soumises ensemble, il n'y a aucune garantie que la transaction 1 sera exécutée avant la transaction 2 ou vice versa. Quelle que soit la commande, le résultat doit être comme si les transactions se déroulaient en série les unes après les autres.
Types de transactions
Basé sur les domaines d'application
- Non distribué vs distribué
- Compensation des transactions
- Calendrier des transactions
- En ligne ou par lots
Basé sur des actions
- Deux étapes
- Limité
- Modèle d'action
Basé sur la structure
- Transactions plates ou simples: Il s'agit d'une séquence d'opérations primitives exécutées entre des opérations de début et de fin.
- Transactions imbriquées: transaction qui contient d'autres transactions.
- Flux de travail
Qu'est-ce qu'un horaire?
Une planification est un processus créant un groupe unique de plusieurs transactions parallèles et les exécutant une par une. Il doit conserver l'ordre dans lequel les instructions apparaissent dans chaque transaction. Si deux transactions sont exécutées en même temps, le résultat d'une transaction peut affecter la sortie de l'autre.
Exemple
Initial Product Quantity is 10Transaction 1: Update Product Quantity to 50Transaction 2: Read Product Quantity
Si la transaction 2 est exécutée avant la transaction 1, des informations obsolètes sur la quantité de produit seront lues. Par conséquent, des horaires sont nécessaires.
L'exécution parallèle dans une base de données est inévitable. Mais, l'exécution parallèle est autorisée lorsqu'il existe une relation d'équivalence entre les transactions exécutées simultanément. Cette équivalence est de 3 types.
ÉQUIVALENCE DE RÉSULTAT:
Si deux planifications affichent le même résultat après exécution, on parle de planification équivalente de résultat. Ils peuvent offrir le même résultat pour une certaine valeur et des résultats différents pour un autre ensemble de valeurs. Par exemple, une transaction met à jour la quantité de produit, tandis qu'une autre met à jour les détails du client.
Voir l'équivalence
L'équivalence de vue se produit lorsque la transaction dans les deux programmes effectue une action similaire. Par exemple, une transaction insère les détails du produit dans la table des produits, tandis qu'une autre transaction insère les détails du produit dans la table d'archivage. La transaction est la même, mais les tables sont différentes.
Équivalence de conflit
Dans ce cas, deux transactions mettent à jour / visualisent le même ensemble de données. Il y a un conflit entre les transactions car l'ordre d'exécution affectera la sortie.
Qu'est-ce que la sérialisabilité?
La sérialisabilité est le processus de recherche d'une planification simultanée dont la sortie est égale à une planification série où les transactions sont exécutées l'une après l'autre. Selon le type de planifications, il existe deux types de sérialisabilité:
- Conflit
- Vue
Résumé:
- La gestion des transactions est une unité logique de traitement dans un SGBD qui implique une ou plusieurs opérations d'accès à la base de données
- C'est une transaction est une unité de programme dont l'exécution peut ou non modifier le contenu d'une base de données.
- Ne pas gérer l'accès simultané peut créer des problèmes tels que des pannes matérielles et des pannes du système.
- Actif, partiellement engagé, engagé, échoué et résilié sont des états de transaction importants.
- La forme complète des propriétés ACID dans le SGBD est l'atomicité, la cohérence, l'isolement et la durabilité
- Trois types de transactions SGBD sont basés sur les domaines d'application, l'action et la structure.
- Une planification est un processus créant un groupe unique de plusieurs transactions parallèles et les exécutant une par une.
- La sérialisabilité est le processus de recherche d'une planification simultanée dont la sortie est égale à une planification série où les transactions sont exécutées les unes après les autres.