ERD (Entity Relationship Diagram)
개체 (Entity)와 관계 (Relationship)를 중점적으로 표시하며 데이터베이스 구조를 한 눈에 알아보기 위한 다이어그램을 말합니다.
요구사항 분석에서 얻은 개체와 속성들의 관계를 그림으로 표현한 것으로 개체 관계도라고도 합니다.
구성 요소
엔티티 (Entity)
엔티티는 정의 가능한 사물 또는 개념으로 사람도 될수 있으며 프로필이나 도서정보와 같은 무형의 정보도 가능합니다.
논리적 데이터 모델링 단계에서 데이터베이스의 테이블로 표현되는 것입니다.
속성 (Attribute)
속성은 데이터베이스의 테이블의 각 필드(컬럼)들로 표현되는 것으로 엔티티는 속성(Attribute)들로 이루어집니다.
예를들면 학생 엔티티라면 학번, 이름, 주소, 전공 ..등 속성들이 있습니다.
도메인(Domain)
도메인은 속성의 값, 타입, 제약사항 등에 대한 갑의 범위를 표현하는 것입니다.
이때 데이터 타입을 명시할때, 데이터베이스가 지원하는 타입에 맞게 해야한다.
엔티티 종류
저장하는 데이터 정보 주제에 따라 종류가 다양합니다.
구분을 잘 해주어야 데이터베이스 설계에 있어 각 데이터 주제에 맞게 모델링을 구축할 수 있습니다.
유형 엔티티
물리적인 형태
(고객, 상품, 거래처, 학생, 교수 등)무형 엔티티
물리적인 형태가 없고 개념적으로만 존재하는 형태
(인터넷 장바구니, 부서 조직 등)문서 엔티티
업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
(거래명세서, 주문서 등)이력 엔티티
업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
(입고 이력, 출고 이력, 구매 이력 등)코드 엔티티
무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티 (국가코드, 각종 분류 코드)
ERD 표기법
피터 첸 표기법 (Peter-Chen)
가장 기본적인 표기법으로 이중 E-R모델을 제안한 피터 첸의 표기법입니다.
실무에서는 보통 사용되지 않는 방법이다.
그림과 같이 Entity 는 직사각형, Attribute 는 타원, Relation 은 마름모로 도식화합니다.
까마귀 발 표기법(Crow’s Feet)
실무에서 가장 많이 사용되는 방식으로, ERWin 과 같은 여러 CASE 툴에서 가장 많이 지원하는 표기법입니다.
IE 표기법, 바커 표기법 등 다양한 형태로 변형이 존재하며, 실무에서 가장 많이 사용되는 IE 표기법에 대해 알아보겠습니다.
IE 표기법
관계에서 다를 표현하기 위해 까마귀 발을 사용하는 까마귀 발 표기법 중 하나로 데이터 분석(Data Analysis)과 데이터베이스 설계(Database Design)를 위한 매우 유용한 기법입니다.
ERD 키와 제약 조건 표기법
주 식별자 (Primary Key)
중복이 없고 NULL 값이 아닌 유일한 값을 말합니다.
◆ 다이아몬드나 열쇠로 표시하며 다른 속성과의 명확한 구분을 위해 구분선을 표시하기도 합니다.
NOT NULL
해당 속성에 NULL 값을 비허용한다면, N 혹은 NN을 표시합니다.
외래 식별자 (Foreign Key)
외래 식별자 역시 key의 일종이므로 ◆ 다이아몬드나 열쇠로 표시합니다.
외래 식별자를 표시할 때에는 선을 이어 개체와 관계를 표시합니다.
ERD 엔티티 관계 표기법
두 엔티티 관계에서 부모의 Key를 자식에서 주 식별자(Primary Key)로 사용하는지 일반 속성으로 사용하는지에 따라서 실선과 점선으로 나누어 표시합니다.
식별자 관계 (실선)
부모 자식 관계에서 자식이 부모의 주 식별자 (PK) 를 외래 식별자 (FK) 로 참조해서 자신의 주 식별자로 사용하는 관계
비식별자 관계 (점선)
두 엔티티 관계에서 부모의 주 식별자 (PK) 를 외래 식별자 (FK) 로 참조해서 일반 속성으로 사용하는 관계
관계차수 (Cardinality)
두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것을 관계차수(Cardinality)라고 합니다.
가장 일반적인 관계차수 표현방법은 1 : 1, 1 : N, M : N입니다.
엔티티간의 1 대 다의 관계를 표기 하기 위해 ERD에서는 선의 끝 모양을 다르게 표시하는 방법을 사용합니다.
관계 예시 - 1 : N
M : N 관계
데이터 모델링에서는 M:N 관계를 완성되지 않은 모델로 간주하여, 두 엔티티의 관계를 1 : N, N : 1로 조정하는 작업이 필요합니다.
두 엔티티의 관련성을 표현하기 위해서 두 엔티티의 공유 속성 역할을 하는 중간 엔티티를 설정합니다.
관계의 참여도 (Optionality)
관계선 각 측의 끝자락에 기호를 표시해 참여도를 구분합니다.