새로운 내용을 공부할 때
새로운 내용의 공부를 시작할 때 용어의 정의를 이해하지 못하거나 정확하게 알지 못한다면 그 용어가 포함된 문장을 이해하지 못합니다.
작은 단어 하나가 내용을 이해하지 못하게 하기 때문에 용어를 정확하게 이해하는 것이 중요합니다.

2 분 소요

목표 D-day : 90 일

오늘은 ERD 정의서를 작성하겠습니다.

프로젝트 ERD

프로젝트 ERD를 작성하기 전 데이터 모델링부터 하겠습니다.

데이터 모델링

데이터 모델링 과정은 데이터베이스 생명주기 중 요구 사항 수집 및 분석부터 설계까지 이르는 과정을 말합니다.

  1. 요구사항 수집 및 분석
    사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계입니다.
    샌드박스의 경우 구매자, 판매자등 사용자의 범위와 서비스의 수준을 정하는 단계입니다.

개념적 모델링

개체와 개체 간의 관계를 표현하는 것

  • 유일한 식별자에 의해 식별이 가능하다.
  • 꾸준한 관리를 필요로 하는 정보이다.
  • 두 개 이상 영속적으로 존재한다.
  • 업무 프로세스에 이용된다.
  • 반드시 자신의 특징을 나태내는 속성을 포함한다.
  • 다른 개체와 최소 한 개 이상의 관계를 갖고 있다.

현재 프로세스에서 개체로 구분할 수 있는걸 확인해보면

  1. 구매자
  2. 판매자
  3. 발행쿠폰
  4. 쿠폰
  5. 주문 정보
  6. 물품
  7. 리뷰

개체 구분 이유

쿠폰과 발행 쿠폰을 분리한 이유

단일 테이블의 쿼리 성능과 테이블 분리로 얻는 유연성의 트레이드 오프를 고려했습니다.

단일 테이블

장점 :

  1. 발행된 쿠폰과 쿠폰의 정보가 같은 레코드에 있습니다. 데이터 조회시 테이블 조인으로 인한 성능 저하가 발생하지 않습니다.
  2. 데이터 구조가 간단합니다.

단점:

  1. 쿠폰에 필요한 필드를 추가하거나, 발행된 쿠폰에 대한 정보를 추가할 경우 확장의 한계가 있을 수 있습니다.
  2. 원본 쿠폰에 대한 정보를 클라이언트가 가지고 있거나 서버에서 가지고 있어야합니다.
  3. 데이터가 증가함에 따라 단일 테이블의 성능은 급격히 저하될 수 있습니다. 인덱스가 커지면서 쿼리 시간이 길어질 수 있습니다.
  4. 복잡한 필터링이 필요한 경우 단일 테이블에서의 필터링이 복잡하고 효율적인 인덱스 사용이 어려울 수 있습니다.

테이블 분리

장점:

  1. 발행된 쿠폰과 원본 쿠폰 데이터를 독립적으로 관리할 수 있어 데이터 무결성을 높게 유지할 수 있습니다.
  2. 쿠폰 정보에 대한 데이터 중복이 발생하지 않습니다.
  3. 스키마 변경의 유연성이 단일 테이블보다 유연합니다.
  4. 발행된 쿠폰과 원본 쿠폰 데이터를 조회하기 위해 조인이 발생하지만 각 테이블에 대한 최적화된 인덱스를 사용할 수 있습니다.

단점 :

  1. 테이블의 복잡성이 늘어나 쿼리가 복잡해집니다.
  2. 단일 테이블과 다르게 조인이 필요하여 성능 저하 가능성이 있습니다.
  3. 운영 복잡성이 증가합니다. 여러 테이블도 무결성으로 분리되어 관리되다보면 운영 복잡성이 발생할 수 있습니다.
  4. 데이터 동기화 로직이 필요할 수 있습니다. 원본 데이터와 발행 테이블간의 동기화 로직이 추가로 발생됩니다.

결론

테이블을 분리함으로써 쿼리의 복잡성이 증가하고, 조인으로 인한 성능 저하가 발생할 수 있습니다.

하지만, 이러한 단점은 최적화된 인덱스와 적절한 쿼리 튜닝을 통해 충분히 상쇄될 수 있습니다.

또한, 데이터 동기화 로직이 필요할 수 있 이는 애플리케이션 레벨에서 충분히 관리할 수 있는 부분입니다.

결론적으로, 데이터의 양이 증가하고, 복잡한 쿼리가 필요한 상황에서는 테이블 분리가 더 나은 성능과 유연성을 제공합니다. 따라서, RDBMS의 한계를 극복하고, 대규모 데이터베이스 환경에서도 안정적인 성능을 유지하기 위해 테이블 분리를 선택하는 것이 더 적합합니다.

물품과 재고를 분리하지 않는 이유

쿠폰과 발행 쿠폰 내역과 동일한 장단점을 가질 수 있지만, 물품과 재고의 경우에는 몇 가지 다른 고려사항이 있습니다.

물품과 재고를 단일 테이블로 관리하는 방식의 장점은 데이터 구조의 단순성에있습니다.

쿠폰의 경우와는 다르게 물품과 재고의 데이터는 상대적으로 정적인 특성을 가지며, 데이터 양도 한정적일 수 있습니다.

이러한 이유로 단일 테이블의 장점을 더 잘 살릴 수 있다고 생각됩니다.

댓글남기기