DB 이야기/DB 도메인 설계

5] 자기참조관계 모델링 기법

김푸른초푸른 2020. 8. 12. 22:43

1. 성능저하의 의미

= 여러개의 테이블에서 조인으로 데이터를 읽어 들어화서 일정한 순서대로 조인시 업무적인 조건에 따라 성능저하가 나타남. 

 

2. 자기참조관계의 종류

1) 1:1 

= 사건번호 하나에 자사건번호가 한 개만 올 수 있다. 

 

2) 1:M (가장 많이 적용)

= 상위 조직 하나에 여러 하위 조직이 올 수 있다. 

= 다시 하위 조직 하나는 그 하위 조직 여러개를 거느리는 경우

 

3) M:N

= 부품 1은 상위부품으로 2도 구성할 수 있고 4도 구성할 수 있다.

-> 겸직이 많아짐

 

3. 자기참조관계 주의점

1. 관계의 연결이 되는 속성에 인덱스 설정

= 불필요한 FULL SCAN 을 발견시,

해결책 : 해당 테이블의 엔티티를 연결하는 속성에 대해 인덱스를 걸어주는 것 

-> 반드시 연결이 되는 컬럼에 대해 인덱스를 설정해야 연결 관계를 풀어가면서 발생할 수 있는 FULL TABLE SCAN 예방

 

2. 자기참조관계에 적합한 SQL 문장 실행

EX) SELECT 관련번호

             , 관련번호이름

       FROM 자기참조 테이블

START WITH 관련번호 = '10001'

CONNECT BY PRIOR 원번호 = 관련번호 

 

 

4. M:N 자기참조관계

= 물리적 테이블에서 동일한 스키마를 구성할 수 없다는 것이 관계형 데이터베이스의 특징

 

* 조인 과부하문제로 가급적 1:M관계로 데이터를 조정하여 처리하도록 해보고 불가피한 경우에만 

관계 엔티티타입을 이용하여 모델링에 적용하도록 하는 것이 좋다. 

 

 

 

 

출처 : 아는만큼 보이는 데이터베이스 설계와 구축

'DB 이야기 > DB 도메인 설계' 카테고리의 다른 글

4] 엔티티 타입, 통합? 분리?  (0) 2020.08.11
3] 이력 유형 데이터 모델링  (2) 2020.08.11
2] 식별자와 비식별자 관계 설정  (0) 2020.08.11
1] PK 컬럼 순서  (0) 2020.08.07
모델링 기법  (0) 2020.03.23