본문 바로가기

보물창고/IT 정보

[ERD/DB설계/DB도구] 마이크로디자이너(MicroDesigner) - 관계(Relation)

반응형



이 포스팅 원본은   http://microdesigner.tistory.com/?page=3   이곳에 있으며 스크랩 허락을 받았습니다




[ERD/DB설계/DB도구] 마이크로디자이너(MicroDesigner) - 관계(Relation)


마이크로디자이너(MicroDesigner) - 관계(Relation)


정의

관계는 엔터티 간의 연관성으로서 두 엔터티 간 존재의 형태나 행위 또는 이벤트 입니다.


설명

관계의 종류

식별 관계/비식별 관계 : 부모 엔터티의 주식별자가 자식 엔터티의 주식별자로 상속되는 경우 식별관계라하고 자식 엔터티의 일반속성으로 상속되는 경우를 비식별관계라고 합니다.

자기참조 관계 : 하나의 엔터티 내에 있는 인스턴스간에 관계를 맺고 있는 경우로서 계층 구조 형태를 나타냅니다.

슈퍼타입 서브타입 관계 : 엔터티 내의 전체 인스턴스에 대해 공통적인 속성이 있으면서 또 한편으로는 인스턴스 그룹별로 각각 고유한 속성이 있는 경우 공통속성을 가지는 슈퍼타입 엔터티와 별도의 서브타입 엔터티로 존재할 수 있습니다.

관계의 카디낼리티(Cardinality) : 두 엔터티 간 관계에서 참여자의 수를 표현하는 것을 카디낼리티(Cardinality)라고 합니다. 일반적인 카디낼리티 표현 방법으로 1:M, 1:1, M:N 이 있습니다.

1:M(One To Many) 관계 : 관계에 참여하는 두 엔터티 중 한 엔터티(부모 엔터티)의 인스턴스가 다른 엔터티(자식 엔터티)의 하나 이상의 인스턴스와 관계를 가지고, 반대의 경우 즉, 자식 엔터티의 하나의 인스턴스는 부모 엔터티의 하나의 인스턴스와 만의 관계를 가지는 경우입니다. 모델링 시 가장 많이 발생하는 관계입니다.

1:1(One To One) 관계 : 관계에 참여하는 두 엔터티 중 한 엔터티의 인스턴스가 다른 엔터티의 하나의 인스턴스와 만의 관계를 가지고 있는 경우입니다.

M:N(Many To Many) 관계 : 관계에 참여하는 두 엔터티 간에 서로 양방향으로 한 엔터티의 하나의 인스턴스가 다른 엔터티의 여러 인스턴스와 관계를 가지고 있는 경우입니다. 두 엔터티 간 M:N 관계는 상세 설계 단계에서 제 3의 추가 엔터티를 이용한 2개의 1:M 관계로 전개됩니다.


예제

식별 관계 : "공급자" 와 "공급자상품"

"공급자상품" 의 주 식별자는 "공급자코드+상품코드" 로서 식별자에 부모 엔터티인 "공급자"의 주 식별자인 공급자코드를 포함함으로 식별 관계입니다.

비식별 관계 : "공급자" 와 "발주"

"발주"의 주 식별자는 "발주번호" 로서 "발주" 는 부모 엔터티인 "공급자" 의 주 식별자인 "공급자코드" 를 일반속성으로 가지고 있으므로 비식별 관계 입니다.

자기참조 관계 : "상품분류"

하나의 인스턴스의 "상위상품분류코드" 는 같은 엔터티 내에 다른 인스턴스의 "상품분류코드" 를 참조함으로 자기참조 관계입니다.

슈퍼타입 서브타입 관계 : 슈퍼타입 - "센터" , 서브타입 - "물류창고", "판매점"

"센터"는 "물류창고" 와 "판매점" 으로 구분되며, "센터"는 센터명, 주소와 같은 공통 속성을 가지고 있고, "재고" 엔터티와 관계를 맺고 있습니다. "센터" 의 서브타입인 "물류창고" 와 "판매점" 은 각각 개별적인 속성을 가지고 있고, "물류창고" 는 "입출고" 엔터티와 관계를 가지고 있습니다.



식별 관계 생성



§   툴바 메뉴의 [식별관계 생성하기] 메뉴를 클릭합니다.

§   식별관계를 생성할 부모엔터티를 클릭 한 후 자식 엔터티를 클릭합니다.

§   자식 엔터티에 속성이 없었던 경우엔 바로 관계가 생성되면서 속성이 추가됩니다.

§   자식 엔터티에 속성이 존재 하는 경우엔 식별 관계 생성 옵션 창이 뜨고 이동 속성 옵션을 선택할 수 있습니다.


 

 

자식 엔터티의 충돌 속성을 외래키로덮어쓰기.

중복되는 자식 엔터티의 속성이 입력된 논리  물리명으로 업데이트됩니다자식 엔터티에 새롭게 추가되는 속성은 없습니다.

자식 엔터티에 생성될 외래키의 이름을변경하기.

중복되는 자식 엔터티의 기존 속성은 그대로 있고입력된 논리  물리명으로 새로운 속성이 추가됩니다.

자식 엔터티의 충돌 속성의 이름을 변경하고 외래키를 생성하기.

중복되는 자식 엔터티의 기존 속성은 입력된 논리  물리명으로 변경되고중복된 이름으로 새로운 속성이 추가 됩니다.


비식별 관계 생성


§   다대다 관계는 논리모델에서만 나타날 수 있는 관계입니다.

§   툴바 메뉴에서 [다대다관계 생성하기]를 클릭합니다.

§   다대다 관계를 생성할 엔터티를 서로 연결합니다. 논리 모델에서의 다대다 관계가 설정됩니다.

§   물리모델에서는 다대다 관계를 각각의 1대다 관계를 가지는 별도의 테이블을 생성하여 다대다 관계를 제거 하는 것이 일반적입니다. 이는 다대다 관계를 오른쪽 마우스 클릭하여 컨텍스트 메뉴에서 [다대다 관계를 식별관계로 변환하기] 메뉴를 통하여 별도의 테이블 생성이 가능합니다.


커스텀(Custom) 관계 생성



§   커스텀 관계는 물리모델에서만 나타납니다. 커스텀 관계 생성을 통해서 다양한 형태의 관계를 만들 수 있습니다.

§   툴바 메뉴의 커스텀 관계 생성을 클릭한 후 두 엔터티를 차례로 클릭하면 관계가 생성이 됩니다. 자기 참조 관계를 생성할 때는 동일한 엔터티를 두번 클릭하면 됩니다.

§   첫번째 엔터티는 부모 엔터티가 되고 두번째 엔터티는 자식 엔터티가 됩니다.

§   관계속성 편집창을 통해 커디널리티, 케스케이드, Null허용여부 등을 편집 할 수 있습니다.


자기참조 관계



§   자기참조 관계는 비식별관계로 형성됩니다.

§   툴바메뉴에서 [비식별관계 생성]을 클릭하고 자기 참조 관계를 설정할 엔터티를 클릭한 후 다시 한번 엔터티를 클릭합니다.

§   “자기 참조 관계 역할명 설정” 창이 나타나고 FK로 설정될 속성이 존재하면 외래키 목록에 속성정보가 나타납니다.

§   속성이 아직 없는 경우라면 (직접 입력)을 선택하고 역할 논리명, 역할 물리명을 직접 기입할 수 있습니다.

§   식별관계로 자기참조 관계를 설정하려고 하면 비식별관계로 생성할 것을 유도하는 메시지 창이 나타납니다.


서브타입 관계 생성




§   서브타입 관계는 툴바 메뉴의 [배타적 서브타입]을 이용하여 관계를 생성할 수 있습니다.

§   툴바 메뉴에서 [배타적 서브타입]을 클릭후 슈퍼타입 엔터티와 서브타입 엔터티 중 하나를 차례로 선택하면 첫번째 서브타입 관계가 설정이 됩니다.

§   다시 툴바메뉴에서 [배타적 서브타입]을 클릭한 후  모양을 선택 후 두번째 서브타입 엔터티를 선택하면 두개의 서브타입을 가진 슈퍼/서브타입을 작성 할 수 있습니다.

§   이 때 슈퍼타입의 기본키는 서브타입의 기본키로 상속됩니다.


서브타입 속성 편집



§   서브타입 관계를 선택한 후 오른쪽 마우스 클릭하여 컨텍스트 메뉴에서 서브타입 속성 편집을 선택합니다.

§   Exclusive와 Inclusive를 선택할 수 있고 Discriminator(구분자)를 선택할 수 있습니다.


서브타입을 식별 관계로 변환






§   서브타입 관계 선택 후 컨텍스트 메뉴의 [서브타입을 식별 관계로 변환]을 누르면 슈퍼/서브타입 관계가 식별 관계로 변환됩니다.


서브타입을 롤업하기

§   서브타입 관계 선택 후 컨텍스트 메뉴의 [서브타입을 롤업하기]를 누르면 서브타입 엔터티들의 모든 속성이 슈퍼타입 엔터티의 속성에 모두 포함되어지고 서브타입 엔터티들은 사라집니다.


서브타입을 롤다운하기

§   서브타입 관계 선택 후 컨텍스트 메뉴의 [서브타입을 롤다운하기]를 누르면 슈퍼타입의 모든 속성이 서브타입 엔터티들의 속성에 포함되어지고 슈퍼타입 엔터티는 사라집니다.


관계 삭제



§   삭제를 원하는 관계를 선택한 후 Delete 키를 누르면 관계 삭제 창이 나타납니다.

§   삭제 옵션을 선택하고 확인버튼을 클릭하면 관계는 삭제됩니다.

§   관계를 선택하고 오른쪽 마우스 클릭하여 컨텍스트 메뉴의 [관계 삭제하기]로도 수행 할 수 있습니다.


관계 속성 편집





§   삭제를 원하는 관계를 선택한 후 Delete 키를 누르면 관계 삭제 창이 나타납니다.

§   삭제 옵션을 선택하고 확인버튼을 클릭하면 관계는 삭제됩니다.

§   관계를 선택하고 오른쪽 마우스 클릭하여 컨텍스트 메뉴의 [관계 삭제하기]로도 수행 할 수 있습니다.


부모/자식 엔터티로 가기

§   관계를 선택하고 컨텍스트 메뉴에서 [부모 엔터티로 가기]를 클릭하면 부모 엔터티에 포커스가 활성화 됩니다.

§   반대로 [자식 엔터티로 가기]를 클릭하면 자식 엔터티에 포커스가 활성화됩니다.




 MicroDesigner 는 www.microdesigner.co.kr 에서 다운받을 수 있습니다.





ERD ER-Diagram ER다이어그램 데이터모델링 DataModeling Data-Modeling Entity 엔터티

DBMS MS-SQL Oracle Database Table 관계 식별관계 비식별관계 Indentifying-Relationship

SubType SuperType ERWin ER-Win ER 다이어그램 IDEF1X IE 데이타모델링 모델링 Modeling 

데이터베이스 데이타베이스 DB DB설계 DB구축 DB개발 DB디자인 DB DB도구 

데이터베이스설계 데이타베이스설계 데이터베이스구축 데이터베이스개발







반응형