반응형
READ UNCOMMITTED:
다른 트랜잭션이 커밋하지 않은 변경 사항을 읽을 수 있습니다. 가장 낮은 격리 수준으로, 더티 리드(Dirty Read)가 발생할 수 있습니다.
아직 COMMIT 되지 않은 데이터가 읽힐 수 있어서 데이터 무결성이 깨질 위험이 있다
READ COMMITTED (Oracle 기본값)
다른 트랜잭션이 커밋한 변경 사항만 읽을 수 있습니다. 더티 리드를 방지하지만, Non-repeatable Read가 발생할 수 있습니다.
같은 SELECT 를 두 번 실행하면 결과가 달라질 수 있다
REPEATABLE READ:
같은 트랜잭션 내에서 읽은 데이터가 항상 동일
트랜잭션이 시작된 후 다른 트랜잭션이 커밋한 변경 사항을 읽을 수 없습니다. 더티 리드와 비반복 읽기를 방지하지만, 팬텀 리드(Phantom Read)가 발생할 수 있습니다.
처음 조회했을 때 없던 데이터가, 나중에 다시 조회하면 추가됨
SERIALIZABLE:
가장 높은 격리 수준으로, 모든 트랜잭션을 순차적으로 실행 더티 리드, 반복되지 않는 읽기, 팬텀 리드를 모두 방지합니다. 동시성 성능이 가장 낮습니다.
Dirty Read ( 더티 리드) : 커밋되지 않은 데이터를 읽을 수 있는 문제
Non - repeatable Read ( 비반복 읽기) : 같은 SELECT 쿼리를 실행했는데, 결과가 달라지는 문제
Phantom Read ( 팬텀 리드) : 같은 조건으로 여러 번 조회했는데, 새로운 행이 추가되거나 삭제되는 문제
Stored Procedure (저장 프로시저)
- 자주 사용하는 SQL 문들을 하나로 묶어서 저장해두는 방법
- 입력값(IN), 출력값(OUT) 등을 받을 수 있음
- 복잡한 비즈니스 로직을 DB 내부에 구현할 수 있음
- 장점
- 코드 재사용
- 유지보수 용이
- 응답시간 단축 (사전 컴파일)
Trigger(트리거)
- 테이블에 INSERT, UPDATE, DELETE 이벤트 발생 시 자동 실행되는 코드
- 이벤트에 반응하여 자동으로 실행
- 활용 예시
- 변경 이력 자동 저장 (Audit)
- 재고 자동 계산
- 무결성 검증 등
반응형
'SKALA > Back-end, DB' 카테고리의 다른 글
메시지 브로커(Redis, Apache Kafka) (0) | 2025.04.08 |
---|---|
BASE vs ACID , Index (0) | 2025.04.04 |
ERD, Chen, IE, UML 클래스 다이어그램 표기법 (0) | 2025.04.03 |