Anomaly (이상현상)
이상 현상이란 테이블을 설계할 때 잘못 설계해 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말한다.
이상 현상 종류
이상 현상의 종류로는 3가지가 있다.
- 삽입(Insert) 이상 : 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 테이블에 자료를 추가 가능한 이상
- 갱신(Update) 이상 : 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 이상
- 삭제(Delete) 이상 : 어떤 정보를 삭제하면 유용한(삭제를 원하지 않는) 다른 정보까지 삭제되어버리는 이상, 필요한 정보를 함께 삭제하지 않고서는 어떤 정보를 삭제하는 것이 불가능하다.
이상 현상 예시
삽입 이상 (Insert Anomaly)
삽입 이상은 특정 데이터가 존재하지 않아 중요한 데이터를 데이터베이스에 삽입할 수 없을 때 발생한다.
대학교 테이블에서 기본키는 "학번"이다. 새로운 행을 삽입하기 위해서는 기본키인 "학번"이 필수이다.
현재 3개의 학과(경영, 물리, 컴퓨터)가 존재하고 신설학과인 "수학과"가 새로 생겼으며 대학교 테이블에 데이터를 추가해야한다고 해보자
하지만 신설학과인 "수학과"에는 아직 학생이 존재하지 않기 때문에 대학교 테이블에 데이터를 추가할 수 없다.
이러한 현상을 삽입 이상이라고 한다.
이런 경우 정규화를 통해 대학교 테이블을 학생, 학과 테이블로 분리하고 데이터를 추가하면 된다.
갱신 이상 (Update Anomaly)
어떤 값을 업데이트 했을 때 그 속성의 다른 속성값들과의 불일치가 발생하는 현상
예를 들어 경영학과의 학생이 100명이고 경영학과의 학과장이 개명해서 학과장명을 변경해야 하는 경우가 있다고 하자
경영학과의 학생이 100명이므로 100개의 데이터를 모두 변경해야 한다.
만약 이때 변경되지 않은 행이 단 한개라도 존재하면 데이터가 상이한 문제가 발생한다.
그리고 학생이 1000명이라면 1000개의 데이터를 변경해야 하는 비효율적인 문제가 발생한다.
이러한 현상을 갱신 이상이라고 한다.
삭제 이상 (Delete Anomaly)
삭제 이상은 특정 정보를 삭제하면 원치 않는 정보도 삭제되는 현상이다.
컴퓨터공학과의 "둘리"라는 학생이 자퇴를 해서 데이터를 삭제해야 하는 경우 컴퓨터공학과의 학과 코드 및 학과장 정보도 삭제된다.
둘리 학생의 데이터를 삭제하면 컴퓨터공학과의 학과 코드와 학과장 정보를 특정 테이블에 저장하지 않았기에 데이터가 소멸되는 문제가 발생한다.
이러한 이상을 삭제 이상이라고 한다.
삽입 이상과 마찬가지로 정규화에 의해 테이블을 분리하면 삭제 이상을 해결할 수 있다.
참고
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 정규화 (Normalization) (0) | 2022.07.22 |
---|---|
[데이터베이스] Index (인덱스) (0) | 2022.07.22 |
[데이터베이스] EQUI JOIN vs Non-EQUI JOIN (등가 vs 비등가 조인) (0) | 2022.07.22 |
[데이터베이스] Full Outer Join vs UNION, Inner Join vs INTERSECT (0) | 2022.07.22 |
[데이터베이스] SQL vs NoSQL 개념, 장단점, 비교 (0) | 2022.07.21 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!