Entity-Relationship Model1
Entity-Relationship Model1
1. 데이터베이스 설계 단계 및 E-R 모델의 역할
- 데이터 모델링의 정의: 데이터베이스 구조를 생성하는 절차적 과정으로, 실세계를 개념화하고 논리적 구조로 추상화하여 물리적 테이블 구조를 완성하는 일련의 단계다.
- 설계 단계 (Design Phases):
- 요구사항 명세 (Requirement specification): 데이터베이스 사용자의 데이터 요구 사항을 식별한다.
- 개념적 설계 (Conceptual design): E-R 모델을 기반으로 요구 사항을 개념적 스키마로 변환하는 단계입다.
- 논리적 설계 (Logical design): 개념적 스키마(E-R 모델)를 DBMS의 데이터 모델(주로 관계형 모델)로 매핑한다.
- 물리적 설계 (Physical design): 인덱스, 반정규화 등 성능 관점의 물리적 특징을 명세한다.
- E-R 모델의 역할: E-R 모델은 데이터베이스의 엔티티(Entities)와 그 관계(Relationships)를 식별하는 방법을 제공하며, 개념적 설계를 대표하는 데 주로 사용된다. E-R 모델은 1976년 P. Chen에 의해 제안되었으며, 사용자, 시스템 분석가 등의 의사소통 도구로 유용하다.
2. E-R 모델의 핵심 구성 요소
E-R 모델은 엔티티(Entities), 관계(Relationships), 속성(Attributes)의 세 가지 요소로 기업 환경을 모델링한다.
A. 엔티티 집합 (Entity Sets)
- 엔티티(Entity): 존재하며 다른 객체와 구별되는 ‘사물’ 또는 ‘객체’다 (예: 특정 사람, 회사).
- 엔티티 집합(Entity Set): 동일한 속성을 공유하는 같은 유형의 엔티티들의 집합이다.
- 주 식별자 (Primary Key, PK): 속성(Attribute)의 부분 집합으로, 엔티티 집합의 각 멤버를 고유하게 식별한다. 주 식별자는 후보 키(Candidate key) 중에서 선택된다.
B. 속성 (Attributes)
엔티티는 속성(Attributes)으로 정의한다.
- 복합 속성 (Composite attributes): 여러 부분으로 구성된다 (예: 주소).
- 다치 속성 (Multivalued attributes): 하나의 엔티티 인스턴스에 대해 둘 이상의 값을 가질 수 있다 (예: 전화번호).
- 파생 속성 (Derived attributes): 다른 속성이나 엔티티의 값으로부터 도출될 수 있는 값이다 (예: 나이, 합계).
C. 관계 집합 (Relationship Sets)
- 관계(Relationship): 여러 엔티티 간의 연관성(association)입니다.
- 역할 (Role): 관계에서 각 엔티티가 수행하는 기능이다 (예: 관계 ‘소유’에서 ‘고객’은 소유자 역할).
- 관계의 속성: 관계도 속성을 가질 수 있다 (예: ‘지도’ 관계가 시작된 날짜).
3. 제약 조건 및 식별 관계
A. 매핑 카디넬러티 (Mapping Cardinality)
하나의 엔티티가 관계를 통해 연결될 수 있는 상대 엔티티의 개수를 정의한다:
- 1:1 (One-to-one)
- 1:M (One-to-many)
- M:1 (Many-to-one)
- M:N (Many-to-many)
B. 참여 (Participation)
- 전체 참여 (Total participation): 모든 엔티티가 관계에 반드시 참여해야 합니다 (E-R 다이어그램에서는 이중선으로 표시). 예: 모든 학생은 반드시 지도 교수가 있어야 함.
- 부분 참여 (Partial participation): 일부 엔티티만 관계에 참여할 수 있습니다. 예: 모든 교수가 학생을 지도할 필요는 없음.
C. 약한 엔티티 집합 (Weak Entity Sets)
- 약한 엔티티: 자체적으로 주 식별자를 형성할 충분한 속성이 없는 엔티티 집합입니다.
- 식별 관계 (Identifying Relationship): 약한 엔티티는 강한 엔티티(Dominant entity set)에 의존하며, 약한 엔티티의 주 식별자는 지배적인 엔티티의 주 식별자와 약한 엔티티의 식별자(Discriminator)를 합친 값으로 구성됩니다.
- E-R 다이어그램에서 약한 엔티티는 이중 사각형으로, 식별 관계는 이중 마름모로 표현됩니다.
4. E-R 다이어그램 표기법 및 실무
- 기본 표기법 (구모델): 사각형은 엔티티 집합, 마름모는 관계 집합, 타원은 속성을 나타내며, 주 식별자는 밑줄로 표시됩니다.
- 카디넬러티 표기: ‘하나’는 화살표(→) 또는 실선(—)으로, ‘다수’는 화살표 없는 실선(—)으로 나타냅니다.
- 실무 표기법 (Crow’s Foot notation): ‘까마귀 발’ 표기법은 ERD를 그릴 때 가장 널리 사용되는 방법 중 하나로, 관계를 매우 직관적으로 표현합니다.
- M:N 관계 처리: 실무 데이터 모델링에서는 M:N 관계를 직접 사용하지 않으며, 이를 해소하기 위해 조인 테이블(joining or bridging table)을 사용하여 1:M 관계로 분해한다.
5. 관계형 스키마로의 변환 (Reduction to Relation Schemas)
E-R 다이어그램은 관계형 데이터베이스에서 스키마(테이블)의 집합으로 표현된다.
- 강한 엔티티 (Strong Entity): 속성을 가진 스키마로 변환된다.
- 약한 엔티티 (Weak Entity): 강한 엔티티의 주 식별자를 포함하는 스키마로 변환된다.
- 다치 속성 (Multivalued Attribute): 다치 속성을 위해 원본 엔티티의 PK와 해당 다치 속성을 컬럼으로 가지는 별도의 스키마(테이블)를 생성해야 한다.
- M:N 관계: 두 엔티티의 기본 키를 모두 포함하고 자체 속성(있는 경우)을 포함하는 별도의 테이블로 변환된다.
- 1:M 관계 (외래 키 임베딩): 전체 참여(Total participation)인 1:M 관계는 관계를 위한 별도의 스키마를 만들지 않고, ‘다수(many)’ 측 테이블에 외래 키를 삽입하여 나타낼 수 있다.
- 중복 스키마 방지: 약한 엔티티를 식별하는 관계 스키마는 일반적으로 중복되므로, 데이터베이스 설계 시 별도의 테이블로 만들 필요가 없다.
‘중복 속성(Redundant Attributes)’은 좋은 E-R 설계에서는 피해야 하며, 동일한 의미를 갖는 속성들을 중복해서 관리하는 것을 피해야 한다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.