본문 바로가기

Computer Science/Database

DB 개론_관계 데이터 모델링 실습

본 내용은 KOCW 백현미 교수님 강의를 기반으로 한 공부 기록용 자료입니다. 참고바랍니다.

0. INDEX

  • 이전 내용
  • 논리적 설계 - 1~5 단계
  • 실습 결과 - 릴레이션 스키마

1. 이전 내용

이전에 개념적 데이터 모델링 실습에서 얻은 결과물인 E-R 다이어그램을 릴레이션 스키마로 변환하는 과정을 알아보겠다.

링크 - https://cyoo.tistory.com/20?category=1102359

 

DB 개론_데이터 모델링 실습

본 내용은 KOCW 백현미 교수님 강의를 기반으로 한 공부 기록용 자료입니다. 참고바랍니다. 0. INDEX 요구사항 분석 개념적 설계 1. 요구 사항 분석 사용자에게 요구사항을 수집하고 분석하여 요구

cyoo.tistory.com

다음은 이전에 얻은 한빛마트 E-R 다이어그램이다.

한빛마트 E-R 다이어그램

 


2. 논리적 설계

릴레이션 변환 단계는 E-R다이어그램에 대해 크게 5가지 규칙을 순서대로 적용한다. 

 

1] 모든 개체는 릴레이션으로 변환한다.

  • 개체 속성이 복합 속성인 경우 이를 구성하는 단순속성만 릴레이션 속성으로 변환한다.(원자성을 지키기 위해)

 

2] N:M 관계는 릴레이션으로 변환한다.

  • 개체 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정한다. 이때 기본키는 외래키들의 조합이나 새로운 컬럼을 생성하여 지정한다. ex) 고객 - 주문 - 상품 / 고객번호+상품번호 or 새로 생성한 주문번호
  • N:M 관계를 릴레이션으로 변환하는 이유는, 다대다 관계이기 때문에 각 개체 릴레이션이 서로에 대한 외래키를 가질 수 없기 때문에 새로운 릴레이션을 생성해 연결된 정보를 표현하게 된다.

 

3] 1:N 관계는 외래키로 표현한다.

  • N측 개체 릴레이션에서 1측의 기본키를 외래키로 지정함으로써 연결된 정보를 표현할 수 있게 된다. 만약 1측 개체 릴레이션에 N측의 기본키가 외래키로 지정된다면 해당 외래키 속성은 다중 값을 가지므로 안 된다. 그리고 관계의 속성들을 N측 릴레이션에 포함시킨다.

  • 약한 개체가 참여하는 1:N 관계에서는 약한개체인 N측에서의 기본키가 1측의 기본키+N측의 외래키로 생성된다. 아마도 그 이유는 약한 개체는 주문 릴레이션의 주문번호와 같은 역할의 기본키가 아닌 메뉴이름과 같은 역할의 기본키를 사용하기 때문이다. 예를 들어 비행기 개체, 좌석 개체가 관계를 맺고 있을 때 좌석번호만을 기본키로 지정한다면 비행기 개체와 연결될 시 여러 비행기에 대해 같은 좌석번호을 갖게 되어 유일성을 잃게 되기 때문이다. 아직 추측이라 나중에 알게 되면 고치겠습니다.

 

4] 1:1 관계는 외래키로 표현한다.

  • 일반적인 일대일 관계에서 는 외래키를 서로 주고받는다. 이때 관계의 속성들은 모든 개체 릴레이션에 포함시키기 때문에 불필요한 데이터 중복이 발생한다. 이렇게 하는 이유는 각 개체에서 외래키 속성이 null 값이 되는 튜플이 존재하고 이는 각 릴레이션에 남김으로써 표현해야 하기 때문이다.

  • 일대일 관계에 필수적 참여하는 개체가 있다면 그 개체의 릴레이션만 외래키를 받는다. 남자 릴레이션에만 외래키를 생성해도 결혼한 정보를 모두 나타낼 수 있기 때문이다. 그렇기에 여자 릴레이션은 외래키, 관계 속성을 가질 필요가 없게 된다.

  • 모든 개체가 필수적 참여하면 릴레이션을 하나로 합친다. 테이블을 하나로 합쳐도 카디널리티를 증가시키지 않고 모든 정보를 포함할 수 있기 때문이다. 그리고 새로운 릴레이션 이름을 관계 이름으로 설정하는 것이 보통이며 두 개체 릴레이션의 키 속성을 조합해 관계 릴레이션의 기본키로 지정하게 된다. 남자 혹은 여자이름으로만 지정해도 문제될 건 없어 보이긴 한다.

 

5] 다중 값 속성은 릴레이션으로 변환한다.

  • 다중 값 속성과 함께 기존 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션을 생성한다. 이때 새 릴레이션의 기본키는 다중 값 속성과 외래키를 조합해서 지정한다.

 

*] 기타 고려 사항 

  • 속성이 많은 관계는 유형에 상관없이 릴레이션 변환을 고려할 수 있다. 아마 이렇게 했을 때 다대다 관계에서 각 개체 릴레이션에 관계 속성이 포함됨으로 인해 발생하는 데이터 중복을 최소화하려는 목적일 것 같다.

  • 개체 자신과 관계를 맺는 순환관계도 기본 규칙이 그대로 적용된다.


3. 실습 결과 - 릴레이션 스키마

한빛마트 E-R 다이어그램
릴레이션 스키마

 

 

'Computer Science > Database' 카테고리의 다른 글

DB 개론_관계 데이터 연산  (0) 2022.06.17
DB 개론_정규화  (0) 2022.06.17
DB 개론_관계 데이터 모델링  (0) 2022.06.14
DB 개론_데이터 모델링 실습  (0) 2022.06.13
DB 개론_데이터 모델링  (0) 2022.06.13