본문 바로가기

Archived(CSE Programming)/Database(Oracle)

ER 다이어그램(ER Diagram)

1. 정의

ER diagram 이란 Entity-Relationship Model을 표현하는 것으로,

현실세계의 요구사항(Requirements)들로 부터 Database를 설계과정에서 활용된다.

즉, 개념을 모델링하는 것으로 개체(entity)와 속성(attribute), 관계성(relationship) 을 표현한다.

일반적으로, Peter Cheng's Notation으로 표현한다(기타 방법은 맨 아래 참고)

 

1) 개체(Entities)

  • 표현할 정보를 가지고 있는 독립적인 객체 또는 실체

  • 비슷한 속성의 개체 타입을 구성하며 개체 집합으로 묶임
  • 약한 개체(Weak Entity) : 고유적으로 구분될 정보를 가지고 있지 않은 개체. 이러한 Weak Entity는 의존하고 있는 주인 개체(Owner Entity)가 존재하며, Weak Entity의 구분자는 (Owner Entity의 구분자, Weak Entity의 Partial key) 로 구성된다. 

 

2) 속성(Attributes)

  • 속성은 개체(Entity)가 지니고 있는 특성, 성질 (ex. 학생(개체)의 학번, 학과 등 )
  • 속성은 기본적으로 타원으로 표현하며 개체(직사각형)와 실선으로 연결

  • 속성 도메인(Attribute Domain)이란 해당 속성이 가질 수 있는 집합 (ex. 성별(속성)의 도메인 : 남, 여)
  • Key attribute는 개체를 고유적으로 구분할 수 있는 속성 (ex. 사원 - 사번, 국민 - 주민등록번호 등)
  • Multivated attribute는 속성값이 여러 개 존재할 수 있는 속성 (ex. 부서의 위치가 1층과 4층 등 여러 곳에 존재할 수 있다면 Location 속성은 다중값 속성이 될 수 있음)
  • Partial key attribute는 약한 개체를 구분할 수 있는 속성
  • Composite attribute는 여러 속성들이 함께 구성하고 있는 속성(ex. FamilyName + FirstName = Name ) 
  • Derived attribute는 다른 속성으로부터 유도되어 가지게 된 속성 (ex. 전체 직원 수 속성, 직원 월급 속성 으로 부터 유도된 전체 직원 총 월급 예산 속성)

 

3) 관계성(Relationship)

  • 관계성은 ER Diagram의 가장 큰 목적 중의 하나로 개체(Entity)들 간의 관계를 표현
  • 관계를 통해 Entity를 이해하고, DB를 이해할 수 있다.
  • Strong Relationship은 개체가 다른 개체를 통해 존재할 수 있는 의존적인 관계를 뜻한다(부모 개체가 있어야 자식 개체도 존재 가능한 경우) 마름모로 표현
  • Weak Relationship은 개체가 다른 개체와 독립적으로 존재할 수 있는 독립적인 관계를 뜻한다(부모 개체와 상관없이 자식 개체가 존재 가능한 경우) 이중 마름모로 표현

 

  • Participation constraints(참여 제약 조건) : 전체참여(Total Participation)와 부분참여(Partial Participation)으로 나뉜다. 전체참여는 관계에 개체 집합의 모든 개체가, 부분 참여는 일부의 개체만 참여하는 것이다.
  • 다시 말해, 전체참여는 관계 (최솟값, 최댓값)에서 최솟값 >=1 , 부분참여는 최솟값 >=0 을 뜻한다.
  • Degree of Relationship(Cardinality) : 차수라고도 표현되는 관계의 정도는 1:1(One to One), 1:N(One to Many), N:1(Many to One), M:N(Many to Many)가 있다.

 

 


참고)

1. Crow's Foot Notation 

관계성 표현법이 까마귀 발처럼 생겨서 이렇게 부른다.

2. Barker's Noation

3. UML class notation

'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글

B+ Tree의 삽입  (0) 2019.10.16
Oracle Table Index  (0) 2019.10.16
관계대수 & 관계해석  (0) 2019.09.28
System Catalog 대상 SQL문  (0) 2019.09.20
Oracle 연동 및 접속하기  (0) 2019.09.19