이상 현상(Anomolay)
- 좋은 관계형 데이터베이스를 설계하는 목적 중 하나가 정보의 이상 현상이 생기지 않도록 고려해서 설계하는 것이다.
- 이상 현상은 테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정할 때 논리적으로 생기는 오류를 말한다.
- 종류로는 갱신 이상(Modification Anomolay), 삽입 이상(Insertion Anomolay), 삭제 이상(Deletion Anomolay)이 있다.
예시 테이블
삽입 이상(Insertion Anomolay)
- 특정 데이터가 존재하지 않아 중요한 데이터를 데이터베이스에 삽입할 수 없을 때 발생
- 예시 테이블에서 기본키는 학번이기 때문에 새로운 행을 삽입하기 위해서는 기본키인 학번이 필수이다.
- 새로 행을 삽입하였지만, 학생이 존재하지 않기 때문에 데이터를 추가할 수 없다. 이러한 현상을 삽입 이상이라 한다.
- 정규화를 사용하여 학생 테이블과 학과 테이블로 분리한다면 추가가 가능하다.
삭제 이상(Deletion Anomolay)
- 특정 정보를 삭제하면, 원치 않는 정보도 삭제되는 현상이다.
- 둘리 학생의 데이터를 삭제하면, 학과 코드를 비롯한 다른 정보들도 같이 삭제가 되는데, 이러한 정보들을
특정 테이블에 저장하지 않았기 때문에 데이터가 소멸되는 문제가 발생한다. - 정규화에 의해 테이블을 분리하면 해결 가능하다.
갱신 이상(Modification Anomolay)
- 테이블의 특정 테이터를 업데이트 했는데, 정상적으로 변경되지 않은 경우 혹은 중복된 데이터 중 일부만 수정되어
모순이 발생한 경우 갱신 이상이라고 한다.
- 위 테이블의 경우 경영학과의 학과장과 코드가 바뀌어서 바꿔야 한다고 했을 때 100개의 데이터를 변경해야 한다.
여기서 변경되지 않은 행이 한 개라도 존재하면, 문제가 발생한다. - 위 문제는 테이블을 두 개로 분리하여 학과장 테이블의 한 개의 행만 변경하여 해결 가능하다.
참고 블로그
https://developer-talk.tistory.com/256
PPT
'CS(Computer Science)' 카테고리의 다른 글
결합도(Coupling)와 응집도(Cohesion) (0) | 2023.07.20 |
---|---|
[데이터베이스] 데이터베이스 설계 단계 (0) | 2023.07.16 |
CS Study : 11주차 - 프로세스 동기화 (0) | 2023.01.29 |
CS Study : 11주차 - Synchronous(동기) / Asynchronous(비동기) (0) | 2023.01.26 |
CS Study : 10주차 - 스케줄러(Scheduler) / CPU 스케줄러 (0) | 2023.01.19 |