이번 모각코 5회차에서 나는 <데이터베이스> 과목의 ERD를 관계 스키마로 바꾸는 변환 규칙에 대해 공부했다.
변환 규칙에는 8가지가 있다.
Rule 1 : 개체 타입 -> (개체) 테이블 생성
- 별도의 테이블 생성
Rule 2 : 일대일 관계 타입 -> FK 추가
- 별도의 테이블 생성하지 않음
- FK를 전체참여 쪽에 추가
- 일대일 관계 타입의 속성도 같이 추가
- 일대일 관계일 때는 전체참여인 쪽이 자식
Rule 3 : 일대다 관계 타입 -> FK 추가
- 별도의 테이블 생성하지 않음
- n쪽 테이블에 FK 추가
- 일대다 관계 타입의 속성도 같이 추가
Rule 4 : 존재종속 관계 타입 -> FK/PK 추가
- 별도의 테이블을 생성하지 않음
- FK/PK를 n쪽 테이블에 추가하고, 부분키를 PK로 함
- 관계 타입의 속성도 n쪽 테이블(약한 개체 타입)에 같이 추가
Rule 5 : 다대다 관계 타입 -> (관계) 테이블 생성, FK/PK 추가
- 별도의 테이블을 생성함
- n:m 관계 타입 R에 해당하는 테이블을 생성함
- R 속성은 모두 R의 테이블에 포함
- R에 관련된 두 개체 타입 S와 T의 키를 R의 테이블에 FK/PK로 각각 추가함
- 만약 R에 키가 있으면, R의 테이블에서 PK로 함
- R의 테이블은 S와 T의 테이블 사이에 있는 중간 테이블임
- 다대다 관계는 (두 개의 존재 종속 관계로 연결된) 약한 개체 타입으로 변환
Rule 6 : 다원 관계 타입 -> (관계) 테이블 생성, FK/PK 추가
- 3차 이상의 다원 관계 타입은 별도의 테이블을 생성함
- 다원 관계 타입 R의 속성은 모두 R의 테이블에 포함시킴
- 만일 R에 키가 있으면, R의 키는 R의 테이블에서 PK로 함
- 모든 참여 개체 타입의 키를 각각 R의 테이블에 FK/PK로 추가함
Rule 7 : 다중값 속성 -> (속성) 테이블 생성, FK/PK 추가
- 별도의 테이블을 생성함
- 개체 타입 S의 다중값 속성은 생성한 테이블에서 PK로 함
- S의 키는 생성한 테이블에 FK/PK로 추가함
- 다중값 속성은 conceptual level에서만 사용하는 개념임
- logical level에서는 다중값 속성을 허용하지 않음
- 다중값 속성은 intra-relationship의 한 형태임
- 개체 타입 S의 속성 An은 다중값 속성,
- 테이블 S'의 기본키 An은 단일값 속성
- 다중값 속성은 (존재 종속 관계로 연결된) 약한 개체 타입으로 변환
- 다중값 속성에서 단일값 속성 (부분키)로 변환됨
Rule 8 : ISA 관계 타입 -> FK 추가
- 별도의 테이블을 생성하지 않음
- 세분화(specialization)
- 상위 개체 타입 S는 테이블로 생성함(Rule1)
- S의 키를 S 테이블의 PK로 함
- 모든 하위 개체 타입 T도 테이블로 생성함(Rule1)
- T의 키를 T 테이블의 PK로 함
- S의 키를 T 테이블의 FK로 추가함
- 세분화가 일반화보다 더 general한 개념이다
'2023-1모각코' 카테고리의 다른 글
23.05.16 모각코 7회차 (0) | 2023.05.18 |
---|---|
23.05.09 모각코 6회차 (0) | 2023.05.14 |
23.04.04 모각코 4회차 (0) | 2023.04.05 |
23.03.28 모각코 3회차 (0) | 2023.03.30 |
23.03.21 모각코 2회차 (0) | 2023.03.23 |