일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- java
- db
- 프로그래머스
- CS
- Database
- BFS
- Algorithm
- 다이나믹 프로그래밍
- Python
- 안드로이드
- VIM
- DFS
- 리트코드
- network
- frontend
- git
- DP
- TypeScript
- LeetCode
- Data Structure
- Graph
- 알고리즘
- 백준
- Redux
- vscode
- react
- 자바
- 동적 계획법
- 그레이들
- Javascript
Archives
- Today
- Total
늘 겸손하게
CS - Database - Anomaly 본문
Anomaly (이상 현상)
정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly가 나타나기 때문.
예) {Student ID, Course ID, Department, Course ID, Grade }
1. 삽입 이상 (Insertion Anomaly)
기본키가 {Student ID, Course ID}인 경우 -> Course를 수강하지 않은 학생은 Course ID가 없는 현상이 발생함. 결국 Course ID를 Null로 할 수 밖에 없는데, 기본키는 Null이 될 수 없으므로, Table에 추가될 수 없음.
삽입하기 위해서 '미수강'과 같은 불필요한 Course ID를 만들어야함.
-> 불필요한 데이터를 추가해야 삽입할 수 있는 상황 = Insertion Anomaly
2. 갱신 이상 (Update Anomaly)
만약 어떤 학생의 전공 (Department)가 '컴퓨터에서 음악'으로 바뀌는 경우
모든 Department를 '음악'으로 바꾸어야하나 일부를 바꾸지 못한 경우 데이터 불일치 발생
-> 일부만 업데이트하여 데이터 불일치하는 모순의 문제 = Update Anomaly
3. 삭제 이상 (Deletion Anomaly)
만약 어떤 학생이 수강을 철회하는 경우, {Student ID, Department, Course ID, Grade}의 정보 중
Student ID, Department와 같은 학생에 대한 정보도 함께 삭제됨.
-> 튜플 삭제로 인해 꼭 필요한 데이터까지 함께 삭제되는 문제 = Deletion Anomaly
'Computer Science > Database' 카테고리의 다른 글
CS - Database - Database (0) | 2023.05.01 |
---|---|
CS - Database - Index(인덱스) (0) | 2022.10.10 |
CS - Database - 정규화 (Normalization) (0) | 2022.10.10 |
CS - Database - SQL과 NOSQL의 차이 (0) | 2022.10.08 |
CS - Database - SQL Injection (0) | 2022.10.07 |