본문으로 바로가기
반응형

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