3-2/데이터베이스 이해와 활용
4주차-논리적 데이터 모델
Donghun Kang
2024. 10. 14. 11:13
- ER모델 => 릴레이션 스키마 변환 단계
1. ER모델의 각 개체 클래스에 대해 릴레이션 스키마 생성
2. 셍성한 스키마에 애트리뷰트 추가
3. 기본 키 애트리뷰트 지정
4. ER모델의 모든 관계성을 어떻게 표현할 것인지 선택
- 개선 과정
- 처음 변화된 스키마가 중복된 정보를 가지거나, 비효율적이어도 걱정할 필요 없다.
- 정규화 과정을 통해 해결
- 강한 개체 클래스 변환
[규칙1]
- ER모델의 강한 개체 클래스 각각에 대해, 같은 이름으로 릴레이션 스키마를 생성
[규칙2]
- 강한 개체 클래스의 단순 애트리뷰트에 대해, 릴레이션 스키마에서 같은 이름으로 애트리뷰트 생성
[규칙3]
- 강한 개체 클래스의 키들 중 하나를 릴레이션 스키마의 키로 선택
- 선택된 키가 여러 개의 단순 애트리뷰트들로 구성된다면, 릴레이션 스키마의 키는 애트리뷰트들의 집합
EX)
- 복합 애트리뷰트 변환
Q) adress를 원자값으로 표현하지 않는 이유는?
A) 특정 도시 또는 우편번호로 고객들을 찾기 위해
[규칙4]
- 강한 개체 클래스의 복합 애트리뷰트 각각에 대해, 릴레이션 스키마에 복합 애트리뷰트의 각 구성 필드에 대해 하나씩의 애트리뷰트들을 생성
EX)
- 다중 값 애트리뷰트 변환
Q) otherUsers를 원자값으로 표현하지 않는 이유?
A) 고객의 계정에 대하여 어떤 사람이 이 계정을 같이 사용하고 있는지 확인하기 위해
[규칙5]
- 개체 클래스 C의 다중 값 애트리뷰트 M 각각에 대하여, 새로운 릴레이션 스키마 M을 정의
- 애트리뷰트 M의 필드들을 새로운 스키마에 추가
- C의 나머지 애트리뷰트들을 포함하는 스키마의 키 애트리뷰트들을 외래키로 M에 추가
- 새로운 스키마의 키는 그것이 가지는 모든 애트리뷰트들의 조합이 되도록 선언
EX)
- 관계성 표현
- 테이블과 애트리뷰트만을 가지고 표현
- 모든 릴레이션 스키마는 한 개 이상의 애트리뷰트로 구성된 키를 가져야 함
- 관계성을 표현하기 위해 이 키들을 이용
- 다대다/ 일대다/ 일대일 관계성 표현에 적용
- 일대다 관계성 타입 변환
[규칙6]
- 클래스 간의 관계성 타입 R의 카디널리티 비율이 일대다일 경우, 클래스 S의 키 애트리뷰트들을 클래스 T의 외래키로 추가
[규칙7]
- 클래스 T에 관계성 타입 R의 애트리뷰트들을 추가
EX)
- 일대일 관계성 타입 변환
[규칙8]
- 클래스 간의 관계성 타입 R의 카디널리티 비율이 일대일일 경우, 어느 한쪽의 클래스를 선정
- 이때, 전부 참여 제약 조건을 갖는 개체 클래스를 선택하는 것이 바람직
EX)
- Employee와 Store 관계 표현 방법
- 다대다 관계성 타입 변환
[규칙9]
- 클래스 간의 관계성 타입 R의 카디널리티 비율이 다대다일 경우, 새로운 릴레이션 스키마 R을 생성
- S,T의 키를 외래키로서 R에 추가, 이 애트리뷰트들의 조합이 스키마 R의 키
- 관계성 애트리뷰트들을 스키마 R에 추가
EX)
- 약한 개체 클래스 변환
[규칙10]
- 각 약한 개체 클래스 W에 대하여, 새로운 릴레이션 스키마를 생성
- 식별 관계성과 관련된 강한 개체 클래스 각각에 대해 이 클래스의 키 애트리뷰트들을 새로 생성한 스키마에 외래키 애트리뷰트들로 추가
- 추가된 애트리뷰트들과 약한 개체 클래스의 부분키 애트리뷰트들의 조합으로 스키마의 키 선언
EX)