Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien

Slides:



Advertisements
Présentations similaires
VBA et les actions sur les tables
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
Contrôle de la concurrence
GEF 435 Principes des systèmes d’exploitation
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Découverte de SQL Server par la pratique pour les administrateurs expérimentés Module 6 : Protection des données Bertrand Audras Microsoft Technology Center.
GEF 435 Principes des systèmes d’exploitation
TRANSACTION Problèmes posés
1 Reprises sur Pannes d'une BD Witold Litwin. 2 Pannes d'une BD n Matériel –RAM ou CPU »données sont perdues –Disque »données sont perdues ou corrompues.
1 TransactionsTransactions Witold Litwin. 2 IntroductionIntroduction n Beaucoup d'opérations sur une BD doivent être atomiques: n Transfert d'argent entre.
Plan Présentation de la Solution. Le Protocole MESI
Les bases de données temps-réel
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
GESTION DE TRANSACTIONS
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
Transaction Ensemble d'opérations de modification de données annulées ou validées en bloc. Une Transaction vérifie les caractéristiques suivantes ( ACID.
Section XI Traitement de fichiers
Gestion des annulations
Atomicité Transactions Atomiques Recouvrement à Base de Journal
Systèmes de Gestion de Bases de Données (Relationnelles)
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
sauvegarde de base de données
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SYSTEME DE GESTION DE BASES DE DONNEES
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Contrôle de lAccès Simultané Chapitre 17.
1 Gestion des Transactions: Survol Chapitre Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Gestion des Transactions: Survol Chapitre 16.
IFT2821 Base de données Chapitre 8 Fonctions avancées
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
Synchronisation Classique
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Gérer la sécurité des mots de passe et les ressources
Systèmes de gestion de bases de données NFP 107 Introduction à la concurrence d’accès Second fragment Philippe Rigaux
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Bases de données Open Source Pierre Crépieux 13/03/2008.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
Gestion des transactions
Composants de l'architecture Oracle
CONSULTER permet toujours d’explorer le protocole sans y apporter de modification. Pour MODIFIER le protocole, il faut indiquer le motif de cette.
 Requêtes MySQL en PHP Introduction
Manipulation des Données
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Cours oracle n°1 Le SGBD ORACLE
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Gestion des Rollback Segments
1  G. Gardarin GESTION DE TRANSACTIONS l 2. Journaux et reprise l 3. Scénarios de reprise l 4. Modèles étendus l 5. Cas des systèmes répartis.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
4 Copyright © Oracle Corporation, Tous droits réservés. Gérer les sous-programmes.
Module 7 : Restauration de bases de données
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Les bases de données Séance 8 Jointures.
Séance /10/2004 SGBD - Approches & Principes.
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Les exceptions Une exception est un identificateur PL/SQL détecté pendant la phase d’exécution. Comment est-elle déclenchée ? À la suite d’une erreur.
Le Langage de Manipulation de Données LMD Module 6.
1 Transactions Support construit à partir des cours de N. Anciaux, L. Bouganim, P. Pucheral, Z. Kehdad, G. Gardarin, P. Borlat (Oracle France) Benjamin.
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
Développement d’applications Problèmes relatifs aux BD.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien Les Transactions Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien

Introduction Beaucoup d'opérations sur une BD doivent être atomiques: Transfert d'argent entre les comptes: UPDATE Compte1 Val = Val -100 UPDATE Compte2 Val = Val + 100 Si seulement une de ces requêtes est exécutée, la BD perd sa cohérence

Transactions Opérations atomiques inexprimables avec une requête relationnelle. entièrement ou pas du tout Préservant la consistance de la BD Comme si l'usager était isolé sur la BD ***Notion de transactions ***

Transactions: Les primitives Notions: COMMIT, ROLLBACK Sous Oracle les opérations sont placées dans un buffer en attendant d ’être finaliser. =>Verrouillage des tables concernées COMMIT: Finaliser une transaction, aucune annulation possible ROLLBACK: Annuler une transaction, les opérations placées qui n ’ont pas été finalisées par un COMMIT sont effacées

Transactions: Les primitives Seul l'utilisateur ayant effectué les modifications les voit Exemple: COMMIT, ROLLBACK Début TRANSACTION INSERT INTO Medicament VALUES (2, 'lexomil'); ROLLBACK; INSERT INTO medicament VALUES (3,  ’doliprane'); COMMIT; Fin Seul doliprane a été inséré définitivement

Remarque Il existe plusieurs niveaux de ROLLBACK Appel automatique si instruction erronée Exemple: Insertion d ’un tuple dont la clé existe déjà

Les points de sauvegarde Permet de diviser une transaction en morceaux SAVEPOINT Point1; ... ROLLBACK TO SAVEPOINT Point1;

COMMIT Automatique Il est possible de rendre la finalisation des opérations automatique UTILISATION: « SET AUTOCOMMIT ON; » Certaines opérations provoquent des COMMIT automatiquement Liste des opérations

Les opérations qui valident… toutes seules ALTER AUDIT NOAUDIT COMMENT CONNECT CREATE DISCONNECT DROP EXIT GRANT REVOKE QUIT RENAME

Reconnaissance de transactions Oracle affecte aux transactions un ID Possibilité de nommer une transaction SET TRANSACTION ... NAME Possibilité de commenter un COMMIT COMMIT COMMENT ‘mon commentaire ici’

Les transactions en lecture seule Possibilité de spécifier qu’une transaction est en lecture seule. Gestion optimisé Pas de verrous à gérer Utilisation: SET TRANSACTION READ ONLY;

Transactions autonomes Définition: Il s'agit d'une transaction au sein d'une transaction « primaire » qui est autonome par rapport à cette dernière. Cas d'utilisation: Il peut être utile dans certain cas que la base soit modifié même si la transaction est annulée.

Exemple La transaction autonome. CREATE OR REPLACE PROCEDURE TransAutonome IS PRAGMA AUTONOMOUS_TRANSACTION; BEGIN -- Transaction autonome et validation INSERT INTO Medicament VALUES (7, 'lexomil',15.2); INSERT INTO medicament VALUES (8, 'vitamine B',5.2); COMMIT; END; /

Exemple (suite) La transaction principale. CREATE OR REPLACE PROCEDURE lanceTransaction IS BEGIN -- Transaction principale INSERT INTO Medicament VALUES (9, 'aspro 500',5); -- lancement d'une transaction autonome TransAutonome(); -- Reprise de la transaction principale INSERT INTO Medicament VALUES (10, 'doliprane 200',8); -- Invalidation de la transaction principale ROLLBACK; END; /

Exemple (fin) Résultat. La base contient ces information après l'annulation de la transaction principale: ID_M NOM_M PRIX_M ---------- -------------------- ---------- 8 vitamine B 5.2 7 lexomil 15.2 Les opérations réalisées dans la transaction autonome ont été conservées malgré l'annulation de la transaction principale.

Implémentation de transactions T-ID : Identificateur de transaction Inscription dans la BD seulement après le COMMIT Journalisation: Toute opération d'une transaction est notée avant et après l'exécution dans un fichier journal présumé à l'abris de pannes Les opérations de commitement sont notées avant d'être exécutées sur la BD (write- ahead log protocol) Points de reprise (checkpoints) sauvegardes de l'état de la BD et notamment de TIDs de transactions en cours à intervalles réguliers

Et si la casse arrive... On ferme l'accès à la base On reprend le dernier checkpoint On retrouve sur le journal toutes les transactions commises après commencées avant ou après le checkpoint On re-exécute chronologiquement ces transactions et seulement ces transactions On rouvre la base aux usagers

Concurrence Les BDs étant partagées, les transactions pourraient être exécutées: l'une après l'autre simultanément meilleures performances possibilités d'inconsistances dans la base Théorie de concurrence analyse les problèmes d'accès simultané

Exemple A = 100 R2 (A) R1 (A) A := A +200 A := A +100 W1 (A) A = 200 La base

Exemple A = 100 R2 (A) R1 (A) A := A +200 A := A +100 W1 (A) A = 200 La base

Quelques Verrous

Gestion de la concurrence Verrouillage exclusif toute opération d'une transaction T sur une donnée D ne peut fait que si T obtient un verrou sur D si D est déjà verrouillé par T' quand T le demande, alors T est mis en attente Ce type de verrou est dit exclusif

Exemple La base L (A) A = 100 L (A) R1 (A) A := A +100 W1 (A) A = 200 U (A)

Exemple La base L (A) A = 100 L (A) R1 (A) A := A +100 W1 (A) A = 200 U (A) R2 (A) A := A +200 A = 400

les lectures ont les verrous partagés Verrouillage partagé les lectures ont les verrous partagés T et T' peuvent lire D simultanément les écritures doivent obtenir les verrous exclusifs si D est déjà verrouillé par T', alors T est mis en attente C'est la méthode la plus utilisé Avantage: meilleures performances, mais...

Exemple Lr (A) A = 100 Lr (A) R1 (A) R2 (A) A := A +100 A := A +200 Lw (A) Lw (A) La base

Verrou mortel Les transactions s'attendent mutuellement (deadlock) Solution typique: avorter une des transactions (la victime) le choix est fait par le gestionnaire des verrous (lock manager)

Exemple Lr (A) A = 100 Lr (A) R1 (A) R2 (A) A := A +100 A := A +200 Lw (A) Lw (A) A W2 (A) A = 300 La base

Lr (A) A = 300 R1 (A) A := A +100 Lw (A) W1 (A) A = 400 La base

Toujours plus loin dans les transactions Commit à 2 phases: Cette technique permet d’assurer qu'une transaction a fait avec succès la mise à jour de tous les fichiers appropriés dans un environnement de base de données réparties flashback query : conservation d'un historique de la base Et aussi, permet de retourner à un état précédent de la base (malgré la validation).

COMMIT ?