본문 바로가기
공부하면서 생긴 질문들/Java

Transaction

by 구너드 2023. 6. 13.

Transaction은 데이터베이스의 상태를 변경하는 하나의 논리적인 작업 단위.

이는 데이터를 읽거나 쓰는 연산들의 집합이며 이러한 연산들은 모두 한꺼번에 실행되어야 하고 모두 성공적으로 완료되거나, 롤백, 즉 이전 상태로 되돌리는 작업이 되어야 한다. Transaction에서 하나의 작업이라도 실패한다면 전체 트랜잭션은 이전 상태로 복구됨.

 

Transaction은 ACID라는 속성을 가지고 있음.

 

Atomicity: 원자성 //모든 연산은 원자적으로 처리되어야함. 즉 Transaction 내 모든 작업은 전부 성공적으로 수행되거나 전혀 수행되지 않아야함. 하나의 연산이라도 실패하면 롤백.

 

Consistency: 일관성 // Transaction이 수행되기 전과 수행된 후에 데이터베이스의 상태는 항상 일관성이 있어야함. Transaction은 데이터베이스에 정의된 제약 조건을 준수해야하며 데이터베이스의 무결성이 유지되어야함.

 

Isolation: 고립성 // 동시에 여러 Transaction이 실행될 때 각 Transaction은 서로에게 영향을 주지 않고 독립적으로 실행되는 것처럼 보여야 함. 즉 하나의 Transaction이 완료될 때까지 해당 Transaction의 결과는 다른 Transaction에게 보이지 않아야 함.

 

Durability: 지속성 // Transaction이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야함. 혹여 시스템에 장애가 발생해도 Transaction의 결과는 손실되지 않아야 함.

 

Transaction은 데이터베이스에서 사용되며 데이터베이스 관리 시스템(DBMS)은 ACID를 보장하기 위해 다양한 매커니즘을 제공. 예를 들어 커밋하여 변경된 데이터를 영구적으로 저장하거나 롤백하여 Transaction의 변경사항을 취소할 수 있음.

 

Transaction은 데이터의 정합성과 안정성을 유지하기 위해 필요하며 데이터의 일관성을 보장

무결성(Integrity): 
데이터베이스의 무결성은 데이터의 정확성과 일관성을 보장하는 개념입니다. 
데이터베이스에서 정의된 규칙과 제약 조건을 준수하여 데이터가 예상대로 유지되도록 보장합니다. 
무결성은 데이터베이스 내의 데이터가 잘못된 값이나 불일치된 상태로 변하지 않도록 합니다.

정합성(Consistency): 
데이터베이스의 정합성은 트랜잭션이 실행된 후에도 데이터베이스가 일관된 상태를 유지하는 것을 의미합니다. 트랜잭션이 성공적으로 완료되면, 데이터베이스는 정의된 규칙과 제약 조건에 따라 일관된 상태로 유지됩니다.

안정성(Durability): 
데이터베이스의 안정성은 트랜잭션이 성공적으로 완료되면 해당 변경 사항이 영구적으로 저장되는 것을 의미합니다. 즉, 트랜잭션으로 인한 데이터의 변경은 영구적으로 보존되어야 합니다. 
데이터베이스 시스템은 장애가 발생하더라도 트랜잭션의 결과가 지속적으로 유지되어야 합니다.

일관성(Isolation):
 데이터베이스의 일관성은 여러 개의 트랜잭션이 동시에 실행될 때, 각 트랜잭션이 서로에게 영향을 주지 않고 독립적으로 실행되는 것을 의미합니다. 
트랜잭션은 다른 트랜잭션의 실행 결과를 간섭하지 않고, 일관된 데이터를 볼 수 있어야 합니다. 
이를 위해 데이터베이스는 격리 수준(Isolation Level)을 지원하여 트랜잭션 간의 격리 수준을 
조절할 수 있습니다.

'공부하면서 생긴 질문들 > Java' 카테고리의 다른 글

Annotation  (0) 2023.06.14
메모리 영역  (0) 2023.06.14
Static  (0) 2023.06.13
Hash code와 toString()  (0) 2023.06.13
Interface의 다중 상속  (0) 2023.06.13