Difference between transactional and non-transactional
Asked Answered
H

6

22

Simply stated: What is the difference between "Transactional" and "Non-Transactional"?

In my case I came up with this question while reading the following definition for "MDM":

"In computing, master data management" (MDM) comprises a set of processes and tools that consistently defines and manages the non-transactional data entities of an organization (which may include reference data)."

Hegira answered 19/9, 2013 at 1:3 Comment(0)
F
27

I think the best way to understand the difference between Transactional and Non-Transactional Data is through examples

Non -Transactional (These information are relevant to enterprise for longer duration than Transactional Data.)

  • Customer: Name, Preferences
  • Product: Name, Hierarchy
  • Site/Location: Addresses
  • Account: Contracts Detail

Transactional (Has a Time Dimension, and becomes historical once the transaction is complete)

  • Financial: orders, invoices, payments
Federica answered 12/10, 2013 at 18:1 Comment(1)
This is the correct answer because we are talking about Transactional Data here, not a Transactional Database.Tympanum
G
11

When you gather and wrap a set of operations into one, then your group of operations are atomic and any sub-operation failure will end up with a rollback of the whole which makes the set of operations reliable. The property of this kind of structure of operations are called as transactional.

To give an example about a transaction;

Think about you have a database which is dealing with customer orders, payments and other billing stuff, so the data is very important. You provide a web-ui and the web-ui calls business package classes and methods. And these methods also, after completing the bi job, will call to the dao (stands for data access object) classes in order to process crud operations. So the backend server build up with an n-tier application model and there are dom objects (stands for domain object model) that transmits the data in both ways from service endpoint to the database up and down.

On a scenario which that the user wants to update some info let say the phone number, payment type and the credit card. While the server updating three of these data, what if a problem occured on one them? Let say, the payment type and phone numer is updated but while updating the credit card, an error occured? You will end up the day or month with an unsuccessful attemp of billing.

But if you have a mechanism, which will wrap all of the info updates into an info update group, then in any case of error, the whole update will be rolled back. This is an example of a transaction.

If there is no transaction mechanism, let say you keep all of the info on a custom file that which you handle the io mechanism, then your application will have to handle every possible error-scenario.

for more info, you should checkout these useful wikipedia articles;

Gambado answered 11/3, 2016 at 14:36 Comment(0)
M
5

Basically, a transaction is one or more add, update, delete, modify changes to the database that must all be completed or none of the steps should be executed. Transactional databases are useful when data integrity is important. If one of the steps in the transaction fail, then the steps must be rolled back to the state where no change was made to the database.

An example of when you would need a transaction is when you make a banking transaction to move money from one account to another. The transaction consists of two actions.

1) Take money from account A

2) Put the money into account B.

If you fail to remove money from account A, then the transaction fails and no money is removed from account A and no money is placed in account B.

If you successfully remove money from account A, but fail to add money to account B, then the transaction fails and the transaction must be rolled back so that the money is not taken from account A.

Only if the money is removed from account A AND added to Account B does the transaction commit the changes to the database.

Here's a link to a code sample for using the SQLTransaction object to begin a transaction, commit it, and roll back on failure: https://mcmap.net/q/542073/-how-to-use-sqltransaction-in-c

A non-transactional database would probably have better performance because it doesn't have to worry about rolling back changes. The individual data in the non-transactional database may not require transactional processing as would managing money between bank accounts.

Examples of possible non-transactional lists include: Customer lists, Contact information, Supplier information, location lists, and parts lists.

Master Data Services was designed to support non-transactional data that you want to share with multiple applications.

For example, you might want to use a single master list of company member contact information and make it accessible to different applications. If you have lots of applications that need this same information, this is much better than trying to maintain a different contact list for each application.

Additional Sources: https://en.wikipedia.org/wiki/Database_transaction

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

Maurer answered 16/3, 2016 at 10:24 Comment(0)
M
1

TRANSACTIONAL in common words means that is DATA obtained in a TRANSACTION Process, for example, when you register a sell or ticket.

Martinamartindale answered 16/7, 2014 at 14:23 Comment(0)
J
0

When it says non-transactional, I believe it means that the data is not directly accessed by the OLTP (Online Transaction Processing) systems, it is stored on a central repository were all the systems feed from and post updates once every X hours (on a pre-determined interval)

Jenny answered 23/9, 2013 at 21:14 Comment(2)
Thank you for your answer Diego. That makes a little more sense. I also found some other references online here and here. But there is nothing really clear cut and straight forward. On What did you base your answer? Do you have any references?Hegira
I was involved on a MDM project, so that's what made sense to meJenny
N
0

To answer it from a MDM perspective , MDM (Master Data Management) means storing all the key entities for any business in one single place so that it becomes the single source of truth of information for the business. MDM aims to provide a 360 degree view of the business.

Let's take the example of a individual's account in a bank :

  • If we look through the lens of MDM for the bank : Storing the person's name , address , contact information , types of associations with the bank (Saving account , Current account , Loan account) - Which comes under non-transactional data is necessary.
  • Storing the day-to-day transactions (all kinds of payments) - Which comes under transactional data - is not necessary (from an MDM perspective - although it is absolutely critical for a bank to store these).

The reason it is not necessary for a MDM solution to store the transactional data is that the viewpoint of bank of its business will not change due to every transaction. However , the bank might store some information about the financials of its customers in its MDM solution to understand the business.

Nectar answered 7/7 at 17:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.