더북(TheBook)

2.3.4 데이터베이스 정규화

데이터베이스 설계 과정을 통해 여러 엔티티와 관계를 추출했더라도 완벽을 보장할 수는 없습니다. 상 현상(anomaly)이 발생할 수 있기 때문입니다. 앞에서 예로 든 쇼핑몰의 경우 데이터베이스 설계를 하는 이유가, 주문 목록과 회원 정보를 같은 테이블에 보관하면 회원 정보를 조회할 때마다 필요하지 않은 주문 목록이 같이 조회되는 부작용을 피하기 위함인데, 이러한 부작용을 이상 현상이라고 합니다.

이상 현상은 다음과 같이 세 가지로 구분됩니다.

삽입 이상(insertion anomaly): 새로운 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상입니다. 예를 들어 주문 목록과 회원 정보가 한 테이블에 저장돼 있는데 신규 회원이 가입하면, 회원 정보와 함께 있지도 않은 주문 목록을 함께 삽입해야 하는 경우입니다.

갱신 이상(update anomaly): 중복된 데이터 값 중 일부 값만 변경함으로써 데이터가 불일치되는 현상입니다. 예를 들어 종로구의 행정 명칭이 신종로구로 바뀌었는데 테이블의 일부 주소만 신종로구로 바뀌고 나머지는 종로구인 경우입니다.

삭제 이상(delete anomaly): 특정 데이터를 삭제할 때 다른 데이터까지 삭제되는 현상입니다. 예를 들어 주문 목록과 회원 정보가 한 테이블에 저장돼 있는데, 김애용이 주문을 취소했을 때 김애용의 주문 목록만 삭제되는 것이 아니라 김애용의 회원 정보까지 삭제되는 경우입니다.

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