DB - DB 설계 핵심 원칙

morecodeplease·2024년 11월 12일
0

데이터베이스

목록 보기
3/3
post-thumbnail

DB 설계의 핵심은 중복 제거이다. 왜 핵심인지 아래 예시로 알아보자.


⚜ 예시

  • 냉장고 안에 똑같은 재료가 여기저기 나눠져 있다고 상상해보자.
    양파가 냉장고 여기저기에 여러 개 들어 있으면, 필요한 재료를 찾으려고 열어볼 때 어느 칸에도 다 양파가 있는 상황이 될 수 있다.
    요리를 하려 할 때마다 양파를 여기저기에서 꺼내야 한다면 불편할 것이다.
    심지어 양파를 상하지 않게 관리하려 해도 어느 한쪽은 깜빡해서 썩게 두는 경우도 생길 수 있다.
  • 데이터베이스에서도 중복된 데이터가 많으면 비슷한 문제가 생긴다.
    데이터가 여기저기 중복되어 있으면 찾는 것도 어렵고, 관리하기도 복잡해진다.
    새로운 값으로 업데이트할 때 하나라도 누락되면 그 순간 데이터가 불일치하게 된다. 따라서 중복을 줄이는 것은 냉장고 속 재료를 깔끔하게 정리하는 것처럼, 필요한 것을 쉽게 찾고 효율적으로 관리하기 위해 핵심적이라고 볼 수 있다.
  • 중복되는 데이터가 많으면 많을수록 무언가를 수정할 때 중복되는 모든 데이터를 찾아서 고쳐야 한다. 이 때, 실수로 중복된 데이터를 누락해서 수정을 하지 않는 경우가 발생하고, 이렇게 되면 데이터들 사이에 모순이 생겨버린다.

  • 저장된 데이터들 중에서 모순되는 상황이 생긴 현상을 보고 이상현상(Anomaly)라고 얘기한다.

💫 정규화

  • DB를 설계하면서 중복을 없애는 과정이 바로 정규화(Normalization)라고 한다.
  • 위와같은 이상현상 문제를 해결하기 위해, 정규화 과정을 통해 데이터를 '의미 있는 단위'로 나누고, 각 단위가 고유한 데이터를 보유하도록 한다.
  • 강의에서 현업에서는 1~3 정규형만 사용한다고 한다.
    BCNF, 4정규형, 5정규형을 적용시키면 지나치게 테이블이 분리되어서 관리가 복잡해지기 때문이라는데 실제 적용한 모델들을 보면 이해가 갈듯?하다.

💯 요약

  • 테이블을 설계할 때 데이터 중복이 발생하지 않도록 해야 한다. 데이터 중복이 생기면 서로 다른 데이터 간에 불일치가 발생해 데이터 간의 일관성이 깨지고 혼란이 생길 수 있다.

🌅 참조

profile
Everyday's a lesson

0개의 댓글