Les transactions.

Slides:



Advertisements
Présentations similaires
Contrôle de la concurrence
Advertisements

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.
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 10 Patrick Reuter.
Fonctionnalités des SGBD
TRANSACTION Problèmes posés
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
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é
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
Systèmes de Gestion de Bases de Données (Relationnelles)
T ECHNOLOGIES O RACLE Manipulation des données © sebvita.com.
Les fonctions de groupes Gestion des transactions
TRANSACTION : confirmation, annulation. transactions : début transactionSET TRANSACTION SAVEPOINT annulerROLLBACK fin transactionCOMMIT.
Auto Exterior Scoop SQP PROCESSUS 24 juillet 2006 Version validée V01.
L’utilisation des bases de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
1 Gestion des Transactions: Survol Chapitre Transactions Une transaction est la vue abstraite qua le SGBD dun programme dusager: cest une séquence.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
IFT2821 Base de données Chapitre 8 Fonctions avancées
Modex Web Dominique Rossin
STSWEB Bascule Diffusion Nationale TOULOUSE – déc.2008.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Présentation du nouveau mode de distribution des médias Open Janvier 2008.
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
Introduction.
Fichiers de données Fichiers de contrôles Fichiers de journalisations Fichiers de paramètres d’initialisation.
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
SQL Partie 2. SQL est un Langage de Manipulation de Données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
 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
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
Systèmes de gestion de bases de données NFP 107 Introduction à la concurrence d’accès Second fragment Philippe Rigaux
Analyse et Conception de Systèmes Informatiques (ACSI)
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Créer des packages.
Surveiller et résoudre le conflit de verrouillage
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Manipulation des Données
Institut Supérieur d’Informatique
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
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.
Gérer les rôles.
SQL : Langage de Manipulation des données
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.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Les vues Une vue: c’est une relation virtuelle. Définie par:
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
 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.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Le Langage de Manipulation de Données LMD Module 6.
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
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.
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.
SQL LMD FICHE 4.6.
Transcription de la présentation:

Les transactions

La notion de transaction Transaction : il s’agit d’un ensemble d’opérations qui forment un tout indivisible. Elles doivent toutes s’exécuter ou aucune ne doit s’exécuter. Exemple : un client d’une banque transfert 50,000.00$ de son compte d’épargne à son compte de chèque. 2 opérations 1. Retirer 50,000.00$ du compte d’épargnes. Une seule transaction 2. Déposer 50,000.00$ dans le compte chèques.

SQL et la notion de transaction Au cours d’une transaction, l’utilisateur verrouille la/les lignes des tables qui sont modifiées. Si un autre utilisateur veut modifier la ressource pendant qu’elle est verrouillée, le processus de l’utilisateur attend que la ressource se libère. Si un utilisateur veut voir la valeur d’une ressource et que celle-ci est verrouillée, l’utilisateur verra l’ancienne version de la ressource (la version originale de la donnée)

Commit Pour confirmer les modifications apportées à la base de données l’utilisateur doit les valider. Par défaut, une modification de la base de donnée doit être validé par la commande COMMIT ou dans certain cas par la sortie explicite du logiciel d’accès (EXIT dans SQL*PLUS). Après une validation, les modifications deviennent accessibles à tous les utilisateurs et les ressources sont libérées.

Commit (suite) Transaction Les modifications deviennent permanentes lors de l’exécution d’un COMMIT. Une transaction, c’est l’ensemble des opérations faites entre 2 COMMIT. Syntaxe : COMMIT; Exemple : … INSERT…; DELETE… UPDATE…; Transaction

COMMIT implicite Certaines instructions entraînent l'exécution automatique d'un COMMIT ALTER ... AUDIT ... COMMENT ... CONNECT ... CREATE ... DISCONNECT ... DROP ... EXIT GRANT ... NOAUDIT ... QUIT REVOKE ... RENAME ...

ROLLBACK ROLLBACK Tous les changements effectués par la transaction active sont annulés Exemple : COMMIT; DELETE * FROM employe; INSERT INTO employe(NoEmp, NomE) VALUES (1010, ‘Toto’); ROLLBACK;

Annulation partielle ROLLBACK et SAVEPOINT SAVEPOINT permet de marquer un endroit dans une transaction où l'on pourrait vouloir revenir. Syntaxe: SAVEPOINT marque pour annuler les changements faits depuis un endroit marqué dans une transaction ROLLBACK TO marque

Exemple d’une annulation partielle. Exemple : DELETE…; COMMIT; UPDATE…; SAVEPOINT Bloc1; ROLLBACK TO Bloc1; Enregistre le UPDATE…;

Accès concurrents On dit qu’il y a accès concurrent lorsque plusieurs utilisateurs accèdent aux même données. La base de données doit être protégée des interférences qui peuvent résulter des accès simultanés de deux usagers. Exemple : si deux usagers font des retrait d’un même compte en même temps, le solde final devra tenir compte des deux transactions.

Verrouillage Le SGBD utilise un système de verrouillage pour protéger les données tant que la transaction d’un usager n’est pas finie. La transaction qui a posée le verrou peut utiliser les données tandis que les autre transactions sont en attente. Il existe des verrous au niveau des lignes d’une table et au niveau d’une table en entier. Le verrouillage peut être implicite (le SGBD le fait automatiquement) ou explicite (commande LOCK).

Verrouillage implicite Les instructions INSERT, UPDATE ou DELETE pose automatiquement un verrou exclusif de ligne sur la table. Il est alors possible de consulter les anciennes valeurs par un SELECT mais aucunes modification de ces lignes n’est permise. L’instruction SELECT ne pose pas de verrou. Pour réserver, dans le cas d’une mise à jour ultérieur, on peut utiliser le verrou SELECT … FOR UPDATE; Les commandes COMMIT ou ROLLBACK annule les verrous d’une transaction.

Exemple de verrou SELECT * FROM employe WHERE id = 1010; Utilisateur 1 Utilisateur 2 Commentaire SELECT * FROM employe WHERE id = 1010; Les deux voient la même chose. DELETE employe WHERE id = 1010; L’usager 1 ne voit plus l’employé 1010. L’usager 2 voit l’employé 1010. Id = 1010; L’usager 2 est mis en attente.

Suite de l’exemple de verrou Utilisateur 1 Utilisateur 2 Commentaire COMMIT; Un message est envoyé à l’usager 2 que la ligne n’existe pas. Les modifications sont enregistrés dans la base de données. Le verrou est défait. SELECT * FROM employe WHERE id = 1010; Les deux ne voient plus l’usager 1010.

SELECT … FOR UPDATE Verrouille les lignes sélectionnées. NOWAIT Retourne le contrôle si une ligne est verrouillée par un autre utilisateur. Exemple SELECT * FROM employe WHERE id= 20 FOR UPDATE NOWAIT;