DevBoi

[DB] 슈퍼타입과 서브 타입 본문

[DataBase]

[DB] 슈퍼타입과 서브 타입

HiSmith 2022. 1. 19. 14:17
반응형

jpa 관련 공부를 하면서 RDB의 관계에서 자바의 상속관계를 구현할수있을까 라는 주제로 공부를 했다.

관계형 데이터 베이스에서도 자바의 상속 관계 같은 슈퍼 타입과 서브 타입이 존재한다.

 

 

물론 jpa 기본 전략 등을 공부하면서 느꼈던 것이지만

여러 테이블에서 공통된 특성이 있다고 가정하면, 공통 된 특성을 슈퍼타입을 뽑고 나머지를 서브타입으로 내리는 것이다.

 

 

1) Roll up , 서브타입과 슈퍼타입들을 그냥 한테이블로 합치는 경우

-JPA에서는 단일 테이블 전략이라고 하는데 해당 작업은 Roll up 이라고도 한다고 한다.

 서브 타입에서 사용하는 특성들이 적을 때 유용하다.

장점

속도가 빨라질수있다

단점

특정 다른 특성들이 많아지면 한 테이블에 부하가 심하게 걸릴수있어 오히려 성능이 저하될 위험이 존재한다.

또한 자신의 특성이 아닌 다른 서브 타입에 대해서는 컬럼이 null을 가질수 밖에없다.

 

 

2) Roll down (여러개의 테이블로 분리)

-슈퍼타입의 특성이 많지 않은 경우, Roll down 하는 것을 추천한다.

장점 

외래키 관리 및 Full scan 발생시 유리, 데이터 저장 공간의 효율화

단점

처리속도가 감소할수 있다. (조인을 하게 되면 처리 속도가 감소할수 밖에 없다.)

 

 

반응형

'[DataBase]' 카테고리의 다른 글

[Mariadb] create database error  (0) 2023.09.30
[Database] maraiDb 인코딩 에러 해결  (0) 2023.07.03
AutoCommit?  (0) 2023.05.08
[데이터 베이스] 인덱스 동작과정  (0) 2022.02.16
데이터베이스 인덱스란?  (0) 2021.09.01