데이터베이스 모델링

데이터베이스 모델링의 개념과 정의

현실 세계의 정보의 일부를 사용하여 프로그램을 만들기 위해 데이터베이스를 구축해야 하는 상황을 생각해보자. 무엇이 필요할까?

먼저 어떠한 프로그램을 만들 것이고, 그 프로그램에는 어떠한 데이터가 필요할지 살펴봐야 할 것이다. 그리고 그 데이터는 현실 세계의 어떠한 정보로부터 추출할 수 있는지, 혹은 어떠한 두 개 이상의 정보를 조합해 만들 수 있는지 등을 살펴봐야 한다. 그 다음에는 이러한 데이터들을 어떻게 저장해야 하는지에 대한 고민이 필요할 것이다.

데이터베이스 모델링이란 이처럼 현실 세계의 정보를 데이터베이스로 구축하기 위해 선행하는 정보의 추상화 과정이라고 할 수 있다. 이러한 데이터 베이스 모델링은 (1) 어떤 데이터를 저장해야 하는가 라는 비즈니스 관점의 고민과 (2) 어떻게 데이터를 저장할 것인가 라는 프로그래밍적 관점의 고민을 통해 진행된다.

좀 더 데이터의 관점에서 보면 데이터베이스 모델링이란 데이터의 의미를 파악하고 데이터와 관여된 업무 프로세스를 개념적으로 정의하고 분석하는 작업 이라고도 할 수 있다.

데이터 모델링의 개념과 정의

데이터 모델링이란 데이터에 대한 요구사항을 정의하고 분석하여 추상화하는 과정을 뜻한다. 얼핏 보면 데이터베이스 모델링과 비슷한 의미로 보인다. 그 차이점을 명확하게 보여주는 설명으로는 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정 이라고 할 수 있다.

참조한 서적 기준으로는 데이터베이스 모델링이 좀 더 큰 개념이고, 데이터 모델링은 그 안을 이루는 세부 단계들로 사용되고 있다.

데이터베이스 모델링의 단계

데이터베이스 모델링의 단계는 크게 아래의 네 단계로 이루어진다.

순서 단계 설명 대표적인 방법 산출물
1 사용자 요구사항 분석 - 사용자나 비즈니스 프로세스, 조직의 필요를 파악
- 데이터베이스가 해결해야 할 문제나 제공할 데이터나 기능을 정의
- 인터뷰, 설문조사
- 기존 시스템 분석
- 요구사항 명세서
- 요구사항 정의서
2 개념적 데이터 모델링 - 사용자의 요구사항을 바탕으로 비즈니스 관점에서 데이터 구조와 관계를 정의
- 실세계 데이터를 개념적으로 일반화시키는 단계
- 이를 통해 데이터 구조, 타입, 속성, 관계, 제약조건 등을 이끌어내는 과정
- 즉, 데이터베이스의 구조적 청사진을 그리는 단계
ER 모델링 ER 모델
3 논리적 데이터 모델링 - 개념적 모델을 기반으로 논리적 데이터 구조를 설계하는 단계
- 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정
관계형 모델 - 테이블, 속성, 키, 관계 등
- DDL로 기술된 논리 스키마(불완전)
4 물리적 데이터 모델링 - 논리적 모델을 기반으로 데이터베이스 파일의 내부 저장 구조를 설계하는 단계
- 논리적 모델을 특정 DBMS에 맞게 변환하고 최적화
- DBMS의 전체적인 성능에 영향을 미치게 된다.
- DBMS와 하드웨어의 특징 고려해 처리능력 향상시켜야 함
- - 실제 데이터베이스 스키마
- 인덱스, 저장소 설계
- 완전한 DDL 문

Reference

데이터베이스시스템 (정재화 저)