본문 바로가기

공부 기록/영상 후기

DB 테이블 설계 잘못하면 어떤 문제가 생길 수 있을까요?

https://youtu.be/JwfQ8ouhAzA

1. 중복 데이터 문제

  • Insertion anomalies => 저장 공간 낭비, 실수로 인한 데이터 불일치 가능성, null값을 많이 씀, 임시의 row를 생성하고 삭제하는 번거로움
  • Deletion anomalies => 삭제 시 애꿎은 정보까지 같이 삭제될 가능성, null값을 많이 씀
  • Update anomalies => 실수로 인한 데이터 불일치 가능성

2. Spurious Tuples

  • join하면서 가짜 정보 발생

3. null 값이 많아지면서 발생하는 문제점들

  • null값이 있는 column으로 join하는 경우 상황에 따라 예상과 다른 결과 발생
  • null값이 있는 column에 aggregate function을 사용 시 주의 필요
  • 불필요한 storage 낭비

바른 DB schema 설계

  • 의미적으로 관련 있는 속성들끼리 테이블 구성
  • 중복 데이터를 최소 허용하여 설계
  • join 수행 시 가짜 데이터가 생기지 않도록 설계
  • 되도록 null값을 줄일 수 있도록 설계

참고! : 성능 향상을 위해 일부러 테이블을 나누지 않는 경우도 있다.