ER 모델 릴레이션 변환
From IT위키
ER-to-Relational Mapping
ER 모델 릴레이션 변환은 개체-관계(ER) 모델을 관계형 데이터베이스로 변환하는 일련의 과정을 말한다. 각 단계는 ER 모델에서 사용된 다양한 개체와 관계들을 관계형 데이터베이스의 테이블로 적절히 매핑하는 방법을 정의한다.
단계 요약[edit | edit source]
ER-to-Relational Mapping Algorithm
- Step 1: Mapping of Regular Entity Types
- Step 2: Mapping of Weak Entity Types
- Step 3: Mapping of Binary 1:1 Relation Types
- Step 4: Mapping of Binary 1:N Relationship Types. » Step 5: Mapping of Binary M:N Relationship Types. » Step 6: Mapping of Multivalued attributes.
- Step 7: Mapping of N-ary Relationship Types.
Mapping EER Model Constructs to Relations
- Step 8: Options for Mapping Specialization or Generalization.
- Step 9: Mapping of Union Types (Categories).
단계별 설명[edit | edit source]
1단계: 일반 개체 타입의 매필[edit | edit source]
Step 1: Regular Entity Types
- ER 모델의 일반 개체는 관계형 데이터베이스의 테이블로 변환된다.
- 개체의 속성들은 테이블의 컬럼으로 변환되며, 기본 키는 개체의 식별자 역할을 한다.
예시:
- `Student`라는 개체는 `StudentID`, `Name`, `Major` 등의 속성을 가진 테이블로 변환된다.
2단계: 약한 개체 타입의 매핑[edit | edit source]
Step 2: Weak Entity Types
- 약한 개체(Weak Entity)는 강한 개체(Strong Entity)에 의존해 존재한다. 따라서 약한 개체는 강한 개체의 기본 키를 자신의 기본 키 또는 외래 키로 포함하여 테이블로 변환된다.
- 약한 개체의 식별 관계는 부모 테이블의 키와 함께 변환된다.
예시:
- `Order`와 그에 속한 약한 개체 `OrderItem`은 `OrderID`를 외래 키로 포함하는 방식으로 매핑된다.
3단계: 이항 1:1 관계의 매핑[edit | edit source]
Step 3: Binary 1:1 Relationship Types
- 1:1 관계는 두 개의 테이블 중 한 테이블에 외래 키를 추가하여 표현한다.
- 외래 키는 관계된 두 개체 간의 연결을 나타내며, 제약 조건으로 UNIQUE 속성을 설정해 1:1 관계를 유지한다.
예시:
- `Employee`와 `ParkingSpace`가 1:1 관계에 있다면, `Employee` 테이블에 `ParkingSpaceID`라는 외래 키를 추가한다.
4단계: 이항 1:N 관계의 매핑[edit | edit source]
Step 4: Binary 1:N Relationship Types
- 1:N 관계는 N 측에 외래 키를 추가하여 표현한다.
- 1 측의 기본 키가 N 측의 외래 키로 포함되며, 이를 통해 두 테이블 간의 관계를 유지한다.
예시:
- `Department`와 `Employee`가 1:N 관계일 때, `Employee` 테이블에 `DepartmentID` 외래 키가 추가된다.
5단계: 이항 M:N 관계의 매[edit | edit source]
Step 5: Binary M:N Relationship Types
- M:N 관계는 새로운 교차 테이블을 생성해 매핑한다.
- 이 교차 테이블은 두 테이블의 기본 키를 외래 키로 가지며, 이 외래 키들이 복합 키를 형성해 관계를 유지한다.
예시:
- `Student`와 `Course`가 M:N 관계에 있다면, `Enrollment`라는 교차 테이블을 만들어 `StudentID`와 `CourseID`를 외래 키로 설정한다.
6단계: 다중 값 속성의 매핑[edit | edit source]
Step 6: Multivalued Attributes
- 다중 값 속성은 하나의 개체가 여러 개의 값을 가질 수 있는 경우를 의미한다.
- 이를 매핑하기 위해서는 새로운 테이블을 생성하여 다중 값을 표현한다. 이 테이블은 원래 개체의 기본 키와 속성 값을 포함한다.
예시:
- `Employee` 개체가 여러 개의 전화번호를 가질 수 있다면, `PhoneNumbers`라는 테이블을 추가하여 `EmployeeID`와 `PhoneNumber`를 함께 저장한다.
7단계: N-항 관계의 매핑[edit | edit source]
Step 7: N-ary Relationship Types
- N-ary 관계는 N개의 개체 간의 관계를 나타내며, 새로운 교차 테이블로 변환된다.
- 이 테이블은 관련된 모든 개체의 기본 키를 외래 키로 가지며, 복합 기본 키로 설정한다.
예시:
- `Project`, `Employee`, `Department` 간의 3-항 관계는 이를 나타내는 교차 테이블을 생성하여 각 테이블의 기본 키를 외래 키로 사용한다.
8단계: 특수화 및 일반화 매핑의 옵션[edit | edit source]
Step 8: Options for Mapping Specialization or Generalization
- 특수화(Specialization)와 일반화(Generalization)는 부모-자식 관계를 표현한다.
- 이를 매핑하는 데에는 몇 가지 옵션이 있는데, 다음과 같다:
- 각 서브타입마다 테이블을 생성: 서브타입에만 해당하는 속성들을 개별 테이블로 나누고, 부모 테이블과 연결한다.
- 상위 개체만을 테이블로 생성: 모든 속성을 하나의 테이블에 포함시킨다.
- 하위 개체만을 테이블로 생성: 각 하위 개체가 독립적으로 존재하며, 상위 개체의 속성까지 포함한다.
예시:
- `Person`이 상위 개체고 `Student`와 `Professor`가 하위 개체라면, 각 하위 개체마다 테이블을 생성할 수 있다.
9단계: 유니온 타입의 매핑[edit | edit source]
Step 9: Mapping of Union Types (Categories)
- 유니온 타입(카테고리)은 여러 개체를 하나의 유형으로 통합하는 개념이다.
- 이를 매핑할 때는 유니온 타입의 모든 개체가 공유하는 기본 키를 가진 테이블을 생성하거나, 각 개체에 대해 별도의 테이블을 만들 수 있다.
예시:
- `Owner`라는 유니온 타입이 `Person`과 `Company`에 적용된다면, `Owner` 테이블에 `PersonID`와 `CompanyID`가 외래 키로 포함된다.