개발자 '쑥말고인절미'

[정보처리기사] 5과목 정보시스템 구축 관리 351 ~ 354 (DB 관련 신기술, 회복, 병행제어, 교착상태) 본문

STUDY/정보처리기사

[정보처리기사] 5과목 정보시스템 구축 관리 351 ~ 354 (DB 관련 신기술, 회복, 병행제어, 교착상태)

쑥말고인절미 2024. 2. 23. 20:12
  • 351 DB 관련 신기술
  • 352 회복(Recovery)
  • 353 병행제어(Concurrency Control)
  • 354 교착상태

 

  • DB 관련 신기술
    • 1) 하둡(Hadoop)
      • 오픈 소스를 기반으로 한 분산 컴퓨팅 플랫폼
      • 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크로, 구글, 야후 등에 적용되고 있음
    • 2) 맵리듀스(MapReduce)
      • 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델로, 흩어져 있는 데이터를 연관성 있는 데이터 분류로 묶는 Map 작업을 수행한 후 중복 데이터를 제거하고 원하는 데이터를 추출하는 Reduce 작업을 수행
    • 3) 타조(Tajo)
      • 오픈 소스 기반 분산 컴퓨팅 플랫폼인 아차피 하둡(Apache Hadoop) 기반분산 데이터 웨어하우스 프로젝트로, 우리나라가 주도하여 개발하고 있음
    • 4) 데이터 마이닝(Data Mining)
      • 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법
      • 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호관계를 규명하여 패턴화함으로써 효율적인 데이터 추출이 가능
    • 5) OLAP(Online Analytical Processing)
      • 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식을 말함
      • OLAP 연산 : Roll-up, Drill-down, Drill-through, Drill-across, Privoting, Slicing, Dicing
  • 회복(Recovery)
    • 트랜잭션들을 수행하는 도중 장애가 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상 상태로 복구하는 작업
    • 회복기법
      • 1) 연기 갱신 기법(Deffered Update)
        • 트랜잭션이 성공적으로 완료될 때까지 데이터베이스에 대한 실질적인 갱신을 연기하는 방법
        • 트랜잭션이 수행되는 동안 갱신된 내용은 일단 Log에 보관
        • 트랜잭션의 부분 완료(성공적인 완료 직전) 시점에 Log에 보관한 갱신 내용을 실제 데이터베이스에 기록함
        • 트랜잭션이 부분 완료되기 전에 장애가 발생하여 트랜잭션이 Rollback되면 트랜잭션이 실제 데이터베이스에 영향을 미치지 않았기 때문에 어떠한 갱신 내용도 취소(Undo)시킬 필요 없이 무시하면 됨
        • Redo 작업만 가능함
      • 2) 즉각 갱신 기법(Immediate Update)
        • 트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법
        • 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들은 Log에 보관시킴
        • 회복 작업을 할 경우에는 Redo와 Undo 모두 사용 가능함
      • 3) 그림자 페이지 대체 기법(Shadow Paging)
        • 갱신 이전의 데이터베이스를 일정 크기의 페이지 단위로 구성하여 각 페이지마다 복사본인 그림자 페이지로 별도 보관해 놓고, 실제 페이지를 대상으로 트랜잭션에 의한 갱신 작업을 하다가 장애가 발생하여 트랜잭션 작업을 Rollbak 시킬 때, 갱신된 이후의 실제 페이지 부분에 그림자 페이지를 대체하여 회복시키는 기법
        • 로그, Undo 및 Redo 알고리즘이 필요 없음
      • 4) 검사점 기법(Check Point)
        • 트랜잭션 실행 중 특정 단계에서 재실행할 수 있도록 갱신 내용이나 시스템에 대한 상황 등에 관한 정보와 함께 검사점을 로그에 보관해 두고, 장애 발생 시 트랜잭션 전체를 철회하지 않고 검사점부터 회복 작업을 하여 회복시간을 절약하도록 하는 기법
  • 병행제어(Concurrency Control)
    • 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할 때, 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 것
    • 병행제어 기법의 종류
      • 1) 로킹(Locking)
        • 주요 데이터의 액세스를 상호 배타적으로 하는 것
        • 트랜잭션들이 어떤 로킹 단위를 액세스하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 그 로킹 단위를 액세스 할 수 있도록 하는 기법
      • 2) 타임 스탬프 순서(Time Stamp Ordering)
        • 직렬성 순서를 결정하기 위해 트랜잭션 간의 처리 순서를 미리 선택하는 기법들 중에서 가장 보편적인 방법
        • 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 시간표(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
        • 교착상태가 발생하지 않음
      • 3) 최적 병행수행(검증기법, 확인기법, 낙관적기법)
        • 병행수행하고자 하는 대부분의 트랜잭션이 판독전용(Read Only) 트랜잭션일 경우, 트랜잭션 간의 충돌률이 매우 낮아서 병행제어 기법을 사용하지 않고 실행되어도 이 중의 많은 트랜잭션은 시스템의 상태를 일관성 있게 유지한다는 점을 이용한 기법
      • 4) 다중 버전 기법
        • 타임 스탬프의 개념을 이용하는 기법으로, 다중 버전 타임 스탬프 기법이라고도 함
        • 타임 스탬프 기법은 트랜잭션 및 데이터들이 이용될 때의 시간을 시간표로 관리하지만, 다중 버전 기법은 갱신될 때마다 버전을 부여하여 관리
    • 로킹 단위(Locking Granularity)
      • 병행제어에서 한꺼번에 로킹할 수 있는 객체의 크기를 의미한다.
      • 데이터베이스, 파일, 레코드, 필드 등이 로킹 단위가 될 수 있다.
      • 로킹 단위가 크면 로크 수가 작아 관리하기 쉽지만 병행성 수준이 낮아지고, 로킹 단위가 작으면 로크 수가 많아 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아진다.
  • 교착상태(Dead Lock)
    • 상호 배제에 의해 나타나는 문제점으로, 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
    • 교착상태 발생의 필요 충분 조건
      • 1) 상호 배제(Mutual Exclusion)
        • 한 번에 한 개의 프로세스만이 공유 자원을 사용 할 수 있어야 함
      • 2) 점유와 대기(Hold and Wait)
        • 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용하고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함
      • 3) 비선점(Non-preemption)
        • 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야 함
      • 4) 환형 대기(Circular Wait)
        • 공유 자원과 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게 할당된 자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
    • 교착상태의 해결 방법
      • 1) 예방 기법(Prevention)
        • 교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법
        • 교착상태 발생의 네 가지 조건 중에서 어느 하나를 제거(부정)함으로써 수행됨
        • 자원의 낭비가 가장 심한 기법
      • 2) 회피 기법(Avoidance)
        • 교착상태가 발생할 가능성을 배제하지 않고 교착상태가 발생하면 적절히 피해나가는 방법
        • 주로 은행원 알고리즘(Banker's Algorithm)이 사용됨
        • 은행원 알고리즘(Banker's Algorithm) : E.J.Dijkstra 가 제안한 것으로, 은행에서 모든 고객의 요구가 충족되도록 현금을 할당하는데서 유래한 기법
      • 3) 발견 기법(Detection)
        • 시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 것을 의미함
        • 교착상태 발견 알고리즘자원 할당 그래프 등을 사용할 수 있음
      • 4) 회복 기법(Recovery)
        • 교착상태를 일으킨 프로세스를 종료하거나 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미함