Review/책

[리뷰 - 책] 프로젝트 승패를 결정 짓는 데이터 모델링 이야기 정리 (챕터 1~6)

소스코드 요리사 2018. 7. 20. 16:28
Blog2Book, 프로젝트 성패를 결정짓는 데이터 모델링 이야기

Blog2Book, 프로젝트 성패를 결정짓는 데이터 모델링 이야기

김상래

멘토가 들려주는 따스한 데이터 모델링 이야기

객체지향과 패턴의 원리를 이해하면 코딩에 자신감이 붙듯, 데이터 모델링도 그 본질적 원리를 제대로 깨우치면 어떤 과제든 완수할 수 있다는 자신감이 생긴다. 이 책은 공학과 철학을 넘나들며 다른 책에서 충분히 다루지 않은 모델링의 본질적 이야기를 담았다. 저자가 친절히 그려준 책 구성 지도(책 8~9페이지)를 함께 보며 엔터티 정의부터 관계, 코드 속성 표준화, 유연성 등 추상적이고 어렵게만 느껴지던 개념들을 명쾌히 이해해보자.







회사 책장에 꽂혀 있는 책이었는데, 잠시 보고 괜찮아서 소장하려고 구매하여 읽고 있습니다.

데이터베이스 개념들을 쉽게 풀어 놓은 게 장점 인 것 같습니다. 따라서 DB 초보자에게 알맞은 책이라고 할 수 있습니다.


먼저 총 18챕터 중 1~6 챕터까지 먼저 정리해서 글을 올립니다. 시간 날 때마다 정리해서 올리도록 하겠습니다.



01.데이터 모델링은 일상가까이 존재한다.

관계형 데이터 모델링은 2차원 테이블(표) 구조에 데이터를 어떻게 담는 것이 최적인지 고민하는 과정


02. 데이터를 이해한다는 것

업무를 이해한다 :
단위 업무의 시작과 긑을 일의 경로나 공정을 중심으로 알아간다는 뜻, 즉 업무 프로세스를 이해한다. 라는 뜻과 일맥상통.


업무 데이터를 이해한다 :
비즈니스를 데이터 측면에서 처음부터 끝까지 조명해보는 것. 즉, 겉으로 드러나는 업무 처리방법, 공정과는 분리해서 데이터가 어떻게 발생하고 흐르는지 데이터 사이의 선행관계와 같은 종속성 규칙을 관찰하고 읽어내야한다.
예) 여러상품을 묶어서 한번에 주문할 수 있는지, 특정상품을 구매하기 위해서 반드시 선주문을 해야하는지, 함께 구매해야하는 상품이 있는 지 등

상품과 주문 사이의 관계에서는 누가, 언제(시간)라는 개념이 들어간다. (보통 업무 상 많이 볼 수 있는 데이터라서 적음)


03. 데이터 저장구조에 대한 고민을 시작하다.

프로그램에서 보이는 화면과 데이터가 저장되는 구조는 다르다.

업무요건을 보면 데이터가 보여야하고, 업무에서 흘러 다니는 데이터의 성격을 이해 할 수 있어야함.
데이터의 종성성이 업무적으로 어떻게 관리되고 있는지 또는 어떻게 관리하려 하는지 정확히 알아야한다.

이에 따라 데이터의 독립성 여부와 모델 골격이 변경될 수 있다.


04. 데이터를 모델링한다는 것

일반적으로 디멘션(관점) 혹은 그룹핑을 위한 논리적인 계층구조는 1:N 형태의 엔티티간 부모-자식 관계를 만든다. fact를 규정하는 개별 디멘션은 각각 테이블로 만들어져 fact 테이블의 상위 테이블이 되어야 하며, 디멘션 내의 계층 구조를 표현하려면 각 디멘션은 다시 상,하위 테이블로 분리되어야 한다.


데이터는 저장된 정보와 가공된 분석정보로 나뉠 수 있다.


OLTP : On-Line Transection Processing

거래 처리 데이터 -> 일반적인 정보와 유사한 의미 인 것 같음.
빈번한 거래 데이터의 입력, 수정, 삭제 과정에서의 효율성이 목표. OLTP 운영 데이터의 관리단위는 정규화된 테이블

OLAP : On-Line Analysical Processing
OLTP에 저장된 운영 데이터를 통합하고, 변환하여 분석정보를 생산하는 영역. 거래 데이터를 기초로 효과적으로 분석하고 조회 하는 것이 목표.
OLAP는 분석과 집계를 위한 관련 데이터들의 묶음이 관리단위.
OLTP보다 정규화가 덜된 상태일 가능성이 높음.


05. 범주화와 추상화, 엔터티의 본질

본질 : 근본적인 정보 (예: 물리적으로 유일한 사람)
현상 : 논리적 맥락이나 역할 (예: 학생, 교수, 은행원, 고객 등)

사물(개체)의 본영의 속성/본질을 파악하는 것이 중요하다. 본질파악

범주화 : 유사한 것들을 일정하게 묶는 프로세스
추상화 : 구체적 사물들을 공통된 가장핵심적인 특성만 추려 인식의 대상으로 삼는 행위. 하나의 집합을 이룸.

엔터티 : 업무 수행에 필요한 데이터를 성격이 유사한 것끼리 모아놓은 집합

데이터 모델링이란 결국 어떤 개체에 속하는 범주를 규명하여 개체 집합을 분리하고 묶는 수준을 고민하는 과정.


06. 데이터 모델링은 2차원 표에 데이터를 어떻게 담는 것이 최선인지 고민하는 과정이다



외부스키마 : 사용자 개개인이 보고자 하는 정보 단위의 뷰. 테이블을 조인하여 보여주는 집합

개념스키마 : 개별 사용자 관점을 데이터 관점 혹은 데이터 유형으로 통합한 뷰, 논리데이터의 모델
내부스키마 : 데이터가 저장되는 스키마 구조, 테이블 수준의 물리모델 (RDB는 2차원의 표라고 생각하면 됨), 통상적으로는 물리데이터 모델과 저장구조까지 포함.


개념스키마가 외부스키마보다 데이터 본질에 가깝다.

2차원의 테이블 관점으로 생각하는 것이 모델링. 하나의 행이 개체이며, 개체들을 구성요소로 갖는 집합이 엔터티이다.


개념모델은 모델을 상세화 하기전에 주요 엔터티를 정의하고, 엔터티의 주식별자와 주요속성까지 도출하여 엔터티간의 관계까지 정리한 수준의 모델. 논리모델은 개념모델에 살을 붙여 상세화하고 정규화한 것.


최종사용자가 보는 UI 수준의 뷰에서 데이터의 관련성을 중심으로 정보를 분리하는 안목과 사고방식이 필요.