E-R 모델과 관계형 모델의 변환 개요
데이터베이스 설계 과정에서 개념적 설계의 결과물인 E-R(개체-관계) 모델은 논리적 설계 단계에서 관계형 모델(Relational Model)로 변환됩니다. 관계형 모델은 릴레이션(Relation), 튜플(Tuple), 속성(Attribute), 키(Key), 외래 키(Foreign Key) 등의 요소로 구성됩니다.
관계형 모델의 기본 구성 요소
- 릴레이션(Relation): 튜플들로 구성된 테이블을 의미합니다.
- 튜플(Tuple): 테이블에서 하나의 행(row), 즉 데이터 레코드를 나타냅니다.
- 속성(Attribute): 릴레이션이 가지는 특성 또는 열(column)을 의미합니다.
E-R 모델과 관계형 모델 사이에는 직접적인 매핑 관계가 존재하기 때문에, 정해진 변환 규칙을 따르면 체계적으로 변환할 수 있습니다.
E-R 모델을 관계형 모델로 변환하는 규칙
E-R 다이어그램을 관계형 스키마로 바꿀 때 적용되는 핵심 규칙은 다음과 같습니다.
- 개체 타입(Entity Type) → 릴레이션(테이블)으로 변환됩니다.
- 1:1 또는 1:N 관계 타입 → 외래 키(Foreign Key)로 변환됩니다.
- M:N 관계 타입 → 두 개의 외래 키를 가지는 별도의 릴레이션으로 변환됩니다.
- 단순 속성(Simple Attribute) → 릴레이션의 속성으로 변환됩니다.
- 값 집합(Value Set) → 도메인(Domain)으로 변환됩니다.
- 키 속성(Key Attribute) → 기본 키(Primary Key)로 변환됩니다.
변환 예제: 직원-프로젝트 관리 시스템
예를 들어, '직원(Employee)'과 '프로젝트(Project)'가 '작업(Works_On)' 관계로 연결된 E-R 다이어그램을 생각해 보겠습니다. 위의 변환 규칙을 적용하면 세 개의 릴레이션을 생성할 수 있습니다.
1. 생성되는 릴레이션
- Employee (직원)
- Works_On (작업)
- Projects (프로젝트)
2. 속성을 필드로 변환
각 개체와 관계의 속성들은 테이블의 필드(컬럼)로 매핑됩니다.
- Employee: E_ID(직원 번호), Name(이름), Designation(직급), Dob(생년월일)
- Works_On: E_ID(직원 번호), Status(상태), P_ID(프로젝트 번호)
- Projects: P_ID(프로젝트 번호), S_Date(시작일), E_Date(종료일)
여기서 Works_On 릴레이션의 E_ID는 Employee 테이블을, P_ID는 Projects 테이블을 참조하는 외래 키 역할을 수행합니다. 이처럼 M:N 관계는 관계 자체의 속성(Status)과 함께 두 개체의 키를 모두 포함하는 독립적인 테이블로 표현됩니다.
3. DBMS에서 테이블 생성
이렇게 정의된 릴레이션 구조를 바탕으로 실제 DBMS(데이터베이스 관리 시스템)에서 CREATE TABLE 문을 사용하여 물리적인 테이블을 생성할 수 있습니다. 전체 변환 과정을 요약하면 다음과 같습니다.
- 개체 → 테이블
- 속성 → 컬럼(필드)
- 키 속성 → 기본 키
- 관계 → 외래 키 또는 별도의 관계 테이블
이러한 체계적인 변환 규칙을 이해하면 E-R 다이어그램으로 설계한 개념적 모델을 오류 없이 관계형 데이터베이스 스키마로 옮길 수 있습니다.