2024. 11. 27. 21:54ㆍ데이터베이스
데이터베이스 설계(database design)
사용자의 요구사항으로부터 현실세계를 반영한 데이터베이스 구조를 도출해내는 과정
(= 여러 필드로 구성된 테이블을 어떠한 물리적 형태의 데이터베이스로 저장할 것인가)
DB 설계 단계
요구사항 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 |
요구사항 분석
- DB가 제공해야 하는 핵심적인 정보 대상 및 제한 조건 도출
개념적 설계
- 개념적 스키마 생성 → 개체관계 다이어그램(Entity Relationship Diagram, ERD) or ER 스키마(ER schema)
- 개체관계 모델(entity relationship model)이 대표적
- 추상적으로 표현하는 단계
논리적 설계
- 논리적 스키마 생성 → 테이블 스키마(relational shema) or 데이터베이스 스키마(database schema)
- 관계형 테이블과 이를 구성하는 필드 집합 정의
물리적 설계
- 물리적 스키마 생성
- 테이블의 저장 구조 결정 (ex. 필드의 데이터 타입, 인덱스 등)
- 가장 단순한 방법은 필드의 데이터 타입만 결정한 후 SQL의 create table 이용하여 테이블 생성하기
- DB의 성능이 중요할 땐 시간•공간 측면 고려하여 설계
설계 시 고려 사항
충실성(faithfulness)
- DB에 사용자와 응용 프로그램이 필요로 하는 모든 정보가 표현되어야 함
- 요구사항과 설계 과정에 존재하는 것들이 다르지 않도록 주의
- 데이터 무결성
단순성(simplicity)
- ER 스키마 혹은 테이블 스키마만 보고서도 요구 사항이 무엇이었는지 역으로 파악할 수 있어야 함
- 스키마 관리 용이, 응용 프로그램 작성 과정 쉬워짐
중복의 최소화(redundancy minization)
- 데이터 중복 시 저장 공간 낭비 + 데이터 일관성 깨짐
제약조건(constraints)의 표현
- 제약 조건: 데이터가 갖춰야 할 특성 (ex. 학생은 하나의 학과에만 소속, 한 교과목은 각 학기마다 한 강좌만 개설 등)
- 모든 제약 조건이 스키마상에 표현될 수는 없음 → 데이터 모델이 주어진 제약 조건의 표현 수단을 제공 못하는 경우