045. 정규화(Normalization)
1) 정규화(Normalization)
- 테이블의 속성들이 상호 종속적인 관계(함수적 종속)를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정
- 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이 목적
2) 제 1정규형
- 모든 속성의 도메인이 원자값만으로 되어 있는 정규형
3) 제 2정규형
- 제 1정규형을 만족하면서 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형
4) 제 3정규형
- 제 2정규형을 만족하면서 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형
- 이행적 함수 종속 : A->B이고 B->C일 때 A->C를 만족하는 관계
5) BCNF(3과 4 사이라서 제 3.5정규형이라고도 함)
- 모든 결정자가 후보키인 정규형
6) 제 4정규형
- 다중 값 종속 A->->B가 존재할 경우 해당 테이블의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
- 다중값종속 : A, B, C 3개의 속성을 가진 테이블에서 어떤 복합속성(A, C)에 대응하는 B값의 집합이 A값에만
종속되고 C값에는 무관한 경우
7) 제 5정규형
- 테이블의 모든 조인 종속이 해당 테이블의 후보키를 통해서만 성립되는 정규형
046. 반정규화(Denormalization)
1) 반정규화
- 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
2) 테이블 통합
- 두 개의 테이블이 조인(Join)되어 사용되는 경우가 많을 경우 성능 향상을 위해 아예 하나의 테이블로 만들어 사용
3) 테이블 분할
- 테이블을 수직 또는 수평으로 분할하는 것
- 수평 분할 : 레코드(Record)를 기준으로 테이블을 분할
- 수직 분할 : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할
4) 중복 테이블 추가
- 작업의 효율성을 향상시키기 위해 테이블을 추가하는 것
- 집계 테이블의 추가 : 집계데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용
- 진행 테이블의 추가 : 이력 관리 등의 목적으로 추가하는 테이블
- 특정 부분만을 포함하는 테이블의 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로
새로운 테이블을 생성
- 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것
047. 시스템 카탈로그
1) 시스템 카탈로그(System Catalog)
- 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 카탈로그들이 생성되면 데이터 사전에 저장되기 때문에 좁은 의미로는 데이터 사전이라고도 함
2) 메타 데이터(Meta-Data)
- 시스템 카탈로그에 저장된 정보
3) 데이터 디렉터리(Data Directory)
- 데이터 사전에 수록된 데이터에 접근하는 데 필요한 정보를 관리 유지하는 시스템
048. 데이터베이스 저장 공간 설계
1) 데이터베이스 저장 공간 설계
- 테이블 : 데이터베이스의 가장 기본적인 객체
- 컬럼 : 테이블의 열을 구성하는 요소
- 테이블스페이스: 테이블이 저장되는 논리적인 영역
2) 테이블 종류
- 일반 테이블, 클러스터드 인덱스 테이블, 파티셔닝 테이블, 외부 테이블, 임시 테이블