Entity-Relationship (ER) Model
개념 스키마를 설계할 때 가장 인기있게 사용되는 모델로 표준으로 정해져 있진 않지만 거의 표준으로 가장 많이 사용된다.
데이터베이스 설계 과정

ERD 예시

Entity
독립적인 존재를 갖는 실세계의 어떤 것이다. ex) 사람, 자동차 칩, 회사...
Attribute
객체를 설명하기 위한 정보
- simple / composite
- single-valued / multivalued
- stored / derived 인지에 따라 나뉜다.
Entity Type과 Entity Set
Entity Type : 동일한 attribute를 갖는 attribute들의 집합을 위한 타입을 설명하는 것이다.
이름과 속성 정보로 표현되며 schema 또는 intension 정보에 해당된다.
ERD에서는 사각형 박스 안에 이름을 넣어 표현한다.
Entity Set : 특정 시점에서 동일한 Entity Type을 갖는 모든 개체들의 집한을 말한다. (extension 정보에 해당한다.)
* Entity 이름이 주어지면 문맥에 따라 Entity Type인지 Entity Set인지 아님 한 개체를 의미하는 것인지 파악해야 한다.
Key 속성
entity를 구별하기 위한 속성이다. 따라서 유니크 제약조건이 만족해야 한다. ex) 주민번호
Composite Key : 키를 구성하는 속성이 여러개일 경우를 말한다. 미니멀 속성을 갖어야 한다.
Weak entity type: entity 안에 키가 없는 경우를 말한다.
Relationships
개체 타입간의 참조 관계를 말한다. ex) 직원은 부서에서 일한다.
ERD에서 다이아몬드 안에 이름을 넣어 표현한다.
관계성의 차수: 관계에 참여하고 있는 entity type의 수를 말한다. (binary, ternary, ... n-ary)
binary 가 가장 일반적이다.
Relationship Constrints
관계성에도 제약 조건을 갖는다. (상대방에 표시)
Cardinality ratio (대응수)
관계성에 참여하는 개체의 수를 정의한다. (1:1 , 1:N , N:1 , M:N) -> 상대방 쪽에 표시

해석: EMPLOYEE 는 하나의 DEPARTMENT에서 일하고, DEPARTMENT에는 여러 EMPLOYEE 가 일할 수 있다.
participation (참여)
참여 제약조건은 관계에 꼭 참여해야 하는 지 상관없던 지를 알 수 있다
TOTAL : 전체 참여 (두줄 표시)
PARTIAL : 부분 참여 (한줄 표시) -> 내쪽에 표시

해석: EMPLOYEE 는 DEPARTMENT 를 관리할 수도 있고 안 할 수도 있다. DEPARTMENT 에는 관리하는 직원이 반드시 1명 있어야 한다.
Relationship Type의 속성
Relationship Type 도 속성을 갖을 수 있으며 Relationship Type에 있는 속성을 Entity 쪽으로 옮길 수 있다.
1:1일 경우에는 어떤쪽이든 옮기는데 상관이 없지만
1:N 이나 N:1 일 경우에는 N쪽으로 속성을 옮겨야 한다.
N:M은 옮길 수 없다.
왜?
직원 : 부서 = N : 1 관계에서 startDate 속성을 생각해보면 직원 입장에서는 자신이 속한 부서가 하나라 시작 날짜가 1개 이지만 부서는 시작 날짜가 여러개를 갖기 때문에 어느 직원이 언제 시작했는지 알 수 없다.
Weak Entity
키 속성이 없는 개체를 말한다.
따라서 자신을 식별하기 위해 도와주는 개체가 필요한데 이 Entity를 식별 개체 또는 주인 개체라 부른다.
도와주는 개체와 weak Entity를 연결해주는 관계가 있는데 이 관계를 identifying relationship이라 부른다. (식별 관계)
자신을 식별할 관계가 반드시 있어야 하기 때문에 항상 TOTAL 관계이다. (존재종속)
주인 개체 쪽 대응 관계는 반드시 1이여야 한다.
반대로 키가 있는 경우에는 Regular (or Strong) entity type이라 부른다.

MIN / MAX NOTATION
(min, max) 로 대응 관계를 표현할 수 있다. 자기쪽에 있는 min/max로 해석한다.

해석: EMPLOYEE는 대응되는 DEPARTMENT가 최소 0개에서 최대 1개이고, DEPARTMENT는 반드시 1개이다.
DEPARTMENT는 전체 참여이고 EMPLOYEE는 부분 참여이다.
'CS > 데이터베이스' 카테고리의 다른 글
| [데이터베이스 기초] 정규화 정리 (1) | 2023.10.17 |
|---|---|
| [데이터베이스 기초] 관계대수식 정리 (1) | 2023.10.16 |
| [데이터베이스 기초] SQL의 VIEW 정리 (0) | 2023.10.16 |
| [데이터베이스 기초] SQL CREATE ASSERTION 과 TRIGGER 정리 (1) | 2023.10.15 |
| [데이터베이스 기초] 복잡한 질의 정리 (WITH, CASE, Recursive Queries) (1) | 2023.10.15 |