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