Coding Planet

[DB Modeling]ERwin Data Modeler 사용법, 식별/비식별 관계, 다대다 관계, 재귀(순환형)관계, 슈퍼타입/서브타입 본문

DB, SQL

[DB Modeling]ERwin Data Modeler 사용법, 식별/비식별 관계, 다대다 관계, 재귀(순환형)관계, 슈퍼타입/서브타입

jhj.sharon 2023. 3. 8. 15:57
반응형
워낙 오래된 프로그램이라 자료가 별로 없어서 사용 방법을 확인하시라고 올린다.
해당 프로그램은 Logical / Physical 모델로 분리되어 있어서 각각의 언어에 따라 다이어그램 표현이 상이하다.
Design Layer Architecture로 변경가능하다.

 

1. ERwin 사용하기

 

1. 새 파일 만들기

 

 

 

 

 

2. 특성 바꾸기

 

1) 파일 이름 설정하기

 

2)Notation에서 표기방식 IE로 설정하기

 

 

 

 

3. 엔티티 만들기

- Enter: 이름/기본키/속성에서 빠져나가기

-Tab : 다음으로 넘어가기

- 더블클릭: 편집

- F2 : 속성 이름 바꾸기

 

 

 

4. 각 속성의 자료형 설정하기(도메인)

 

- 아래 예시에서는 이미 모든 속성을 만들었지만 오른쪽 클릭->Attribute에서 새로운 속성을 만들 수 도 있다. 

- 이렇게 새로운 속성을 만들면서 자료형을 지정할 수 도 있고, tab키를 이용해 엔티티를 만들 때 속성명을 모두 지정한 뒤

   attribute 창에서 Domain을 지정할 수 도 있다.

- 도메인(Domain) : 속성의 값, 타입, 제약사항등에 대한 값의 범위

 -모든 속성에 그 특성에 맞게 자료형을 지정해준다.

 

 

 

 

 

5. 식별관계, 비식별 관계

 

- 식별 관계(Identifying Relationship): 부모 테이블의 기본키가 자식 테이블의 기본키 혹은 후보키 그룹의 구성원으로 전이되는 것 -> (부모테이블) 사원 엔티티, (자식테이블) 신체정보 엔티티

- 비식별 관계(Not Identifying Relationship): 부모 테이브릥 기본키가 자식 테이블의 일반 칼럼으로 전이되는 것

-> (부모테이블) 부서 엔티티, (자식테이블) 사원 엔티티

 

 

  • 관계에 대한 옵션 설정: 부서 테이블과 사원 테이블 간의 관계선을 선택한 후 오른쪽 클릭해서 Relationship Properties 메뉴 선택
  • Verb Phrase에서 각 관계에 대한 설명을 입력한다
  • Relationship Type은 부서 테이블과 사원 테이블의 관계 유형이 비식별 관계이므로 Non-Identifying이 선택되었다.

 

 

 

 

 

  • 관계 옵션을 설정한 뒤 바탕화면에서 오른쪽 버튼을 누르면 뜨는 팝업 메뉴의 Relationship Display로 설정

 

 

 

 

 

6. 다 대 다 관계 정의

 

1) 다 대 다 관계는 부모자식 관계가 아니므로 순서에 상관없이 ER-Win Toolbox에서 다 대 다 관계선을 선택하여 연결

 

 

 

 

2) 다대다 관계를 1 대 다 관계로 바꾸기 위해서는 관계선에서 오른쪽 클릭 후  팝업 메뉴에서 'Create Association Entity'를 선택하거나 다 대 다 관계선을 선택한 후 ‘ERWin Transform Toolbar’에서 ‘Many to Many Transform’버튼을 클릭하면 마법사가 나타난다.

 

 

 

 

3) 다음 버튼을 누르면 새롭게 추가될 교차 실체의 실 체명을 정의하는 대화상자가 나온다. 여기서 Entity Name에 ‘입고’라고 정의한후 다음 버튼을 선택한다.

 

 

 

4) Transform Name을 정의하는 대화상자가 나타나면 기본값으로 설정한 뒤 다음 버튼을 누른다

 

 

 

 

 

5) 현재 작업에 대한 정보가 나오면 마침 버튼 을 누르고 작업을 완료한다.

 

 

 

  • 공급업체/상품 테이블의 다대다 관계가 해소되어 교차 실체가 정의(입고)된 모습

 

  • 상품/회원 테이블간의 다 대 다 관계가 해소되어 판매엔티티를 정의한 모습

 

 

  • 모든 관계선을 차례대로 선택한 후 오른쪽 버튼의 ‘Relationship Properties..’메뉴를 선택한 후 Relationships대화상자에서 ‘Non-Indentifying’옵션 과 ‘No Nulls’옵션을 선택한다.

 

 

 

  • 입고/판매 테이블의 속성들을 추가하여 다이어그램을 완성한다

 

 

 

 

 

 

7. 재귀적 관계 정의(순환관계, Recursive Relationship)

- 비식별 관계선을 이용하여 자기 자신과 관계를 맺는 재귀적 관계를 정의한다.

- 동일한 PK를 가진 테이블을 별도로 분리하는 복합형(다중Entity)과 Entity타입 내에서 자기자신을 참조하는 통합형(단일 Entity)으로 나뉜다.

 

  • Rolename 정의 ⇒ Relationships 대화상자에서 Rolename 탭을 선택한 후 Rolename입력상자에 ‘직속상사번호’를    기술 (‘직속상사번호’라는 속성이 FK로 전이됨)

 

 

 

 

 

 

 

 

8. 슈퍼타입과 서브타입

 

  • 슈퍼타입 엔티티란 상호 배타적인 더 작은 그룹으로 분할되는 엔티티를 의미한다
  • 슈퍼타입 내의 분해된 그룹을 서브타입 엔티티라고 한다
  • 하나의 엔티티에서 배타적인 관계를 파악하고 이를 각각의 실체로 정의하고자 했을 때 각각의 실체에 공통되는 속성들을 모아놓은 엔티티를 슈퍼타입으로 개별적인 속성들을 따로 분리해서 각각의 서브타입으로 정의할 수 있다.
  • 예를 들어 아래 그림과 같이 사원 엔티티가 있다고 하면, 한 회사에는 정규직 사원과 임시직 사원이 있을 수 있다. 일반적으로 정규직 사원은 연봉으로 임시직 사원 은 월급이나 수당으로 급여내역이 정의되므로 하나의 레코드에 입력될 경우 정규직은 월급과 수당에, 임시직은 연봉에 Null 값이 입력될 것이다.

 

 

1) 우선 아래와 같이 사원, 정규직, 임시직 엔티티를 만든다.

 

 

 

2) 슈퍼타입과 서브타입에 관한 정의는 ERWin Roolbox의 ‘Exclusive sub-category’버튼을 이용 한다.

 

3) ‘Exclusive sub-category’ 버튼을 선택하고 슈퍼타입을 먼저 선택한 후 서브타입 중에 하나인 정규직 엔티티를 선택하면 다음과 같은 모습이 된다

 

 

 

 

 

4) 슈퍼타입과 서브타입의 관계 설정은 Exclusive-sub Category 버튼을 누른 상태로 중간에 있는 교차점을 선택한 후 임시직 엔티티를 선택하면 다음과 같이 슈퍼타입과 서브타입의 관계가 형성된다

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
Comments