- 트랜잭션이 무엇인지 설명해 주세요.
- 트랜잭션은 데이터베이스 관리 시스템에서 수행되는 작업 단위입니다. 하나 이상의 작업을 묶어서 하나의 트랜잭션으로 만들고, 이를 모두 실행하거나 모두 취소할 수 있는 기능을 제공합니다.
예를 들어, 은행에서 계좌 간 이체를 수행하는 경우, 이체 금액을 출금 계좌에서 차감하고, 입금 계좌에 입금하는 두 가지 작업이 필요합니다. 이 두 작업을 하나의 트랜잭션으로 묶어서 실행하면, 이체가 완료되거나 실패할 때는 모두 함께 처리됩니다. 만약 중간에 오류가 발생하여 이체가 실패하면, 이전에 처리된 출금 작업도 취소됩니다.
트랜잭션은 ACID라는 특징을 가지고 있습니다. ACID는 Atomicity(원자성), Consistency(일관성), Isolation(격리성), Durability(지속성)의 약자로서, 트랜잭션이 안전하게 수행될 수 있도록 하는 중요한 기능입니다. 각각의 특징은 다음과 같습니다.
원자성: 트랜잭션 내의 모든 작업은 전부 실행되거나 전부 취소되어야 합니다. 이를 통해 중간에 작업이 중단되는 경우 데이터 일관성을 유지할 수 있습니다.
일관성: 트랜잭션 실행 전과 실행 후의 데이터 상태가 일관성 있어야 합니다. 이를 위해 데이터베이스는 미리 정의된 제약 조건에 따라 데이터를 검사합니다.
격리성: 여러 개의 트랜잭션이 동시에 실행되더라도, 각각의 트랜잭션은 서로 영향을 주지 않고 독립적으로 실행되어야 합니다. 이를 통해 데이터 일관성과 안전성을 유지할 수 있습니다.
지속성: 트랜잭션을 성공적으로 수행하면, 그 결과는 영구적으로 저장되어야 합니다. 이를 통해 데이터 손실을 방지할 수 있습니다.
따라서 트랜잭션은 데이터베이스에서 중요한 역할을 하며, 데이터의 안정성과 일관성을 유지하기 위해 필수적인 개념입니다. - https://github.com/zeroempty2/TIL/blob/main/DATABASE/Transaction.md
GitHub - zeroempty2/TIL
Contribute to zeroempty2/TIL development by creating an account on GitHub.
github.com
'기술면접 대비' 카테고리의 다른 글
오버로딩, 오버라이딩 (0) | 2023.04.05 |
---|---|
배열(Array), 링크드 리스트(linked list), 스택(Stack), 큐(Queue) (0) | 2023.04.04 |
POJO란? (0) | 2023.04.02 |
TCP와 UDP (0) | 2023.04.01 |
프로세스와 스레드 (0) | 2023.04.01 |