
< Methodologies for Conceptual Design>
- Entity Relationship (ER) Diagrams
- Use of Design Tools in industry for designing and documenting large scale designs
- The UML (Unified Modeling Language) Class Diagrams are popular in industry to document conceptual database designs
- ER Model Concepts
* Entity
- 데이터베이스에 표현되는 mini-world(현실 세계의 축소된 영역)의 특정 사물이나 객체
-> 현실 세계의 객체나 실체, 데이터베이스에 저장되는 대상
ex) EMPLOYEE, DEPARTMENT

* Attributes
< Types of Attributes>
* Simple, 단순 속성
- 각 엔터티는 해당 속성에 대해 single atomic value(더 나눌 수 없는 값)을 가짐
ex) SSN
* Composite, 복합 속성, ( )
- 하나의 속성이 여러 구성 요소(하위 속성)로 이루어질 수 있음
-> 구성 요소가 다시 복합 속성으로 구성될 수 있는 계층 구조를 형성할 수 있음

-> 하나의 'Name' 속성은 FirstName, MiddleName, LastName과 같은 하위 속성으로 구성됨

* Multi-valued, 다중 값 속성, { }
- 하나의 엔터티가 해당 속성에 대해 multiple values를 가질 수 있음
-> {Color} 와 같은 표기법으로 나타냄

-> RDB에서는 Simple 속성 지원
-> ORDB, ODB에서는 Composite, Multi-valued 속성 지원
* Composite multi-valued attribute
- Composite Attribute와 Multi-valued Attribute는 중첩(nested)될 수 있음

-> (A, B) != (B, A)
-> 순서 중요
- Entity Types and Key Attributes
* Entity type, 엔터티 유형
- 기본 속성이 동일한 엔터티들을 하나의 entity type으로 그룹화하거나 유형화함

* Key attribute, 키 속성
- 각 엔터티가 unique value를 가져야 하는 엔터티 유형의 속성
- Attributes and Value Sets
* A value set, 값 집합
-
속성과 연관된 set of values를 정의함
-
수학적으로, 엔터티 유형 E에 대한 속성 A가 값 집합 V를 가질 때, A는 다음의 함수로 정의됨


여기서 P(V)는 V의 power set(멱집합)을 의미함
-> 이 정의는 단순 속성(Simple attribute)과 다중 값 속성(multi-valued attribute)를 모두 포함함
-> 함수 A는 엔터티 집합 E의 각 엔터티에 대해 값 집합 V의 부분 집합을 할당하는 함수
-> 함수 A(e)는 특정 엔터티 e에 대한 A 속성의 값을 반환함
- 특정 엔터티 e에 대한 속성 A의 값 : A(e)로 표현


-> EMPLOYEE는 엔터티 집합 E
-> E의 각 엔터티인 John, Alice 등

<ER Diagram에서의 표현>
* Entity type: 직사각형
* Attribute: 타원형(oval)
* Key attribute: 밑줄(underline)
* Multi-valued attribute(다중 값 속성): 이중 타원

- Complex Attributes

- Notation for ER diagrams


- Relationships
- Relationship
- 두 개 이상의 서로 다른 엔터티를 특정 의미로 연결하는 것
- Constraints on Relationship Types, 관계 유형의 제약 조건(=Ratio Constraints, 비율 제약 조건)
<Cardinality Ratio, 카디널리티 비율>
: 최대 참여도를 지정
- One-to-one (1:1)
- One-to-many (1:N) or Many-to-one (N:1)
- Many-to-many (M:N)
<Existence Depencency Constraint, 존재 의존성 제약>
: 최소 참여도를 지정
- zero (선택적 참여, 존재 의존적이지 않음)
- one or more (필수 참여, 존재 의존적)
-> total participation(전체 참여) (or existence dependency(존재 의존성))은 double line으로 표시
-> partial participation(부분 참여)는 single line으로 표시
* Many-to-one (N:1) Relationship
- WORKS_FOR 관계 집합의 각 관계 인스턴스는 하나의 EMPLOYEE 엔터티와 하나의 DEPARTMENT 엔터티를 연결함

-> 하나의 EMPLOYEE는 하나의 DEPARTMENT를 가짐
-> 하나의 DEPARTMENT는 여러명의 EMPLOYEE를 가짐
-> N:1
* Many-to-many (M:N) Relationship

-> 하나의 EMPLOYEE는 여러개의 PROJECT를 가짐
-> 하나의 PROJECT는 여러개의 EMPLOYEE를 가짐
-> M:N
* Binary Relationship(이항 관계)
: 두 개의 Entity Type 사이에서 형성된 관계 (degree : 2)
* Recursive Relationship Type, 재귀적 관계 유형(= Self-referencing relationship type, 자기 참조 관계 유형)
: 동일한 엔터티 유형이 서로 다른 역할로 참여하는 관계 유형
ex) supervision 관계 -> supervisor(상사)도 EMPLOYEE, supervisee(부하)도 EMPLOYEE
<Recursive relationship type 표기>
- 첫 번째 역할 참여: 1로 라벨
- 두 번째 역할 참여: 2로 라벨
-> ERD에서는 참여를 구분하기 위해 역할 이름을 반드시 표기해야 함

- ER DIAGRAM

* Weak Entity Types
-
Key Attribute가 없으며, 다른 엔터티 유형에 의존하여 식별됨
-
weak entity는 반드시 소유자(Owner) 또는 식별자 엔터티 유형(Identifying Entity type)과 식별 관계(Identifying Relationship Type)에 참여해야 함
-
엔터티 식별 방법:
-> 약한 엔터티 유형의 부분 키(Partial Key)와 식별 관계에서 연관된 특정 엔터티의 조합을 통해 식별됨
-> Foreign key + Partial key 조합


- Strong entity type : 고유한 Primary key 보유, 다른 엔터티에 의존 X
- Attributes of Relationship types ****
- Relationship type은 속성을 가질 수 있음
- 1:1 관계 유형의 속성은 참여하는 엔터티 유형 중 하나로 이전될 수 있음
ex) MANAGES 관계의 Start_date 속성은 개념적으로 MANAGES 관계에 속하지만, EMPLOYEE(관리자)나 DEPARTMENT(부서) 중 하나의 속성으로 이전될 수 있음
- 1:N 관계 유형의 속성은 N쪽 엔터티 유형으로 이전될 수 있음
ex) WORKS_FOR 관계에 직원이 부서에서 근무를 시작한 시점을 나타내는 Start_date 속성이 있는 경우, 이 속성은 N쪽(직원)의 속성으로 이전될 수 있음
