728x90
DBMS에서는 정규화를 제대로 하지 않으면 데이터의 무결성에 문제가 생긴다. 이는 데이터의 이상 현상 때문이다.
따라서 DB를 설계할 때는 이상 현상이 생기지 않도록 고려해 설계해야 한다.
이상 현상이란 데이터의 삽입, 삭제, 수정 시 원하지 않는 데이터도 함께 영향을 받아 데이터의 무결성을 해치는 문제를 말한다. 종류와 예시를 살펴보자.
이름 | 학년 | 학과 | 수강과목 | 담당교수 |
라이언 | 1 | 체육학과 | 운영체제 | 김교수 |
어피치 | 1 | 경영학과 | 데이터베이스 | 이교수 |
어피치 | 1 | 경영학과 | 자료구조 | 박교수 |
춘식이 | 2 | 컴퓨터공학과 | 데이터베이스 | 이교수 |
삽입 이상 (Insertion Anomaly)
- 데이터를 삽입할 때 의도와 다른 값들이 삽입되는 것을 말한다.
- 예를 들어, 새로운 학생이 입학해서 위 테이블에 [이름, 학년, 학과]만 삽입한다고 하자. 이 때 DB에서는 [수강과목, 담당교수] 컬럼의 값이 지정되지 않았으므로 자동으로 null을 입력해 삽입해 줄 것이다. 사용자의 의도와는 다르게 입력되는 이상 현상이 발생했다.
삭제 이상 (Deletion Anomaly)
- 데이터를 삭제할 때 삭제하지 않으려 한 값도 삭제되는 것을 말한다.
- 예를 들어, 운영체제 강의가 폐강되어 해당 과목이 속한 행을 지우면 라이언 학생의 정보가 모두 삭제되는 이상 현상이 발생한다.
갱신 이상 (Modification Anomaly)
- 데이터의 값을 갱신할 때 일부 값만 갱신되는 모순이 발생하는 것을 말한다.
- 예를 들어, 데이터베이스 과목의 교수가 이교수에서 정교수로 변경된 경우, 어피치 학생의 교수 정보만 바꾸면 춘식이 학생의 교수 정보는 그대로 이교수이기 때문에 같은 과목임에도 담당교수가 다른 이상 현상이 발생한다.
이러한 이상현상을 방지하기 위해 설계 단계에서부터 구조으로 올바르게 DB를 설계하는 것이 중요하다.
728x90
'개발 지식 > 데이터베이스' 카테고리의 다른 글
[DB/데이터베이스] 정규화(Normalization)란? 정규화의 종류와 예시 (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) (1) | 2023.06.11 |
---|
댓글