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