정보처리산업기사_실기_기록용
[데이터베이스] 정규화 - 이상(Anomaly)
칼퇴하는 한개발
2021. 10. 4. 15:43
반응형
[출처] 2020 시나공 기본서 정보처리산업기사 실기
이상이란?
테이블에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하고 이 중복으로 인해 테이블 조작 시 문제가 발행하는 현상을 의미
*중요! 이상이 발생하는 원인과 이상의 종류 기억하기
1. 이상의 종류
- 삽입 이상 : 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상
- 삭제 이상 : 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는, 즉 연쇄 삭제가 발행하는 현상
- 갱신 이상 : 튜플에 있는 속성 값을 갱신할 때 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
예시) <수강> 테이블
학번 | 과목번호 | 성적 | 학년 |
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 | C413 | B | 4 |
400 | E412 | C | 4 |
500 | C312 | B | 2 |
1)
<수강> 테이블에서 학번이 '600'인 학생의 학년이 '2'하는 사실만을 삽입하고자 하는 경우 → 삽입 이상 발생
: <수강> 테이블의 기본키는 학번과 과목번호이기 때문에 삽입할 때 반드시 과목번호의 데이터도 필요!
2)
<수강> 테이블에서 학번이 '200'인 학생이 과목번호 'C123'인 과목을 취소하고자 하는 경우 → 삭제 이상 발생
: 학번이 '200'인 학생의 과목번호가 'C123'인 과목을 취소하고자 그 학생의 튜플을 삭제하면 학년의 정보까지 같이 삭제가 됨. 과목만 취소하고자 했지만 유지되어야 할 학년 정보까지 삭제되기 때문에 정보 손실이 발생
3)
<수강> 테이블에서 학번이 '400'인 학생의 학년을 4에서 3으로 변경하고자 하는 경우 → 갱신 이상 발생
: 학번이 '400'인 모든 튜플의 학년 값을 갱신해야 하는데 실수로 일부 튜플만 갱신하면, 학번 '400'인 학생의 학년은 '3'과 '4' 2가지 값을 가지게 되어 불일치성이 발생
반응형