Git & CS

ER 다이어그램 / 새발 표기법

승민아 2023. 3. 17. 19:13

ERD (Entity-Relationship Diagram)

ER모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.

 

개체-관계 모델(E-R model)?

개념적 데이터 모델로써 개체와 개체 간의 관계를 이용하여 현실 세계를 표현함.

핵심 요소: 개체, 속성, 관계

 

1. 개체(Entity)

사람이니 사물, 개념, 사건 등 다른 개체와 구별되는 모든 것을 뜻한다.

ER 다이어그램에서 사각형으로 표현하고 안에 이름을 작성한다.

고객 개체

2. 속성(Attribute)

개체나 관계가 가지고 있는 고유한 특성이다.

ER 다이어그램에서 타원으로 표현하고 안에 속성 이름을 작성한다.

속성

 

속성 같은 경우 추가적으로 속성의 분류하여 더욱 구체적으로 ER다이어그램에서 표시가 가능하다.

단일 값 속성과 다중값 속성

속성 값의 개수로 분류할 수 있다.

단일 값 속성: 값을 하나만 가질 수 있는 속성 => 타원으로 표현

EX) 고객 개체의 이름, 적립금

 

다중 값 속성: 값을 여러 개 가질 수 있는 속성 => 이중 타원으로 표현

EX) 고객 개체의 연락처, 책 개체의 저자

다중 값 속성: 연락처

단순 속성과 복합 속성

의미의 분해 가능성으로 분류할 수 있다.

 

단순 속성: 의미를 더 분해할 수 없는 속성

EX) 고객 개체의 적립금, 책 개체의 이름 또는 가격

 

복합 속성: 의미를 분해할 수 있는 속성 => 속성에 속성을 표현

EX) 고객 개체의 주소는 도, 시, 동 등으로 의미 분해 가능하며 생년월일 속성도 연, 월, 일로 분해 가능

복합 속성: 생년월일

 

유도 속성

기존의 다른 속성으로부터 유도되어 결정할 수 있는 속성이며 값이 별도로 저장되지 않는다. => 점선 타원으로 표현

EX) 책 개체의 가격과 할인율 속성으로 판매가격 속성을 계산 가능하며 출생연도로 나이 속성 결정 가능하다.

유도 속성: 판매 가격

 

키 속성

각 개체 인스턴스를 식별(구별)하는 데 사용되는 속성이다. => 속성 이름에 밑줄로 표현

EX) 고객 개체의 고객 아이디 속성

키 속성: 고객 아이디

 

3. 관계

개체와 개체가 맺고 있는 관계(연관성)를 뜻하며 개체 집합 사이의 대응관계, 매핑을 의미함. => 마름모로 표현

관계 또한 속성을 가질 수 있고, 두 개체 사이에 둘 이상의 관계가 존재할 수 있다.

EX) 고객 개체와 책 개체가 맺고 있는 구매 관계로 '고객이 책을 구매한다' 를 표현

관계: 구매관계

관계의 유형

매핑 카디널리티(mapping cardinality)를 기준으로 관계의 유형을 분류할 수 있다.

*매핑 카디널리티: 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

 

1. 일대일(1:1) 관계

A 개체의 인스턴스가 B 개체의 인스턴스 하나와 관계를 맺을 수 있고,

B 개체의 인스턴스 또한 A 개체의 인스턴스 하나와 관계를 맺을 수 있다.

일대일 관계: 남편과 아내 개체의 혼인 관계

 

2. 일대다(1:N) 관계

A 개체의 인스턴스가 B 개체의 인스턴스 여러 개와 관계를 맺을 수 있지만,

B 개체의 인스턴스는 A 개체의 인스턴스 하나와 관계를 맺을 수 있다.

일대다 관계: 부서와 사원 개체의 소속 관계

 

3. 다대다(N:M) 관계

A 개체의 인스턴스가 B 개체의 인스턴스 여러 개와 관계를 맺을 수 있고,

B 개체의 인스턴스 또한 A 개체의 인스턴스 여러 개와 관계를 맺을 수 있다.

다대다 관계: 고객과 책 개체의 구매 관계

 

관계의 참여 특성

1. 필수적 참여(전체 참여)

모든 개체 인스턴스가 관계에 반드시 참여해야 함을 의미 => 이중선으로 표현

EX) 고객 개체가 책 개체와 구매 관계에 필수적으로 참여 '모든 고객은 책을 반드시 구매' 또는 교수와 학과 관계

필수적 참여 관계: 고객 개체의 필수적 참여 관계

 

2. 선택적 참여(부분 참여)

일부 개체 인스턴스만 관계에 참여해도 되는 것을 의미

EX) 고객이 책 구매하지 않을 수 있음 또는 학생 - 수강 - 과목 관계

 

관계의 종속성

1. 약한 개체

다른 개체의 존재 여부에 의존적인 개체 => 이중 사각형으로 표현

+ 약한 개체가 강한 개체와 맺는 관계는 이중 마름모로 표현

 

2. 강한 개체

다른 개체의 존재 여부를 결정하는 개체

 

관계 종속성: 약한 개체인 부양가족 개체

부양가족 개체는 직원 개체에 종속적이며 직원 없이 부양 가족 개체는 존재할 수 없습니다.

 

+ 부분 키 애트리뷰트

약한 개체를 구별할 수 있는 키이다. 

일반 키는 실선 밑줄로 표시했지만 약한 개체의 키는 점선 밑줄로 표시한다.

부분 키 속성: 부양 가족에 이름을 통해 식별

 

새발 표기법

ER 모델의 다른 표기법이다.

 

기본 표기법

'하나'(1)를 의미

 

'0'을 의미

 

'여럿'(many)을 의미

 

표기법

개체 A와 개체 B가 반드시 한개씩 존재

 

개체 A는 한개 존재하고 개체 B는 없거나 한개만 존재

 

개체 A가 한개 존재하면 개체 B는 반드시 여러개 존재

 

개체 A가 한개 존재하면 개체 B는 1개 이상 존재

 

개체 A가 한개 존재하면 개체 B는 없거나 1개이상 존재

 

ER 다이어그램의 새발 표기법 변환

변환(1)
변환(2)

 

변환(3)

 

변환(4)

 

최종 변환 결과

Department와 Project는 Manages라는 관계를 갖는다.

Department는 Project를 선택적 참여로써 안 가질 수 있고 가진다면 N개 가질 수 있다.

Project는 Department에게 필수적으로 참여해야 한다. Project는 Department 없이 존재할 수 없다. 부서를 한 개만 갖는다.