inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복

식별 관계 vs 비식별 관계 - 현대적인 설계 트렌드

슈퍼/서브 타입 joined 전략

64

박동규

작성한 질문수 15

0

db의 슈퍼/서브 타입으로 설계된 부분을 보면 joined 전략으로 했을 경우 어쩔 수 없이 식별 관계로 해야하는 경우가 있던데 이럴 경우 sigle table 전략으로 푸는 게 나은 것 같으세요? 아니면 어쩔 수 없이 식별 관계로 풀려고 하는 게 나은 것 같으신가요?

sql mysql dbms/rdbms 소프트웨어-설계 SQLD

답변 2

0

y2gcoder

안녕하세요. 박동규님, 공식 서포터즈 y2gcoder입니다.

슈퍼/서브 타입 시에는 그래서 본 8. 논리적 모델링4 - 식별 관계, 비식별 관계.pdf p40 의

image.png

에 해당한다고 볼 수 있을 것 같습니다! 그래서 슈퍼/서브 타입 에 대한 데이터베이스 설계 전략 중 joined 를 선택했을 때는 식별 관계로 많이 구성하는 것 같습니다 🙂

 

 

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 박동규님.

슈퍼/서브 타입에 대한 데이터베이스 설계 시 “joined 전략”과 “single table 전략” 중 어느 것을 선택할지 고민하고 계시군요. 각 전략의 장단점은 다음과 같습니다.

  1. Joined 전략: 각 엔터티를 별도의 테이블로 나누고, 슈퍼 타입의 기본 속성을 하나의 테이블로 유지합니다. 데이터 정규화가 잘 되어 중복을 줄일 수 있지만, JOIN 연산이 필요하여 쿼리 성능에 영향을 미칠 수 있습니다. 따라서, 데이터의 무결성 유지에는 유리하지만 성능을 고려해야 합니다.

  2. Single Table 전략: 모든 속성을 단일 테이블에 통합하여 관리합니다. 이로 인해 JOIN 비용을 피할 수 있어 성능이 향상될 수 있지만, 테이블이 커지고 많은 NULL 값을 포함하게 되어 데이터 무결성 관리가 어려워질 수 있습니다.

결론적으로:

  • 식별 관계가 많고 해당 관계에서 strict한 데이터 무결성이 필요하다면, joined 전략이 적절합니다.
  • 반면, 성능이 중요한 경우에는 single table 전략을 고려할 수 있습니다. 특히, 데이터의 양이 적고 쿼리 성능이 중요한 경우에 유리할 수 있습니다.

결국, 어떤 전략이 더 나은지는 프로젝트의 요구사항, 데이터의 규모, 성능 요구사항 등에 따라 다르게 결정됩니다. 일반적인 지침은 없으므로 이러한 요소들을 종합적으로 고려하여 선택하시는 것이 좋습니다.

관련하여 더 깊이 있는 토론과 지침을 원하신다면, 상속보다는 조립 혹은 싱글 테이블 전략과 JOIN에 대한 기존 질문도 참고해 보시면 도움이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

BCNF 질문

0

49

2

연관 엔티티 네이밍 규칙

0

39

1

진짜 강의 듣는거 너무 고문

0

113

1

28강 sql 파일 어딨나여?

0

78

1

2NF의 엄밀한 정의

0

66

1

comment 채번을 사용해야 하는 이유에 대한 설명이 필요합니다.

0

104

3

학습중인 수업자료를 받아볼 수 있을까요??

0

92

2

수업자료 pdf파일관련 건의 - 제목 링크위치 개선

0

79

2

서비스 운영 중 잘못된 테이블 설계 발견시 수정 시점에 대한 질문

1

96

2

실무적인 설계로 접근했을 때 제 2정규형 항상 만족?

0

70

1

created_at 관련 구현과 DB ENUM에 대해

0

64

1

M:N 관계의 연관 엔티티 설계 순서

0

66

2

데이터 역사성 훼손 문제

0

60

2

실무팁 - 등록자,수정자 컬럼 관리 관련 질문입니다.

0

78

1

구글이 이메일 변경을 허용하는 이유

0

117

1

order_item 테이블 (order_id, product_id) 유니크 제약조건 누락

0

97

2

BCNF 정규화에 대한 질문

0

117

2

주문, 결제 엔티티의 분류

1

111

1

실무에서의 복수 항목에 대한 관리 방법이 궁금합니다.

0

86

1

역할 및 발생 시점에 따른 엔티티 분류

0

82

1

대리키의 외부 노출에 대한 질문을 하고 싶습니다.

0

104

2

소프트 딜리트 정책에서 유니크 컬럼 중복 방지 전략

0

91

1

대리키 사용과 정규화

1

106

2

강의자료 까마귀발 잘못된거 아닌가요?

1

125

2