*은 개인적으로 외우는 방식으로 개인적 의견입니다.
정리 혹은 급한 경우에 참고하세요.
제목에 ⭐이 있으면 해당 내용 꼭 외우세요 시험에 잘나옵니다.
1. 이상 (Anomaly)
개념
- 이상이란 테이블에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하고, 이 중복으로 인해 테이블 조작 시 문제가 발생하는 현상을 의미한다.
이상의 종류
종류 |
개념 |
삽입 이상 (Insertion Anomaly) |
테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상 |
삭제 이상 (Deletion Anomaly) |
테이블에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상 |
갱신 이상 (Update Anomaly) |
테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상 |
<수강>
학번 |
과목번호 |
성적 |
학년 |
100 |
C413 |
A |
4 |
100 |
E412 |
A |
4 |
200 |
C123 |
B |
3 |
300 |
C312 |
A |
1 |
300 |
C324 |
C |
1 |
400 |
C123 |
A |
4 |
400 |
C312 |
A |
4 |
400 |
C324 |
A |
4 |
400 |
C413 |
B |
4 |
400 |
E412 |
C |
4 |
500 |
C312 |
E |
2 |
예시 |
설명 |
|
삽입이상 |
학번이 "600"인 학생의 학년이 "2"라는 사실만을 삽입하고자 하는 경우 |
기본키는 학번과 과목번호이기 때문에 삽입할 때 반드시 과목번호가 있어야 한다. |
삭제이상 |
학번이 "200"인 학생이 과목번호 "C123"의 등록을 취소하고 자 하는 경우 |
학번이 "200"인 학생의 과목번호가 "C123"인 과목을 취소하고자 그 학생의 튜플을 삭제하면 학년 정보까지 같이 삭제된다. 과목만 취소하고자 했지만 유지 되어야 할 학년 정보까지 삭제 되기 때문에 정보 손실이 발생한다. |
갱신이상 |
학번이 "400"인 학생의 학년을 "4"에서 "3"으로 변경하고자 하는 경우 |
학번이 "400"인 모든 튜플의 학년 값을 갱신해야 하는데 실수로 일부 튜플만 갱신하면 학번 "400"인 학생의 학년은 "3","4" 즉 2가지 값을 가지게 되어 정보에 불일치성이 생기게 된다. |
2. 함수적 종속 (Functional Dependency)
개념
- 함수적 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 데이터베이스에서 항상 유지되어야 할 조건이다.
<학생>
학번 |
이름 |
학년 |
학과 |
400 |
이순신 |
4 |
컴퓨터공학과 |
422 |
유관순 |
4 |
물리학과 |
301 |
강감찬 |
3 |
수학과 |
320 |
홍길동 |
3 |
체육과 |
해설: <학생> 테이블에서 이름, 학년, 학과는 각각 한번 속성에 함수적 종속이다. 이것을 기호로 표시하면 다음과 같다.
X -> Y의 관계를 갖는 속성 X와 Y에서 X를 결정자라 하고 Y를 종속자라고 한다.
학번이 결정자 이름이 종속자
<수강>
학번 |
과목번호 |
성적 |
학년 |
100 |
C413 |
A |
4 |
100 |
E412 |
A |
4 |
200 |
C123 |
B |
3 |
300 |
C312 |
A |
1 |
300 |
C324 |
C |
1 |
400 |
C123 |
A |
4 |
400 |
C312 |
A |
4 |
400 |
C324 |
A |
4 |
400 |
C413 |
B |
4 |
400 |
E412 |
C |
4 |
500 |
C312 |
E |
2 |
<표시>
학번, 과목번호 -> 성적 --------- 완전 함수적 종속 (Full Functional Dependency)
학번 -> 학년 --------- 부분 함수적 종속 (Partial Functional Dependency)
완전 함수적 종속 (Full Functional Dependency)
- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대한 함수적 종속이면서 속성 집합 X의 어떠한 진부분 집합 Z(즉, Z ⊂ X)에도 함수적 종속이 아닐 때 속성 Y는 속성 집합 X에 완전 함수적 종속이라고 합니다.
부분 함수적 종속 (Partial Functional Dependency)
- 어떤 테이블 R에서 속성 Y가 다른 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속일 때, 속성 Y는 속성 집합 X에 부분 함수적 종속이라고 합니다.
3. 정규화 (Normalization)
개념
- 정규화는 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해 하는 과정이다.
- 정규화의 목적은 가능한 한 중복을 제거 하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다.
- 정규형에는 제 1 정규형 (1NF; First Normal Form) ~ 제 5 정규형 (5NF; Fifth Normal Form) 이 있으며 순서대로 정규화의 정도가 높아진다.
제 1 정규형 (1NF; First Normal Form)
- 제 1 정규형은 테이블 R에 속한 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형이다. 즉 테이블의 모든 속성 값이 원자 값으로만 되어 잇는 정규형이다.
문제) <주문목록> 테이블에서 반복되는 주문 관련 정보를 분리하여 제 1 정규형으로 만드시오.
<주문목록>
제품번호 |
제품명 |
재고수량 |
주문번호 |
고객번호 |
주소 |
주문수량 |
1001 |
모니터 |
2000 |
A345 D347 |
100 200 |
서울 부산 |
150 300 |
1007 |
마우스 |
9000 |
A210 A345 B230 |
300 100 200 |
광주 서울 부산 |
600 400 700 |
1201 |
키보드 |
2100 |
D347 |
200 |
부산 |
300 |
<제품>
제품번호 |
제품명 |
재고수량 |
1001 |
모니터 |
2000 |
1007 |
마우스 |
9000 |
1201 |
키보드 |
2100 |
<제품주문>
주문번호 |
제품번호 |
고객번호 |
주소 |
주문수량 |
A345 |
1001 |
100 |
서울 |
150 |
D347 |
1001 |
200 |
부산 |
300 |
A210 |
1007 |
300 |
광주 |
600 |
A345 |
1007 |
100 |
서울 |
400 |
B230 |
1007 |
200 |
부산 |
700 |
D347 |
1201 |
200 |
부산 |
300 |
제 2 정규형 (2NF; Second Normal Form)
- 제 2정규형은 테이블 R이 제 1정규형이고 기본키가 아닌 모든 속성이 기본키에 대하여 완전 함수적 종속을 만족하는 정규형이다.
문제) <제품주문> 테이블에서 주문번호에 함수적 종속이 되는 속성들을 분리하여 제 2정규형을 만드시오.
<제품주문>
주문번호 |
제품번호 |
고객번호 |
주소 |
주문수량 |
A345 |
1001 |
100 |
서울 |
150 |
D347 |
1001 |
200 |
부산 |
300 |
A210 |
1007 |
300 |
광주 |
600 |
A345 |
1007 |
100 |
서울 |
400 |
B230 |
1007 |
200 |
부산 |
700 |
D347 |
1201 |
200 |
부산 |
300 |
<주문목록>
주문번호 |
제품번호 |
주문수량 |
A345 |
1001 |
150 |
D347 |
1001 |
300 |
A210 |
1007 |
600 |
A345 |
1007 |
400 |
B230 |
1007 |
700 |
D347 |
1201 |
300 |
<주문>
주문번호 |
고객번호 |
주소 |
A345 |
100 |
서울 |
D347 |
200 |
부산 |
A210 |
300 |
광주 |
B230 |
200 |
부산 |
제 3 정규형 (3NF; Third Normal Form)
- 제 3정규형은 테이블 R이 제 2정규형이고 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형이다.
문제) <주문> 테이블에서 이행적 함수적 종속을 제거하여 제 3정규형을 만드시오.
<주문>
주문번호 |
고객번호 |
주소 |
A345 |
100 |
서울 |
D347 |
200 |
부산 |
A210 |
300 |
광주 |
B230 |
200 |
부산 |
<주문>
주문번호 |
고객번호 |
A345 |
100 |
D347 |
200 |
A210 |
300 |
B230 |
200 |
<고객>
고객번호 |
주소 |
100 |
서울 |
200 |
부산 |
300 |
광주 |
BCNF
- BCNF는 테이블 R에서 모든 결정자가 후보키인 정규형이다.
- 일반적으로 제 3정규형에 후보키가 여러 개 존재하고, 이러한 후보키들이 서로 중첩되어 나타나는 경우에 적용 가능하다.
문제) <수강_교수> 테이블에서 결정자가 후보키가 아닌 속성을 분리하여 BCNF를 만드시오.
<수강_교수>
학번 |
과목명 |
담당교수 |
171746 |
데이터베이스 |
홍길동 |
171747 |
네트워크 |
유관순 |
171748 |
인공지능 |
윤봉길 |
171749 |
데이터베이스 |
홍길동 |
171747 |
데이터베이스 |
이순신 |
171749 |
네트워크 |
유관순 |
<수강>
학번 |
담당교수 |
171746 |
홍길동 |
171747 |
유관순 |
171748 |
윤봉길 |
171749 |
홍길동 |
171747 |
이순신 |
171749 |
유관순 |
<교수>
담당교수 |
과목명 |
홍길동 |
데이터베이스 |
이순신 |
데이터베이스 |
윤봉길 |
인공지능 |
유관순 |
네트워크 |
제 4 정규형 (4NF; Fourth Normal Form)
- 제 4정규형은 테이블 R에 다중 값 종속 A ->-> B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형이다.
제 5 정규형 (5NF; Fifth Normal Form)
- 제 5정규형은 테이블 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형이다.
- 정규화 과정 정리 -
* 정규화 단계 암기 요령
두부를 좋아하는 정규화가 두부가게에 가서 가게에 있는 두부를 다 달라고 말하니 주인이 깜짝 놀라며 말했다.
두부이걸다줘? ----> 도부이결다조
도메인이 원자값
부분적 함수 종속 제거
이행적 함수 종속 제거
결정자이면서 후보키가 아닌 것 제거
다치 종속
조인 종속성 이용
'자격증' 카테고리의 다른 글
정보처리기사 실기 정리& 요약 - 논리 데이터 모델의 물리 데이터 모델로 변환_⭐ (0) | 2020.07.08 |
---|---|
네트워크 관리사 2급 실기 독학으로 합격하는 방법 및 관련 파일 (5) | 2020.07.08 |
정보처리기사 실기 정리& 요약 - 데이터 모델의 개념 (0) | 2020.07.02 |
개편된 2020 정보처리기사 실기 시험 문제 유형, 범위 및 후기_ 업데이트 출제 예상 범위 (0) | 2020.06.03 |
네트워크 관리사 2급 필기 시험정보_ 독학으로 합격하는 방법 (0) | 2020.05.20 |
댓글