web-dev-qa-db-fra.com

Différence entre transaction et non-transaction

En termes simples: quelle est la différence entre "Transactionnel" et "Non Transactionnel"? 

Dans mon cas, je me suis posé cette question en lisant la définition suivante de "MDM":

"En informatique, la gestion des données de base" (MDM) comprend un ensemble de processus et outils qui définissent et gèrent de manière cohérente le fichier entités de données non transactionnelles d'une organisation (pouvant inclure des données de référence). "

13
philips

Je pense que la meilleure façon de comprendre la différence entre les données transactionnelles et non transactionnelles est d'utiliser des exemples.

Non transactionnel (Ces informations sont pertinentes pour l'entreprise pour une durée plus longue que les données transactionnelles.)

  • Client: Nom, Préférences
  • Produit: Nom, hiérarchie 
  • Site/Lieu: Adresses
  • Compte: Détail des contrats

Transactionnel (a une dimension temporelle et devient historique une fois la transaction terminée)

  • Financial: commandes, factures, paiements
17
Deenbandhu Prasad

Lorsque vous rassemblez et regroupez un ensemble d'opérations en une seule opération, votre groupe d'opérations est atomic et tout échec de sous-opération aboutira à un rollback du tout, ce qui rend l'ensemble d'opérations fiable. La propriété de ce type de structure d'opérations s'appelle transactional.

Pour donner un exemple sur une transaction;

Pensez que vous avez une base de données qui traite des commandes clients, des paiements et d'autres éléments de facturation, les données sont donc très importantes. Vous fournissez une interface Web et l'interface Web appelle des classes et des méthodes de package métier. Et ces méthodes aussi, après avoir terminé le travail bi, vont appeler les classes dao (signifie data access object) afin de traiter les opérations crud. Ainsi, le serveur principal est construit avec un modèle d’application à plusieurs niveaux et il existe des objets dom (signifie domain object model) qui transmettent les données dans les deux sens du point de terminaison du service à la base de données. 

Sur un scénario pour lequel l'utilisateur souhaite mettre à jour certaines informations, précisons le numéro de téléphone, le type de paiement et la carte de crédit. Pendant que le serveur met à jour trois de ces données, que se passe-t-il si un problème survient sur l'une d'entre elles? Disons que le type de paiement et le numéro de téléphone sont mis à jour, mais lors de la mise à jour de la carte de crédit, une erreur est survenue? Vous finirez le jour ou le mois avec une tentative de facturation infructueuse.

Toutefois, si vous disposez d'un mécanisme qui englobera toutes les mises à jour d'informations dans un groupe de mises à jour d'informations, toute mise à jour sera annulée en cas d'erreur. Ceci est un exemple de transaction.

S'il n'y a pas de mécanisme de transaction, supposons que vous conserviez toutes les informations sur un fichier personnalisé indiquant le mécanisme que vous gérez, mais votre application devra gérer tous les scénarios d'erreur possibles.

pour plus d'informations, vous devriez vérifier ces articles utiles de wikipedia;

4
Levent Divilioglu

Fondamentalement, une transaction est un ou plusieurs ajouts, mises à jour, suppressions, modifications de la base de données qui doivent toutes être complétées ou aucune des étapes ne doit être exécutée. Les bases de données transactionnelles sont utiles lorsque l'intégrité des données est importante. Si l'une des étapes de la transaction échoue, vous devez alors revenir à l'état où aucune modification n'a été apportée à la base de données.

Vous pouvez par exemple avoir besoin d'une transaction lorsque vous effectuez une transaction bancaire pour transférer de l'argent d'un compte à un autre. La transaction comprend deux actions. 

1) Prendre de l'argent du compte A

2) Mettez l'argent sur le compte B.

Si vous ne parvenez pas à retirer de l'argent du compte A, la transaction échoue et aucun argent n'est retiré du compte A et aucun argent n'est placé dans le compte B.

Si vous supprimez avec succès des fonds du compte A, mais que vous ne parvenez pas à ajouter des fonds au compte B, la transaction échoue et la transaction doit être annulée afin que l'argent ne soit pas prélevé du compte A. 

Ce n'est que si l'argent est supprimé du compte A ET ajouté au compte B que la transaction valide les modifications apportées à la base de données.

Voici un lien vers un exemple de code permettant d'utiliser l'objet SQLTransaction pour commencer une transaction, la valider et l'annuler en cas d'échec: https://stackoverflow.com/a/21285747/311749

Une base de données non transactionnelle aurait probablement de meilleures performances car elle n'aurait pas à craindre d'annuler les modifications. Les données individuelles de la base de données non transactionnelle peuvent ne pas nécessiter de traitement transactionnel, contrairement à la gestion de fonds entre comptes bancaires. 

Voici des exemples de listes non transactionnelles possibles: Listes de clients, informations de contact, informations de fournisseur, listes de localisations et listes de pièces.

Master Data Services a été conçu pour prendre en charge les données non transactionnelles que vous souhaitez partager avec plusieurs applications. 

Par exemple, vous pouvez utiliser une liste maîtresse unique des informations de contact d'un membre de la société et la rendre accessible à différentes applications. Si de nombreuses applications ont besoin de cette même information, il est préférable d’essayer de conserver une liste de contacts différente pour chaque application.

Sources supplémentaires: https://en.wikipedia.org/wiki/Database_transaction

https://dba.stackexchange.com/questions/17246/diff-in-transactional-and-non-transactional-tables

1
WWC

Quand il est dit non transactionnel, cela signifie que les données ne sont pas directement accessibles par les systèmes OLTP (traitement des transactions en ligne), elles sont stockées dans un référentiel central où tous les systèmes sont alimentés et post-mises à jour. une fois toutes les X heures (selon un intervalle prédéterminé)

0
Diego

TRANSACTIONAL en mots courants signifie qu'il s'agit de DONNÉES obtenues dans un processus TRANSACTION, par exemple, lorsque vous enregistrez une vente ou un ticket.

0
Carlos Carranza