Basic_Database: 1 [ ACID ]

TylerKang·2021년 9월 14일
0

Basic_DataBase

목록 보기
1/2

#이글은 교내 튜터링목적으로 작성된 글입니다.

기초적인 데이터베이스 내용들을 다루고 있으며 가벼움 주의

ACID란?

"Atomicity, Consistency, Isolation, Durabulity"
-> 데이터베이스 트랜잭션들이 안정적으로 수행되는것을 보장하는 성질들을 의미합니다.

1) 트랜잭션(Transaction)
: 여러작업들이 마치 하나의 작업처럼 취급되어 모두 다 성공하거나 아니면 모두 다 실패하는것을 의미합니다. 즉, 중간과정까지만 성공되거나 중간과정에서 실패되는일이 없도록하기 위한 작업단위 입니다.

2)ACID
2.1) 원자성(Atomicity)
: 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력. 즉 중간단계까지 실행되고 실패하는 일이 없도록 하기 위함입니다. 앞서 설명한 ACID의 정의와 매치되는 성질이기도 합니다.

2.2) 일관성(Consistency)
: 트랜잭션 실행이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 유지하는것을 뜻합니다. 즉 작업을 진행하면서 목적된 결과 또는 예정된 결과가 정해진 조건 아래서 트랜잭션을 통해 나타나져야 하는데 그렇지 않은 결과가 나오게 되면 일관성을 위반한거라 볼 수 있습니다.

2.3) 고립성(Isolation)
: 트랜잭션 수행 시 다른 트랜잭션의 연산작업이 끼어들지 못하도록 보장하는 것입니다. 트랜잭션 밖에 있는 어떠한 연산도 중간 단계의 데이터를 볼 수 없으며 트랜잭션의 실행내역은 연속적이어야 합니다.

  • 예를들어 SNS에 사용자 A,B가 동시에 피드를 올렸을때 A의 트랜잭션이 종료되기 전까지 B의 트랜잭션은 실행되지 않아야 합니다. 만약 두 트랜잭션이 충돌이 일어날 경우 한 게시물에 A의 사진과 B의 텍스트가 올라갈 수도 있습니다.

2.4) 지속성(Durability)
: 성공적으로 수행완료된 트랜잭션은 영원히 반영되어야 합니다. 모든 트랜잭션은 로그로 남고(logging) 시스템 장애 발생 전 상태로 되돌리는 것(rollback:후진복귀)이 가능합니다.

profile
It's Me

0개의 댓글