본문 바로가기
Computer Science/DataBase

[데이터베이스] 5장 데이터베이스 설계와 ER모델 (2)

by na1-4an 2023. 11. 26.

5-3 데이터베이스 설계 사례

1. 설계할 요구사항 명세

  1. 회사에는 여러 사원들이 재직한다.
  2. 각 사원에 대해 사원번호(고유)/이름/직책/급여/주소를 저장한다. 주소는 시, 구, 동으로 세분해 나타낸다.
  3. 각 사원은 0명 이상의 부양가족을 갖는다. 각 부양가족의 이름과 성별을 저장한다.
  4. 회사는 여러 프로젝트를 진행한다. 각 프로젝트에 대해 프로젝트번호(고유)/이름/예산/프로젝트진행위치를 저장한다.
  5. 각 프로젝트마다 여러명의 사원이 일함. 각 사원이 해당 프로젝트에서 어떤 역할을 수행하고, 얼마 동안 근무해 왔는지 나타냄. 각 프로젝트마다 한 명의 프로젝트 관리자가 있음. 한 사원은 두 개 이상의 프로젝트 관리자가 될 수는 없음. 프로젝트 관리자 임무를 시작한 날짜를 기록.
  6. 각 사원은 한 부서에만 속한다. 각 부서에 대해 부서번호(고유)/이름/부서가위치한층을 저장한다.
  7. 각프로젝트에는 부품들이 필요하다. 한 부품이 두 개이상의 프로젝트에서 사용될 수있다. 하나의 부품은 여러 부품으로 이루어질 수 있다. 각 부품에 대해 부품번호(고유)/이름/부서가위치한층을 저장한다.
  8. 각 부품을 공급하는 공급자들이 있다. 한 명의 공급자는 여러 부품을 공급할 수 있고, 각 부품은 여러 공급자들로부터 공급될 수 있다. 각 공급자에 대해 공급자번호/이름/신용도를 나타낸다. 각 공급자에 대해 그 공급자가 어떤부품을 어떤 프로젝트에 얼마나 공급하는가를 나타낸다.

2. 엔티티 타입 및 애트리뷰트들 식별

(책 참조)

  • EMPLOYEE
  • DEPENDENT
  • DEPARTMENT
  • PROJECT
  • PART
  • SUPPLIER

3. 관계와 애트리뷰트들을 식별

(책 참조)

  • EMPLOYEE - BELONGS - DEPARTMENT
  • EMPLOYEE - WORKS_FOR - PROJECT
  • EMPLOYEE - MANAGES - PROJECT
  • EMPLOYEE - POLICY - DEPENDENT
  • PART - CONTAINS - PART
  • SUPPLIER - SUPPLIES - PART - PROJEC: 삼진 관계

 

5-4 논리적 설계: ER 스키마를 관계모델의 릴레이션으로 사상

1. ER 스키마를 관계모델의 릴레이션으로 사상

  • 논리적 설계 단계: ER스키마관계 데이터 모델의 릴레이션들로 사상.
  • 관계 데이터베이스에는 엔티티 타입과 관계 타입을 구분 안함.
  • 사상할 대상이 ER스키마에서 어떤 타입이고 어떤 특징을 가지고 있는지에 따라 사상하는 방법이 달라짐.

 

2. ER-릴레이션 사상 알고리즘(7)

▶ 1단계: 정규 엔티티 타입과 단일 값 애트리뷰트

  • 정규 엔티티 타입 E 하나에 대해 하나의 릴레이션 R을 생성함.

 

▶ 2단계: 약한 엔티티 타입과 단일 값 애트리뷰트

  • 약한 엔티티 타입 E에 해당하는 릴레이션 R의 기본키부분 키소유 엔티티 타입의 외래 키의 조합으로 이루어짐.

 

▶ 3단계: 2진 1:1 관계 타입

  • 2진 1:1 관계 타입을 갖는 엔티티 타입에 해당하는 릴레이션 S와 T를 찾음.
  • 전체 참여하는 릴레이션을 S로 선택함.
  • T의 기본키를 S의 외래 키로 포함시킴.
  • 관계 타입이 가지고 있는 애트리뷰트들을 S 릴레이션에 포함시킴.
  • 두 릴레이션 모두 전체 참여이면 하나의 릴레이션으로 합치는 방법도 가능.

 

▶ 4단계: 정규 2진 1:N 관계 타입

  • 1:N에 대해 N측의 참여 엔티티 타입에 대응되는 릴레이션 S를 찾음.
  • T의 기본 키를 S의 외래 키로 포함시킴.
  • 관계 타입이 가지고 있는 모든 단순 애트리뷰트들을 S에 해당하는 릴레이션에 포함시킴.

 

▶ 5단계: 2진 M:N 관계 타입

  • 관계 타입 R에 대해서 새로운 릴레이션을 생성시킴.
  • 두 릴레이션의 기본 키들을 R에 외래 키로 포함시킴. 이들이 릴레이션 R의 기본 키가 됨.
  • R이 가지고 있던 모든 단순 애트리뷰트들은 릴레이션 R에 포함됨.

 

▶ 6단계: 3진 이상의 관계 타입

  • 관계 타입 R에 대해서 새로운 릴레이션을 생성시킴.
  • 관계 타입 R에 참여하는 엔티티 타입에 대응 되는 릴레이션들의 기본키를 R의 외래키로 가지고, 이들이 기본키가 됨.
  • R이 가지고 있는 모든 단순 애트리뷰트들을 릴레이션 R에 포함시킴.
  • 그러나 1:N:N의 경우 카디널리티가 1인 릴레이션의 기본키를 참조하는 외래 키를 제외한 나머지 외래 키들의 조합이 R의 기본 키가 됨.

 

▶ 7단계: 다치 애트리뷰트

  • 다치 애트리뷰트에 대해 릴레이션을 생성함.
  • 다치 애트리뷰트에 해당하는 애트리뷰트를 릴레이션 R에 포함시킴.
  • 다치 애트리뷰트를 애트리뷰트로 갖는 엔티티 타입의 기본 키를 R의 외래 키로 포함시킴.
  • 릴레이션 R의 기본 키는 다치 애트리뷰트와 외래 키의 조합임.

 

3. ER-릴레이션 사상 알고리즘 적용

  (책 참조)