M:M 관계 해소
M:M 관계의 의미
M:M 관계는 논리 데이터 모델링 과정에서 많이 나타난다. 이러한 관계는 데이터 모델이 아직 덜 완성된 모습이라고 할 수 있다. 그래서 M:M 관계는 최종적으로 완성된 데이터 모델에는 존재할 수 없는 형태라고 할 수 있다.
· 실제 업무 중 대부분은 M:M 관계이다. 즉, 기업이 관리하고 있는 많은 데이터 중에서 기업의 업무 내용에 해당하는 데이터가 이러한 M:M 관계로 표현되고 향후에 모델링이 더 진행됨에 따라 이것 이 해소된다.
· 키 엔터티와 키 엔터티 간에는 대부분 M:M 관계이다. 그래서 데이터 모델 상세화 단계에서 이러 도출되기도 한다.
· 지속적으로 발생? 관계에 의해서 생겨난 엔터티라고 볼 수 있다.
M:M 관계 해소의 의의
M:M 관계는 불특정 관계로도 알려져 있으며, 데이터 구조에 있어서 어떠한 실제적 방법으로도 구 현이 불가능하다. 이것이 이 관계를 해결하는데 충분한 이유이지만, 데이터 모델 구축 작업 초기에 그렇게 하는 데에는 또 다른 동기가 있다.
· M:M 릴레이션십은 새로운 릴레이션 엔터티를 추가하여 M:1 관계로 변경한다.
· 연관 실체(associative, relational) 엔터티는 M:M 관계 미결시 간과해 버렸을 추가 업무 규칙 또 는 업무 논리??의됨에 따라 하위유형(subtype) 계 층 구조가 연관 실체로부터 나타나기 쉽다는 점, 분석 초기에 M:M 관계가 해결되지 않은 모델에 서 이들이 간과된다는 점이다.
· M:M 관계는 데이터 종속성에 대한 결정을 어렵게 하여, 모델의 논리적 완성과 부분집합 식별 능 력을 제한한다.
· M:M 관계 해결시까지 모델은 불안정 상태에 머물 것이다. 모델은 정규화되지 못하고, 모델에 대 한 문서화 작업도 완비되지 못할 것이다.
· [그림 1]에서와 같이 제품 엔터티와 공급자 엔터티 간에는 M:M 관계가 존재한다. 이 관계 는 제품 공급이라는 업무 내용에 의해서 두 엔터티 간에 생겨난 M:M 관계이다.
· 이 관계가 해소된 결과로 공급제품목록이라는 새로운 엔터티가 만들어지고 또한 각각의 두 엔터티 즉 제품, 공급자와 1:M 의 관계를 부모로서 가지게 된다.
참조무결성 규칙 정의
· 관계 테이블의 모든 외부 식별자 값은 관련 있는 관계 테이블의 모든 주 식별자 값이 존재해야 한다.
· 실체의 주 식별자(PK)와 마찬가지로 외부 식별자(FK)도 데이터 무결성에 관한 업무 규칙을 내포 하고 있다.
· 데이터베이스 설계 관점에서 선택하지 말고, 사용자의 업무 규칙에 따라 적절한 규칙을 선택한다.
입력 규칙
자식 실체의 인스턴스(Instance)를 입력할 때 참조무결성 규칙의 종류는 다음과 같다.
1) Dependent
대응되는 부모 실체에 인스턴스가 있는 경우에만 자식 실체에 입력을 허용한다.
2) Automatic
자식 실체 인스턴스의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 이를 자동 생성한다.
3) Nullify
자식 실체 인스턴스의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 자식 실체의 참조키 (FK)를 Null 값으로 처리한다.
4) Default
자식 실체 인스턴스의 입력을 항상 허용하고, 대응되는 부모 건이 없는 경우 참조키(FK)를 지정된 기본 값으로 처리한다.
5) Customized
특정한 검증 조건이 만족되는 경우에만 자식 실체 인스턴스의 입력을 허용한다.
6) No Effect
자식 실체 인스턴스의 입력을 조건 없이 허용한다.
삭제 규칙
부모 실체의 인스턴스를 삭제할 때(또는 그것의 주 식별자를 수정할 때) 사용되는 무결성 규칙은 다음과 같다.
1) Restrict
대응되는 자식 실체의 인스턴스가 없는 경우에만 부모 실체 인스턴스 삭제를 허용한다.
2) Cascade
부모 실체 인스턴스의 삭제를 항상 허용하고, 대응되는 자식 실체의 인스턴스를 자동 삭제한다.
3) Nullify
부모 실체 인스턴스의 삭제를 항상 허용하고, 대응되는 자식 실체의 인스턴스가 존재하면, 그것의 참 조키(FK)를 Null 값으로 수정한다.
4) Default
부모 실체 인스턴스의 삭제를 항상 허용하고, 대응되는 자식 실체의 인스턴스가 존재하면, 그것의 참 조키(FK)를 기본 값으로 수정한다.
5) Customized
특정한 검증 조건이 만족되는 경우에만 부모 실체 인스턴스의 삭제를 허용한다.
6) No Effect
'데이터 모델링' 카테고리의 다른 글
Sybase PowerDesigner Visual Studio plugin 소개-1 (0) | 2010.10.07 |
---|---|
논리데이터 모델링 - 참조무결성 규칙 정의 (0) | 2010.10.07 |
논리 데이터 모델링 - 정규화(Normalization) (0) | 2010.09.29 |
논리데이터 모델링 - 식별자(UID, Unique Identifier) 확정 (0) | 2010.07.29 |
논리데이터 모델링 - 속성 정의시 유의사항 (0) | 2010.07.21 |