1. 관계 정의 

관계란, 두 엔티티 사이의 논리적인 관계, 쉽게 표현해서 두 엔티티 간의 업무적인 연관성이라고 정의할 수 있다. 


 

1) 관계의 명명

이러한 관계를 정의할 때는 애매한 동사는 피하고 현재형으로 표현한다.

관계1.png

2) 관계차수(Cardinality)

두 개의 엔티티간 관계에서 참여자의 수를 표현하는 것.
1 : 1,   1 : M,   N : M 이 있다. 

■ 1 : 1 관계

관계2.png

한 개의 구매신청서에 대해 한 개의 구매주문을 신청한다.
한 개의 구매주문에 대해 한 개의 구매신청서 내용을 작성한다. 

■ 1 : M 관계

관계3.png

한 부서에는 여러 사원을 포함한다.
한 명의 사원은  부서에 소속된다. 

■ N : M 관계

관계4.png
 
하나의 주문에는 여러 개의 제품을 포함한다.
한 제품은 여러 개의 주문을 통해 주문된다.
 
  

3) 선택성

두 엔티티 간에 관계가 설정되었을 때, 항상 두 엔티티의 모든 인스턴스간에 관계가 존재해야 하는지(Mandatory) 아니면 모든 인스턴스에 대하여 존재할 필요가 없는지(Optional)를 나타낸다.

일반적이고 상식적인 선에서 먼저 판단한다.
 
관계5.png
 
각 부서에는 여러 사원을 포함할 지도 모른다. (Optional)
각 사원은 단 하나의 부서에 소속된다. (Mandatory)
 
 

2. 관계의 종류 

1) 정상 관계

엔티티와 엔티티가 독립적으로 분리되어 있으면서, 상호간에 한 가지 관계만 존재하는 형태관계6.png

2) 재귀적 관계

하나의 엔티티 내에서 엔티티와 엔티티가 관계를 맺고 있는 형태.

부서, 부품, 메뉴 등과 같이 계층 구조 형태를 표현할 때 유용하다.

관계7.png

부품은 다른 부품으로 조립된다. 

3) 병렬 관계

엔티티와 엔티티가 독립적으로 분리되어 있으면서 두 개 이상의 관계가 상호간에 존재하는 형태관계8.png

주문을 신청한 주문자로써의 관계와 주문한 물건을 받는 수신자로써의 관계 

4) 슈퍼타입 서브타입 관계

공통 속성을 가지는 슈퍼타입과, 공통 부분을 제외하고 두 개 이상의 엔티티간의 속성에 차이가 있을 때 별도의 서브타입으로 존재할 수 있다.

배타적 관계 : 슈퍼타입의 엔티티가 반드시 하나의 서브타입에는 속하는 관계

포함 관계 : 슈타타입의 엔티티가 두 개 이상의 서브타입에 포함될 수 있는 관계

관계9.png

직원은 반드시 일반직원이나 촉탁직원 중 하나에만 속할 수 있다.

인터넷 접수를 한 사람이 다시 방문 접수할 수 있다. 


슈퍼타입 서브타입 모델에서는 자료 원천 구분 표시(직원구분코드, 접수구분코드)가 반드시 있어야 한다.  


5) 식별 / 비식별 관계

식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 주식별자로 상속

비식별 관계 : 부모 엔티티의 주식별자가 자식 엔티티의 일반속성으로 상속 
관계10.png


 

3. 관계정의서 적성 

관계에서 중요한 세 가지는 방향, 관계차수( 1 : 1, 1 : N, N : M), 선택성(옵션, 필수) 이다. 

1) 다음과 같이 질문하는 것은 관계를 도출하는데 유용할 수 있다.


엔티티1.png            엔티티2.png           엔티티3.png                      

각각의    사원은                       한            부서에                      만                    속할 수 있습니까?

   각       부서에는               여러명의       사원이                    항상                  소속되어 있습니까? 


2) 관계 정의서 작성 

기준 엔티티      관계형태(방향, 관계차수, 선택성) 선택성   관련 엔티티 
회원 각각의 회원은 여러 번의 주문을 할 수 있다. 
각 주문은 한 회원에 의해 주문될 수 있다.
선택 
필수
주문
주문 각각의 주문에는 여러 개의 주문목록을 포함한다. 
각각의 주문목록은 하나의 주문내용에 포함된다.
필수 
필수
주문목록
주문목록 각각의 주문목록은 한 개의 도서와 연결된다. 
각각의 도서는 여러 주문목록에 주문될 수 있다.
필수 
선택
도서


  

3) 관계정의서를 이용하여 ERD를 그린다. 

관계11.png  

번호 제목 글쓴이 날짜 조회 수
공지 [기술 보고서 다운로드] IDC Technology Spotlight: 모델 기반 데이터 설계를 통한 비즈니스 민첩성 확보 방안 관리자 2015.08.24 8327
공지 ER/Studio Team Server(ER/Studio 용 웹포탈) 설치 및 사용자 가이드 손보라 2014.07.15 39527
공지 Repository 설치 및 사용 가이드 손보라 2014.05.27 50259
공지 ER/Studio Data Architect 설치 및 사용자가이드 관리자2 2012.01.27 52671
21 [기술백서] DB툴 선택시 고려사항 top10 관리자 2014.11.12 1636
20 [기술백서] 하루에 1시간을 벌 수 있는 10가지 방법 관리자 2014.11.12 1824
19 ERwin으로 작성된 모델을 ER/Studio로 마이그래이션하기 file 손보라 2015.01.12 2531
18 ER/Studio vs ERwin, 그 차이점을 발견해보세요! file 손보라 2015.02.06 5026
17 20150305 [온라인세미나] 스마트한 데이터모델링 with ER/Studio 발표자료 관리자 2015.03.09 4205
16 Embarcadero의 웹포탈인 TeamServer를 경험해보세요! 손보라 2015.03.17 4451
15 ER/Studio DA와 Team Server 연동하기 손보라 2015.03.17 4151
14 ER/Studio! MongoDB 지원 손보라 2015.03.19 4802
13 ER/Studio의 웹포탈인 TeamServer Core 사용해보기(호스팅/트라이얼) file 손보라 2015.04.08 4446
12 [매크로활용] [MySQL] 컬럼의 Definition을 DB Comment에 추가하기 file 손보라 2015.08.06 5456
11 [매크로활용] 매크로 사용방법 file 손보라 2015.08.11 4155
10 리버스 엔지니어링 후 엔터티/속성 논리명의 영문을 한글 변환 작업 [1] file 손보라 2015.08.12 4311
9 ER/Studio DA 네이밍 표준 템플릿(NST) 파일 생성 방법 file 손보라 2015.08.12 4527
8 자동 네이밍 스탠다드 기능으로 논리명<->물리명 자동 변환 file 손보라 2015.08.13 4460
7 MSSQL Server에 리파지토리 설치 시 "##tmp[테이블명] table could not initialize bulk insert" 문제 관리자 2015.09.04 5091
6 [발표자료] 20151203 엔터프라이즈 환경의 데이터모델 관리방안 관리자 2015.12.04 3950
5 ER/Studio 2016 출시 - 더욱 강력해진 엔터프라이즈 급 데이터모델링 도구 ER/Studio 2016 발표 손보라 2016.02.02 4788
4 ER/Studio 2016 출시 세미나 - 비즈니스 중심의 데이터 아키텍처 구축 손보라 2016.02.02 5108
3 [발표자료] 20160908 효과적인 데이터모델링을 위한 14가지 방법 [2] 관리자 2016.09.08 5329