모든 구성원들의 다양한 요구를 만족시키는 데이터베이스의 구축은 쉽지 않은 일이다. 특히 데이터의 양이 많고 사용자의 수가 많을수록 데이터베이스 구축 작업은 무척이나 어렵고 복잡한 작업이 아닐 수 없다. 잘못된 데이터베이스의 구축으로 일어나는 문제들을 예방하려면 제대로 된 데이터베이스의 구축이 필수적인데, 이를 위해서는 체계적인 데이터베이스 설계 과정이 필수적이다. 체계적인 데이터베이스 설계 과정을 통해 데이터베이스가 올바르게 구축되어야만 업무를 빠르고 정확하게 수행할 수 있다.
단계별 데이터베이스의 설계 순서 5가지는 다음과 같다.
1단계 : 요구 사항 분석 - 요구 조건 명세서 작성
요구 사항 분석 단계에서는 데이터베이스의 사용 용도를 파악한다. 데이터베이스를 실제로 사용하는 사용자에게 필요한 데이터의 종류와 처리 방법같은 다양한 요구 사항을 수집하고 분석하여 요구 사항 명세서로 작성하는 것이 주요 작업이다. 요구 사항 분석 단계에서 사용자의 요구 사항은 이후의 설계 단계에서 중요하게 사용되며 데이터베이스의 품질의 중요한 기준이 된다.
2단계 : 개념적 설계 - 개념 스키마, 트랜잭션 모델링, E-R 모델
개념적 설계 단계는 1단계인 요구 사항 분석단계의 요구 사항 명세서를 가지고 사용자의 개념적 데이터 모델을 이용해 표현한다. 개념적 데이터 모델은 개발에 사용하는 DBMS의 종류에 독립적이면서 중요한 데이터 요소들의 관계를 표현할 때 사용된다.
일반적으로 E-R 모델을 개념적 데이터 모델로 많이 사용하는데, 중요한 데이터 요소들의 관계를 E-R 다이어그램으로 표현한다.
개념적 설계 단계에서 요구 사항 명세서를 개념적 데이터 모델로 변환하는 작업을 개념적 모델링이라고 하며 E-R 다이어그램과 같이 개념적 데이터 모델로 표현한 결과물을 개념적 구조 또는 개념적 스키마라고 한다.
3단계 : 논리적 설계 - 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계
논리적 설계 단계에서는 개발에 사용되는 DBMS에 적합한 논리적 데이터 모델을 이용한다. 개념적 설계 단계에서 생성한 개념적 구조를 기반으로 논리적 구조를 설계한다.
DBMS의 종류에 따라 네트워크 데이터 모델, 관계 데이터 모델, 계층 데이터 모델, 객체 지향 데이터 모델 등을 논리적 데이터 모델로 사용할 수 있다.
논리적 설계 단계에서 E-R 다이어그램을 릴레이션 스키마로 변환하는 것을 논리적 모델링 또는 데이터 모델링이라고 하며, 논리적 데이터 모델로 표현된 결과물을 논리적 구조 또는 논리적 스키마라고 한다.
4단계 : 물리적 설계 - 목표 DBMS에 맞는 물리적 구조의 데이터로 변환
논리적 설계 단계에서 설계된 논리적 구조를 바탕으로 물리적 구조를 설계하는데, 데이터베이스 파일의 저장 구조 및 액세스 경로, 인덱스 구조, 레코드 크기, 순서, 경로 등을 결정한다. 이는 반응시간과 공간활용도, 트랜잭션 처리량을 고려하며 설계해야 한다.
가장 이상적인 물리적 설계는 응답 시간을 최소화하고 저장 공간을 효율적으로 활용하며, 데이터 처리 능력을 향상시키며 설계하는 것이다. 물리적 설계의 결과물인 물리적 구조를 내부 스키마 또는 물리적 스키마라고 한다.
5단계 : 구현 - 특정 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성
이전 설계 단계의 결과물들을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하며 데이터베이스를 실제로 생성한다. 특정 DBMS에서 데이터베이스 스키마를 만들고 데이터를 입력하며, 응용 프로그램에서 사용하기 위한 트랜잭션 또한 생성한다. 이때 사용되는 SQL문은 테이블 또는 인덱스 등을 생성할 때 사용되는 데이터 정의어(DDL)이다.
'Data > Database' 카테고리의 다른 글
[Oracle/MySQL] Foreign KEY 제약 조건을 위배하는 레코드(로우) 찾기 - Duplicate 중복 에러 (0) | 2021.03.24 |
---|---|
[DB] Oracle / MySQL - 특정 컬럼이름으로 테이블 찾기 (0) | 2021.02.01 |
[DB] 3단계 데이터베이스-외부/개념/내부스키마 (2) | 2020.12.17 |
[DB] Transaction과 ACID (0) | 2020.12.16 |
[DB] 데이터베이스 관리 시스템 (0) | 2020.12.13 |