-
이상현상 & 정규화?학교 수업/데이터베이스 2020. 4. 26. 17:52
이상현상(Anomaly)
- 개념: 릴레이션 조작 시 불필요한 데이터의 중복으로 발생하는 예기치 않은 현상
- 종류
① 삽입 이상 : 데이터 삽입 시 원하지 않는 값이 함께 삽입되는 현상
② 삭제 이상 : 한 튜플 삭제 시 원하지 않는 값이 연쇄 삭제되는 현상
③ 갱신 이상 : 중복 튜플의 속성값을 갱신 시 일부 튜플의 속성값만 변경되는 현상
정규화(normalization)
- 개념: 잘못 설계한 관계형 데이터베이스를 더 작은 속성 집합으로 분해하여 바람직하게 만드는 과정
즉, 이상 현상이 제거된 릴레이션으로 만들어 과는 과정
- 목적
① 어떤 릴레이션이라도 데이터베이스 내에서 표현 가능하도록 만듬
② 릴레이션에서 바람직하지 않은 삽입, 삭제, 갱신이상이 발생하지 않도록 함
③ 보다 간단한 관계연산에 기초하여 검색 알고리즘을 효과적으로 만듬
- 정규화의 단계
1, 제1정규형(1NF, First Normal Form)
: 어떤 릴레이션 R의 모든 도메인들의 값이 오직 원자값(atomic value)만 가짐
→ atomic 하지 않은 도메인이 사용될 경우 질의어 & 저장장치가 복잡해짐
데이터의 중복된 저장공간 사용을 유도
2. 제2정규형(2NF)
: 어떤 릴레이션 R이 1NF를 만족하면서, 릴레이션에 존재하는 부분 함수적 종속을 제거하여 모든 속성이
기본키에 완전 함수 종속임
부분 함수적 종속?
기본키가 복합속성으로 구성될 때 구성 속성들 중 하나에만 종속되는 속성
예를 들어, 다음과 같은 relation이 주어질 때
주문수량에 경우 이 relation의 primary key (주문번호, 품목코드)에 종속되어
둘 중 하나 또는 두개가 모두 변경될 경우 수량 또한 바뀌게 된다.
하지만 품목단가 속성에 경우, primary key에 존재하는 속성 중 품목코드에만 종속한다.
즉, 주문번호가 변경되더라도 품목단가는 변경되지 않는다.
이를 부분적 함수 종속 관계라고 한다.
3. 제3정규형(3NF)
: 어떤 릴레이션 R이 2NF를 만족하면서, 릴레이션을 구성하는 속성 간 이행 함수적 종속이 없음
이행 함수적 종속?
속성 A,B,C 사이에서 A→B, B→C이면 A→C인 관계
함수 종속 관계 표현?
(A→B : B가 A에 종속한다. A를 결정자 B를 종속자라고 한다.)
예를 들어 학번 → 지도교수, 지도교수 → 학과 이면 결과적으로 학번 → 학과 성립
4. 보이스/코드 정규형(BCNF) , 강한 제3정규형
: 어떤 릴레이션 R이 3NF를 만족하면서, 모든 결정자가 super key인 경우
5. 제4정규형(4NF)
: 어떤 릴레이션 R이 BCNF를 만족하면서, 릴레이션에서 다치 종속을 제거함
다치 종속?
두 속성이 1대다 대응이 되는 경우
예를 들어, '학번'과 '수강과목' 속성이 있을 때
한 학생이 여러 과목을 수강할 수 있는 경우 하나의 '학번'은 여러개의 '수강과목'에 대응
다치 종속 관계 표현?
(A→→B : B가 A에 다치 종속한다.)
6. 제5정규형(5NF)
: 어떤 릴레이션 R이 4NF를 만족하면서, 후보키를 통하지 않은 조인 종속을 제거함
조인 종속?
릴레이션 R의 속성이 A,B, ..., Z가 있다고 할때, 릴레이션 R이 자신의 프로젝션 A,B,,...,Z 를
조인한 결과와 똑같은 경우
그림으로 보면
'학교 수업 > 데이터베이스' 카테고리의 다른 글
sql문 연습사이트 (0) 2020.06.26 뷰? (0) 2020.04.24 트랜잭션? (0) 2020.04.24 관계 데이터베이스? (0) 2020.04.21 데이터베이스란? (0) 2020.04.21