Computer Science/데이터베이스
Chapter 8. 데이터베이스 설계
ssun_bear
2024. 7. 10. 16:15
반응형
- 다양한 요구 사항을 모두 만족시키는 데이터베이스를 구축하는 일은 어려움
- 저장해야 하는 데이터의 양이 많고 사용자 수가 많은 조직일수록 어렵고 복잡
- 사용자들의 요구 사항을 잘 분석하고, 분석한 결과를 바탕으로 데이터베이스의 논리적, 물리적 구조를 제대로 설계해야할 필요성 존재
데이터베이스 설계
- 사용자들의 요구 사항을 고려하여 데이터베이스를 생성하는 과정
데이터베이스는 구조를 변경하기 어렵기 때문에 설계 과정에서부터 품질 좋은 데이터베이스를 생성해야 됨품질 기준
사용하는 구성원들의 요구 사항을 만족하는지, 데이터의 일관성과 무결성, 사용자가 이해하기 쉽고 접근성이 좋은지 ... etc
데이터베이스 설계 방식
E-R모델과 릴레이션 변환 규칙을 이용한 데이터베이스 설계와 정규화를 이용한 데이터베이스 설계
데이터베이스 설계 과정
요구 사항 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
요구 사항 분석
- 조직의 구성원들이 데이터베이스를 사용하는 용도를 파악
- 수집한 다양한 요구 사항을 분석하여 그 결과를 요구 사항 명세서로 작성하는 것이 주요 작업
- 먼저 데이터베이스를 사용할 주요 사용자의 범위부터 결정하여 불필요한 요구 사항을 수집하지 않도록 함
- 요구 사항 분석이 잘못되면 사용자가 원치 않는 데이터베이스가 개발되어, 고치거나 다시 개발하는 수고가 뒤따를 수 있음 (신중하고 꼼꼼하게 작업해야 함)
개념적 설계
- 요구 사항 분석 단계의 결과물인 명세서를 바탕으로 개념적 구조를 설계
- 사용자의 요구 사항을 개념적 데이터 모델을 이용해 표현 / 일반적으로 E-R모델로 설계하며 E-R 다이어그램으로 표현하는 것이 주요 작업
- 요구 사항 명세서 → 개념적 데이터 모델 = 개념적 모델링개체와 속성 추출 - 일반적으로 요구 사항의 문장에서 명사
관계 추출 - 일반적으로 요구 사항을 표현한 문장에서 동사
논리적 설계
- 개발에 사용할 DBMS에 적합한 논리적 데이터 모델을 이용해 개념적 구조를 기반으로 논리적 구조를 설계
- 일반적으로 관계 데이터 모델을 사용하며, E-R 다이어그램을 릴레이션 스키마로 변환하는 것이 주요 작업
- 변환 시 고려할 사항이 많음
- 개념적 데이터 모델 → 논리적 데이터 모델 = 논리적 모델링
- 모든 개체는 릴레이션으로 변환한다
- 다대다 관계는 릴레이션으로 변환한다
- 일대다 관계는 외래키로 표현한다
3-1 일반적인 일대다 관계는 외래키로 표현한다
3-2 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키로 지정한다 - 일대일 관계는 외래키로 표현한다
4-1 일반적인 일대일 관계는 외래키를 서로 주고받는다
4-2 일대일 관계에 필수적으로 참여하는 개체의 릴레이션만 외래키를 받는다
4-3 모든 개체가 일대일 관계에 필수적으로 참여하면 릴레이션 하나로 합친다 - 다중 값 속성은 릴레이션으로 변환한다
- 기타 고려 사항
- 속성이 많은 관계는 관계 유형에 상관없이 릴레이션으로 변환하는 것을 고려할 수 있음
다만 릴레이션의 개수가 많으면 DBMS의 부담이 커짐, 릴레이션의 개수가 불필요하게 늘어나지 않도록 관리
- 릴레이션 스키마 변환 규칙
물리적 설계
- 논리적 구조를 기반으로 물리적 구조를 설계
- 저장 장치에 적합한 저장 레코드와 인덱스의 구조 등을 설계하고, 저장된 데이터와 인덱스에 빠르게 접근하게 할 수 있는 탐색 기법 등을 정의
- 데이터베이스를 실제로 구축할 컴퓨터 시스템의 저장 장치와 운영체제의 특성을 고려하여 물리적인 구조를 설계하는 것이 주요 작업
- 응답 시간을 최소화하고 저장 공간을 효율적으로 활용하면서 데이터베이스 시스템의 처리 능력을 향상시킬 수 있도록 설계
구현
- 이전 설계 단계의 결과물을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성
- 데이터 정의어(DDL) 사용
※ 모든 단계가 중요하지만, 그 중에서 데이터베이스의 개념적 구조와 논리적 구조를 설계하는 요구 사항 분석, 개념적 설계, 논리적 설계 단계가 핵심
반응형