2018년 9월 30일 일요일

[SQL Server] ACID개념 설명

Professional SQL Server 2012 Internals and Troubleshooting

현재 읽고 있는 MSSQL 책 내용 잊지 않게 필요한 내용 정리

ACID : 데이터 베이스 트랜잭션의 특성 4가지

Atomicity: All or Nothing 이라고 생각 하면 된다. 트랜잭션을 하나의 개체로 묶어 성공적으로 끝나지 않았다면 Rollback을 하고 성공하면 작업을 마치는 것이다. 마치 내가 ATM에서 현금을 꺼내는 작업을 했을 때, 내가 현금을 지급받는 일은 내 계좌에 돈이 차감이 되는 것과 함께 발생이 되야한다. 둘 중 하나만 발생하면 Atomicity가 위반된것임.

Consistency: 데이터가 지정한 룰을 위반하지 않아야 한다. 재고의 값이 음수가 허용되지 않은 곳에 음수는 들어가거나, Female 또는 Male 로만 값이 지정되어야 하는데 그 외의 값이 지정되거나 하는 일이 없어야 한다는 것이다. 만약 이러한 제약조건을 위반하는 상황이 발생하면 트랜잭션은 완료 되지 않아야 한다.

Isolation: 현재 작업 중인 데이터를 다른 데이터가 사용할 수 없도록 하는 것이다. Isolation 속성은 각각의 트랜잭션은 완료가 되기 전에 해당 데이터를 다른 트랜잭션에서 읽는 것도 허용을 해서는 안된다는 것이다. 그러나 이 속성은 비즈니스 적인 요소와 적절하게 균형을 맞추는 것이 중요하다.

Durability: 트랜잭션이 완료 되었다면 시스템 장애가 발생했다고 하더라도 완료된 데이터는 보존이 되어있어야 한다. MSSQL에서는 이 속성을 트랜잭션 로그를 통해 구현한다. 트랜잭션이 커밋이 되기 전에 트랜잭션 로그에 해당 액션을 그대로 기록하고 있음으로서 데이터의 보존을 보장하는 것이다.

출처: Professional SQL Server 2012 Internals and Troubleshooting 4-5p

댓글 없음:

댓글 쓰기