5-3 데이터베이스 설계 사례
1. 설계할 요구사항 명세
- 회사에는 여러 사원들이 재직한다.
- 각 사원에 대해 사원번호(고유)/이름/직책/급여/주소를 저장한다. 주소는 시, 구, 동으로 세분해 나타낸다.
- 각 사원은 0명 이상의 부양가족을 갖는다. 각 부양가족의 이름과 성별을 저장한다.
- 회사는 여러 프로젝트를 진행한다. 각 프로젝트에 대해 프로젝트번호(고유)/이름/예산/프로젝트진행위치를 저장한다.
- 각 프로젝트마다 여러명의 사원이 일함. 각 사원이 해당 프로젝트에서 어떤 역할을 수행하고, 얼마 동안 근무해 왔는지 나타냄. 각 프로젝트마다 한 명의 프로젝트 관리자가 있음. 한 사원은 두 개 이상의 프로젝트 관리자가 될 수는 없음. 프로젝트 관리자 임무를 시작한 날짜를 기록.
- 각 사원은 한 부서에만 속한다. 각 부서에 대해 부서번호(고유)/이름/부서가위치한층을 저장한다.
- 각프로젝트에는 부품들이 필요하다. 한 부품이 두 개이상의 프로젝트에서 사용될 수있다. 하나의 부품은 여러 부품으로 이루어질 수 있다. 각 부품에 대해 부품번호(고유)/이름/부서가위치한층을 저장한다.
- 각 부품을 공급하는 공급자들이 있다. 한 명의 공급자는 여러 부품을 공급할 수 있고, 각 부품은 여러 공급자들로부터 공급될 수 있다. 각 공급자에 대해 공급자번호/이름/신용도를 나타낸다. 각 공급자에 대해 그 공급자가 어떤부품을 어떤 프로젝트에 얼마나 공급하는가를 나타낸다.
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-릴레이션 사상 알고리즘 적용
(책 참조)
'Computer Science > DataBase' 카테고리의 다른 글
[데이터베이스] 7장 릴레이션 정규화 (0) | 2023.12.12 |
---|---|
[데이터베이스] 6장 물리적 데이터베이스 설계 (1) | 2023.11.26 |
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (1) (0) | 2023.11.25 |
[데이터베이스] 4장 관계 대수와 SQL (0) | 2023.11.03 |
[데이터베이스] 3장 오라클 (0) | 2023.11.02 |