SQLP

시험 직전 요약장

판단 기준과 헷갈리는 개념, 대표 예제를 짧게 확인하세요.

이론 목록

트랜잭션 경계와 격리 수준: ACID·COMMIT·READ COMMITTED·SERIALIZABLE

원래 이론 →

판단 기준

요구우선 검토핵심 Trade-off
일반 OLTP·짧은 업무 TransactionREAD COMMITTED반복 Query 결과가 달라질 수 있음
여러 Query가 동일 시점이어야 하는 ReportREAD ONLY긴 Snapshot을 위한 Undo 필요
충돌이 적고 Transaction Snapshot이 필요한 Read/Write 업무SERIALIZABLEORA-08177과 재시도 비용
특정 Row를 읽고 변경 권한을 선점SELECT FOR UPDATELock 대기·보유시간 관리
Lost Update 방지조건부 UPDATE·Version·Lock업무 규칙에 맞는 별도 설계 필요

격리 수준을 높이는 것만으로 중복 요청, 재고 음수, Lost Update 같은 모든 업무 경쟁이 해결되지는 않습니다. Constraint, Lock, Version Column, Idempotency Key를 함께 설계합니다.


이 부분의 원문 →

헷갈리는 개념

Session은 Client가 Database에 연결해 요청을 보내는 논리적 연결입니다. 하나의 Session 안에서 여러 Transaction을 차례로 실행할 수 있습니다.

도식
Session 시작
├─ Transaction 1 → COMMIT
├─ Transaction 2 → ROLLBACK
├─ Transaction 3 → COMMIT
└─ Session 종료

Transaction은 Session 전체가 아니라 하나의 논리적 업무 변경 단위입니다.

SQL
UPDATE account
SET    balance = balance - 10000
WHERE  account_id = 1;

UPDATE account
SET    balance = balance + 10000
WHERE  account_id = 2;

INSERT INTO transfer_history(
       transfer_id, from_account, to_account, amount, created_at
)
VALUES (
       transfer_seq.NEXTVAL, 1, 2, 10000, SYSTIMESTAMP
);

COMMIT;

출금만 먼저 Commit하면 입금이나 이력 기록 실패 시 업무 불변식이 깨집니다. Commit 위치는 처리 Row 수가 아니라 함께 성공해야 하는 업무 범위를 기준으로 정합니다.


이 부분의 원문 →

내 최근 연습 오답

현재 브라우저의 연습 채점 기록에서 공개된 단원과 연결된 오답을 확인합니다.

학습 기록 →

오답 기록을 확인하고 있습니다.