CS/데이터베이스
이상 현상(Anomaly)
glorypang
2025. 7. 4. 10:03
728x90
반응형
SMALL
이상 현상(Anomaly)
데이터베이스에서 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성이 저하됩니다.
이러한 원인은 데이터 이상 현상(Anomaly) 때문입니다.
즉, 데이터베이스의 값과 현실 세계의 실제 값이 일치하지 않는 문제가 발생하게 됩니다.
이상 현상이란?
불필요한 데이터 중복으로 인해 테이블에 대한 삽입, 수정, 삭제 작업을 수행할 때 발생하는 부작용입니다.
좋은 관계형 데이터베이스 설계의 목적 중 하나는 이러한 이상 현상을 방지하는 것입니다.
이상 현상의 유형
아래의 표를 예로 이상 현상에 대해 알아보겠습니다.
| 학번(PK) | 이름 | 나이 | 성별 | 강의 코드 | 강의명 | 전화번호 |
| 1 | 이태호 | 23 | 남 | AC1 | 데이터베이스 개론 | 010-2627-8123 |
| 2 | 강민정 | 20 | 여 | AC2 | 운영체제 | 010-4665-1941 |
| 3 | 김현수 | 21 | 남 | AC3 | 자료구조 | 010-5223-4464 |
| 3 | 김현수 | 21 | 남 | AC4 | 웹 프로그래밍 | 010-5223-4464 |
| 4 | 이병철 | 26 | 남 | AC5 | 알고리즘 | 010-6305-2912 |
삽입 이상(Insertion anomaly)
: 자료를 삽입할 때, 의도하지 않은 다른 자료까지 삽입해야만 하는 현상
새로운 학생이 아직 수강 신청을 하지 않은 경우, 강의 정보에 NULL을 입력해야 함
| 학번(PK) | 이름 | 나이 | 성별 | 강의 코드 | 강의명 | 전화번호 |
| 1 | 이태호 | 23 | 남 | AC1 | 데이터베이스 개론 | 010-2627-8123 |
| 2 | 강민정 | 20 | 여 | AC2 | 운영체제 | 010-4665-1941 |
| 3 | 김현수 | 21 | 남 | AC3 | 자료구조 | 010-5223-4464 |
| 3 | 김현수 | 21 | 남 | AC4 | 웹 프로그래밍 | 010-5223-4464 |
| 4 | 이병철 | 26 | 남 | AC5 | 알고리즘 | 010-6305-2912 |
| 5 | 홍길동 | 20 | 남 | NULL | NULL | 010-1234-5678 |
- 불필요한 NULL 값 증가
- 테이블의 무결성 저하
- 데이터 해석 어려움
갱신 이상(Update Anomaly)
: 중복된 데이터 중 일부만 수정되어 데이터가 불일치하게 되는 현상
김현수의 전화번호를 수정했는데 일부 튜플만 수정
| 학번(PK) | 이름 | 나이 | 성별 | 강의 코드 | 강의명 | 전화번호 |
| 1 | 이태호 | 23 | 남 | AC1 | 데이터베이스 개론 | 010-2627-8123 |
| 2 | 강민정 | 20 | 여 | AC2 | 운영체제 | 010-4665-1941 |
| 3 | 김현수 | 21 | 남 | AC3 | 자료구조 | 010-5223-1111 |
| 3 | 김현수 | 21 | 남 | AC4 | 웹 프로그래밍 | 010-5223-4464 |
| 4 | 이병철 | 26 | 남 | AC5 | 알고리즘 | 010-6305-2912 |
- 동일한 정보인데 서로 다른 값 존재
- 데이터 신뢰도 저하
- 유지보수 어려움
삭제 이상(Delete Anomaly)
: 어떤 정보를 삭제할 때, 의도하지 않은 다른 정보까지 함께 삭제되는 현상
AC1 강의를 삭제하면 이태호 학생 정보도 함께 삭제
| 학번(PK) | 이름 | 나이 | 성별 | 강의 코드 | 강의명 | 전화번호 |
| 1 | 이태호 | 23 | 남 | AC1 | 데이터베이스 개론 | 010-2627-8123 |
| 2 | 강민정 | 20 | 여 | AC2 | 운영체제 | 010-4665-1941 |
| 3 | 김현수 | 21 | 남 | AC3 | 자료구조 | 010-5223-4464 |
| 3 | 김현수 | 21 | 남 | AC4 | 웹 프로그래밍 | 010-5223-4464 |
| 4 | 이병철 | 26 | 남 | AC5 | 알고리즘 | 010-6305-2912 |
- 불필요한 정보 손실
- 데이터베이스의 불완전성 증가
이상현상 발생 원인
- 하나의 테이블에 서로 다른 종류의 정보가 섞여 있음
→ 예를 들어, 학생 정보랑 강의 정보가 한 테이블에 같이 있어서 정리가 안 됨 - 같은 정보가 반복적으로 여러 번 들어감
→ 똑같은 학생 이름이나 전화번호가 여러 줄에 중복돼서 기록됨 - 어떤 데이터가 다른 데이터에 어떻게 연결돼 있는지 명확하게 정리되지 않음
→ 한 속성(컬럼)이 다른 속성에 어떻게 의존하는지(함수 종속성)가 제대로 구분되지 않아서, 수정이나 삭제할 때 문제가 생김
예방 방법: 정규화 (Normalization)
정규화란?
- 테이블을 분해하고 재구성하여 데이터 중복을 최소화하고 이상 현상을 제거하는 과정
- 핵심 목표는 데이터 무결성 보장, 중복 최소화, 이상 현상 제거
출처:
728x90
반응형
LIST