블로그 글을 보시기 전에 2024년 비트나인의 첫 번째 월간 백서인
'오픈소스 DB 전성시대, PostgreSQL을 선택하는 이유'를 읽어보세요!
현재는 정보 기술이 발전함에 따라, 데이터 중심의 관리 기법이 발전하게 된다. 데이터의 중요도가 높아짐에 따라 중복 없이 정확하게 유지 관리할 수 있는 근본적인 방법을 찾게 되면서 모델링 기법이 발전하게 되었다. 모델은 어떤 대상을 의미하는 포괄적 의미가 있으며, 특히 현실 세계에 대한 우리가 관심 있는 대상을 데이터베이스화하기 위한 개념적 도구라고 정의할 수 있다.
본 글은 단순한 데이터 모델링부터 분석관점에서의 모델링을 시리즈별로 설명하고자 한다. 이를 위해 데이터 모델링을 수행하는 목적과 데이터의 성질에 따른 데이터베이스의 종류, 데이터 모델링 과정에 관해 설명한다.
데이터 모델링이란?
데이터 모델링이란 주어진 개념으로부터 논리적인 데이터 모델을 구성하는 작업을 말한다. 논리적인 데이터 모델을 구성하기 위해 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 모델의 기능과 성능적인 측면에서 효율적인 작성이 필요하다. 이는 물리적인 데이터베이스 모델로 환원하여 고객의 요구에 따라 특정 정보 시스템의 데이터베이스에 반영하는 작업을 포함한다.
데이터 모델링을 하는 첫 번째 목적은 업무정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이다. 두 번째는 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것이다.
이는 중복성, 유연성, 일관성을 고려하여 수행되어야 한다. 같은 데이터베이스 내의 데이터 혹은 속성의 중복으로 저장되는 것을 지양해야 한다. 유연성은 추후 변화의 가능성을 열어두고 설계를 해야 함을 말한다. 빈번한 모델에 대한 수정/변경이 이루어지지 않도록 쿼리의 튜닝까지 고려해야 한다. 일관성은 데이터 간의 연관된 정보를 무시하고 데이터가 갱신되는 경우를 피하고자 데이터 간 관계를 명확히 정의해야 함을 말한다.
데이터 모델링은 데이터베이스 관리시스템(DBMS)에 담겨 있는 데이터에 집중한다. 관계형 데이터베이스(RDB)는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 데이터베이스이다. GDB는 그래프 구조를 사용하여 데이터를 표현하고 저장하는 데이터베이스이다.
우선 본 글은 관계형 DB의 데이터 모델링을 설명할 것이다. 각 DB별 데이터 모델링의 방법은 차이가 있기 때문에 그래프 DB 모델링에 대해서는 다음 편에 다뤄볼 예정이다.
RDB의 데이터 모델링
RDB에서의 데이터 모델링은 다음과 같은 과정을 거친다. 항공 예약 시스템을 예시로 단계별 수행 과정을 상세히 살펴본다.
1. 요구사항 파악
해당 단계에서는 데이터가 어떤 형태, 목적으로 사용될지 고려한다. 아래는 항공 예약 시스템을 예시로 살펴본다.
항공 예약 시스템은 사용자(Users), 예약(Booking), 여행 일정(Journeys), 비행기편(Flights), 승객(Passengers)의 데이터를 가지고 있으며 항공 예약 진행 및 관리 업무를 목적으로 한다. 항공 예약 시스템을 구현하고자 한다면 데이터 모델은 이러한 형태의 업무에서 데이터 저장과 조회 등을 효율화하여 요구 조건들을 충족할 수 있도록 설계되어야 한다. 해당 단계에서는 항공 예약 시스템을 확인하고 요구사항을 파악하여 다음 단계로 넘어갈 수 있도록 한다.
2. 개념적 데이터 모델 설계 (E-R다이어그램 작성)
달성하고자 하는 목표에 어떤 개념들이 존재하고, 개념 간의 상호작용을 판단한다. 이를 위해 사용자의 데이터 요구사항을 찾고 분석하는 데서 시작한다. 주요 활동은 핵심 엔티티와 그들 간의 관계를 발견하고, 이를 표현하기 위한 E-R다이어그램을 생성하는 것이다. E-R다이어그램은 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타낸다.
앞의 단계에서 파악한 항공 예약 시스템에서의 요구사항을 E-R다이어그램을 통해 가시적으로 표현하여 데이터 간의 관계를 발견한다.
3. 논리적 데이터 모델 설계
데이터베이스 설계 프로세스의 Input으로 비즈니스 정보의 논리적 구조와 규칙을 명확하게 표현하는 과정이다. 단지 E-R 다이어그램뿐만 아니라 시스템 구축을 위한 사항을 모두 정의한다. 이때 정규화를 통해 논리 데이터 모델을 상세화하여 일관성을 확보하고 중복을 제거한다.
앞의 단계에서 생성한 E-R다이어그램에 개념적으로 구체화한 모델을 관계형 데이터베이스에 맞게 구축한다.
4. 물리적 데이터 모델 설계
논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다. 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대해 고려하여 데이터베이스를 설계하고 구현한다.
관계형 데이터베이스는 인덱스 조회 및 테이블 조인에 의존하여 서로 다른 엔티티를 연결한다. 특히 조인된 여러 테이블, 테이블에 수백만 개의 행이 있거나 하위 쿼리를 통해 다양한 수준을 통과하는 복잡한 쿼리는 성능에 문제를 일으킨다.
반면에, 그래프 모델에서의 데이터는 각각의 개별 항목 및 다른 개별 항목과의 관계로 구성되므로 테이블 조인 및 인덱스 조회에 대해 걱정할 필요가 없다.
왜 그런지에 대해서는 다음 편에서 간단한 GDB 개념 정의와 함께 GDB의 데이터 모델링에 대해 살펴볼 때 알 수 있을 것이다.
글: 비트나인 그래프 AI 센터
그래프 DB의 데이터 모델링도 읽어보세요!
관계형 DB와 그래프 DB, 언제 사용해야 할지 궁금하다면?
트렌디한 그래프 기술과 IT 소식을 뉴스레터로 받아보세요!
https://bitnine.net/ko/subscribe/
제품 및 기술문의
070-4800-3517 | agens@bitnine.net
'USE CASES > 사례 연구' 카테고리의 다른 글
그래프 모델링으로 알아보는 FDS (0) | 2021.03.19 |
---|---|
데이터 모델링이란? (그래프 DB 편) (0) | 2021.02.08 |
그래프 모델링으로 알아보는 지식 그래프 (0) | 2021.01.26 |
2020 美 대선 특집: 그래프 DB로 러시아 트윗 추적하기 (0) | 2020.11.06 |
블랙아웃 막아내는 ‘스마트그리드’ 기술, 화두는 ‘그래프 DB’ (0) | 2020.10.29 |