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)는 부모-자식 관계를 표현한다.
  • 이를 매핑하는 데에는 몇 가지 옵션이 있는데, 다음과 같다:
  1.   각 서브타입마다 테이블을 생성: 서브타입에만 해당하는 속성들을 개별 테이블로 나누고, 부모 테이블과 연결한다.
  2.   상위 개체만을 테이블로 생성: 모든 속성을 하나의 테이블에 포함시킨다.
  3.   하위 개체만을 테이블로 생성: 각 하위 개체가 독립적으로 존재하며, 상위 개체의 속성까지 포함한다.

예시:

  • `Person`이 상위 개체고 `Student`와 `Professor`가 하위 개체라면, 각 하위 개체마다 테이블을 생성할 수 있다.

9단계: 유니온 타입의 매핑[edit | edit source]

Step 9: Mapping of Union Types (Categories)

  • 유니온 타입(카테고리)은 여러 개체를 하나의 유형으로 통합하는 개념이다.
  • 이를 매핑할 때는 유니온 타입의 모든 개체가 공유하는 기본 키를 가진 테이블을 생성하거나, 각 개체에 대해 별도의 테이블을 만들 수 있다.

예시:

  • `Owner`라는 유니온 타입이 `Person`과 `Company`에 적용된다면, `Owner` 테이블에 `PersonID`와 `CompanyID`가 외래 키로 포함된다.