|
|
|
|
데이터베이스 정규화 정리
|
|
|
|
데이터베이스 정규화 정리
데이터베이스 설계에서 중요한 사항은 무엇보다도 현실 세계를 가장 정확하게 표현할 수 있는 데이터의 논리적 구조를 결정하는 것이다. 특히 관계 데이터베이스에서는 데이터값들을 테이블 형태로 표현하므로 현실 세계를 정확하게 표현하기 위해서 어떤 릴레이션들이 필요하고, 또 그 릴레이션들은 어떤 애트리뷰트들로 구성해야 하는가를 결정하는 문제가 중요하다. 이것이 곧 관계스킴(relation scheme)의 설계가 된다.
관계 스킴의 설계가 잘못되면 무엇보다도 데이터가 불필요하게 중복된다. 이 데이터 중복은 데이터 관리상의 여러 가지 치명적인 문제를 야기시키고, 데이터의 중복은 릴레이션을 조작할 때 곤란한 현상을 발생시키는 대 이 곤란한 현상을 이상(anomaly)라고 하는데 특별히 릴레이션의 데이터 값을 변경하려 할 때 이 현상이 일어나게 된다.
학번
과목번호
학년
100
C132
4
100
A123
4
200
B123
3
300
D123
2
300
A321
2
400
E123
4
500
Z134
1
○ 삭제 이상
한 튜플을 삭제함으로써 유지해야 될 정보까지도 삭제되는 연쇄 삭제(triggered deletion) 현상이 일어나게 되어 정보의 손실(loss of information)이 발생하게 되는데 이러한 현상을 삭제 이상(deletion anomaly)이라고 한다.
- 학번이 100인 학생의 과목 ‘C132’의 등록을 취소한다고 할 때, 자연히 학번 100인 튜플에서 과목번호 C132를 삭제해야 되는데 과목번호는 킷값에 포함되어 있기 때문에 과목번호만 삭제하지 못하고 튜플 전체를 삭제해야 된다. 그 결과 튜플이 삭제될 때 이 학생이 4학년이라는 정보까지도 함께 삭제될 것이다. 왜냐하면 이 튜플은 학생의 학년 정보를 가지고 있는 유일한 튜플이기 때문이다.
○ 삽입 이상
.... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|