20

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)."

Levent Divilioglu
  • 11,198
  • 5
  • 59
  • 106
philips
  • 437
  • 1
  • 5
  • 15

5 Answers5

26

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
DB Prasad
  • 785
  • 7
  • 9
  • This is the correct answer because we are talking about **Transactional Data** here, not a Transactional Database. – Benji Oct 12 '20 at 09:29
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;

Levent Divilioglu
  • 11,198
  • 5
  • 59
  • 106
4

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://stackoverflow.com/a/21285747/311749

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

Community
  • 1
  • 1
AdamantineWolverine
  • 2,131
  • 1
  • 17
  • 14
1

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

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)

philips
  • 437
  • 1
  • 5
  • 15
Diego
  • 34,802
  • 21
  • 91
  • 134
  • Thank you for your answer Diego. That makes a little more sense. I also found some other references online [here](http://blogs.gartner.com/andrew_white/2009/07/01/defining-mdm-again/) and [here](http://datamanagement.manjeetss.com/what-is-master-data). But there is nothing really clear cut and straight forward. On What did you base your answer? Do you have any references? – philips Sep 24 '13 at 07:41
  • I was involved on a MDM project, so that's what made sense to me – Diego Sep 25 '13 at 22:06