1 minute read

7 SQL 응용

7-1 데이터베이스 기본

트랜잭션 : 인가받지 않은 사용자로부터 데이터를 보장받기 위해 DMBS가 가져야 하는 특성이자, 데이터베이스가 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위이다.


트랜잭션 특징

  • 원자성(Atomicity) : 연산 전체가 정상적으로 실행되거나, 모두 취소 되어야 하는 성질
  • 일관성(Consistency) : 트랜잭션 수행 전과 수행 완료후의 상태가 같아야 한다
  • 격리성(Isolation) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 한다
  • 영송석(Durability) : 트랜잭션의 결과는 영속적으로 데이터베이스에 저장되어야 한다.


트랜잭션 상태 설명

  • 활동 상태(Ative) : 트랜잭션이 실행 중일 때 가지는 상태
  • 부분 완료 상태(Partially Committed) : 마지막 명령문이 실행된 후에 가지는 상태
  • 완료 상태(Committed) : 완료된 후 가지는 상태
  • 실패 상태(Failed) : 실행이 더 이상 진행될 수 없을때 가지는 상태
  • 철회 상태(Aborted) : 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태


트랜잭션 제어

  • 커밋 : 영구적으로 저장하는 명령어
  • 롤백 : 저장 무효화 시키는 명령어
  • 체크포인트 : 롤백을 위한 시점을 지정하는 명렁어


병행제어 : 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법


병행제어 미보장시 문제점

  • 갱신손실(Lost update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
  • 현황 파악오류(Dirty read) : 중간 수행결과를 다른 트랜잭션이 참조하여 발생하는 오류
  • 모순성(Inconsistency) : 동시에 실행되 일관성이 결여되는 경우
  • 연쇄복귀(Cascading Rollback) : 특정 트랜잭션이 취소할 경우 트랜잭션이 처리한 곳의 부분이 취소되지 못하는 오류


병행제어 기법의 종류

  • 로킹 : 일관성과 무결성을 유지하기 위해 순차적 진행 보장
  • 낙관적 검증(Optimistic Validation) : 어떠한 검증도 수행하지 않고 일단 트랜잭션을 수행하고, 종료시 검증 수행
  • 타임 스탬프 순서 : 타임스탬프를 부여해 부여된 시간에 작업 수행
  • 다중버전 동시제어(MVCC) : 적절한 버전을 선택하여 접근하도록 하는 기법


데이터베이스 고립화 수준

  • Read Uncommitted : 연산중인 데이터를 다른 트랜잭션이 읽는 것을 허용
  • Read Committed : 연산중일때 읽기 제한
  • Repeatable Read : 트랜잭션 종료 시 까지 갱신,삭제 제한
  • Serializable Read : 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근 제한


회복 기법 : 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구

체크포인트 회복 기법 : 검사점 이후에 처리된 트랜잭션에 대해서만 이전의 상태로 복원

그림자 페이징 회복 기법 : 트랜잭션 수행 시 복제본을 생성

카테고리:

업데이트:

댓글남기기