본문 바로가기
개발/Database

데이터베이스 정규화

by 안뇽! 2021. 10. 13.
반응형

데이터베이스 정규화

데이터베이스 정규화는 데이터베이스의 설계와 관련이 있다.

데이터베이스의 설계는 데이터가 저장되는 방식과 구조를 결정하는데, 이를 위해서는 크게 3가지 부분들이 중요하다.

  • Data redundancy
  • Data integrity
  • Anomaly
    • Update Anomaly (갱신 이상)
    • Insertion Anomaly (삽입 이상)
    • Deletion Anomaly (삭제 이상)

Data Redundancy(데이터 중복)

데이터 중복은 실제 데이터의 동일한 복사본이나, 부분적인 복사본을 뜻한다.

데이터 중복은 데이터베이스 내에서 다음과 같은 문제점을 유발한다.

  • 일관된 자료 처리의 어려움
  • 저장 공간 낭비
  • 데이터 효율성 감소

Data Integrity(데이터 무결성)

데이터 정규화는 데이터 무결성을 강화하는 목적도 가진다.

데이터 무결성은 데이터의 수명 주기 동안 정확성과 일관성을 유지하는 것을 뜻한다.

다시 말해 입력된 데이터가 오염되지 않고, 입력된 그대로 데이터를 사용할 수 있다는 뜻이다.

Anomaly(데이터 이상 현상)

데이터 이상 현상은 기대한 데이터와 다른, 이상 현상을 가리킨다.

다음 3가지 현상이 있다.

  • 갱신 이상
  • 삽입 이상
  • 삭제 이상

- Update Anomaly(갱신이상)

갱신이상은 여러 행에 동일한 데이터가 있을 때, 어떤 행을 갱신해야 하는지 논리적 일관성이 없을 경우에 발생한다.

다음과 같은 테이블에 519번을 갱신해야 하는 경우 어떤 행의 데이터를 갱신해야 하는 지 알 수 없다.

코드스테이츠, Update Anomaly 예시

- Insertion Anomaly(삽입 이상)

삽입 이상은 데이터를 삽입하지 못하는 경우이다.

다음과 같은 경우 새로운 직원이 들어왔을 때, Dr.Newsome이 가르칠 수업이 정해지지 않았다면 데이터를 추가하지 못한다.

수업을 NULL로 지정하지 않는 이상, 담당 수업이 있어야만 테이블에 추가할 수 있는 이상 현상이 발생한다.

코드스테이츠, Insertion Anomaly 예시

- Deletion Anomaly(삭제 이상)

삭제 이상은 데이터의 특정 부분을 지울 때 의도치 않게 다른 부분도 함께 지우는 이상 현상이다.

다음과 같이 한 직원이 담당하는 수업을 삭제할 때, 레코드 전체가 사라지는 구조라면 의도치 않게 다른 직원의 데이터도 삭제된다.

코드스테이츠, Deletion Anomaly

반응형

'개발 > Database' 카테고리의 다른 글

JSON, BSON  (0) 2021.10.19
MongoDB에서 sample data 이용하는 방법  (0) 2021.10.19
MVC 모델-뷰-컨트롤러  (0) 2021.10.16
MySQL 기본 명령어  (0) 2021.10.12
SQL과 NoSQL  (0) 2021.10.09