MAKASA MOISE MARC
Bac4 G.L / 2021020032
TP D'ADMINISTRATION DES BASES DE DONNÉES
Transactions et procédures stockées en administration de bases de données
L'administration de bases de données (DBA) repose sur des concepts fondamentaux tels que les
transactions et les procédures stockées, qui permettent de garantir la cohérence, la fiabilité, et la
performance des bases de données relationnelles. Ces deux notions jouent des rôles essentiels dans la
gestion des données et des opérations complexes.
1. Transactions
a) Définition
Une transaction est une unité logique de travail qui regroupe une ou plusieurs opérations sur une base
de données. Elle suit le principe ACID (Atomicité, Cohérence, Isolation, Durabilité), garantissant que la
base reste dans un état cohérent, même en cas de défaillance.
b) Propriétés ACID
1. Atomicité (Atomicity) : Une transaction est tout ou rien. Si une opération échoue, toutes les
modifications précédentes sont annulées.
Exemple : Lors d’un transfert bancaire, si le débit échoue, le crédit ne doit pas être effectué.
2. Cohérence (Consistency) : Une transaction garantit que les contraintes d'intégrité de la base de
données sont respectées.
Exemple : Après une transaction, le solde total dans deux comptes doit rester identique.
3. Isolation (Isolation) : Les transactions s’exécutent comme si elles étaient isolées les unes des autres,
même si elles se chevauchent.
Niveaux d'isolation .
Read Uncommitted
Read Committed
Repeatable Read
Serializable
4. Durabilité (Durability) : Une fois une transaction validée (commit), ses effets sont permanents, même
en cas de panne.
c) États d’une transaction
1. Active : La transaction est en cours.
2. Partiellement validée : Toutes les instructions ont été exécutées.
3. Validée (Committed) : Les modifications sont définitivement enregistrées.
4. Annulée (Aborted) : Les modifications sont annulées suite à une erreur ou une interruption.
d) Commandes liées aux transactions
1. BEGIN TRANSACTION : Début d’une transaction.
2. COMMIT : Valide la transaction.
3. ROLLBACK : Annule la transaction.
4. SAVEPOINT : Définit un point intermédiaire dans une transaction.
e) Problèmes classiques des transactions
1. Dirty Read : Une transaction lit des données non validées par une autre.
2. Non-repeatable Read : Une même requête retourne des résultats différents en raison d'une
modification dans une autre transaction.
3. Phantom Read : Une transaction observe l’apparition ou la disparition de lignes suite à une autre
transaction.
2. Procédures stockées
Une procédure stockée est un ensemble d'instructions SQL enregistrées dans la base de données et
exécutées sur demande. Elle permet de regrouper plusieurs opérations en une seule unité réutilisable.
b) Avantages des procédures stockées
1. Performance : Réduisent le trafic réseau, car seules les commandes d'exécution sont transmises.
2. Réutilisabilité : Elles peuvent être appelées plusieurs fois par divers utilisateurs ou applications.
3. Sécurité : Les procédures stockées peuvent inclure des contrôles d'accès et limiter l'exposition des
données.
4. Maintenance : Les modifications sont centralisées dans une seule définition.
c) Structure de base
Voici un exemple en SQL :
CREATE PROCEDURE AjouterClient(
@Nom VARCHAR(50),
@Prenom VARCHAR(50),
@Email VARCHAR(100)
AS
BEGIN
INSERT INTO Clients (Nom, Prenom, Email)
VALUES (@Nom, @Prenom, @Email)
END
d) Types de procédures stockées
1. Procédures utilisateur : Créées pour des besoins spécifiques.
2. Procédures système : Déjà définies par le SGBD pour des tâches courantes (par exemple, sp_help dans
SQL Server).
e) Paramètres des procédures stockées
1. Entrée (IN) : Les données sont passées à la procédure.
2. Sortie (OUT) : Les résultats sont renvoyés à l'appelant.
3. Entrée/Sortie (INOUT) : Le paramètre peut être modifié et renvoyé.
f) Utilisation conjointe avec les transactions
Les procédures stockées peuvent inclure des commandes de gestion de transaction pour garantir la
cohérence des données :
CREATE PROCEDURE TransfertArgent(
@CompteSource INT,
@CompteDestination INT,
@Montant DECIMAL(10, 2)
AS
BEGIN
BEGIN TRANSACTION;
BEGIN TRY
UPDATE Comptes
SET Solde = Solde - @Montant
WHERE ID = @CompteSource;
UPDATE Comptes
SET Solde = Solde + @Montant
WHERE ID = @CompteDestination;
COMMIT;
END TRY
BEGIN CATCH
ROLLBACK;
THROW;
END CATCH;
END;
En conclusion les transactions et les procédures stockées sont des outils incontournables en
administration de bases de données. Les transactions garantissent l'intégrité et la fiabilité des données,
tandis que les procédures stockées simplifient la gestion des processus métiers complexes. Leur
combinaison permet d'optimiser les performances et de sécuriser les opérations critiques.