728x90
반응형
※ 논리적 설계
▶ 설계 3단계 : 논리적 설계
- 목적
- DBMS에 적합한 논리적 스키마 설계
- 개념적 스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현
-> 논리적 모델링
-
- 일반적으로 관계 데이터 모델을 많이 이용
- 결과물
- 논리적 스키마 : 릴레이션 스키마
- 주요 작업
- 개념적 설계 단계의 결과물인 E-R 다이어그램을 릴레이션 스키마로 변환
- 릴레이션 스키마로 변환 후 속성의 데이터 타입, 길이, 널 값 허용 여부, 기본 값, 제약조건 등을 세부적으로 결정하고 결과를 문서화시킴
- E-R 다이어그램을 릴레이션 스키마로 변환하는 규칙 (★)
- 규칙 1 : 모든 개체는 릴레이션으로 변환한다.
- 규칙 2 : 다대다(N:M) 관계는 릴레이션으로 변환한다.
- 규칙 3 : 일대다(1:N) 관계는 외래키로 표현한다.
- 규칙 4 : 일대일(1:1) 관계는 외래키로 표현한다.
- 규칙 5 : 다중 값 속성은 릴레이션으로 변환한다.
- 변환 규칙을 순서대로 적용하되, 해당되지 않는 규칙은 제외함.
▶ 논리적 설계 - (규칙 1) 모든 개체는 릴레이션으로 변환한다
- E-R 다이어그램의 각 개체를 하나의 릴레이션으로 변환
- 객체의 이름 → 릴레이션 이름
- 개체의 속성 → 릴레이션의 속성
- 개체의 키 속성 → 릴레이션의 기본키
- 개체의 속성이 복합 속성인 경우에는 복합 속성을 구성하고 있는 단순 속성만 릴레이션의 속성으로 변환
▶ 논리적 설계 - (규칙 2) 다대다 관계는 릴레이션으로 변환한다
- E-R 다이어그램의 다대다 관계를 하나의 릴레이션으로 변환
- 관계의 이름 → 릴레이션 이름
- 관계의 속성 → 릴레이션의 속성
- 관계에 참여하는 개체를 규칙 1에 따라 릴레이션으로 변환하 후 이 릴레이션의 기본키를 관계 릴레이션에 포함시켜 외래키로 지정하고, 외래키들을 조합하여 관계 릴레이션의 기본키로 지정
▶ 논리적 설계 - (규칙 3) 일대다 관계는 외래키로 표현한다
- E-R 다이어그램의 일대다 관계는 외래키로만 표현
- (규칙 3-1) 일반적인 일대다 관계는 외래키로 표현한다.
- 일대다(1:N) 관계에서 1측 개체 릴레이션의 기본키를 N측 개체 릴레이션에 포함시켜 외래키로 지정
- 관계의 속성들도 n측 개체 릴레이션에 포함시킴
- (규칙 3-2) 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다.
- 일대다(1:N) 관계에서 1측 개체 릴레이션의 기본키를 N측 개체 릴레이션에 포함시켜 외래키로 지정
- 관계의 속성들도 n측 개체 릴레이션에 포함시킴
- n측 개체 릴레이션은 외래키를 포함하여 기본키를 지정함
- 약한 개체는 강한 개체에 따라 존재 여부가 결정되므로 강한 개체의 기본키를 이용해 식별해야 함
- (규칙 3-1) 일반적인 일대다 관계는 외래키로 표현한다.
▶ 논리적 설계 - (규칙 4) 일대일 관계는 외래키로 표현한다
- E-R 다이어그램의 일대일 관계는 외래키로만 표현
- (규칙 4-1) 일반적인 일대일 관계는 외래키를 서로 주고 받는다.
- 관계에 참여하는 개체 릴레이션들이 서로의 기본키를 주고 받아 외래키로 지정
- 관계의 속성들도 모든 개체 릴레이션에 포함시킴
- 불필요한 데이터 중복이 발생할 수 있음
- (규칙 4-2) 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다.
- 관계에 필수적으로 참여하는 개체 릴레이션에만 외래키를 포함시킴
- 관계의 속성들은 관계에 필수적으로 참여하는 개체 릴레이션에 포함시킴
- (규칙 4-3) 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다.
- 관계에 참여하는 개체 릴레이션들을 하나의 릴레이션으로 합쳐서 표현
- 관계의 이름을 릴레이션 이름으로 사용하고, 관계에 참여하는 두 개체의 속성들을 관계 릴레이션에 모두 포함시킴
- 두 개체 릴레이션의 키 속성을 조합하여 관계 릴레이션의 기본키로 지정
- (규칙 4-1) 일반적인 일대일 관계는 외래키를 서로 주고 받는다.
▶ 논리적 설계 - (규칙 5) 다중 값 속성은 릴레이션으로 변환한다
- E-R 다이어그램의 다중 값 속성은 독립적인 릴레이션으로 변환
- 다중 값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킴
- 새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정
→ 사원 릴레이션은 "속성에 다중 값을 저장할 수 없다"는 릴레이션 특성을 위반함
→ 사원 릴레이션은 릴레이션 특성을 위반하지는 않지만 사원번호, 사원명, 직위 속성의 값이 불필요하게 중복 저장되는 문제가 발생함
→ (규칙 5)에 따라 다중 값 속성을 독립적인 릴레이션으로 변환하면 불필요한 중복을 제거하면서도 릴레이션의 특성을 만족시킬 수 있다.
▶ 논리적 설계 - 기타 고려 사항
- 모든 관계를 독립적인 릴레이션으로 변환할 수 있다.
- 속성이 많은 관계는 유형에 상관 없이 릴레이션으로의 변환을 고려할 수 있음
- 개체가 자기 자신과 관계를 맺는 순환 관계도 기본 규칙을 그대로 적용
▶ 릴레이션 스키마 변환 규칙을 이용한 논리적 설계 예
< 규칙 1 적용 >
< 규칙 2 적용 >
< 규칙 3 적용 >
< 규칙 4 적용 > - 일대일 관계가 없으므로 규칙 4는 적용할 필요가 없음
< 규칙 5 적용 > - 다중 값 속성이 없으므로 규칙 5는 적용할 필요가 없음
▶ 논리적 설계 - 테이블 명세서 작성
- 릴레이션 스키마 변환 후 속성의 데이터 타입과 길이, 널 값 허용 여부, 기본값, 제약조건 등을 세부적으로 결정하고 문서화시킴
- 테이블 명세서 : 릴레이션 스키마에 대한 설계 정보를 기술한 문서
※ 물리적 설계와 구현
▶ 설계 4단계 : 물리적 설계
- 하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스 구조나 내부 저장 구조 등에 대한 물리적인 구조를 설계
▶ 설계 5단계 : 구현
- SQL로 작성한 명령문을 DBMS에서 실행하여 데이터베아스를 실제로 생성
728x90
반응형
'CS > 데이터베이스' 카테고리의 다른 글
데이터베이스 : 정규화(2) - 기본 정규형과 정규화 과정 (0) | 2022.05.31 |
---|---|
데이터베이스 - 정규화 (1) : 이상 현상과 함수 종속 (0) | 2022.05.26 |
데이터베이스 설계 1 - 요구 사항 분석 / 개념적 설계 (2) | 2022.05.24 |
관계 데이터 모델 (0) | 2022.04.18 |
데이터베이스 시스템 (0) | 2022.04.14 |