개념적 모델링의 결과로 산출된 ER 다이어그램 또는 IE 표기를 실제 DBMS에서 구축하기 위해서 논리적 모델링으로 매핑 (Mapping, 사상)
하는 단계를 거치게 됩니다.
일반적으로 개념적 모델링의 산출물은 릴레이션
으로 매핑하게 됩니다.
위와 같은 ERD가 있다고 할 때 이를
릴레이션
으로 나타내면 개체명(식별자, 속성1, 속성2)와 같은 형태로 매핑됩니다.
관계 데이터 모델 매핑은 개체 매핑 > 관계 매핑 > 속성 매핑
으로 순서로 수행됩니다.
강한 개체 타입
의 경우 릴레이션 이름을 개체명으로 두고, 릴레이션의 속성으로 개체의 속성을 삽입합니다. 이때 식별자(키)는 기본키, 외래키에 따라 PK, FK
로 표기합니다. 일반적으로 키가 한 개라면 해당 키가 곧 PK이기 때문에 PK 표시는 생략합니다.
약한 개체 타입
은 동일하게 릴레이션을 구성하되, 강한 개체 타입의 키를 외래키로 가져와 구성합니다.위 ERD를 개체 매핑하면 다음과 같은 결과가 나타납니다.
A(A식별자, 속성) B(B식별자, A식별자(FK), 속성)
개체 속성을 매핑할 때는 속성, 유도 속성, 복합 속성과 같은 단일값 속성은 개체 성격에 맞게 설계자가 자체적으로 매핑합니다. 다중값 속성의 매핑은 아래에서 다룹니다.
개체 매핑이 완료되었다면 이제 관계의 차수나 관계 대응수에 따라서 관계 매핑을 수행합니다.
다음과 같이 가장 많이 사용되는 이진 관계 ERD가 있을 때 관계 매핑 수행 방법은 4가지 방법이 있습니다.
A(A식별자, 속성)
B(B식별자, A식별자(FK), 속성)
A(A식별자, B식별자(FK), 속성)
B(B식별자, 속성)
AB(A식별자, B식별자, 속성, 속성)
A(A식별자, 속성)
B(B식별자, 속성)
R(A식별자, B식별자)
3번 방법은 관계가 불명확해지는 관계로 거의 사용되지 않는 방식이고 1번, 2번, 4번 중에서 상황(몇대몇 관계 등)에 따라 유동적으로 방법을 결정하게 됩니다.
1:1 관계
1:1 관계
에서는 1번과 2번 방법 중 외래키(FK)에 NULL 값이 덜 발생되는 방법을 채택합니다.
1:N 관계
1:N 관계
에서는 N
이 되는 개체에 맞춰 1번 또는 2번 방법으로 매핑합니다. N
이 되는 개체 릴에이션에 1의 식별자를 외래키로 사용합니다. (반대는 불가능)
M:N 관계
M:N 관계
는 4번 방법을 사용합니다. 이때 생성되는 관계를 나타내는 릴레이션 테이블은 중간 테이블
이라고도 부릅니다.
3진 이상의 관계
지금까지는 2진 관계 상황들을 다뤘는데요. 만약 관계 차수가 3진 이상이라면 4번 방식으로 중간 테이블을 만들어서 표현합니다.
만약 속성으로 다중값이 온다면 지금까지 알아본 방식으로 직접 매핑하기엔 많은 어려움이 있습니다.
다중값은 다중값 개수를 알 수 없는 경우와 다중값 개수가 제한된 경우 두 가지 경우에 따라 다른 방식으로 매핑하게 됩니다.
위와같이 다중값 속성을 가진 개체를 매핑해보겠습니다.
먼저 다중값 개수를 알 수 없거나 제한되어 있어도 많은 경우는 다중값 릴레이션을 따로 하나 생성합니다.
개체(식별자, 속성)
개체-다중값(식별자, 다중값)
다음으로 다중값 개수가 적고 제한된 경우는 다중값 속성을 그냥 릴레이션에 더해줍니다.
만약, 다중값 속성 수가 3개로 제한되어있다면 다음과 같이 매핑됩니다.
개체(식별자, 속성, 다중값1, 다중값2, 다중값3)