ERD (Entity-Relationship Diagram)
ER모델을 이용해 현실세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것이다.
개체 – 관계 모델(ER 모델)?
개념적 데이터 모델로서 객체와 객체의 관계를 이용하여 현실 세계를 표현합니다.
중요한 요소: 객체, 속성, 관계
1. 객체(Entity)
사람이므로 사물, 개념, 사건 등 다른 개체와 구별되는 모든 것을 의미한다.
ER 다이어그램에서 정사각형로 표현해, 안에 이름을 작성한다.
2. 속성(Attribute)
개체나 관계가 가지고 있는 고유한 특성이다.
ER 다이어그램에서 타원로 표현해, 안에 속성명을 작성한다.
속성등의 경우, 추가적으로 속성의 분류에 의해, 보다 구체적으로는 ER다이어그램으로 표시가 가능합니다.
단일값 속성과 다중값 속성
속성값의 수로 분류할 수 있다.
단일 값 속성: 하나의 값만 가질 수 있는 속성 => 타원로 표현
EX) 고객 개체 이름, 적립금
다중값 속성: 여러 값을 가질 수 있는 속성 => 이중 타원로 표현
EX) 고객 개체 연락처, 도서 개체 작성자
단순 및 복합 속성
의미의 분해 가능성으로 분류할 수 있다.
간단한 속성: 의미를 더 분해할 수 없는 속성
EX) 고객 개체 적립금, 도서 개체 이름 또는 가격
복합 속성: 의미를 분해할 수 있는 속성 => 속성에 속성표현
EX)고객 오브젝트의 주소는, 도도부현, 시정촌, 히가시구 등에서 의미 분해 가능하고, 생년월일 속성도 년, 월, 일에 분해 가능
유도 속성
기존의 다른 속성으로부터 도출되어 결정할 수 있는 속성이며, 값은 별도로 보존되지 않는다.
=> 점선 타원로 표현
EX) 본 개체의 가격과 할인율 속성으로 판매 가격 속성을 계산 가능하며 출생년도에 연령 속성 결정 가능.
키 속성
각 오브젝트 인스턴스를 식별(구별)하는 데 사용되는 속성. => 속성 이름의 밑줄로 표현
EX) 고객 객체의 고객 ID 속성
3. 관계
오브젝트와 오브젝트가 연결되어 있는 관계(관련성)를 의미하고, 오브젝트 세트 간의 대응 관계, 매핑을 의미한다.
=> 마름모로 표현
관계도 속성을 가질 수 있으며 두 엔티티 사이에 여러 관계가 있을 수 있습니다.
EX) 고객 오브젝트와 책 오브젝트가 연결되어 있는 구매 관계에서 ‘고객이 책 구매’를 표현
관계 유형
매핑 카디널리티를 기반으로 관계 유형을 분류할 수 있습니다.
* 맵핑 카디널리티: 관계가 있는 두 오브젝트 세트의 각 오브젝트 인스턴스가 연관된 상대 오브젝트 세트의 인스턴스 수
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 모델의 다른 표기법입니다.
기본 표기법
표기법
ER 다이어그램 신발 표기 변환
Department와 Project는 Manages라는 관계를 가지고 있다.
Department는 Project를 선택적 참여로 가지지 않고, 가지고 있으면 N개 가질 수 있다.
Project는 Department에 본질적으로 참여해야 한다.
Project는 Department 없이 존재할 수 없습니다.
부문을 하나만 가지고 있다.