Entity-Relationship 모델
- ER 모델은 아래와 같은 과정으로 모델링:
- 미니월드의 요구사항을 수집, 분석해 데이터 요구사항을 얻는다.
- 요구사항을 바탕으로 개념적 설계를 해 모델을 만든다: ER Diagram
- 개념적 모델을 기반으로 논리적 모델을 만든다: Relational Model
- DB를 구현해 데이터베이스를 구축한다.
- Entity: 데이터베이스에 표현되는 미니월드의 특정 개체.
- Attribute: 엔티티를 묘사하는 속성.
- Simple: 원자적 값을 가진 속성.
- Composite: 여러 속성들로 구성된 속성.
- Multi-valued: 여러 값을 가진 속성.
- Entity type: 같은 기본 속성들로 그룹핑되거나, 하나의 엔티티 타입으로 타이핑되는 엔티티. (e.g., EMPLOYEE, PROJECT)
- Key attribute: 엔티티 타입의 속성은 각 엔티티에 대해 고유한 값을 가져야 한다. (e.g., SSN of EMPLOYEE)
- 복합 키를 만들 수 있음. (e.g., 차량번호는 번호와 지역으로 구성)
- 여러 키를 가질 수 있음. (e.g., CAR는 차량등록번호와 차량번호)
E-R Diagram

- Employee는 EID, Department는 DID처럼 중복되는 이름을 피하면 구분이 편함.
- ER 다이어그램에서 여러 어트리뷰트로 묶인 키를 표현하려면 어떻게?
- relational model에서 복합키를 PK로 쓰는건 특수한 상황. ER 모델에서 여러 어트리뷰트를 묶어서 키로 표현할 필요가 없다.
- 왜 weak entity가 필요한가? 그냥 임의의 ID를 주면 되는데?
- 실제로 대부분의 경우 그냥 ID를 줌. ID가 있는 엔티티는 중요하다는 것. 명시적으로 weak entity로 만들면 스키마만 보고도 그 엔티티 자체로는 의미가 없다는 것을 보여줄 수 있다.
- Relational 모델에서 여러 어트리뷰트에 underline하는 건 그 어트리뷰트들의 묶음이 하나의 PK라는 의미, ER 다이어그램에서 여러 어트리뷰트에 underline하는 건 개별 어트리뷰트 하나 하나가 유니크한 key라는 의미. superkey는 relational model에만 존재하는 개념이다.
Relationship
- 2개 이상의 엔티티 사이의 관계에 구체적인 의미를 갖는 것.
- Relationship type:
- 관계의 이름과 참여하는 엔티티 타입.
- 특정 관계 제약을 명시해야 한다 (e.g., 1:1, 1:N, etc.)
- Recursive relationship type
- Cardinality of Relationships:
- One-to-one (1:1): A와 B가 일대일 대응.
- One-to-many (1:N) or Many-to-one (N:1): A 하나에 여러 개의 B가 대응.
- Many-to-many (M:N): 여러 개의 A에 여러 개의 B가 대응.
- Participation Constraints:
Weak Entity Types
- 키가 없는 엔티티.
- 반드시 indentifying relationship type에 참여해야한다.
- 엔티티는 weak entity type의 부분키(partial key)와 identifying relationship type에 관계된 특정 엔티티의 조합으로 식별된다.
이 문서를 인용한 문서