Home ER 다이어그램
Post
X

ER 다이어그램

ERD (Entity Relationship Diagram)

개체 (Entity)관계 (Relationship)를 중점적으로 표시하며 데이터베이스 구조를 한 눈에 알아보기 위한 다이어그램을 말합니다.

요구사항 분석에서 얻은 개체와 속성들의 관계를 그림으로 표현한 것으로 개체 관계도라고도 합니다.


구성 요소

  • 엔티티 (Entity)

    엔티티는 정의 가능한 사물 또는 개념으로 사람도 될수 있으며 프로필이나 도서정보와 같은 무형의 정보도 가능합니다.

    논리적 데이터 모델링 단계에서 데이터베이스의 테이블로 표현되는 것입니다.

  • 속성 (Attribute)

    속성은 데이터베이스의 테이블의 각 필드(컬럼)들로 표현되는 것으로 엔티티는 속성(Attribute)들로 이루어집니다.

    예를들면 학생 엔티티라면 학번, 이름, 주소, 전공 ..등 속성들이 있습니다.

  • 도메인(Domain)

    도메인은 속성의 값, 타입, 제약사항 등에 대한 갑의 범위를 표현하는 것입니다.

    이때 데이터 타입을 명시할때, 데이터베이스가 지원하는 타입에 맞게 해야한다.


엔티티 종류

저장하는 데이터 정보 주제에 따라 종류가 다양합니다.

구분을 잘 해주어야 데이터베이스 설계에 있어 각 데이터 주제에 맞게 모델링을 구축할 수 있습니다.

  • 유형 엔티티

    물리적인 형태
    (고객, 상품, 거래처, 학생, 교수 등)

  • 무형 엔티티

    물리적인 형태가 없고 개념적으로만 존재하는 형태
    (인터넷 장바구니, 부서 조직 등)

  • 문서 엔티티

    업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
    (거래명세서, 주문서 등)

  • 이력 엔티티

    업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
    (입고 이력, 출고 이력, 구매 이력 등)

  • 코드 엔티티

    무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티 (국가코드, 각종 분류 코드)

Entity-ex


ERD 표기법

  • 피터 첸 표기법 (Peter-Chen)

    가장 기본적인 표기법으로 이중 E-R모델을 제안한 피터 첸의 표기법입니다.

    실무에서는 보통 사용되지 않는 방법이다.

    그림과 같이 Entity 는 직사각형, Attribute 는 타원, Relation 은 마름모로 도식화합니다.

    • 간단 예시

      Peter-Chen

  • 까마귀 발 표기법(Crow’s Feet)

    실무에서 가장 많이 사용되는 방식으로, ERWin 과 같은 여러 CASE 툴에서 가장 많이 지원하는 표기법입니다.

    IE 표기법, 바커 표기법 등 다양한 형태로 변형이 존재하며, 실무에서 가장 많이 사용되는 IE 표기법에 대해 알아보겠습니다.


IE 표기법

관계에서 다를 표현하기 위해 까마귀 발을 사용하는 까마귀 발 표기법 중 하나로 데이터 분석(Data Analysis)과 데이터베이스 설계(Database Design)를 위한 매우 유용한 기법입니다.

IE


ERD 키와 제약 조건 표기법

  • 주 식별자 (Primary Key)

    중복이 없고 NULL 값이 아닌 유일한 값을 말합니다.

    ◆ 다이아몬드열쇠로 표시하며 다른 속성과의 명확한 구분을 위해 구분선을 표시하기도 합니다.

  • NOT NULL

    해당 속성에 NULL 값을 비허용한다면, N 혹은 NN을 표시합니다.

  • 외래 식별자 (Foreign Key)

    외래 식별자 역시 key의 일종이므로 ◆ 다이아몬드열쇠로 표시합니다.

    외래 식별자를 표시할 때에는 선을 이어 개체와 관계를 표시합니다.

key-ex


ERD 엔티티 관계 표기법

두 엔티티 관계에서 부모의 Key를 자식에서 주 식별자(Primary Key)로 사용하는지 일반 속성으로 사용하는지에 따라서 실선과 점선으로 나누어 표시합니다.

  • 식별자 관계 (실선)

    부모 자식 관계에서 자식이 부모의 주 식별자 (PK) 를 외래 식별자 (FK) 로 참조해서 자신의 주 식별자로 사용하는 관계

  • 비식별자 관계 (점선)

    두 엔티티 관계에서 부모의 주 식별자 (PK) 를 외래 식별자 (FK) 로 참조해서 일반 속성으로 사용하는 관계


관계차수 (Cardinality)

두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것을 관계차수(Cardinality)라고 합니다.

가장 일반적인 관계차수 표현방법은 1 : 1, 1 : N, M : N입니다.

엔티티간의 1 대 다의 관계를 표기 하기 위해 ERD에서는 선의 끝 모양을 다르게 표시하는 방법을 사용합니다.

  • 관계 예시 - 1 : N

    1 : M

  • M : N 관계

    데이터 모델링에서는 M:N 관계를 완성되지 않은 모델로 간주하여, 두 엔티티의 관계를 1 : N, N : 1로 조정하는 작업이 필요합니다.

    두 엔티티의 관련성을 표현하기 위해서 두 엔티티의 공유 속성 역할을 하는 중간 엔티티를 설정합니다.

    M : N


관계의 참여도 (Optionality)

관계선 각 측의 끝자락에 기호를 표시해 참여도를 구분합니다.

symbol

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.