복합 주식별자의 속성 순서
주식별자가 여러 속성으로 구성된 복합 주식별자일때 조회성능을 고려하여 속서의 순서를 결정해야 한다.
이작업은 주식별자가 결정된 후 마지막에 하게 된다.
주식별자의 속성순서는 조회성능에 많은 영향을 끼치는데, 분석·설계 단계에서 조회요건을 검토할 수 없다는 것이다.
조회요건을 검토할 수 있는 최소단계는 개발단계이다. 개발 끝난 후 테스트 단계에서 성능문제 때문에 주식별자의 속성순서를 변경하는 일이 자주 발생한다.
분석·설계 단계에서는 해당 엔터티를 대상으로 자주사용되는 조건파악, 최소한 화면을 확인해서라도 주식별자 속성순서를 결정해야 한다.
주식별자를 물리적인 주키로 생성하면 유니크 인덱스가 생성된다.유니크 인덱스 첫번째 속성이 조회조건절에 자주 사용되도록 하는 것이 핵심이다.
검색대상을 줄이기 위해 분포도를 고려. 분포도를 줄일수 있는 속성이 주식별자에 맨처음에 오는 것이 효과적이다.
ex) 업무구분코드 조회=500/ 계좌번호 조회= 30개 : 속성분포도가 좋은 계좌번호+업무구분코드 주식별자 구성해야함
조건절에 포함된 속성이 관계속성이라면, 분포도는 상위 엔터티 갑소가 관계가 있는 하위 엔터티의 인스턴스 개수인 관계비를 의미한다. 이관계비가 적은 속성이 분포도가 좋은것이며, 이 속성은 주식별자 맨 앞에 존재해야 한다.
복합 주식별자를 사용하면 성능을 고려해 속성순서를 정해야 한다. 복합주식별자의 속성 중에서 주로 where 조건으로 사용되며, 분포도가 좋은 속성이 선행되는 것이 성능향상에 좋다. 조회업무를 처리하는 기준이 되는 속성이 선행되어야 한다.
교차엔터티의 주식별자
교차엔터터의 주식별자는 양쪽 엔터티의 주식별자와 연관되어 있어서 단순하지 않다. 교차엔터티의 주식별자를 결정하는 방법은 4가지
유형1) 교차엔터티의 가장 기본적인 유형
양쪽 상위 엔터티의 주식별자만으로 교차엔터터의 주식별자 구성하는 모델이다. 상속받은 양쪽 엔터티의 주식별자는 각자 엔터티의 업무식별자 이거나 인조식별자이다. BOM모델이나 양쪽 엔터티의 인스턴스 간 매핑을 관리하는 엔터티도 이에 속한다.
업무적으로 기준 성격이 강한 상위엔터티의 주식별자를 먼저 위치. 고객과 계좌와 같이 상하개념이 있으면 고객을 상위에 위치시킨다.
상위엔터티의 주식별자 만으로 교차엔터티의 인스턴스를 유일하게 식별할 수 없을때는 유형2 모델을 사용한다.
유형2)양쪽 상위 엔터티의 주식별자에 자체업무 식별자가 추가된 모델이다. 업무식별자가 복잡한 엔터티일 경우 단순화가 필요하다.
유형3)이 인조식별자를 사용하여 단수화한 모델이다. 교차엔터티의 하위 엔터티가 존재하면 주식별자를 단순하게 만들기 위해 수강엔터티와 같이 인조식별자를 사용할 수 있다.
유형4)는 부분인조식별자를 사용한 모델인데 양쪽 엔터티의 주식별자 중에서 자주 사용하는 한쪽부모 엔터티의 주식별자만 상속하여 추가한 모델이다. 유형3과 같이 복잡한 주엔터티를 단순하게 만들려는 의도로 사용한다. 다른점은 주식별자에 포함시키면 성능에 효과적이지만 가능한 업무식별자만 사용하거나 인조식별자만을 사용하는 것이 바람직하다.
교차엔터티에 인조식별자를 사용하는 유사한 방법이 부모엔터티의 주식별자를 단순화하는 방법이 있다. 부모엔터티의 주식별자를 인조식별자를 채택하면 교차엔터티의 주식별자는 자연히 단순해 진다. 만약 하위엔터티가 존재한다며 더욱 효율적이다.
'관계형데이터모데링노트 요약' 카테고리의 다른 글
업무식별자와 인조식별자의 혼합 (1) | 2023.11.14 |
---|---|
인조식별자 (0) | 2023.11.14 |
복잡한 주식별자 (0) | 2023.11.13 |
주식별자 선정 절차 (0) | 2023.11.12 |
주식별자를 단순하게 설계해야 하는 이유 (0) | 2023.11.11 |