물리적 데이터모델링
태그 :
- 개념
- - 논리 데이터 모델을 특정 DBMS에 맞는 물리적인 스키마를 만드는 일련의 과정
1.물리데이터 모델링의 개요
가. 정의
- 논리 데이터 모델을 특정 DBMS에 맞는 물리적인 스키마를 만드는 일련의 과정
나. 물리적 데이터베이스 설계 (물리적 데이터모델링을 포함함)
- 논리 모델인 ERD를 물리 모델링 ERD로(테이블 관계도)로 전환
- 테이블 관계 이외의 데이터베이스와 관련된 사항, 즉 오브젝트, 접근방법, 트랜잭션
- 분석, 저장방법에 대해 설계
다. 물리 모델로의 변환 주요 TASK
단계 |
과정 |
고려사항 |
---|---|---|
일괄 전환 |
Entity별 Table로의 전환 |
Sub Type 설계 방안 |
식별자의 Primary Key 정의 |
Artificial Key 검토, PK 컬럼 순서 검토 |
|
속성의 컬럼 전환 |
영문 컬럼명 매핑데이터 타입길이 결정정의컬럼의 순서 |
|
관계의 컬럼 전환 |
참조무결성 규칙 및 구현방향 결정 |
|
구조 조정 |
수퍼타입/서브타입 모델 전환 |
트랜잭션의 성격에 따라 전체 통합부분 통합개별 유저에 대한 의사 결정을 통해 데이터 모델 조정 |
성능 향상 |
성능을 고려한 반정규화 |
SQL 활용 능력의 미흡으로 인한 빈번한 비정규화는 배제하도록 신중하게 검토 |
E-R 모델 |
관계형 모델 |
|
개체타입 |
릴레이션 |
|
속성 |
단순속성 |
속성 (열) |
복합속성 |
단순 속성들의 집합 |
|
키속성 |
기본키 또는 보조키 |
|
속성값의 집합 |
도메인 |
|
관계 |
1:1 양방향 완전관계 |
두 릴레이션을 하나로 통합 |
1:1 한방향 완전관계 |
부분 관계 릴레이션이 PK를 완전 관계 릴레이션의 FK로 적용 |
|
1:1 양방향 부분관계 |
두 릴레이션의 PK 만으로 구성된 릴레이션을 생성 |
|
1:N N측 완전관계 |
1측의 PK를 N측의 FK로 설정 |
|
1:N 1측 완전관계 |
두 릴레이션의 PK로 구성된 릴레이션을 생성 새로운 릴레이션의 PK는 N측의 PK를 사용 |
|
M:N 관계 |
두 릴레이션의 PK로 구성된 릴레이션을 생성 새로운 릴레이션의 PK는 두 릴레이션의 PK를 결합하여 사용 Composite key 구성 |
※관계 데이터 모델 스키마 변환 규칙
ER 모델 |
관계 스키마 |
|
2진 관계 |
1:1 (양방향 전체참여) |
• 두 엔티티타입과 관계타입을 하나의 릴레이션 스키마로 생성하며, 외래키는 없다 |
1:1 (단방향 전체참여) |
• 전체참여측 관계스키마에 부분참여 관계스키마의 기본키를 외래키로 내장 (1개 외래키) |
|
1:1 (양방향 부분참여) |
• (신규)한쪾 개체의 키 애트리뷰트를 키값으로, 다른쪽의 키 애트리뷰트를 외래키로 (2개 외래키) |
|
1:N (N측 전체참여) |
• n-side 릴레이션 스키마에 1-side의 기본키를 외래키로 (1개 외래키) |
|
1:N (N측 부분참여) |
• (신규)n-side의 기본키 + 1-side의 기본키를 외래키로 (1개 외래키) |
|
M:N |
• (신규) 각 릴레이션의 기본키를 복합기본키와 외래키로 (2개 외래키) |
|
순환 |
1:1 |
• (신규)기본키 + 기본키를 외래키로 내장 (예) 결혼 |
1:N |
• 기본키를 외래키로 생성하여 자체 참조 (예) 사원-상관 |
|
기타 |
다중값 애트리뷰트 |
• (신규)원 릴레이션의 기본키와 다중값 애트리뷰트를 복합기본키로 원 릴레이션의 기본키는 외래키로 내장됨 |
식별 관계 타입 (1:N) |
• 강한 개체의 기본키와 약한 개체의 부분키를 복합기본키로 |
1) 교수 (교수번호, 교수이름, 전공, 학과)
- 기본키 : 교수번호
2) 강의 (과목번호, 교수번호)
- 기본키 : 과목번호
- 참조키 : 과목번호, 교수번호
3) 과목 (과목번호, 과목이름, 학점)
- 기본키 : 과목번호
4) 등록 (학번, 과목번호, 성적)
- 기본키 : 학번/과목번호 (복합키)
- 참조키 : 학번, 과목번호
5) 학생 (학번, 이름, 주소, 학년, 교수번호)
- 기본키 : 학번
- 참조키 : 교수번호
6) 취미 (학번, 취미)
- 기본키 : 학번/취미 (복합키)
- 참조키 : 학번
라. 스키마 변환
- 스키마 변환 (계층 모델, 네트워크 모델)
- 관계 모델과의 차이점은 개체 타입 표현이 아니라 관계 타입 표현에서 차이를 보임
구분 |
내용 |
스키마 다이어그램 |
계층 데이터 모델 (hierarchical data model) |
• 트리(tree) 형태 • 루트 레코드 타입 존재 • 레코드 타입들 간 상하위 레벨관계 성립 • No Cycle • 레코드 타입 간에는 하나의 링크, 즉 하나의 관계만 허용 • 1:다 관계만 허용 • 부모-자식(Parent-Child) 관계 |
|
네트워크 데이터 모델 (network data model) |
• 네트워크(network) 형태 • 레코드 타입 간 하나 이상의 관계 설정 가능(이름으로 식별) • 1:다 관계만 허용 • 오너-멤버(Owner-member) 관계 |
|
마. 관계 데이터 모델 스키마 변환 규칙
구분 |
설명 |
단계 1 |
엔티티 타입은 릴레이션으로 매핑한다. 엔티티 타입의 키 중에서 하나를 릴레이션의 기본 키로 지정한다. |
단계 2 |
약한 엔티티 타입도 릴레이션으로 매핑하되 소유 릴레이션 (owner relation)의 키 속성을 포함시킨다. 생 성된 릴레이션의 기본 키는 소유 릴레이션의 키와 약한 엔티티 타입의 부분키를 합쳐서 만든다 |
단계 3 |
1:1 이진 관계는 관계에 참여하는 두 릴레이션 중에서 어느 하나의 외래키 속성으로 매핑한다. |
단계 4 |
1:N 이진 관계는 N-side 릴레이션의 외래키 속성으로 매핑하며, 1-side의 주 키를 참조하도록 한다. |
단계 5 |
N:M 이진 관계는 별도의 릴레이션 (이를 관계 릴레이션이라고 부름)으로 생성하고, 관계에 참여하는 두 릴 레이션의 기본 키 를 각각 참조하는 외래키로 애트리뷰트를 구성한다. 이 때 두 외래키가 관계 릴레이션의 기 본키를 형성한다. |
단계 6 |
다중값 애트리뷰트는 키를 포함하는 릴레이션으로 매핑된다 |
단계 7 |
n 차 관계는 관계에 참여하는 n 개의 릴레이션의 키들로 구성되는 관계 릴레이션으로 매핑된다. 관계 릴레이션의 애트리뷰트들은 참여 릴레이션의 주키를 참조하는 외래키들과 관계 속성(들)으로 구성된다. |
2. 물리적 데이터 모델링 프로세스
3. 데이터 모델링 시 고려사항
- 최대한 객관화
- 불확실한 업무를 확실하게 정의.
- 단순한 설계
(다중 사용자 환경, 사용자 및 개발자 등의 관계자와의 통신 프로토콜)
- 성능 고려.
- 관계형 데이터베이스의 특성을 반영
- 모델링의 접근 전략과 사고의 객관화.
- 업무의 순서 중요