본문 바로가기
데이터베이스

데이터베이스 모델링 과정

by jinjinie 2024. 3. 3.

한 조직에서 사용되는 데이터에 대한 여러 애플리케이션 프로그램을 구축하기 위해서 데이터베이스의 사용은 필수적이다. 이러한 데이터베이스는 실세계의 데이터를 특정 데이터 모델의 표기법으로 변환하는 모델링 과정을 거쳐 만들어진다. 따라서 모델링 과정의 결과물은 애플리케이션 프로그램 전반에 영향을 미치게 된다.

일반적으로 데이터베이스 모델링 과정은 먼저 데이터에 초점을 맞추어 개별적 데이터의 특징을 분리하는 개념적 데이터 모델링이 이루어지고, 이후 특정한 상용 DBMS에 맞추어 데이터를 표현하는 논리적 데이터 모델링을 거치게 된 다. 그다음 데이터베이스와 관련되는 애플리케이션 프로그램이 개발된다.

 

사용자 요구사항 분석 단계

데이터베이스 설계자는 사용자가 원하는 애플리케이션 프로그램의 요구사항을 만족하는 데이터베이스를 모델링하기 위해 실제 업무에서 사용되는 데이터의 종류와 특징을 폭넓게 파악해야 한다. 이를 위해 실제 데이터베이스 애플리케이션을 사용할 실무자와 문서를 교환하거나 인터뷰를 통하여 데이터에 대한 상세한 요구사항을 수집하고 결정하는 사용자 요구사항(user requirements) 분석을 진행한다.

사용자 요구사항 분석의 결과로 요구사항 명세서(requirement specification)가 만들어지는데 가능한 한 상세하고 간결하며 완전한 형태로 기술되어야 한다.

요구사항 명세서에는 데이터베이스 애플리케이션의 기능적 요구사항이 명시되어야 한다.

사용자가 원하는 시스템의 규모가 크고, 그 시스템을 이용할 사용자들이 다양할수록 요구사항은 더욱 복잡해지기 때문에 사용자 요구사항 분석 단계는 세 개의 세부 단계로 진행된다.

 

사용자 요구사항 분석 단계

데이터베이스 설계자는 사용자가 원하는 애플리케이션 프로그램의 요구사항을 만족하는 데이터베이스를 모델링하기 위해 실제 업무에서 사용되는 데이터의 종류와 특징을 폭넓게 파악해야 한다. 이를 위해 실제 데이터베이스 애플리케이션을 사용할 실무자와 문서를 교환하거나 인터뷰를 통하여 데이터에 대한 상세한 요구사항을 수집하고 결정하는 사용자 요구사항(user requirements) 분석을 진행한다.

사용자 요구사항 분석의 결과로 요구사항 명세서(requirement specification)가 만들어지는데 가능한 한 상세하고 간결하며 완전한 형태로 기술되어야 한다.

요구사항 명세서에는 데이터베이스 애플리케이션의 기능적 요구사항이 명시되어야 한다.

사용자가 원하는 시스템의 규모가 크고, 그 시스템을 이용할 사용자들이 다양할수록 요구사항은 더욱 복잡해지기 때문에 사용자 요구사항 분석 단계는 세 개의 세부 단계로 진행된다.

 

요구사항 분석 과정은 크게 요구사항 도출 과정, 요구사항 분석 과정, 요구사항 기록 과정으로 나눌 수 있다. 우선 요구사항 도출 과정에서는 데이터베이스를 구축하기 위한 목표, 범위를 기준으로 조사 범위를 결정한다. 조사 범위 결정 후 관련 자료와 기술 동향 등 다양한 자료를 수집하고 분석을 하거나 업무 관계자와 인터뷰를 통하여 요구사항을 도출한다.

다음으로 요구사항 분석을 하는데, 이 과정에서는 도출된 요구사항이 명확한지, 완전한지, 모호하지 않은지 판단을 해야 한다. 만약 명확하지 않거나, 완전하지 않거나, 모호한 경우 요구사항 도출 단계로 돌아가서 해당 부분을 면밀하게 다시 조사하여 정확한 요구사항을 도출한다. 그 후 도출된 요구사항들을 유형별로 분류하여 서로 유사한 요구사항이 있다면 하나로 통합하고, 서로 모순되는 점이 있다면 이를 해결한다.

다음 단계인 요구사항 기록 단계에서는 분석한 요구사항 목록을 정리하여 문서화 작업 후 관리자의 승인을 받고 프로젝트가 종료될 때까지 반영 여부를 지속해서 확인 및 관리한다.

 

데이터 모델링 단계

데이터 모델링이란 '데이터에 대한 요구사항을 정의하고 분석하는 과정'을 뜻한다. 다시 말해 데이터 모델링이란 업무에 필요한 데이터를 시스템 구축 방법론을 사용하여 분석하고 이를 정보 시스템에 반영하는 것이다. 시스템 대상이 되는 업무를 분석하여 정보 시스템을 구축하는 설계 과정에서 업무의 내용을 적절한 표기법(notation)으로 표현하는 것을 모델링이라고 하며, 그 모델링은 세 가지 범주로 구분할 수 있다.

 

  1. 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지, 데이터 간의 관계는 무엇인지에 대해서 모델링하는 방법
  2. 프로세스 관점 : 업무를 통해 어떤 일을 처리하는지, 무엇을 해야 하는지를 모델링하는 방법
  3. 데이터와 프로세스의 상관 관점 : 업무에서 일을 처리하는 방법에 따라 데이터가 어떻게 영향을 받는지 모델링하는 방법

데이터 모델링은 일반적으로 개념적 데이터 모델링 설계, 논리적 데이터 모델링 설계, 물리적 데이터 모델링 설계의 세 단계의 설계 작업을 거쳐 진행된다. 개념적 설계 단계에서는 시스템에서 관리할 데이터와 데이터 간의 관계를 정의함으로써 현실 세계의 업무를 표현한다. 이렇게 정의한 결과를 개념 스키마라고 한다. 그다음에는 논리적 데이터 모델링 작업이 필요하다. 이는 개념적 데이터 모델링 단계에서 표현한 스키마를 DBMS에서 사용하는 데이터 모델에 맞게 대응시키는 작업이다. 대응 작업이 필요한 이유는 개념적으로 모델링 된 스키마를 각 데이터베이스에 직접 적용시키는 것이 불가능하기 때문이다. 마지막으로 물리적 모델링 단계에서는 논리 스키마를 바탕으로 각 데이터에 대한 데이터 형식, 제약조건 등을 부여하여 물리적으로 데이터베이스를 모델링하는 작업이 이루어진다. 즉, 개념적 •논리적 모델링 작업으로부터 만들어진 추상적 개념이 실제로 구현되는 단계라고 볼 수 있다.

  1. 개념적 데이터 모델링
    사용자 요구사항에 대한 명세서는 데이터 흐름도, 순서 다이어그램, 시나리오 등 다양한 형태로 기술되고 정리된다. 이러한 요구사항들을 바탕으로 고수준의 모델링 단계를 진행하고 애플리케이션 프로그램 개발자와 의사소통할 때 요구사항이 잘못 해석되는 오류를 피하기 위해서 추상화(abstraction) 기법이 사용된다. 추상화는 실세계의 데이터들을 개념적으로 일반화시킨 데이터 타입, 속성, 관계, 제약 조건들을 끌어내는 과정이다. 이러한 추상화를 진행하는 단계를 개념적 데이터 모델링이라고 한다. 이를 위해 다양한 개념적 데이터 모델이 연구되었으며, 대표적으로 ER(개체-관계) 모델이 사용된다. ER 모델은 시스템이 '어떤' 데이터를 포함해야 하는지를 추상화하는 모델로 개체와 개체 간의 관계를 이용하여 데이터를 표현한다.

  2. 논리적 데이터 모델링
    앞서 설명한 개념적 데이터 모델은 데이터의 구조를 표현하는 고수준의 추상적 모델이다. 이를 상용 DBMS 상의 데이터베이스로 만들려면 각각의 DBMS에 맞는 구현 데이터 모델로 변환하는 작업이 요구된다. 이러한 변환 과정을 논리적 데이터 모델링이라고 하며, 데이터의 구조와 데이터 간 관계가 목표 DBMS의 데이터 표현 방법에 맞게 변환된다. 구현 데이터 모델은 일반적으로 관계형 데이터 모델을 사용하며, 최종적으로 목표 DBMS의 데이터 정의 언어 (DDL)로 기술된 논리 스키마가 생성된다.

  3. 물리적 데이터 모델링
    논리적 데이터 모델링의 결과물인 논리 스키마는 데이터들의 논리적 구성을 명시하고 있으며, 데이터베이스 파일들의 물리적 저장 방식을 결정하는 물리 데이터 모델링 과정을 거쳐야 완전한 DDL 문으로 완성된다. 물리적 데이터 모델링 과정에서는 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하며, 이는 DBMS 전체적 성능에 영향을 미치게 된다.