1. 이상(Anomaly)
- 데이터의 중복이 발생하여 테이블 조작 시 문제가 발생하는 현상

2. 함수적 종속(Funtional Dependency)
- 어떤 릴레이션 R이 있을때 X와 Y를 가각 속성의 부분집합이라 가정했을 때, X의 값 각각에 대해 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다 함
- X → Y로 표기
1. 완전 함수적 종속(Full Functional Dependency)
- 정의: 속성 Y가 속성 X에 함수적으로 종속되어 있고, X의 모든 부분 집합에서도 Y가 함수적으로 종속되지 않을 때, Y는 X에 완전 함수적 종속
- 설명: 기본키 X의 모든 구성 요소가 Y 값을 결정짓는 데 필요할 때, 즉 X의 모든 구성 요소가 없어지면 Y 값을 결정할 수 없을 때 완전 함수적 종속.
- 예시:
- 학생 테이블(Student)의 (학번, 과목코드) → 성적
2. 부분 함수적 종속(Partial Functional Dependency)
- 정의: 속성 Y가 속성 X에 함수적으로 종속되어 있고, X의 일부 부분 집합에서도 Y가 함수적으로 종속될 때, Y는 X에 부분 함수적 종속
- 설명: 복합 키의 일부 속성에 의해 다른 속성이 종속될 때 부분 함수적 종속이라고 합니다. 이는 제2정규형(2NF) 위반으로 이어짐
- 예시:
- 학생 테이블(Student)의 (학번, 과목코드) → 과목명
3. 이행적 함수적 종속(Transitive Functional Dependency)
- 정의: 속성 X가 속성 Y를 결정하고, 속성 Y가 속성 Z를 결정할 때, X가 Z를 결정하는 관계를 이행적 함수적 종속이라고 합니다. 단, X가 후보 키가 아닐 때 적용
- 설명: 중간 매개체를 통해 간접적으로 이루어지는 종속성을 의미
- 예시:
- 학생 테이블(Student)의 학번 → 학과, 학과 → 학과 사무실
3. 정규화
- 테이블의 속성들이 상호 족속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해 하는 과정
- 가능한 중복을 제거하여 삼입, 삭제, 이상의 발생 가능성을 줄이는 것이 목적
1. 제 1정규형
- 테이블 R에 속한 모든 속성의 도메인이 원자 값으로만 되어 있는 정규형
- 테이블의 모든 속성 값이 원자 값으로만 되어 있는 정규형

2. 제 2정규형
- 테이블이 제1 정규형(1NF)을 만족하고, 기본키가 아닌 모든 속성이 기본키의 일부가 아닌 전체에 대해 완전 함수적 종속을 만족하는 정규형이다. 즉, 부분 함수 종속이 제거된 상태

3. 제 3정규형
- 테이블 R이 제 2정규형이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형

4. BCNF
- 테이블 R에서 모든 결정자가 후보키인 정규형
- 일반적으로 제 3정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우 적용 가능
5. 제 4정규형
- 테이블 R에 다중 값 종속이 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
6. 제 5정규형
- 제 5정규형은 테이블 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
4. 반정규화(Denormalization)
- 시스템 성능 향상 및 개발, 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위
- 성능향상, 관리 효율성은 증가 하지만 데이터의 일관성 및 정합성이 저하될 수 있음
- 과도한 반정규화는 오히려 성능 저하를 시킴
1. 테이블 통합
- 두 개의 테이블이 조인되어 사용되는 경우가 많을 경우 성능 향상을 위해 하나의 테이블로 만들어 사용
- 고려하는 경우
두개의 테이블에서 발생하는 프로세스가 동일하게 자주 처리되는 경우
항상 두 개의 테이블을 이용하여 조회를 수행하는 경우
- 종류
1:1 관계 테이블 통합
1:N 관계 테이블 통합
슈퍼타입/서브타입 테이블 통합
2. 테이블 분할
- 테이블 분할은 테이블을 수직 또는 수평으로 분할하는 것
- 수평분할: 레코드를 기준으로 테이블을 분할
- 수직분할: 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할하는 것
3. 중복 테이블 추가
- 작업의 효율성을 향상시키기 위해 테이블을 추가하는 것
4. 중복 속성 추가
- 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것
연습 문제
1. 이상 현상 3 종류를 모두 쓰시오.
정답
삽입 이상, 삭제 이상, 갱신 이상
2. 시스템 성능 향상 및 개발, 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위가 무엇인지 쓰시오
정답
반정규화