이상 (Anomaly)
이상이란 데이터 중복이 발생하고, 이 중복으로 인해 문제가 발생하는 현상을 의미합니다. ★ 이상의 종류에는 다음 3가지가 있습니다.
- 삽입 이상 : 데이터 삽입 시 의도하지 않은 값들도 삽입
- 삭제 이상 : 데이터 삭제 시 의도하지 않은 값들도 삭제
- 갱신 이상 : 데이터 갱신 시 일부만 갱신
함수적 종속
어떤 테이블 R에서 R의 속성 집합의 부분 집합 X와 Y가 있다고 합시다. 속성 X의 값 각각에 대해 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 X와 Y는 함수적 종속 관계가 됩니다. 이 때, 아래의 표현들은 모두 같은 표현입니다.
- Y는 X에 함수적 종속
- X가 Y를 함수적으로 결정
- X는 결정자, Y는 종속자
- X → Y
함수적 종속의 종류
1. 완전 함수적 종속
- Y가 "X 전체에 대해 함수적 종속"이면서 "X의 어떠한 진부분 집합에도 함수적 종속이 아님"
- 어떠한 속성이 기본키에 대해 완전히 종속적일 때
2. 부분 함수적 종속
- Y가 "X 전체에 대해 함수적 종속"이면서 "X의 임의의 진부분 집합에 함수적 종속임"
- 어떠한 속성이 기본키의 일부에만 종속적일 때
3. 이행적 함수적 종속
- A → B와 B → C가 같이 존재하여 A → C를 만족시키는 관계
4. 다치 종속 (다중 값 종속)
- 복합 속성(A, C)에 대응하는 속성 B가 A에만 종속되고 C에는 무관할 때, B는 A에 대한 다치 종속
5. 조인 종속
- 테이블 R이 자신을 프로젝션한 것들을 조인한 결과와 동일할 경우 조인 종속을 만족
정규화 (Normalization)
정규화는 테이블을 무손실 분해하는 과정입니다. 정규화의 목적은 이상 현상의 발생 가능성을 줄이는 것입니다. 정규화가 얼마나 진행되었느냐에 따라 그 단계를 6단계로 나눕니다.
분류 | 조건 | 암기법 |
|
제 1정규화 | 도메인이 원자 값 | 두 | 도메인이 원자값 |
제 2정규화 | 기본키가 아닌 속성들은 기본키에 대해 부분 함수적 종속 X | 부 | 부분적 함수 종속 제거 |
제 3정규화 | 기본키가 아닌 속성들은 기본키에 대해 이행적 함수적 종속 X | 이 | 이행적 함수 종속 제거 |
BCNF | 모든 결정자가 후보키 | 걸 | 결정자면서 후보키 아닌 것 제거 |
제 4정규화 | 다치 종속(다중 값 종속)이 존재할 경우, 모든 속성이 A에 함수적 종속 | 다 | 다치 종속 제거 |
제 5정규화 | 모든 조인 종속은 후보키를 통해서만 성립 | 조 | 조인 종속 이용 |
반정규화 (Denormalization)
★ 반정규화는 정규화된 데이터 모델을 의도적으로 통합, 중복, 분리하여 정규화 원칙을 위배하는 행위입니다.★ 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성이 저하됩니다. 반정규화의 방법에는 다음 4가지가 있습니다.
종류 | 필요한 경우 | |
테이블 통합 |
1:1 관계 테이블 통합 | - 두 테이블에서 발생하는 프로세스가 동일하게 자주 처리될 때 - 항상 두 테이블을 이용해 조회할 때 |
1:N 관계 테이블 통합 | ||
슈퍼타입/서브타입 테이블 통합 | ||
테이블 분할 |
수평 분할 | - |
수직 분할 | ||
중복 테이블 추가 |
집계 테이블 추가 | - 여러 테이블에서 데이터를 추출해야할 때 - 다른 서버에 저장된 테이블을 이용해야할 때 |
진행 테이블 추가 | ||
특정 부분만을 포함하는 테이블 추가 | ||
중복 속성 추가 | - 조인이 자주 발생하는 속성일 때 - 접근 경로가 복잡한 속성일 때 - 액세스 조건으로 자주 사용되는 속성일 때 - 기본키의 형태가 적절하지 않을 때 - 기본키가 여러 개의 속성으로 구성될 때 |
'etc. > 정보처리기사' 카테고리의 다른 글
데이터베이스 저장 공간 설계 (0) | 2021.09.03 |
---|---|
시스템 카탈로그 (0) | 2021.09.03 |
★ 관계대수 / 관계해석 (0) | 2021.09.03 |
관계형 데이터베이스의 제약 조건 (0) | 2021.09.03 |
★ 관계형 데이터 모델 (0) | 2021.09.02 |