开发者

SQL Server and ACID property of Database

I am newbie to database and SQL Server.

So when i have search 开发者_如何学Pythonthings about database on internet i have found that The Database said to be good if it obey or follow the ACID (Atomicity, Consistency, Isolation, Durability) property.

I wonder that the Microsoft SQL Server (Any Version Current or previous one) follow the ACID property internally or if we are using MS SQL Server in our application then we have to write coding such way that our Application follow the ACID property.

In Short: Maintain the ACID property is task (or liability) of Database Or its task of Application Programmer.

Thanks..


IMHO, it is a two fold maintainance. Both DB Admins (writing stored procedures ) and programmers should enforce ACID Properties. SQL Server maintains its own ACID properties internally and we don't have to worry about that.

ACID Properties are enforced in SQL Server.

Read this: Acid Properties of SQL 2005

But that doesn't mean that that the Database would handle everything for you.

According to Pinal Dave (blog.sqlauthority.com)

ACID (an acronymn for Atomicity Consistency Isolation Durability) is a concept that Database Professionals generally look for when evaluating databases and application architectures. For a reliable database all this four attributes should be achieved.

Atomicity is an all-or-none proposition.

Consistency guarantees that a transaction never leaves your database in a half-finished state.

Isolation keeps transactions separated from each other until they’re finished.

Durability guarantees that the database will keep track of pending changes in such a way that the server can recover from an abnormal termination.

Above four rules are very important for any developers dealing with databases.

That goes for developers dealing with databases.

But application developers should also write business logic on which ACID properties are being enforced.

An example on Practical use of ACID properties would help you more I guess


Almost every modern database systems enforce ACID properties. Read this : Database transaction and ACID properties


ACID --> Atomicity, Consistency, Isolation, Durability

Atomicity:
A transaction is the fundamental unit of processing. Either all of its operations are executed, or none of them are. Suppose that the system crashes after the Write(A) operation (but before write(B).)
Database must be able to recover old values of A and B (or complete entire transaction)

Consistency Preserving:
Executing a transaction alone must move the database from one consistent state to another consistent state. Sum of A and B must be unchanged by the execution of the transaction

Isolation:
A transaction should not make its effects known to other transactions until after it commits. If two transactions execute concurrently, it must appear that one completed execution before the other started. If another transaction executing at the same time is reading (and/or writing to) accounts A and B, it should not be able to read the data in an inconsistent state (after write to A and before write to B)

Durability:
Once a transaction commits, the changes to the database can not be lost due to a future failure. Once transaction completes, we will always have new values of A and B in the database


Transaction:-A transaction is a batch of SQL statements that behaves like a single unit. In simple words, a transaction is a unit where a sequence of work is done to complete the whole activity. We can take an example of Bank transaction to understand this.

When we transfer money from account “A” to account “B”, a transaction takes place.Every transaction has four characteristics, those are known as ACID properties.

◦ Atomicity ◦ Consistency ◦ Isolation ◦ Durability

Atomicity: – Every transaction follow atomicity model, which means that if a transaction is started, it should be either completed or rollback. To understand this lets take above example, if person is transferring amount from account “A” to account “B”, it should be credited to account B after completing the transaction. In case if any failure happens, after debiting amount from account “A” , the change should be rollback.

Consistency: - Consistency says that after the completion of a transaction, changes made during the transaction should be consistent. Let’s understand this fact by referring the above example, if account “A” has been debited by 200 RS then after completion of transaction account “B” should be credited by 200 RS. It means changes should be consistent.

Isolation: - Isolation states that every transaction should be isolated with each other, there should not be any interference between two transactions.

Durability: - Durability means that once the transaction is completed, all the changes should be permanent, it means that in case of any system failure, changes should not be lost.


ACID :

[A]tomic:- Everything succeeds or fails as a single unit.

[C]onsistent:- When the operation is complete, everything is left in a safe state.

[I]solated:- No other operation can impact me operation.

[D]urable:- When the operation is completed, changes are safe

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜