8장, 데이터베이스 설계
데이터베이스 설계
: 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정
데이터베이스 품질 평가에 중요한 기준
- 구성원들의 요구 사항을 만족하는지
- 데이터의 일관성과 무결성을 유지하면서 사용자가 이해하기 쉽고 접근하기 편한지
데이터베이스 설계 방법
1. E-R 모델과 릴레이션 변환 규칙을 이용한 설계
E-R 모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계
- 1단계 : 요구 사항 분석
데이터 베이스를 사용하는 용도 파악
필요한 데이터의 종류와 처리 방법 같은 다양한 요구 사항 수집 및 분석
요구사항 명세서 작성 - 2단계 : 개념적 설계
요구사항 명세서를 바탕으로 사용자의 요구 사항을 개념적 데이터 모델로 표현(개념적 모델링)
주로 E-R 모델을 사용하는데, 이 경우에는 E-R 다이어그램으로 표현하는 것이 개념적 설계 과정이다
개념적 모델링의 결과물을 개념적 구조 또는 개념적 스키마라고 한다 - 3단계 : 논리적 설계
개념적 구조를 기반으로 논리적 구조를 설계하는 것(논리적 모델링)
주로 관계 데이터 모델을 많이 사용하는데, 이 경우에는 E-R 다이어그램을 릴레이션(테이블) 스키마로 변환하는 것이 논리적 설계 과정이다
논리적 모델링/데이터 모델링의 결과물을 논리적 구조 또는 논리적 스키마라고 한다 - 4단계 : 물리적 설계
논리적 구조를 기반으로 물리적 구조를 설계하는 것
물리적 구조 ? 데이터베이스를 저장 장치에 실제로 저장하기 위한 내부 저장 구조와 접근 경로 등.
- 저장 레코드와 인덱스의 구조 설계
- 탐색 기법 정의
- 저장 장치와 운영체제의 특성을 고려하여 효율적이면서도 사용할 DBMS로 구현이 가능한 물리적인 구조 설계
- 설계 목표 : 응답 시간 최소화, 저장 공간 효율적 활용, 데이터베이스 시스템의 처리 능력 향상 - 5단계 : 구현
이전 단계의 결과물을 기반으로 명령문을 실행하여 데이터베이스를 실제로 생성하는 것
데이터 정의어(Data Definition Language) 사용
데이터베이스 설계 5단계에 맞춰 데이터베이스 설계하기
1단계! 요구사항 분석
주요 사용자 범위 결정 -> 사용자가 조직에서 수행하는 업무 분석 -> 필요한 데이터, 필요한 처리과정 분석
=> 요구사항 명세서 작성
2단계! 개념적 설계
요구사항 명세서를 바탕으로 데이터베이스에 저장해둘 필요가 있다고 판단되는 데이터 요소 추출, 요소 간의 관계를 파악하여 표현
▶ 개념적 모델링 과정
1) 개체와 속성 추출 : 요구사항 명세서에서 명사를 선별하고, 조직의 업무 처리와 관련이 깊은 개체와 속성부터 추출한다.
2) 관계 추출 : 요구사항 명세서에서 동사를 찾고, 조직의 업무 처리와 관련하여 개체 간의 연관성을 의미 있게 표현한 동사를 관계로 추출한다. 추출한 관계에 대한 매핑 카디널리티와 참여 특성을 결정한다.
3) E-R 다이어그램 작성 : 앞서 추출한 개체, 속성, 관계를 E-R 다이어그램으로 표현한다.
3단계! 논리적 설계
DBMS에 적합한 논리적 데이터 모델을 이용해서 개념적 스키마를 기반으로 논리적 스키마 설계
▶ 릴레이션 스키마 변환 규칙 5가지
규칙 1) 모든 개체는 릴레이션으로 변환한다
규칙 2) 다대다 관계는 릴레이션으로 변환한다
규칙 3) 일대다 관계는 외래키로 표현한다
규칙 4) 일대일 관계는 외래키로 표현한다
규칙 5) 다중 값 속성은 릴레이션으로 변환한다
※ 일대일, 일대다 관계도 릴레이션으로 변환할 수 있고, 특히 속성이 많은 관계는 관계 유형에 상관없이 릴레이션으로 변환할 수 있다.
4단계 ! 물리적 설계
하드웨어나 운영체제의 특성을 고려하여 필요한 인덱스의 구조나 내부 저장 구조 등에 대한 물리적인 구조를 설계한다.
5단계! 구현
SQL문을 작성하고 이를 실행시켜 데이터베이스를 실제로 생성한다.
참고자료
'IT Basic > Data' 카테고리의 다른 글
[DB] 데이터베이스 개론 - 10장 회복과 병행 제어 (0) | 2022.02.07 |
---|---|
[DB] 데이터베이스 개론 - 9장 정규화 (0) | 2022.02.07 |
[DB] 무결성(Integrity)과 보안(security) (0) | 2022.01.25 |
[DB] 데이터베이스 개론 - 7장 데이터베이스 언어 SQL (0) | 2022.01.23 |
[DB] 데이터베이스 개론 - 5장 관계 데이터 모델 (0) | 2022.01.23 |
댓글