데이터베이스 모델링
데이터베이스 모델링의 개념과 정의
현실 세계의 정보의 일부를 사용하여 프로그램을 만들기 위해 데이터베이스를 구축해야 하는 상황을 생각해보자. 무엇이 필요할까?
먼저 어떠한 프로그램을 만들 것이고, 그 프로그램에는 어떠한 데이터가 필요할지 살펴봐야 할 것이다. 그리고 그 데이터는 현실 세계의 어떠한 정보로부터 추출할 수 있는지, 혹은 어떠한 두 개 이상의 정보를 조합해 만들 수 있는지 등을 살펴봐야 한다. 그 다음에는 이러한 데이터들을 어떻게 저장해야 하는지에 대한 고민이 필요할 것이다.
데이터베이스 모델링이란 이처럼 현실 세계의 정보를 데이터베이스로 구축하기 위해 선행하는 정보의 추상화 과정
이라고 할 수 있다. 이러한 데이터 베이스 모델링은 (1) 어떤 데이터를 저장해야 하는가 라는 비즈니스 관점의 고민과 (2) 어떻게 데이터를 저장할 것인가 라는 프로그래밍적 관점의 고민을 통해 진행된다.
좀 더 데이터의 관점에서 보면 데이터베이스 모델링이란 데이터의 의미를 파악하고 데이터와 관여된 업무 프로세스를 개념적으로 정의하고 분석하는 작업
이라고도 할 수 있다.
데이터 모델링의 개념과 정의
데이터 모델링이란 데이터에 대한 요구사항을 정의하고 분석하여 추상화하는 과정을 뜻한다. 얼핏 보면 데이터베이스 모델링과 비슷한 의미로 보인다. 그 차이점을 명확하게 보여주는 설명으로는 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
이라고 할 수 있다.
참조한 서적 기준으로는 데이터베이스 모델링이 좀 더 큰 개념이고, 데이터 모델링은 그 안을 이루는 세부 단계들로 사용되고 있다.
데이터베이스 모델링의 단계
데이터베이스 모델링의 단계는 크게 아래의 네 단계로 이루어진다.
순서 | 단계 | 설명 | 대표적인 방법 | 산출물 |
---|---|---|---|---|
1 | 사용자 요구사항 분석 | - 사용자나 비즈니스 프로세스, 조직의 필요를 파악 - 데이터베이스가 해결해야 할 문제나 제공할 데이터나 기능을 정의 |
- 인터뷰, 설문조사 - 기존 시스템 분석 |
- 요구사항 명세서 - 요구사항 정의서 |
2 | 개념적 데이터 모델링 | - 사용자의 요구사항을 바탕으로 비즈니스 관점에서 데이터 구조와 관계를 정의 - 실세계 데이터를 개념적으로 일반화시키는 단계 - 이를 통해 데이터 구조, 타입, 속성, 관계, 제약조건 등을 이끌어내는 과정 - 즉, 데이터베이스의 구조적 청사진 을 그리는 단계 |
ER 모델링 | ER 모델 |
3 | 논리적 데이터 모델링 | - 개념적 모델을 기반 으로 논리적 데이터 구조를 설계 하는 단계- 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정 |
관계형 모델 | - 테이블, 속성, 키, 관계 등 - DDL로 기술된 논리 스키마(불완전) |
4 | 물리적 데이터 모델링 | - 논리적 모델을 기반 으로 데이터베이스 파일의 내부 저장 구조를 설계 하는 단계- 논리적 모델을 특정 DBMS에 맞게 변환하고 최적화 - DBMS의 전체적인 성능에 영향을 미치게 된다. - DBMS와 하드웨어의 특징 고려해 처리능력 향상시켜야 함 |
- | - 실제 데이터베이스 스키마 - 인덱스, 저장소 설계 - 완전한 DDL 문 |