본문 바로가기

정보처리기사

[정보처리기사] 실기 노트 - 데이터 입출력 구현 2

  1. 이상과 함수적 종속
    1. 이상 (Anomaly)
      1. 이상의 개념
        1. 이상: 테이블에서 일부 속성들의 종속으로 인해 데이터의 중보깅 발생하고, 이 중복 (Redundancy) 으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미
      2. 이상의 종류: 삽입 이상 (Insertion Anomaly), 삭제 이상 (Deletion Anomaly), 갱신 이상 (Update Anomaly)
    2. 함수적 종속 (Functional Dependency)
      1. 어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 하자. 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고, X->Y로 표기함
      2. 함수적 종속: 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건임
      3. X->Y의 관계를 갖는 속성 X와 Y에서 X를 결정자 (Determinant)라 하고, Y를 종속자 (Dependent)라고 한다. 예를 들어 '학번 -> 이름' 에서는 학번이 결정자이고, 이름이 종속자임
  2. 정규화와 반정규화
    1. 정규화 (Normalization)
      1. 정규화의 개념
        1. 정규화: 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해 (Nonloss Decomposition)하는 과정
        2. 정규화의 목적: 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것
      2. 정규화 과정
        1. 제 1정규형 (1NF; First Normal Form)
        2. 제 2정규형 (2NF; Second Normal Form)
        3. 제 3정규형 (3NF; Third Normal Form), BCNF (Boyce-Codd Normal Form)
        4. 제 4정규형 (4NF; Fourth Normal Form)
        5. 제 5정규형 (5NF; Fifth Normal Form) 이 있으며, 순서대로 정규화의 정도가 높아짐
    2. 반정규화 (Denormalization)
      1. 반정규화 (=비정규화): 시스템의 성능을 향상하고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
      2. 반정규화의 방법
        1. 테이블 통합: 두 개의 테이블이 조인(Join)되어 사용되는 경우가 많을 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용하는 것
        2. 테이블 분할: 테이블을 수직 또는 수평으로 분할하는 것
        3. 중복 테이블 추가: 작업의 효율성을 향상시키기 위해 테이블을 추가하는 것
        4. 중복 속성 추가: 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는속성을 하나 더 추가하는 것
    3. 시스템 카탈로그
      1. 시스템 카탈로그 (System Catalog): 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
      2. 메타 데이터 (Meta-Data): 시스템 카탈로그에 저장된 정보를 의미
      3. 데이터 디렉터리 (Data Directory): 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템
  3. 트랜잭션 분석과 CRUD 분석
    1. 트랜잭션의 개요
      1. 트랜잭션의 개념
        1. 트랜잭션 (Transaction): 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미
        2. 트랜잭션의 특성: Atomicity (원자성), Consistency (일관성), Isolation (독립성, 격리성, 순차성), Durability (영속성, 지속성)
    2. CRUD (Create Read Update Delete) 분석: 프로세스와 테이블 간에 CRUD 매트릭스를 만들어서 트랜잭션을 분석하는 것
    3. 트랜잭션 분석: CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB의 용량 산정 및 구조의 최적화를 목적으로 함
  4. 인덱스와 뷰
    1. 인덱스 (Index)
      1. 인덱스의 개념
        1. 인덱스: 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
      2. 인덱스 (Index)의 종류: 트리 기반 인덱스, 비트맵 인덱스, 함수 기반 인덱스, 비트맵 조인 인덱스, 도메인 인덱스
      3. 클러스터드 (Clustered Index) / 넌클러스터드 인덱스 (Non-Clustered Index)
    2. 뷰 / 클러스터 / 파티션
      1. 뷰 (View) 의 개요
        1. 뷰: 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블
      2. 뷰 (View)의 장/단점
      3. 클러스터 (Cluster): 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
    3. 파티션 (Partition)
      1. 파티션의 개요
        1. 데이터베이스에서 파티션은 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것을 말함
      2. 파티션의 장/단점
      3. 파티션의 종류: 범위 분할 (Range Partitioning), 해시 분할 (Hash Partitioning), 조합 분할 (Composite Partitioning)

2-1 정규화 그림