더북(TheBook)

고객 레코드와 함께 판매 정보가 입력되기 전까지는 주어진 자동차 모델(Model 컬럼) 정보를 입력할 수 없으므로 비정상적인 데이터 입력이 존재한다. 또 이런 형태로 설계한다면 고객이 자동차를 추가로 구매할 때 대부분의 데이터가 반복될 수밖에 없다. 불필요한 데이터 입력은 디스크 공간, 메모리, 네트워크 리소스 낭비는 물론, 심지어 데이터를 입력하는 사람의 시간까지도 낭비한다. 게다가 데이터 입력을 반복하다 보면 그림 1-3의 예제에서 주소에 있는 숫자를 바꾸는 것처럼 데이터 입력 오류가 발생할 위험이 커진다.

또 판매원(SalesPerson)이 결혼해서 이름을 바꾼다고 하자. 이 사람의 이름과 일치하는 모든 데이터를 갱신하는 UPDATE 쿼리를 수행해야 하므로 비정상적으로 데이터를 갱신할 때도 있다. 이것은 많은 사람이 동시에 사용하는 데이터베이스에서 레코드의 개수가 아주 많을 때 큰 문제를 일으킬 수 있다. 게다가 이런 형태의 갱신 작업은 해당 판매원의 이름이 모두 정확히 입력되어 있고(일관성 없는 데이터가 없음을 의미) 이름이 동일한 사람이 없을 때만 성공할 수 있다.

로우가 한 개 삭제될 때 데이터베이스에서 제거하려고 하지 않은 데이터를 잃을 수도 있기 때문에 비정상적으로 데이터를 삭제할 때도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.