1. 정의
- 데이터베이스의 정확성(Correctness)와 정밀성(Accuracy) 을 유지하기 위하여, 무결성 제한과 규칙(개참속사키도)에 의해 시스템에서 강제를 통한 보증하는 성질
2. 데이터 무결성 개념도 및 제약조건 - 개참속사키도
가. 개념도
나. 제약조건
3. 데이터 무결성 유지를 위한 유지 기법
가. 데이터베이스 회복 기법
- 데이터베이스 운영 도중 예기치 못한 장애 (Failure)가 발생할 경우, 데이터베이스를 장애 발생 이전의 일관된 상태 (Consistent State) 로 복원시키는 기법.
- 로그기반 기법
- 즉시 갱신 기법(Immediate Update) : 변경 내역 즉시 DB에 반영
- 장애 발생 시 : 트랜잭션의 모든 작업을 취소
- 지연 갱신 기법(Deferred Update) : 수행 중 로그만 기록 후 트랜잭션 종료 후, commit 시점에 DB 반영
- 장애 발생시 : 마지막 완료 명령어 이후 명령 재실행
- Check Point 회복 기법
- 로그 파일에 체크 포인트를 기록하고 장애 발생 시, 검사점(Checkpoint) 이후의 트랜잭션에 대해서만 회복 작업을 수행하는 회복 기법
- 그림자 페이지 기법
- 현재 테이블과 동일한 그림자 테이블 생성 후 성공 정보를 동기화
나. 동시성 제어 기법
4. ARIES ( Algorithms for Recovery and Isolation Exploiting Semantics)
- WAL 기반으로 빠른 데이터베이스 복구를 위한 회복 알고리즘
- 데이터 베이스의 장애 발생(Redo 중 역사 반복 붕괴 발생)시 WAL(Write-Ahead Logging, 로그선행기법)을 통해 기록된 LSN(Log Sequence Number, 로그 순서 번호)을 이용하여 데이터 베이스를 회복(상태복구)하는 기법
- 로그 순번 기록, 경량 DB 회복, Roll Forward = 역사반복
가. 구성도 및 구성요소
- 1단계, 분석단계 : 붕괴가 발생한 시점에 버퍼, 진행 트랜잭션을 파악, REDO가 시작되어야 하는 로그의 위치를 결정. 가장 마지막의 체크 포인트 지점을 찾아, REDO 지점 찾기
- 2단계, REDO단계 : 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때 까지 REDO를 수행, REDO 된 로그 레코드의 리스트 관리하여 불 필요한 REDO 연산이 수행되지 않도록 함
- 3단계, UNDO단계 : 로그를 역순으로 읽으면서 진행 트랜잭션의 연산을 역순으로 UNDO 함
- REDO : 장애 발생 시, 진행된 트랜잭션 로그 기반으로 미 진행된 트랜잭션 재실행을 통한 복원 기법, 무결성 보장, 지연
- UNDO : 장애 발생 시, 진행된 모든 트랜잭션 변경 사항 및 Commit 안된 트랜잭션 작업 취소 기법, 일관성 보장, 즉시