OrientDB - Transactions

Comme le SGBDR, OrientDB prend en charge les propriétés ACID des transactions. UNEtransactioncomprend une unité de travail effectuée dans un système de gestion de base de données. Il existe deux raisons principales pour maintenir les transactions dans un environnement de base de données.

  • Pour permettre une récupération simultanée après des pannes et maintenir une base de données cohérente même en cas de panne du système.

  • Pour fournir une isolation entre les programmes accédant simultanément à une base de données.

Par défaut, la transaction de base de données doit suivre les propriétés ACID telles que les propriétés Atomic, Consistent, Isolated et Durable. Mais OrientDB est une base de données compatible ACID, ce qui signifie qu'elle ne contredit ni ne nie le concept ACID, mais qu'elle change sa perception lors de la gestion de la base de données NoSQL. Regardez comment les propriétés ACID fonctionnent avec la base de données NoSQL.

Atomic - Lorsque vous faites quelque chose pour changer la base de données, le changement devrait fonctionner ou échouer dans son ensemble.

Consistent - La base de données doit rester cohérente.

Isolated - Si d'autres exécutions de transaction sont exécutées en même temps, l'utilisateur ne pourra pas voir les enregistrements en exécution simultanée.

Durable - Si le système tombe en panne (matériel ou logiciel), la base de données elle-même devrait pouvoir effectuer une sauvegarde.

La transaction de base de données peut être réalisée à l'aide des commandes Commit et Rollback.

Commettre

Valider signifie fermer la transaction en enregistrant toutes les modifications dans la base de données. La restauration signifie récupérer l'état de la base de données au point où vous avez ouvert la transaction.

L'instruction suivante est la syntaxe de base de la commande de base de données COMMIT.

COMMIT

Note - Vous ne pouvez utiliser cette commande qu'après vous être connecté à une base de données particulière et après avoir commencé la transaction.

Exemple

Dans cet exemple, nous utiliserons la même base de données nommée «demo» que nous avons créée dans un chapitre précédent de ce tutoriel. Nous verrons le fonctionnement de la transaction de validation et stockerons un enregistrement à l'aide de transactions.

Vous devez d'abord démarrer la transaction à l'aide de la commande BEGIN suivante.

orientdb {db = demo}> BEGIN

Insérez un enregistrement dans une table d'employés avec les valeurs id = 12 et name = satish.P à l'aide de la commande suivante.

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

Vous pouvez utiliser la commande suivante pour valider la transaction.

orientdb> commit

Si cette transaction est validée avec succès, vous obtiendrez la sortie suivante.

Transaction 2 has been committed in 4ms

Retour en arriere

La restauration signifie la récupération de l'état de la base de données au point où vous avez ouvert la transaction.

L'instruction suivante est la syntaxe de base de la commande de base de données ROLLBACK.

ROLLBACK

Note - Vous ne pouvez utiliser cette commande qu'après vous être connecté à une base de données particulière et après avoir commencé la transaction.

Exemple

Dans cet exemple, nous utiliserons la même base de données nommée «demo» que nous avons créée dans un chapitre précédent du didacticiel. Nous verrons l'opération de la transaction d'annulation et stockerons un enregistrement à l'aide de transactions.

Vous devez d'abord démarrer la transaction à l'aide de la commande BEGIN suivante.

orientdb {db = demo}> BEGIN

Insérez un enregistrement dans une table d'employés avec les valeurs id = 12 et name = satish.P à l'aide de la commande suivante.

orientdb> INSERT INTO employee (id, name) VALUES (12, 'satish.P')

Vous pouvez utiliser la commande suivante pour récupérer les enregistrements de l'employé de la table.

orientdb> SELECT FROM employee WHERE name LIKE '%.P'

Si cette commande est exécutée avec succès, vous obtiendrez la sortie suivante.

---+-------+-------------------- 
 # | ID   | name 
---+-------+-------------------- 
 0 | 12   | satish.P 
---+-------+-------------------- 
1 item(s) found. Query executed in 0.076 sec(s).

Vous pouvez utiliser la commande suivante pour annuler cette transaction.

orientdb> ROLLBACK

Vérifiez à nouveau la requête de sélection pour récupérer le même enregistrement de la table Employee.

orientdb> SELECT FROM employee WHERE name LIKE '%.P'

Si la restauration est exécutée avec succès, vous obtiendrez 0 enregistrement trouvé dans la sortie.

0 item(s) found. Query executed in 0.037 sec(s).