주식별자를 선정하려면 먼저 업무식별자와 후보식별가 인조식별자 등에 대해서 알아야 한다.
업무식별자 : 업무식별자가 도출되지 않는 한 주식별자는 결정될 수 없다. 엔터티를 정의하는 단계에서 도출해야한다.
후보식별자: 주식별자가 될수 있는 유력한 후보이며, 인스턴스 유일성을 보장해 주는 후보식별자는 한엔터티에 여러개 존재할수 있다.
주식별자 후보라서 도출되기도 하지만, 유니크 인덱스를 설정하기 위해서도 도출해야 한다. 만약 업무식별자가 존재하면, 후보식별자 도출을 생략해도 엔터티를 정의하는데는 큰 지장이 없다. 다만 업무 식별자가 올바르게 도출되었는지 한 번 더 검토할수 있으며, 주식별자가 될 가능성이 있어 가능한 도출 하는 것이 좋다.
업무식별자와 후보식별자가 도출되면 그중에서 주식별자를 결정해야 한다.
업무식별자는 비지니스의 의미를 파악하기 쉬우며, 업무에서 많이 사용되므로 조회요건에 효율적이다.
가능한 업무식별자를 주식별자로 사용하는 것이 좋다.
업무식별자가 주식별자로 적합한지 가장먼저 검토해야 한다.
업무식별자는 데이터를 발생시킨 주체이므로 보통 여러속성으로 구성된다. 해당 엔터티가 주요 엔터티라면 하위 엔터티의 관계 속성을 복잡하게 만들 수 있으므로 복잡한 업무 식별자를 주 식별자로 선택하는 것을 신중하게 고려해야 한다.
주식별자 선정 원칙에 근거하여 업무식별자가 주식별자로 선택되면 주식별자 선정 절차는 끝난다.
※ 주식별자 선정 원칙 -주식별자 속성값이 변경되지 않도록 선정 -일반속성에 종속되지 않도록 선정 -인조식별자에는 의미를 부여하지 않도록 선정 -주식별자 속성에 논리적으로 널값이 존재하지 않도록 선정 -최소한의 속성이 포함되도록 선정 -업무적으로 활용도가 높은 속성으로 선정 -업무식별자와 인조식별자가 혼합되지 않도록 선정 -슈퍼식별자가 되지 않도록 선정 -최소길이가 되도록 선정 -주식별자 속성값은 가능한 고정길이가 되도록 선정 -주식별자 속성은 전사에서 한번만 사용되도록선정 -암호화 대상 속성이 포함되지 않도록 선정-업무를 대표할 수 있는 속성으로 선정 |
업무식별자가 적절하지 않으면 후보식별자 중에 선택해야하고, 후보식별자도 적절하지 않으면 인조식별자를 사용해야 한다.
업무식별자나 후보식별자는 복합식별자 일 수 이지만, 인조식별자는 단일속성으로 이루어진 식별자다.
인조식별자 사용 시 주의점은 업무식별자와 후보식별자는 대리식별자가 되므로 반드시 유니크 인덱스를 생성해야 한다는 것이다.
그래야 엔터티 성격을 파악하기 쉬우며, 인스턴의 중복을 막아 데이터발생에 혼선이 없게 되므로 데이터 품질이 높아진다.
후보식별자는 도출이 누락될 수 있고 유니크인덱스가 설정되지 않더라도 치명적이지 않지만, 데이터 발생기준이 되는 업무식별자는 유니크 인덱스 생성은 필수다.
엔터티 중요도에 따라 주요엔터티는 가능한 빠른 단계에서 주식별자를 결정해야 하며, 주변엔터티에 영향을 주지 않는 중요도가 떨어지는 엔터티는 물리모델링 단계에서 주식별자를 결정해도 된다. 가능한 주식별자는 상세 논리모델링 단계에서 확정하는 것이 바람직하다.
주식별자를 정하는 작업은 상위엔터티에서 시작해서 하위엔터티로 차례로 결정 해야하고, 상위를 제처두고 하위엔터티부터 주식별자를 결정하면 안된다. 상위엔터티부터 주식별자를 결정하면서 하위엔터티로 적절하게 상속되는 지 고려해야 한다.
'관계형데이터모데링노트 요약' 카테고리의 다른 글
복합속성&교차엔터티 주식별자 (0) | 2023.11.13 |
---|---|
복잡한 주식별자 (0) | 2023.11.13 |
주식별자를 단순하게 설계해야 하는 이유 (0) | 2023.11.11 |
주식별자 선택에 대한 기준 (0) | 2023.11.11 |
주식별자가 변경되는 이유 (0) | 2023.11.09 |