관계(Relationships)가 두 개 이상의 엔터티 간에 존재하는 연관성이라는 정의 자체는 어렵지 않습니다. 하지만 관계는 모델링에서 가장 잘못 사용하고 있는 것 중에 하나입니다.
제가 관계를 따질 때 중요하게 생각하는 것은 두 가지입니다. 하나는 참조 무결성(Referencial Integrity) 관계가 있느냐이고, 다른 하나는 바로 위의 관계만을 표현하고 있느냐입니다. 사실 두 개는 비슷한 얘기입니다. RI 관계와 1촌 관계를 우선 기억했으면 합니다.
엔터티 간의 연관성에는 두 가지 종류가 있습니다. 하나는 종속 관계(Dependent Relationships)이고 다른 하나는 참조 관계(Referential Relationships)입니다. 종속 관계는 종속 엔터티(Dependent Entity)와 같은 개념입니다.
종속 관계는 부모 엔터티와 자식 엔터티 간의 관계로 부모 엔터티가 없으면 자식 엔터티가 존재할수 없는 관계입니다. 관계를 삭제하면 자식 엔터티는 존재할 수 없게 됩니다. 자식 엔터티는 부모 엔터티에 존재 종속(Existence Dependency) 되므로 홀로 존재할 수 없습니다.
반면에 참조 관계(Referential Relationships)는 단지 어떤 엔터티와 연관성이 존재해서 관리하려는 관계일 뿐 상위(부모) 엔터티가 없다고 존재할 수 없는 관계는 아닙니다. 단순히 참조 데이터를 관리하므로 관계를 삭제하더라도 한 속성의 연관성을 모르게 될 뿐 하위(자식) 엔터티가 존재할 수 없는 것은 아닙니다
우리가 흔히 알고 있는 관계가 종속 관계입니다. 그리고 잘못 알고 있는 부분이 모든 관계는 종속 관계인 것처럼 알고 있다는 것입니다. 원서에서 Parent Entity, Child Entity라는 용어를 사용해서 이런 인식이 더욱 굳어진 거 같습니다.
하지만 대부분의 관계는 단지 참조 관계입니다. 관계가 엔터티 존재 자체와 연관되는 것이 아니라 속성 하나와 연관됩니다.
모델링의 모든 요소가 상호 밀접하게 연관돼 있는데 관계 또한 엔터티와 연관돼 있습니다. 엔터티 정의 자체가 완전하지 않으면 그 사이의 관계를 따진다는 것이 무의미해집니다. 관계를 도출하기 위해서는 엔터티가 명확하게 도출돼 있어야 합니다.
종속 관계냐 참조 관계냐를 따지는 것은 엔터티 정의와도 연관돼 있지만 식별 관계와 비식별 관계를 선택하는 기준이 되기 때문에 의미가 있습니다. 특히 종속 관계인지를 알기 위해서는 양쪽 엔터티 정의를 다시 한번 되새겨야 하기 때문에 의미가 있습니다.
다음에 예제를 사용해서 종속 관계와 참조 관계를 자세하게 알아보겠습니다.
'데이터 Story > 모델링 이론' 카테고리의 다른 글
관계선이 의미하는 것 (4) | 2011.02.16 |
---|---|
종속 관계와 참조 관계 (7) | 2011.02.16 |
엔터티 도출 원칙 2 (0) | 2011.02.16 |
엔터티 도출 원칙 1 (0) | 2011.02.16 |
기준 엔터티란? (0) | 2011.02.16 |