관계선(Relationship Line)에는 여러 가지 의미가 포함돼 있습니다. 그으면 멋있을 거 같아서 관계선을 표현하진 않죠.
가장 중요한 의미는 관계선을 보고 업무 규칙을 알 수 있다는 것입니다. 관계를 정확히 표현했다면 관계선은 어떤 식으로든 두 엔터티 간의 업무 규칙을 보여줍니다.
그 업무 규칙은 기본적으로 종속 관계나 참조 관계냐로 구분할 수 있습니다. 종속 관계라면 두 엔터티는 뗄래야 뗄 수 없는 한 몸과 같은 관계이고요. 참조 관계는 없으면 그냥 허전한 관계입니다. 중요한 정보가 비는 거죠. 툴에서 이 둘을 구분하도록 해 주는 것도 의미가 있을 거 같습니다. 현재는 식별 관계냐 비식별 관계냐로 구분하는데 좀 부족한 거 같습니다.
업무 프로세스에 의해 발생되는 데이터면 관계선이 업무의 흐름을 의미하기도 합니다. 물론 업무의 흐름과 정반대의 관계선이 존재할 수도 있지만 일반적으로는 업무의 흐름과 관계선의 흐름은 일치합니다.
그리고 상위(부모) 엔터티의 주 식별자와 하위(자식) 엔터티의 속성을 연결시켜 주는 것이 관계선입니다. 하위(자식) 엔터티의 속성에 사용한 데이터는 상위(부모) 엔터티의 주 식별자에 가서 보면 존재해야 합니다. 하위(자식) 엔터티의 속성에 사용한 데이터가 널(Null)이든지요…
또한 관계선은 데이터를 입력할 때 입력 순서를 의미하기도 합니다. 이것도 반드시 그렇지는 않지만 일반적으로 그렇습니다. 그렇지 않다면 데이터 성격에 따르기 보다는 인위적인 경우가 많습니다. 제대로 된 관계선인지, 어쩔 수 없는 경우인지 반드시 검토해야 합니다.
관계선은 당연히 데이터를 조회할 때 조인(Join)하는 경로를 의미하기도 합니다. 관계선으로 연결된 상위 엔터티와 조인해야 조인 속성을 기준으로 같은 데이터만 결과로 가져오게 됩니다. PK가 같다고 엄한 엔터티와 조인하면 엄한 데이터 결과가 생성됩니다. 결과는 나오겠지만 원하는 결과는 아닌 것이죠…
관계선을 모델에 표현 안 해도 된다는 의견이 종종 있습니다. 복잡해 보인다는 것이 주요 이유인데요. 일일이 파악하는 것도 힘들고 관리하기도 쉽지는 않습니다. 하지만 입력사원번호 같은 시스템 속성과 ~구분코드와 같은 코드 속성을 제외하고 모든 관계는 표현해야 하는 게 원칙입니다.
위에서 설명한대로 관계선은 여러가지를 의미하기 때문에 모델에 표현하지 않아도 상관없는 선택 사항이 아니라 반드시 표현해야 하는 필수 사항입니다.
'데이터 Story > 모델링 이론' 카테고리의 다른 글
잘못 표현된 관계선 1 (4) | 2011.02.16 |
---|---|
관계 도출 시 핵심 요소 (0) | 2011.02.16 |
종속 관계와 참조 관계 (7) | 2011.02.16 |
관계란? (0) | 2011.02.16 |
엔터티 도출 원칙 2 (0) | 2011.02.16 |