Forum Clubic

Qu'est ce qu'une transaction dans les base de données?

salut a tous

voila tout est dans le sujet, je voudrai savoir ce qu’est une transaction

Une transaction, c’est un ensemble de transactions (SQL généralement) indissociables .

Exemple : Retrait d’argent au distributeur.

==> 2 mises à jour SQL ==> 1 ajout de transaction + 1 mise à jour de ta table de compte.

Les 2 requetes sont indissociables. Il est impératif de faire les 2 et non pas l’une sans l’autre.

Donc on fait une transaction.

Shématiquement, ca fait ca:

beginTransaction()
Ajout entrée transaction
Mise à jour de ton compte
si OK => Commit
sinon rollback des 2 ordres SQL.
endTransaction();

C’est pour garantir un minimum d’intégrité dans les données et accessoirement permettre de passer des ordres SQL sans faire un commit ralentissant à chaque ordre SQL.

Typiquement par exemple, sur du Mysql standard (pour prendre comme exemple le mauvais eleve), à chaque requete, par défaut, il fait un commit donc il peut arriver pour x raisons qu’une de tes 2 transactions ne passent pas et alors tes données ne sont plus cohérentes…

une transaction est un ensemble de une ou plusieurs operations
( creation, modification ou suppression de données dans la base )
se terminant par une validation ( commit )
ou une annulation ( rollback )

Tout simplement

(et dans le cas du retrait d’argent, on aimerait bien qu’il y a ait une transaction failure au niveau de la mise à jour du compte, et que cela continue… rêve de mySQL sur le distributeur du coin)