데이터베이스 스키마 설계
IT위키
더 많은 작업
데이터베이스 스키마 설계(Database Design)는 사용자의 요구 조건에서 출발해 개념적 설계, 논리적 설계, 물리적 설계를 차례로 거쳐 데이터베이스의 구조(스키마)를 정하고 구현하는 과정이다.
- 요구 조건 분석(Requirement Formulation)
- 개념적 설계(Conceptual Schema)
- 논리적 설계(Logical Schema)
- 물리적 설계(Physical Schema)
- 데이터베이스 구현
- DBMS에 독립적인 개념 스키마 모델링
- 트랜잭션 모델링
- ER 다이어그램 산출
- DBMS 와 하드웨어에 독립적인 개념 스키마를 만든다. 논리적 설계보다 앞 단계다
- 트랜잭션 모델링(어떤 트랜잭션이 필요한지 정의)은 이 단계에서 하지만, 트랜잭션 인터페이스 설계는 논리적 설계에서, 트랜잭션 작성은 구현 단계에서 한다
- 논리 스키마의 설계
- DBMS의 구현 데이터 모델로 표현된 데이터베이스 스키마 도출
- 컴퓨터가 이해하고 처리할 수 있는 특정 DBMS가 지원가능한 논리적 데이터 구조로 변환
- 트랜잭션의 전체적인 골격을 개발하고 인터페이스를 정의한다
- 정규화로 만든 스키마를 평가하고 정제한다. 중복과 이상 현상이 남지 않았는지, 요구 조건을 모두 담는지 검토해 다듬는 일로, 논리적 설계 단계에 속한다. 응답 시간·저장 공간·트랜잭션 처리량 같은 물리적 설계의 고려 사항이 아니다
- 목표 DBMS 에 맞는 스키마 설계를 한다. 개념 스키마(ER 모델)를 선택한 DBMS 의 데이터 모델(관계형이면 테이블·키·관계)로 바꾸는 일이고, 정규화도 이 단계에서 한다. 물리적 설계의 일이 아니다
- DB 파일에 대한 저장 구조와 접근 경로를 결정
- 응답시간, 저장공간의 효율, 트랜잭션 처리도를 고려
- 목적은 논리적 설계로 만든 스키마를 효율적인 방법으로 저장하는 것이다
- 저장 레코드의 형식, 레코드의 순서(클러스터링), 접근 경로(인덱스·해시), 파일 조직을 정한다
- 물리적 설계의 대표 작업은 저장 레코드 양식 설계, 레코드 집중(clustering)의 분석 및 설계(함께 쓰는 레코드를 가까운 물리 공간에 모으기), 접근 경로 설계다
- 저장 레코드는 물리적 데이터베이스 구조의 기본 데이터 단위다. 저장 레코드 양식을 설계할 때는 항목마다 데이터 타입(표현 방식과 길이), 데이터 값의 분포(값이 어떻게 퍼져 있는지, 인덱스와 분할 기준에 영향), 접근 빈도(자주 쓰는 항목을 묶거나 앞에 둠)를 고려한다. 트랜잭션 모델링은 개념적 설계의 일이라 여기에 들지 않는다
- 트랜잭션 처리량과 응답 시간, 디스크 저장 공간, 시스템 운용 비용을 함께 고려한다
- 인덱스 설계, 파티셔닝, 반정규화가 이 단계에서 이뤄진다
- 트랜잭션의 인터페이스를 설계하는 것, 데이터 타입과 데이터 타입들 간의 관계로 표현하는 것은 물리적 설계가 아니라 논리적 설계의 일이다
- 해당 DBMS의 DDL을 통해 구축
| 단계 | DBMS 와의 관계 | 주요 작업 | 결과 |
|---|---|---|---|
| 요구 조건 분석 | 무관 | 사용자의 데이터·처리 요구 조건 수집과 명세 | 요구 조건 명세서 |
| 개념적 설계 | DBMS 에 독립적 | 개념 스키마 모델링, 트랜잭션 모델링 | E-R 다이어그램(개념 스키마) |
| 논리적 설계 | 목표 DBMS 의 데이터 모델에 맞춤 | 논리 스키마 설계, 정규화, 스키마 평가 및 정제, 트랜잭션 인터페이스 설계 | 논리 스키마(테이블·키·관계) |
| 물리적 설계 | 목표 DBMS·하드웨어에 종속 | 저장 레코드 양식 설계, 레코드 집중 설계, 접근 경로(인덱스) 설계, 응답 시간·저장 공간·트랜잭션 처리량 고려 | 물리 스키마(내부 스키마) |
| 구현 | 목표 DBMS | DDL 로 스키마 생성, 트랜잭션(응용 프로그램) 작성 | 데이터베이스 |