새소식

Study/Classes

[SQLD] 2-3. 데이터베이스 구조와 성능

  • -
728x90

패스트캠퍼스 강의와 이기적 기본서를 기반으로 공부합니다. 

슈퍼/서브타입 논리 데이터 모델

출처: t.ly/9iVN

  • Worker=직원이라는 엔터티는 슈퍼 타입
  • worker의 하위분류인 관리/교사/스탭은 서브타입
  • 부모 자식 관계가 나타남
  • 슈퍼-서브타입간 관계는 배타적 관계 or 포괄적 관계

 

  • 공통의 부분을 슈퍼타입 엔터티로 모델링
  • 공통으로부터 상속받지만 차이가 있는 부분에 대해서는 서브타입 엔터리로 구성
  • 분류는 데이터 양과 트랜잭션 유형에 따라 달라짐

 

슈퍼타입
single type / all in one type
테이블 한 개
슈퍼 타입과 서브 타입을 한 개의 테이블로 도출
테이블 개수가 제일 적음 - 조인 성능이 좋고 관리가 편리
확장성 나쁨
입출력 성능이 나쁨
서브타입
plus type / super+sub type
각각의 서브타입 테이블
조인 발생, 관리 어려움
개별타입
OnetoOne type / 1:1 타입
슈퍼 타입과 서브 타입을 개별 테이블로 도출
확장성 좋음
테이블 개수가 제일 많음

모델 변환의 중요성

  • 트랜잭션은 항상 슈퍼타입으로 처리한다면, 테이블이 개별타입으로 유지될 때 UNION 연산에 의해 성능이 저하될 수 있음

PK/FK 칼럼 순서와 성능

테이블에 발생되는 트랜잭션 조회 패턴에 따라 PK/FK 칼럼 순서 조정이 필요

PK가 2개라면, 물리 데이터 모델일 때 기본키가 되어 index를 자동으로 만듦
→ 인덱스 선두 칼럼에 대한 조건이 없을 경우 인덱스 전체 혹은 테이블 전체를 읽어서 성능 저하

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.