본문으로 바로가기

[정보처리기사] 데이터베이스 정리 (3)

category CS/데이터베이스 2018. 5. 21. 14:15

글에 앞서...


이 글은 정보처리기사의 데이터베이스 과목에서의 내용을 키워드 중심으로 정리한 글입니다. 해당 과목의 내용을 다시 상기시키고 앞으로 볼 필기 시험 전에 내용을 정리하고자 작성합니다. DB 과목 관련 3번째 정리글이고,  시험이나 면접에 출제될 만한 내용을 바탕으로 하나의 주제를 선정하여 작성할 예정입니다. 저처럼 키워드 중심으로 내용을 정리하고 싶은 분들에게 도움이 되었으면 좋겠습니다.


아래 언제나 휴일 블로그에서 제가 생각하는 중요내용에 살을 붙여 정리했습니다.

출처 http://ehpub.co.kr/ (언제나 휴일)



1. 트랜잭션(Transaction)

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위이다.
  • 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위이다.
  • 하나의 트랜잭션은 Commit되거나 Rollback된다.
  • 트랜잭션은 일반적으로 회복의 단위가 된다.
  • 트랜잭션의 특성 ('ACID' 라고도 부른다.)
    1. 원자성 (Atomicity) : 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 한다.
    2. 일관성 (Consistency) : 트랜잭션이 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
    3. 독립성 (Isolation) : 둘 이상의 트랜잭션이 병행 실행되는 경우 하나의 트랜잭션 실행 중에 다른 트랜잭션이 연산에 끼여들 수 없는 특징을 말합니다.
    4. 영속성 (Durablility) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적을 반영되어야 한다.

2. 병행 제어(Concurrency Control)

  • 여러 개의 트랜잭션이 부행 수행될 때, 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것이다.
  • 병행 수행의 문제점
    1. 갱신 분실 (Lost Update) : 갱신 결과의 일부가 없어지는 현상입니다.
    2. 비완료 의존성 (Uncommitted Dependency) :  트랜잭션 수행이 실패한 뒤 다른 트랜잭션이 실패한 결과를 참조하는 경우입니다.
    3. 모순성 (Inconsistency) : 두 개의 트랜잭션이 병형 수행될 때 원치 않는 자료를 이용하면서 발생하는 문제입니다.
    4. 연쇄 복귀 (Cascading Rollback) : 병행 수행되던 트랜잭션 중 하나에 문제가 생겨 Rollback될 때, 다른 트랜잭션도 Rollback되는 현상입니다.
  • 병행제어 기법
    1. 락킹(Locking)
    2. 타임 스탬프 순서화
    3. 낙관적 기법 :  Read Only 트랜잭션이 대부분일 때 병행 제어를 하지 읺아도 문제가 안되는 점을 이용한다. 검증 기법이라고도 한다.
    4. 다중버전 기법 : 타임 스탬프 기법을 이용하여 버전을 부여하여 관리하는 기법이다.

3. 분산 데이터베이스

  • 분산 데이터베이스는 논리적으로 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터에 분산되어 있는 데이터베이스이다.
  • 분산 데이터베이스의 4대 목표
    1. 위치 투명성
    2. 중복(복제) 투명성
    3. 병행 투명성
    4. 장애 투명성
  • 장점
    1. 지역 자치성이 높다.
    2. 분산 제어가 가능하다.
    3. 효용성, 융통성, 신뢰성 및 가용성이 높다.
    4. 점증적 시스템 용량 확장이 용이하다.
  • 단점
    1. DBMS가 수행할 기능이 복잡하다.
    2. 데이터베이스 설계가 어렵다.
    3. 소프트웨어 개발 비용이 증가한다.
    4. 처리 비용이 증가한다.
    5. 잠재적 오류가 증가한다.

4. 정규화 (Normalization)

  • 이상(Anomaly)을 제거하기 위해  중속성을 배제하는 방법을 사용한다.
  • 이를 통해 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정이다.
  • 정규화의 목적
    1. 데이터 구조의 안전성을 최대화한다.
    2. 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만든다.
    3. 데이터 삽입 시 릴레이션을 재구성할 필요성을 줄인다.
  • 정규화 과정
    • 비정규 릴레이션

   ▶ 메인이 원자값

    • 1NF

   ▶ 분적 함수 종속 제거 (어떤 속성 Y가 다른 복합 속성 X의 부분집합에 종속하는 관계)

    • 2NF : 완전 함수적 종속 관계이다.

   ▶ 행적 함수 종속 제거 ( A -> B이고 B -> C일 때 A -> C를 만족하는 관계)

    • 3NF

         ▶ 정자이면서 후보키가 아닌 것 제거

    • BCNF : 강한 3NF라고도 말한다.

   ▶ 치 종속 제거

    • 4NF

         ▶ 인 종속성 이용

    • 5NF




댓글을 달아 주세요