개념적 설계와 ER 모델
데이터베이스 설계

개체 관계 데이터 모델
개체 관계 데이터 모델
- 데이터를 개체(Entity), 속성(Attribute), 관계(Relationship)로 나타내는 데이터 모델
- 실 세계를 개체(Entity)라 불리는 기본 객체들과 그 객체들 사이의 관계로 인식
- 데이터베이스의 전체 논리적 구조를 나타내는 조직의 스키마(Enterprise Schema)를 명시함으로써 데이터베이스를 쉽게 설계하도록 개발됨
- 실세계의 조직의 의미와 상호작용을 개념적 스키마로 나타내는데 매우 유용함
개체, 속성, 개체 집합
- 개체 (Entity)
- 실제 세계에서 다른 객체와 구별되는 유, 무형의 사물
- 속성(Attribute)
- 한 개체를 기술하기 위한 속성
- 개체 집합에 속한 모든 개체들은 동일한 속성을 가짐
- 가능한 값의 집합인 Domain을 지정하며, 개체를 식별하기 위한 Key 지정
- 단순 속성Simple Attribute과 복합 속성Composite Attribute
- 단일값 속성Single-value Attribute과 다중값 속성Multi-valued Attribute
- 유도된 속성Derived Attribute
- 개체 집합(Entity set)
관계, 관계 집합
- 관계 (Relationship)
- 관계 집합(Relationship set)
- 같은 유형의 관계들의 집합. n ≥ 2 개의 개체집합(중복 허용) 사이의 수학적 관계
- 개체 집합 사이의 연관을 관계 집합에의 참가(participation)라고 함
- 관계에서 개체가 행하는 기능을 개체의 역할(Role)이라고 함
- 관계는 설명형 속성(descriptive attribute)이라는 속성을 가짐

ER 모델 기능
대응 수
- 참여 제약 조건(Participation Constraint)을 이루는 관계 비율
- 대응 수(Mapping Cardinality) 또는 수비율(Cardinality Ratio)
- One-to-One(일대 일)
A의 한 개체는 B의 한 개체와 연관을 가지고 B의 한 개체는 A의 한 개체 연관을 가진다.
- One-to-Many(일대 다)
A의 한 개체는 임의의 수 (0 또는 그 이상)의 B 개체와 연관을 가진다. 그러나 B의 개체는 A의 한 개체만 연관을 가진다.
- Many-to-One(다대 일)
A의 한 개체는 B의 한 개체와 연관을 갖는다. 그러나 B의 개체는 A의 임의의 수 (0또는 그 이상)의 개체와 연관을 갖는다.
- Many-to-Many(다대 다)
A의 한 개체는 임의의 수(0 또는 그 이상)의 B 개체와 연관을 갖고 B의 한 개체도 임의의 수 (0 또는 그 이상)의 A 개체와 연관을 갖는다.
키 제약조건
- 릴레이션에서, 키 제약 조건에 따라 대응수가 정해짐
- 개체집합 E가 관계집합 R에 대해 키 제약조건을 가지고 있다면, E 인스턴스에 속한 객 개체는 R 인스턴스에 속한 관계 중 하나에만 나타남

참여 제약조건
- 한 개체집합 E의 관계집합 R로의 참가는 모든 E의 개체가 적어도 R 내부의 한 관계에 참가한다면 이는 전체적 참가이다.
- 만약 개제 집합 E의 일부 개체들만 R의 관계에 참여한다면 개체 집합 E의 관계 R로의 참가는 부분적 참가이다.
약 개체 집합
- 키가 존재하지 않는 개체집합
- 자신의 일부 속성과 다른 개체의 Primary Key를 조합하여야 유일하게 식별 됨
- 다른 개체를 식별 소유자(Identity Owner)라고 함
- 다음 조건들을 만족할 때 성립
- 식별 소유자와 약 개제 집합 사이에는 One-to-Many 관계 집합이 성립
- 약 개체 집합은 식별 관계집합에 전체적으로 참여하여야 함
- 소유자 개체에 대해 약 개제 하나를 유일하게 식별해 주는 속성 집합을 약 개체집합에 대한 구별자(discriminator) 또는 부분 키(Partial Key)라고 함
전문화와 일반화
- 하나의 개체 집합은 집합내의 다른 개체들과 구분되는 개체들의 하위집합을 가질 수 있음
- 개체 집합 내의 어떤 부분집합은 개체 집합내의 모든 개체들과 공유되지 않는 속성들을 가질 수 있음
- 개체 집합에 속한 세부 개체들을 세부 부류(subclass)로 분류
- 포함 제약 조건(Inclusion Constraint)
- 중첩 제약 조건(Overlap Constraints)
두 서브 클래스에 같은 개체가 포함될 수 있는가를 결정
- 포괄 제약 조건(Covering Constraints)
서브 클래스의 모든 개체를 모으면 수퍼 클래스의 모든 개체가 되어야 하는가를 결정
개념적 설계 고려 사항
ER 모델을 이용한 개념적 설계
- ER 다이어그램 개발 과정은 선택의 연속
- ER 다이어그램은 데이터를 최대한 비슷하게 설명할 뿐, 모든 의미를 다 표현할 수 없음
- ER 모델링은 스키마 설계에 대한 완벽한 방법이 아님
개체 or 속성
- 속성으로 모델링 하는 경우
- 한 개체가 속성을 단일 값으로 가지는 경우
- 요구 사항에서, 수직, 수평적으로 분리될 수 없는 값인 경우
- 개체로 모델링하는 경우
- 한 개체가 여러 개의 값을 가지는 경우
- ER 다이어그램에서 주소의 구조를 표현해야 하는 경우
개체 or 관계
- 개체로 모델링하는 경우
- 관계가 관계로 생성되는 한 개체에 국한되는 속성을 가짐
- A 개체집합의 개체가 정확히 B 개체집합의 한 개체에만 해당
- 관계로 모델링 하는 경우
- 관계집합에서 중복이 발생하는 경우
- 두 개체 사이에 일어나는 동작을 기술하는 경우
이진 관계 or 삼진 관계
- 이진 관계
- 약 개체가 포함되는 경우
- 관계의 변화가 개체에 영향을 미치는 경우
- 삼진 관계
- 관계의 변화가 개체에 영향을 미치는 경우
- 식별 관계의 체인이 존재하지 않는 경우