1. 이상이란?
릴레이션에서 일부 속성들의 종속이나 데이터들의 중복으로 인해 데이터 조작 시 불일치가 발생하는 것을 말한다.
즉, 테이블을 설계할 때 잘못 설계하여 데이터를 삭제, 수정, 삽입할 때 논리적으로 오류가 생기는 것을 말한다.
이를 해결하는 것은 후에 포스팅할 '정규화'이다.
2. 이상의 종류
{Student ID, Course ID, Department, Grade}
① 삽입 이상
자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 자료를 테이블에 추가할 수 있는 현상
ex) 기본키가 {Student ID, Course ID}인 경우 → Course를 수강하지 않은 학생은 Course ID가 없다.
새로운 학생의 Course ID는 Null일 수밖에 없는데, 기본키는 Null이 될 수 없다.
② 갱신 이상
중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상
ex) 어떤 학생의 전공이 컴퓨터→음악 으로 바뀌는 경우, 해당 데이터의 모든 '전공' 속성을 바꿔야 한다.
미처 바꾸지 못하면, 일부만 변경되어 데이터 불일치가 일어난다.
③ 삭제 이상
어떤 정보를 삭제하면, 유용한 다른 정보까지 삭제되어 버리는 현상
ex) 어떤 학생이 수강철회하는 경우, {Student ID, Course ID, Department, Course ID, Grade}의 정보 중
Student ID, Department와 같은 학생에 대한 정보도 함께 삭제된다.
'CS > 데이터베이스' 카테고리의 다른 글
DB 역정규화 (0) | 2021.09.30 |
---|---|
DB 정규화 (0) | 2021.09.29 |
SQL vs NoSQL (0) | 2021.09.29 |
트랜잭션의 격리수준 (0) | 2021.09.28 |
Injection (0) | 2021.09.28 |