19 February 2009

🛢DBMS: Dirty Read (Definitions)

"Occurs when one transaction modifies a row, and then a second transaction reads that row before the first transaction commits the change. If the first transaction rolls back the change, the information read by the second transaction becomes invalid." (Karen Paulsell et al, "Sybase SQL Server: Performance and Tuning Guide", 1996)

"Reads that contain uncommitted data. For example, transaction 1 changes a row. Transaction 2 reads the changed row before transaction 1 commits the change. If transaction 1 rolls back the change, transaction 2 reads a row that is considered to have never existed." (Microsoft Corporation, "SQL Server 7.0 System Administration Training Kit", 1999)

"A problem arising with concurrent transactions. The Dirty Read problem occurs when a transaction reads a row that has been changed but not committed by another transaction. The result is that Transaction #2's work is based on a change that never really happened. You can avoid Dirty Read by using an isolation level of READ COMMITTED or higher." (Peter Gulutzan & Trudy Pelzer, "SQL Performance Tuning", 2002)

"A problem with uncontrolled concurrent use of a database where a transaction acts on data that have been modified by an update transaction that hasn't committed and is later rolled back." (Jan L Harrington, "Relational Database Design and Implementation" 3rd Ed., 2009)

"The problem that arises when a transaction reads the same data more than once, including data modified by concurrent transactions that are later rolled back." (Jan L Harrington, "SQL Clearly Explained" 3rd Ed., 2010)

"A read that contains uncommitted data." (Microsoft, "SQL Server 2012 Glossary", 2012)

"A read request that does not involve any locking mechanism. This means that data can be read that might later be rolled back resulting in an inconsistency between what was read and what is in the database." (IBM, "Informix Servers 12.1", 2014)

 "A transaction reads data that has been written by another transaction that has not been committed yet. Oracle Database never permits dirty reads." (Oracle)

"An operation that retrieves unreliable data, data that was updated by another transaction but not yet committed. It is only possible with the isolation level known as read uncommitted. This kind of operation does not adhere to the ACID principle of database design. It is considered very risky, because the data could be rolled back, or updated further before being committed; then, the transaction doing the dirty read would be using data that was never confirmed as accurate." (MySQL)

"Reads that contain uncommitted data." (Microsoft Technet)

No comments:

Related Posts Plugin for WordPress, Blogger...

About Me

My photo
Koeln, NRW, Germany
IT Professional with more than 24 years experience in IT in the area of full life-cycle of Web/Desktop/Database Applications Development, Software Engineering, Consultancy, Data Management, Data Quality, Data Migrations, Reporting, ERP implementations & support, Team/Project/IT Management, etc.