데이터베이스 설계(11)

이정훈·2024년 12월 17일

대학강의

목록 보기
11/19

회복

데이터베이스를 장애발생 이전의 일관된 상태로 복원시키는 것

일관된 상태

데이터베이스에 오류가 없는 상태, 데이터베이스의 내용에 모순이 없는 상태

장애

시스템이 정해진 명세대로 작동하지 않는 상태

장애의 유형

트랜잭션 장애
시스템 장애
미디어 장애

회복관리자

DBMS의 서브 시스템으로 신뢰성 있는 회복을 책임

회복의 기본원리

중복
덤프: 다른 저장장치로 복제
로그: 데이터 아이템의 옛 값과 새 값을 별도의 파일에 기록

회복을 위한 조치

Redo: 가장 최근 복제본 + 로그 -> 데이터베이스 복원
Undo: 로그 + 모든 변경들을 취소 -> 원래의 데이터베이스 상태로 복원

회복의 필요성

어떤 트랜잭션 T를 수행하는 도중에 시스템이 다운되었을 때, T의 작업 효과가 디스크의 데이터베이스에 일부만 반영되었을 수 있음
이러한 상황에서는 원자성을 보장하기 위해 T의 작업을 완전히 취소해야함
또한 트랜잭션 T가 완료된 직후에 시스템이 다운되면 T의 모든 갱신 효과가 주기억장치로부터 디스크에 기록되지 않았을 수도 있음
이러한 상황에서는 수행 결과가 완전하게 반영되도록해야함.

위와 같은 작업을 어떻게 할 것인가?

회복의 개요

버퍼의 내용을 디스크에 기록하는 것을 가능하면 최대한 줄임으로써 성능을 향상시키는 것이 중요하다.

트랜잭션이 버퍼에는 갱신 사항을 반영했지만 버퍼의 내용이 디스크에 기록되기전에 고장이 발생할 수 있다.

고장이 발생하기 전에 트랜잭션이 완료 명령을 수행했다면 회복 모듈이 이 트랜잭션들의 갱신 사항을 재수행(Redo)하여 트랜잭션의 갱신이 지속성을 갖도록 해야 한다.

고장이 발생하기 전에 트랜잭션이 완료 명령을 수행하지 못했다면 원자성을 보장하기 위해서 이 트랜잭션이 데이터베이스에 반영했을 가능성이 있는 갱신 사항을 취소(Undo)해야 한다.

저장 장치의 유형

휘발성 저장 장치는 시스템이 다운된 후에 데이터가 모두 사라짐

비휘발성 저장 장치는 시스템이 다운된 이후에도 데이터가 보존되어 있음

안전 저장 장치는 모든 유형의 고장을 견딜 수 있는 저장장치를 말함
두 개 이상의 비휘발성 저장 장치가 동시에 고장이 날 가능성이 매우 낮기 때문에 비휘발성 저장 장치에 두 개 이상의 사본을 중복해서 저장해서 안전 저장장치를 구현함

재해적 고장과 비해재해적 고장

재해적 고장

재해적 고장은 디스크가 손상을 입어서 데이터베이스를 읽을 수 없는 고장이다.
데이터베이스를 백업해 놓은 자기 테이프를 기반으로 회복을 한다.

비재해적 고장

재해적 고장 외의 고장으로 회복 알고리즘을 이용하여 회복
로그를 기반으로하는 즉시 갱신과 지연 갱신이나 그림자 페이징 등이 사용된다.

데이터베이스 로그

데이터베이스 로그란 트랜잭션의 원장성과 지속성을 보장하기 위해 DBMS가 데이터베이스의 항목에 영향을 미치는 모든 트랜잭션의 연산들을 파일로 저장한 것이다.

로그는 데이터베이스 회복에 필수적이고 안전 저장 장치로 활용된다.

로그를 두 개의 디스크에 중복해서 저장하면 이중 로그라고 부른다.

각 로그 레코드가 어떤 트랜잭션인지 식별하기 위해 로그 레코드마다 트랜잭션 ID가 있다.

각 로그 레코드는 로그 순서 번호로 식별된다.
동일한 트랜잭션에 속하는 로그 레코드들은 연결 리스트로 유지된다.

로그 레코드 유형

  • [Trans-ID, start]
    한 트랜잭션이 생성될 때 기록되는 로그 레코드

  • [Trans-ID, X, old_value, new_value]
    Trans-ID를 갖는 트랜잭션이 데이터 항목 X를 old Value에서 new Value로 값을 수정했음을 기록하는 로그 레코드

  • [Trans-ID, commit]
    주어진 Trans-ID를 갖는 트랜잭션이 데이터베이스에 대한 갱신을 모두 성공적으로 완료했음을 기록하는 로그 레코드

  • [Trans-ID, abort]
    주어진 Trans-ID를 갖는 트랜잭션이 철회되었음을 나타내는 레코드

로그 우선 기록 규약

트랜잭션이 갱신한 데이터 항목을 디스크에 저장된 데이터베이스에 기록하기 전 로그 레코드에 먼저 기록함

트랜잭션이 실행 도중 장애가 발생했을 때 데이터베이스에 기록된 변경내용을 취소하러면 로그 레코드에 기록이 남아있어야 됨.

로그를 사용한 즉시 갱신

트랜잭션이 데이터베이스를 갱신한 사항이 주기억 장치의 버퍼에 유지되다가 트랜잭션이 완료되기 전이라도 디스크의 데이터베이스에 기록될 수 있음

데이터베이스에는 완료된 트랜잭션의 수행 결과뿐만 아니라 철회된 트랜잭션의 수행 결과도 반영될 수 있다.

데이터 블록이 출력되는 순서는 쓰기가 된 순서와 다를 수 있다.

로그 파일이 기록된 마지막부터 반대방향으로 순차적으로 검색한 후 로그에 저장된 각 트랜잭션의 로그 레코드에 대해서 <T, start>는 기록되어 있으나 <T, commit>가 기록되지 않았으면 Undo연산을 수행한다.

로그를 사용한 지연 갱신

트랜잭션의 실행이 성공적으로 완료될 때까지 갱신 내용을 디스크에 저장하지 않고 지연시킴
Undo 연산이 필요 없음
로그 레코드 형식 <Trans-ID, X, new_value> old_value 불필요

트랜잭션이 실행되는 동안에는 갱신된 내용이 주기억장치의 버퍼에 기록되고, 트랜잭션이 완료된 후 적당한 시점에 버퍼의 내용이 디스크로 저장됨

로그 파일의 처음부터 기록을 순차적으로 검색하여 로그에 저장된 각 트랜잭션의 로그 레코드에 대해서 <T, commit>가 있으면 Redo 연산을 수행한다.
<T, commit>가 없는 트랜잭션에 대한 로그 레코드들은 무시한다.

체크포인트

시스템이 다운되기 직전에 완료된 트랜잭션이 데이터베이스에 갱신한 내용은 주기억장치의 버퍼에 남아 있으면서 아직 디스크에 기록되지 않았을 가능성이 높으므로 트랜잭션의 갱신 시행을 다시해야 하지만 시스템이 다운된 시점으로부터 오래 전에 완료된 트랜잭션들이 데이터베이스를 갱신한 사항은 이미 반영되었을 가능성이 크다.

DBMS는 위와 같은 사실을 이용하여 회복 시 다시 수행할 트랜잭션의 수를 줄이기 위해서 주기적으로 체크포인트를 만든다.

체크포인트를 수행하면 주기억장치의 버퍼에 있는 내용이 디스크에 강제로 기록됨. 이로 인해 체크포인트 수행시 디스크 상에서 로그와 데이터베이스의 내용이 일치함.

체크포인트 작업이 끝나면 로그에 [checkpoint] 로그 레코드가 기록됨
일반적으로 체크포인트는 10~20분 간격으로 실행됨.

체크포인트를 수행할 때는 다음과 같은 작업들이 수행됨

  • 수행 중인 트랜잭션을 일시적으로 중단시킨다.
  • 주기억장치의 로그 버퍼를 디스크에 강제로 출력함
  • 주기억장치의 데이터베이스 버퍼를 디스크에 강제로 출력함
  • [checkpoint] 로그 레코드를 로그 버퍼에 기록한 후 디스크에 강제로 출력함
  • 체크포인트 시점에 수행 중이던 트랜잭션들의 ID도 [checkpoint]로그 레코드와 함께 기록함
  • 일시적으로 중지된 트랜잭션의 수행을 재개함

점진적인 백업

이전 백업 파일로부터 변경된 사항만을 추가해 새로운 백업 파일을 만드는 것

데이터 마이닝

데이터 마이닝이란 고객관련 정보를 토대로 미래의 구매형태를 예측하거나 변수 간 인간관계를 분석하는 마케팅 기법이다.
즉, 정보추출

정보추출의 예

연관 규칙

하나의 거래나 사건에 포함되어있는 품독들의 상호 연광성을 말하는 것

연관성은 어떤 item 집합의 존재가 다른 item 집합의 존재를 암시하는 것을 의미하며 다음과 같이 표시한다.
A -> B (A가 일어나면 B가 일어난다)

  • 지지도
    전체 거래 중 X와 Y를 동시에 포함하는 거래가 어느 정도인가?
    연관 규칙 X -> Y는 지지도 S를 갖는다.

  • 신뢰도
    X를 포함하는 거래 중에서 Y가 포함된 거래는 어느 정도인가?
    연관 규칙 X -> Y는 신뢰도 C를 갖는다.

협동적 필터링 에이전트

의견이 유사한 사용자들을 발견하고 특정한 사용자의 특정한 아이템에 대한 의견을 유사 그룹의 의견을 참조하여 예측해 냄.

-장점
아이템에 대한 사전분류나 파악에 의존하기 보다 사용자들의 의견을 참조함.
사용자가 예상하지 않았지만 자신의 취향에 맞는 새로운 아이템을 발견할 가능성이 있음
시스템에서 자동화 될 가능서이 매우 높음

데이터 웨어하우스

데이터와 창고의 합성어
조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새롭게 생성된 데이터베이스
효율적인 의사결정지원 시스템을 지원하는 데이터의 집합체

특징

-주제 지향성
데이터를 주제별로 구성함으로써 최종 사용자와 컴퓨터에 약한 분석자라도 이해하기 쉬운 형태로 유지함.

-통합성
데이터가 데이터 웨어하우스에 들어갈 때, 일관적인 형태로 변환되어 데이터의 통합성이 유지됨.

-시계열성
데이터베이스는 현재의 데이터만 유지하지만 데이터 웨어하우스는 올바른 의사 결정을 위해 현재와 과거 데이터를 함께 유지함.

-비휘발성
데이터가 적재되면 일괄 처리 작업에 의한 갱신 이외에는 삽입이나 삭제 등의 변경이 수행되지 않음.

데이터 마트

데이터 하우스의 축소판으로 데이터의 한 부분에서 사용자가 관심을 갖는 데이터들을 담은 작은 규모의 데이터 웨어하우스

대량의 다양한 정보를 사용자의 요구에 따라 체계적으로 분석하여 기업의 경영 활동을 돕기 위한 시스템

데이터 마이닝

데이터 웨어하우스와 같은 대량의 데이터에서 실제로 존재하지 않는 정보를 얻어내는 것

이런 정보를 얻기 위해 각 데이터의 상관관계를 통계적 분석, 인공지능 기법 등을 통해 규칙이나 패턴을 찾아내는 것

데이터 튜닝

데이터베이스의 성능 향상과 사용자의 요구에 따라 빠른 검색을 통한 신속한 서비스 제공, 저장 공간의 효율을 향상시키는 등 데이터베이스 시스템을 최적화하기 위해 재조정하는 것

데이터 검색 시 자료가 저장된 블록의 이동과 접근 횟수를 줄일 수 있도록 저장 공간을 조정하여 신속한 검색이 이루어지도록 함.

SQL 명령어 작성 시 쉽게 이해할 수 있도록 표준화된 형태로 작성함

트랜잭션의 무결성을 유지하면서 정보 공유를 위해 적정한 수준의 Locking 기법을 사용함.

profile
기록으로 흔적을 남깁니다.

0개의 댓글