메뉴 건너뛰기

bysql.net

01 이 책의 소개

2013.04.16 02:21

남송휘 조회 수:12276

Introduction

이책이 필요한 이유는?

The Data Model Resource Book voulme 1

  • 공통적인 데이터 모델 구조를 모델링하는 표준방법을 제시하는 책을 어디서 찾을수 있을까?
  • 개인과 조직, 상품, 주문, 배송, 청구, 회계, 예산, 인력 등에 대한 뎀플릿 데이터 모델 라이브러리 제공
  • 판매분석, 인적자원분석, 재고 관리 분석을 위한 DW 모델에 대한 템플릿 모델도 제공

The Data Model Resource Book Volume 2
  •  Volume 1 의 템플릿 데이터모델 확장
  •  제조,통신,헬스케어, 보험, 회계서비스,전문적인 서비스, 여행 및 e-커머스 소매업종 추가
    • ' 우리 조직과 우리의 요구사항인 높은 수준의 품질을 가진 데이터 모델을 시녹하게 구축하기 위해 참조모델을 어떻게 확장하고 커스터마이징해야 하는가?'

Volume 3

  • 모든 데이터모델에 적용할 수 있는 공통적인 기반 구조(common underlying structure)에 대해 살펴봄

경험법칙 (rule of thumb)

  • 1/3 - 대부분의 조직에 적용할수 있는 공통구조
  • 1/3 - 업종 특화
  • 1/3 - 특정 조직에 특화

많은 유형의 데이터 요구사항을 데이터 모델링의 유니버설 패턴(Universal Pattern for Data Modeling)을 재사용하여 빠르고 일관성 있게 모델링할 수 있는 템플릿을 제공

유니버설 데이터모델과 데이터 모델링의 유니버설 패턴의 차이

  • 유니버설 데이터모델
    •  매우 공통적인 데이터모델에 적용
  • 유니버설 패턴
    •  어떤 유형의 데이터 모델에도 확정하여 적용 가능
  • 유니버설 데이터모델의 대다수는 유니버설 패턴에 기초

데이터 모델링의 유니버설 패턴

  •  기반 구조의 빌딩블록(Building block)을 제공, 모델러들이 어던 모델을 구축하든지 이를 재사용할수 있게함

Volume 3 패턴

  •  it 전문가의 모델링 수행시 표준으로 사용 ; 일관된 스타일 유지
  •  데이터 전문가가 데이터모델을 구축, 확장할때 표준 툴킷으로 사용
  •  공통 데이터베이스 구조의 기반으로 사용되는 표준으로 사용
  •  고객이 sw나 다른 표준 데이터모델을 구매할대 활용할수 있는 도구로 사용
  •  기존 시스템 개발  시 작성된 데이터모델을 평가 점검후 대안 옵션의 객관적 자료로 사용
  •  기업의 데이터 전문가와 IT분야 직원의 교육 자료로 사용

데이터 모델링 방법론의 확장

데이터 모델링

  • Perter Chen 박사의 1976년 논문에서 처음 인정받은 방법론
  • 데이터모델링에 관한 많은 표준이 존재하지만 데이터 모델링 표준을 더 높은 수준가지 끌어올릴 필요가 있다
  • 재사용하기 편리한 형식의 사례들을 포함하고 있는 데이터 모델링의 유니버설 패턴 라이브러리를 제꽁하는 것이 이책의 목표

패턴이란? 그리고 유니버설 패턴이란?

패턴

  • 일반론
    • '무엇인가를 만들기 위해 가이드로 삼는 그 어떤 것'
  • 데이터모델링
    •  데이터모델을 개발하기 위한 가이드로 사용된 템플릿

유니버설

  •  Webster
    •  매우광법위한 용도에 적용하는 것: 포괄적인, 전체에 영향을 미치거나 확장되는
  •  유니버설 패턴
    • '광범위한 용도에 적용' 될수 있으며 전체적인 관점을 제공하면서도 시간과 노력을 절약하고 많은 조직이 사용할 수 있게 하는 것

패턴이 왜 중요한가?

  • 건설 엔지니어는 특정한 현수교를 건설할 때마다 이미 존재하는 설계패턴을 사용한다. 교량의 외장은 다를 수 있지만 대다수의 기반구조는 동일
  • 유니버셜 패턴은 어떠한 데이터 모델링 상황에서도 더 높은 수준의 시작과 대안을 제공하고 어떠한 데이터모델링 작업에서도 품질과 일관성을 제공할수 있는 재사용 가능한 기반 빌딩 블록을 제공

이책의 접근법

  • 독자
    •  데이터 모델링에 대한 기본지식을 가지고 있다고 가정
  • IT 전문가
    •  기본적인 도구와 재사용 가능한 빌딩 블록 제공
  • 가장 구체적인 패턴-> 가장 일반화된 패턴으로 진행하며 설명


패턴의 다양한 레벨

  • 레벨1 컨택 매터니즘 패턴
    •  매우 구체적인 패턴
      ex) CUSTOMER 엔티티에 country telephone code, area code, telephone number 속성을 포함
  • 레벨2 컨택 메커너즘 패턴
    • 더 일반화된 데이터모델 구조를 사용하여 유연하게 변화
      ex) 동일한 유형의 연락정보를 모델링
  • 레벨3 컨텍 메커니즘 패턴
    •  레벨 2보다 더일반화
  • 레벨4 컨택 메키너즘 패턴
    •  가장일반화된 패턴


데이터모델의 목적은 무엇인가?

  • 1.정보 요구사항을 보여주고 의사소통하기 위해
    • 상세한 요구를 보여줄수 있는 더 구체적인 모델을 개발; 레벨 1 컨택 메커니즘
  • 2.데이터베이스 설계를 위한 견고한 토대를 제공하기 위해
    • 더 많은 유연성을 포함 해야함 , 레빌3,4 컨텍 메커니즘
  • 어떤 관계자던 다양한 유형,목적,용도와 우선순위를 가짐, 이 모델은 매우 안정적이며 컨택 메커니즘의 유형이나 분류를 추가해야 하는 미래의 요구가 생기더라도 거의 변경되지 않음
    but)  이해하기가 더 어려운 경향이 있고 구체적인 규칙을 모델링에 적용 불가

sQJ-XSbYApIaNaN7MJGzh0w.png

일반화의 레벨 (Levels of generalization)


더 구체적인 모델링 스타일의 이점

더 일반화된 모델링 스타일의 이점

이해하기 쉬운모델

더 유현함. 데이터모델을 변경할 필요 없이 추가적인 데이터나 데이터 변경을 더 용이하게 수용할 수있음. 현재와 미래의 요구사항을 충족시킬수 있음

기술을 잘 모르는 청중과 더 쉽게 의사소통 하는 방법, 요구사항을 더 쉽게 검증하고 수집하는 방법, 데이터 요구사항의 범위를 더 쉽게 정의하는 방법

더 많은 일관성, 더 높은 레벨의 패턴은 동일한 유형의 구조를 갖는 모델을 만들어 내며, 데이터모델의 일관성과 표준화를 제고시킴


모델을 일반화하기 전에, 데이터 요구사항을 이해하기 위한 좋은 방법

더 일반화된 데이터모델에 기반한 물리 데이터베이스 설계는 데이터를 관리하고 접근하는 공통 루틴을 더 많이 사용할 수 있게한다. 왜냐하면 데이터 구조가 유사한 경향이 있기 때문이다.

데이터모델에 직접적으로 더 많은 비지니스 룰을 기술하고 적용할 수 있음

하나의 데이터모델 구조 내에서 다양한 유형의 데이터를 결합시킴으로써 더 많은 강점과 구현 역량을 제공할 수 있음. 예를 들어, 하나의 엔티티에서 상품에 대한 모든 분류를 함께 관리한다면 그 모델은 강력한 분석 능력을 제공함.

프로토타입을 구현하기가 더 용이함

물리 데이터베이스 설계의 기반으로서 사용될 때 그리고 견고함 고품질 데이터베이스 설계를 개발할 때 안정적인 토대를 제공함.


2110140301005.png



데이터 모델은 다양항 청중이 있음

  • 다양한 유형과 다양한 스타일의 모델 필요
  • ‘비즈니스 데이터모델' 과 ‘아키텍처 데이터모델' 두가지 모델을 관리 매칭,교차 참조는 복잡함
  • 패턴사용
    •  주문상태를 보여주는 레벨1 상태 패턴은 동일한 모델에서 더 유연한 레벨3 상태패턴으로 대체 될수 있음
    • 패턴-> 서로간에 대처될수있는 컴포넌트


레벨 개념을 사용하여 패턴을 기술하는 이유

  • 1. 패턴은 개념,논리,물리 데이터모델과 관련이 있는것보다 모델의 일반화 레벨과 더 많이 관련
    • 레벨은 일반화의 정도 를 강조
    • 레벨1은 일반화가 거의 잇지 않는 반면 레벨4는 높은 정도의 일반화
  • 2. 데이터 관리 분야에서 개념 데이터모델, 논리 데이터모델, 물리 데이터모델이 논쟁여지가 있음
    • 일반적으로 폭넓게 받아들여질수있는 개념, 논리,물리 데이터모델의 공통적 정의를 내리기 어려움



이책의 독자는?

데이터 모델러, 데이터 아키텍트, 데이터 분석가, 데이터베이스 관리자, 데이터베이스 설계자,데이터 스튜어드(data steward), 컴퓨터 과학교사, 학생, 기업의 데이터 통합 담당자, 모델링에 참여하는 모든사람

이책의 내용

2장. ‘역할의 설정: 관계자는 어떤 역할을 수행하는가(Setting Up Roles: What Parties Do)’
3장.’역할의 활용: 관계자가 어떻게 관련되어 있는가(Using Roles: How Parties Are Involved)’
4장,’계층,집합,동료간 릴레이션쉽: 유사 데이터의 조직화(Hierarchies, Aggregations, and Peer-to-Peer Relationships: The Organization of Similar Data)’
5장:’유형과 카테고리: 데이터의 분류(Types and Categories: The Classification of Data)’
6장:’상태:데이터의 상태(Status: The States of Data)’
7장:’컨택 메커니즘: 연락방법(Contact Mechanism: How to Get in Touch)’
8장:’비즈니스 룰: 비즈니스가 수행되는 규칙(Business Rules: How Things Should Work)’
9장:’패턴의 활용(Using the Patterns)’
10장: ‘패턴의 사회화(Socializing the Patterns)’

데이터모델링의 그밖의 패턴

  • 명칭
    •  엔티티 명칭을 관리하는 대안 제공
  • 식별자
    •  엔티티의 식별자를 다양한 방식으로 관리하는 공통구조를 제공
  • 트랜잭션과 이벤트
    •  주문,배송,청구,회계 트랜잭션과 같은 다양한 유형의 트랜잭션은 매우 공통적인 몇가지 속성과 유사한 방식,즉 패턴을 가짐
  • 권한
    •  다양한 유형의 데이터에 접근하는데 어떤 허가가 필요한지, 공유될수있는지, 누가 어떤유형에 접근할수 있는지 모델링하는 대안을 보여주는 패턴


이책에 사용된 규약 및 표준

이책에서 사용하는 데이터 모델링 표기법은 Richard Barker 의저서  Case Method: Entity Relationship Modeling의 표기법을 변형한 표기법

엔티티

  •  기업이 정보를 저장하고자 하는 중요한 그 어떤것, 대문자로 표현

sDUcvYH_ZX48Ep6XSVOaCKg.png

서브타입과 슈퍼타입 (Subtypes and Supertypes)

  • 서브 엔티티라고도 불리며, 더 일반화된 엔티티와 공통적인 속성과 릴레이션쉽을 공유하는 하위의 엔티티 영역
  •  엔티티의 내부에 있는 엔티티로 표현


s2od4j30ocpej3iBR4Z-2Vg.png



속성( Attributes)

  • - 엔티티의 특정한 정보 ex) order date
  • - 책의 택스트; 굵은 소문자, 모델에서는 대문자로  나타냄


smFcuINNl52XG6Q9kpNZuEQ.png


    • 선택
  • *
    • 필수
  • PK
    • 주키
    • (각 엔티티내의 주키 값은 인공키(surrogate key) 로 알려진 의미 없는 유일 한 값)
  • FK
    • 외래키
  • UID 유일 식별자
    •  주키를 제외하고 대체 식별자가 있는 경우


이책에 사용된 데이터 유형

데이터 유형

포함할 수 있는 값의 유형

ID

주키를 기술하는 데 사용, 일련번호 (양수)

DATE

용일, 월,년도 9/5/2003,Mon.DD,YYYY Feb.15,2006

DATETIME

날짜와 시간 3/4/10 4:13 p.m

CHAR

문자, 텍스트 문자열

DESC

특성에 대한 설명 char 유형보다 큰 문자열

IND

지시자 또는 구분자, 속성값이 두가지 Y/N, M/F

NUMBER

소수점을 포함한 양또는 음의 값 125,1.0,-45등

MONEY

금액이나 합계, $1,000,000



속성 명칭에 사용된 규약


속성 명칭 내의 문자열

의미

ID

시스템에서 생성하는 숫자값의 유일식별자 (1,2,3...)

NAME

사람이나 사물의 호칭

DESCRIPTION

엔티티에대한 정보를 표현하는 텍스트

INDICATOR

둘중 하나 선택

FROM DATE

유효한 날짜 범위의 시작 날짜

THRU DATE

유효한 날짜 범위의 종료 날짜

.............

기타 등





렐레이션쉽(Relationships)

릴레이션쉽의 선택성(Relationship Optionality)

석택적이거나 필수적
png;base644d38e520fef2d103.png

릴레이션쉽의 필수(Mandatory) 와 선택 (Optional)

릴레이션쉽의 기수성(Relationship Cardinality)

일대일,일대다,다대다

- 까마귀발의 존재는 엔티티가 다른 엔티티의 하나 이상의 인스턴스를 가리킬수 있음을 의미

png;base64229fbe5c7883eb56.png
 일대다 릴레이션쉽

외래키 릴레이션쉽 (Foreign key Relationships)

  • 외래키는 엔티티 내에 존재하는 다른 엔티티의 주키로 정의


다대다 릴레이션쉽을 해소하기 위한 연관 엔티티(Associative Entities to Handle Many-to-Many Relationships)

  • - 연관 엔티티는 교차 엔티티 혹은 상호참조 엔티티로 알려짐
  • - 한 엔티티를 다른 엔티티에 상호참조시켜서 다대다 릴레이션쉽을 해소하는데 사용


png;base6452207d845946d4ec.png

연관 엔티티로 해소된 다대다 릴레이션쉽

배타적 아크(Exclusive Arcs)

하나의 엔티티가 두개 이상의 다른 엔티티에 연관되는 경우의 릴레이션쉽을 식별하기 위해 사용

png;base64fd5442c114b8f7bd.png 





  • 데이터 모델 리소스 북 Vol.3  (bysql.net 2013년 1차 스터디)
  • 작성자: 남송휘 (tofriend)
  • 최초작성일: 2013년 4월 27일
  • 본문서는 bysql.net 스터디 결과입니다 .본 문서를 인용하실때는 출처를 밝혀주세요. http://www.bysql.net
  • 문서의 잘못된 점이나 질문사항은 본문서에 댓글로 남겨주세요. ^^