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

KIM YONG GU·2023년 9월 23일
0

쉬운코드

목록 보기
5/18
  1. 중복 데이터 문제

IT 회사의 데이터베이스를 구축하는데 다음과 같이 테이블을 만들었다고 가정.

1.1 Insertion anomalies

테이블 설계시 한 개의 관심사를 한 테이블에 있게 하는게 좋다. (아래와 같다)

1.2 Deletion anomalies

1.3 Update anomalies

  1. Spurios Tuples (가짜 튜플)

사진 촬영 회사의 데이터베이스를 구축하는데 다음과 같이 테이블을 만들었다고 가정해 보겠습니다.

1:1 매칭되어 4개가 나올거라는 예상과 다르게 6개의 tuple이 생성.
그러나 면밀하게 살펴보면 2*2의 조합이 Jeju에서 발생한다.

아래는 바람직한 설계 (모두 분할해줘야함)

  1. NULL 값이 많아짐으로써 생기는 문제점들
  • null 값이 있는 column으로 join 하는 경우 상황에 따라 예상과 다른 결과 발생
  • null 값이 있는 column에 aggregate function(집계함수)을 사용했을 때 주의 필요
    예를들어 'COUNT 특정칼럼' 으로 검색을 하면 null값은 계산하지 않음
    그러나 COUNT (*)로 검색을 하면 null값을 포함해서 계산함.
  • 불필요한 storage 낭비
  1. 올바른 DB schema 설계
  • 의미적으로 관련있는 속성들끼리 테이블을 구성
  • 중복 데이터를 최대한 허용하지 않도록 설계
  • join 수행 시 가짜 데이터가 생기지 않도록 설계
  • 되도록이면 null 값을 줄일 수 있는 방향으로 설계

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

profile
Engineer, Look Beyond the Code.

0개의 댓글

관련 채용 정보