[DB] 데이터 모델링

2023. 12. 18. 10:05CS/DataBase

데이터 모델링 개념

 

데이터 모델링을 건축에 비유하면 지반 설계를 하는 것과 같다. 지반 설계가 잘못되면 건물을 아무리 튼튼하게 짓는다 해도 오래갈 수 없다. 소프트웨어 개발 또한 다 끝나갈 때쯤 데이터 모델링이 잘못됐다는 것을 발견하면 처음부터 다시 진행해야 한다. 발견하지 못하더라도 나중에 오류를 발견하게 되면 이것을 수습하는 비용 또한 많이 들 것이다. 잘못된 설계로 잦은 오류가 발생하는 프로그램은 사용자에게 신뢰를 잃고 있으나 마나 한 생각을 가지게 만들 것이다.

 

데이터 모델링은 현실 세계의 복잡한 개념을 단순화하고 추상화시켜  데이터베이스화하는 과정이다. 최종적으로 구축된 데이터베이스는 현실 세계의 대상이 되었던 개념과 일치한다.

 

데이터베이스 생명주기

 

데이터베이스는 최초 사용자의 요구에 의해 구축되어 사용되다가 필요에 따라 개선 또는 다시 구축되어 사용된다. 이러한 데이터베이스의 생성과 운영에 관련된 특징을 데이터베이스 생명주기라고 한다.

 

  1. 요구사항 수집 및 분석
    • 사용자들의 요구사항을 듣고 분석하여 데이터베이스 구축의 범위를 정하는 단계이다. 마당서점의 경우 고객, 운영자, 경영자 등의 사용자의 범위와 서비스 수준을 정하는 것을 말한다.
  2. 설계
    • 분석된 요구사항을 기초로 주요 개념과 업무 프로세스 등을 식별하고(개념적 설계), 사용하는 DBMS의 종류에 맞게 변환(논리적 설계) 한 후, 데이터베이스 스키마를 도출한다
  3. 구현
    • 설계 단계에서 생성한 스키마를 실제 DBMS에 적용하여 테이블 및 관련 객체(뷰, 인덱스 등)를 만든다. 또한 관련 소프트웨어에 설계한 데이터베이스를 적용하여 서비스를 제공할 수 있도록 프로그램을 완성한다.
  4. 운영
    • 구현된 데이터베이스를 기반으로 소프트웨어를 구축하여 서비스를 제공한다.
  5. 감시 및 개선
    • 데이터베이스 운영에 따른 시스템의 문제를 관찰하고 데이터베이스 자체의 문제점을 파악하여 개선한다. 이 단계에서는 데이터베이스가 지속적으로 운영될 수 있도록 변경 및 유지 보수를 한다.

 

데이터 모델링 과정

 

데이터베이스 생명주기는 데이터베이스의 구축-사용-개선-재구축의 순환 과정으로 이루어진다. 우리가 이 장에서 살펴볼 데이터 모델링은 데이터베이스 생명주기 중 요구사항 수집 및 분석부터 설계까지 과정을 말한다. 

 

요구사항 수집 및 분석 단계

  1. 현실 세계의 대상 및 사용자의 요구사항을 정리하고 분석한다. 
  2. 중요한 개념을 구분 (개념적 모델링)
  3. 각 개념을 구체화한다 (논리적 모델링)
  4. 데이터베이스 생성 계획에 따라 개체, 인덱스 등을 생성 (물리적 모델링)

 

개념적 모델링

 

개념적 모델링은 요구사항을 수집하고 분석한 결과를 토대로 업무의 핵심적인 개념을 구분하고 전체적인 뼈대를 만드는 과정이다. 여기서 핵심적인 개념을 구분한다는 것은 개체를 추출하고 각 개체들 간의 관계를 정의하여 ER다이어그램을 만드는 과정까지 말한다. 간략하게 설명하면 개체는 구체적으로 표한할 수 있는 실체이며, ER 다이어그램은 이러한 실체들의 관계를 표현한 것이다.

 

설계자는 사용자의 요구사항을 분석하여 가장 핵심적인 개체와 개별 개체를 식별할 수 있는 핵심 속성(PK), 그리고 각 개체 간의 관계를 정의하여 데이터베이스화할 수 있는 일반적인 개념으로 표현한다.

 

개념적 모델링은 건물의 기본 골조를 만드는 과정과 같이 데이터베이스의 큰 골격을 만드는 과정이다. 따라서 완성된 ER 다이어그램이 사용자의 요구사항을 제대로 반영하였는지, 또 업무 처리 절차에는 문제가 없었는지 등을 점검하여 잘못된 ER 다이어그램과 업무 처리 절차에 대해서 수정을 한다.

 

논리적 모델링

 

논리적 모델링은 개념적 모델링에서 만든 ER 다이어그램을 사용하고자 하는 DBMS에 맞게 매핑하여 실제 데이터베이스로 구현하기 위한 모델을 만드는 과정이다. ER 다이어그램은 DBMS의 특정에 따라 관계 데이터 모델, 네트워크 데이터 모델, 계층 데이터 모델 등으로 매핑이 이루어진다.

 

  • 개념적 모델링에서 추출하지 않았던 상세 속성들을 모두 추출한다.
  • 정규화를 수행한다
  • 데이터의 표준화를 수행한다

 

물리적 모델링

 

물리적 모델링은 작성된 논리 모델을 실제 컴퓨터의 저장 장치에 저장하기 위한 물리적 구조를 정의하고 구현하는 과정이다. 물리적 모델링을 할 때는 DBMS의 특성에 맞게 저장 구조를 정의하여야 데이터베이스가 최적의 성능을 낼 수 있다.

 

  • 응답시간을 최소화해야 한다.

트랜잭션이 시작되어 종료될 때까지 걸리는 시간을 응답시간이라고 한다. 물리적 모델링이 잘못될 경우 응답시간이 오래 걸려 사용자들이 불편을 느낀다.

  • 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토해야 한다.

데이터베이스가 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있느냐는 시스템 전체의 성능에 영향을 미친다. 따라서 트랜잭션을 효율적으로 분산시킬 수 있는 전략이 필요하다.

  • 데이터가 저장될 공간을 효율적으로 배치해야 한다.

DBMS에 따라 다양한 저장 방법이 있으므로 저장될 데이터의 특성을 파악하여 저장 방법을 결정한다. 또한 데이터의 사용 형태에 따라 검색을 위한 인덱스를 설계하여 최적의 성능을 낼 수 있도록 한다.

 

 

'CS > DataBase' 카테고리의 다른 글

[DB] 트랜잭션  (0) 2023.12.20
[DB] 정규화  (0) 2023.12.19
[DB] 인덱스  (0) 2023.12.15
[DB] 무결성 제약조건  (0) 2023.12.14
[DB] 관계형 데이터 모델  (0) 2023.12.11