상세 컨텐츠

본문 제목

과목1. 데이터 모델링의 이해_#1

Developer/SQLP 자격증

by 웰크 2017. 5. 14. 17:57

본문

제1장 데이터 모델링의 이해

제1절 데이터  모델의 이해


모델링의 이해

모델 : 모형, 축소형의 의미로 다양한 현상을 일정한 표현법에 의해 표현하는 모형




모델링의 특징

1. 추상화

  - 현실세계를 일정한 표기법에 맞추어 표현

2. 단순화

  - 복잡한 현실세계를 규칙이나 제약이있는 표기법에 맞추어 이해하기 쉽게 할 수 있게 만드는 개념

3. 명확화

  - 누구나 이해하기 쉽게 애매모호함을 제거하고 정확하게 현상을 기술하는 것

즉, 보여주고자 하는 바를 이해하기 일정 규칙에 의해서 이해하기 쉽게 표현하는 것


모델링의 세 가지 관점

1. 데이터 관점 (What, Data)

  - 어떤 데이터들이 서로 관련이 있는지 또는 데이터들이 어떤 관계가 있는지에 대해서 모델링하는 방법

2. 프로세스 관점 (How, Process)

  - 실제 하고 있는 일은 무엇인지 또는 무서을 해야하는지를 모델링하는 방법

3. 데이터와 프로세스의 상관관점 (Interaction)

  - 처리하는 일의 방법에따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법




데이터 모델의 기본 개념의 이해

데이터 모델링의 정의

1. 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법

2. 현실세계의 데이터에 대해 약속된 표기법에 의한 표현하는 과정

3. 데이터베이스 구축을 위한 분석/설계의 과정


데이터 모델이 제공하는 기능

- 시스템을 가시화하도록 도움

- 시스템의 구조와 행동을 명세화 할 수 있음

- 시스템을 구축하는 구조화된 틀 제공

- 시스템 구축과정에서 결정한 것을 문서화

- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공

- 특정 목표에 따라 구체화된 상세 수준의 표현방법 제공




데이터 모델링의 중요성 및 유의점

파급효과 (Leverage)

  - 병행테스트, 통합테스트를 수행 중 만약, 이러한 시점에 데이터 모델의 변경이 불가피하게 발생할 경우

1. 데이터 구조 변경에 따른 표준 영향분석, 응용 변경 영항 분석 등 많은 영향분석 발생

2. 해당 분야의 실제적인 변경 발생

3. 이러한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위협요소


복잡한 정보 요구사항의 간결한 표현 (Conciseness)

  - 구축할 시스템의 정보 요구사항과 한계를 가장 명확하게 간결하게 표현할 수 있는 도구

 - 데이터 모델은 건축물로 비유하자면 설계도면과 같다 많은 사람들이 공유하면서 설계자의 생각대로 움직이게 하는것이다. 데이터 모델은 시스템을 구축하고 이를 이용해 어플리케이션을 개발하고 데이터의 정확성을 유지할 수 있게해야하기 때문에 요구사항을 정확하게 간결하게 표현되어야 한다


데이터 품질 (Data Quality)

  - 데이터는 기업의 중요한 자산이며 오래 될수록 활용가치는 훨씬 높아짐

  - 초기에 데이터가 조금 쌓일때는 인지하지 못하여 오랜기간 숙성된 데이터 활용시 문제가 생김

  - 데이터 모델링의 유의점

1. 중복 (Duplication) : 데이터베이스가 여러 장소에 같은 정보를 저장하는것을 유의

2. 비유연성 (Inflexibility) : 데이터의 정의를 데이터의 사용 프로세스와 분리

3. 비일관성 (Inconsistency) : 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의




데이터 모델링의 3단계 진행





1. 개념적 데이터 모델링 (Conceptual Data Modeling)

  - 조직, 사용자의 데이터 요구사항을 찾고 분석하는데서 시작

  - 핵심 엔터티와 그들 간의 관계를 발견 -> 엔터디-관계 다이어그램 생성

  - 상위의 문제에 대한 구조화를 쉽게 하여 사용자와 개발자가 시스템 기능에 대해 논의 할 수 있는 기반 형성

  - 개념데이터의 모델은 추상적이고, 시스템이 어떻게 구성되는지 이해하는데 유용하다


※ 전사적 데이터 모델 (Enterprise Data Modeling) : 전 조직에 걸쳐 이루어지는 데이터 모델링 과정


2. 논리적 데이터 모델링 (Logical Data Modeling)

  - 비지니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정

  - 데이터 모델링의 가장 핵심이 되는 부분

  - ERD를 작성하며, 정규화 작업도 표함이 된다

  - 식별자 확정, 정규화, M:M관계 해소, 참조 무결성 규칙 정의

  - 추가적으로 이력 관리에 대한 전략을 정의하여 논리데이터 모델에 반영


3. 물리적 데이터 모델링 (Physical Data Modeling)

  - 논리적 데이터 모델이 데이터 저장소로 어떻게 컴퓨터 하드웨어에 표현될 부분의 정의

  - 데이블, 칼럼 등으로 표현되는 물리적인 저장구조와 사용될 저장 장치 결정

  - 자료를 추출하기 위해 사용될 접근 방법 등 결정




프로젝트 생명주기 (Life Cycle)에서 데이터 모델링

Waterfall 기반 : 데이터 모델링의 위치가 분석과 설계단계로 구분되어 명확하게 정의



※ 이해가 안됐음. 추 후 내용 추가 필요




데이터 모델링에서 데이터 독립성의 이해

데이터 독립의 필요성

  - 상호간 영향을 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 그 기능을 극대화하는 것

  - 컴포넌트 기반의 모듈 구성도 각각의 고유한 기능을 가지면서 다른 기능을 가지고 있는 컴포넌트와 인터페이스를 가지게 하는 모습으로 정의

  - SOA의 ‘서비스’라고 하는 단위도 독립적인 비즈니스로 처리 가능한 단위를 서비스로 정의

  - 다른 기능의 변경으로부터 쉽게 변경되지 않고 자신의 고유한 기능을 제공

  - 데이터독립성 출현 배경

1. 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스간에 독립성을 유지시키기 위해

2. 지속적으로 증가하는 유지보수 비용 절감

3. 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위환 목적


  - 데이터 독립성의 효과

1. 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능하다

2. 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공한다.

  - 데이터 독립성을 이해하기 위해서는 ANSI표준 모델 중 3단계인 구조,독립성,사상(Mapping) 3가지를 이해하면 된다.


데이터베이스 3단계 구조

  - ANSI / SPARC의 3단계 구성의 데이터 독립성 모델

  - 외부단계, 개념적단계, 내부적단계로 서로 간섭되지 않는 모델을 제시



데이터 독립성 요소




두 영역의 데이터독립성




사상 (Mapping)

  - 사상(Mapping)는 상호 독립적인 개념을 연결시켜주는 다리를 뜻함

  - 데이터의 독립성에는 크게 2가지의 사상 도출


1. 논리적 사상

  - 외부 화면이나 사용자에게 인터페이스를 하기 위한 스키마 구조가 통합된 개념적 스키마와 연결

2. 물리적 사상

  - 통합된 개념적 스키마 구조와 물리적으로 저장된 테이블스페이스와 연결




데이터 모델링의 중요한 세 가지 개념

데이터 모델링의 세 가지 개념

  - 세 가지 개념은 데이터 모델의 이해에 근간이 된다

1. 업무가 관여하는 어떤 것 (Things)

2. 어떤 것이 가지는 성격 (Attributes)

3. 업무가 관여하는 어떤 것 간에 관계 (Relationships)

  - 예시

사물이나 사건 등을 바라 볼 때 전체를 지칭하는 용어를 어떤 것(Things)이라 하고, 그 어떤 것이 가지는 세부적인 사항을 성격(Attributes)이라고 할 수 있다. 또한 각각의 어떤 것은 다른 어떤 것과 연관성을 가질 수 있는데 이것을 관계(Relationship)라고 표현한다. 예를 들어 ‘이주일과 심순애가 존재하고 둘 사이는 서로 사랑하는 연인사이이다. 이주일은 키가 180cm에 성격은 친절하고 심순애는 키가 165cm에 세심하며 활달한 성격을 가지고 있다’는 시나리오를 살펴보자. 여기에서 ‘이주일, 심순애’는 어떤 것(Things)에 해당하고 ‘사랑하는 연인사이’가 어떤 것 간의 관계(Relationships)에 해당하며 ‘180cm에 성격은 친절, 세심하며 활달함’이 어떤 것이 가지는 성격(Attributes)에 해당한다. 위의 예와 같이 이 세상의 모든 사람, 사물, 개념 등은 어떤 것, 어떤 것 간의 관계, 성격의 구분을 통해서 분류할 수 있다. 바로 이러한 원리, 즉 자연계에 존재하는 모든 유형의 정보들을 세 가지 관점의 접근 방법을 통해 모델링을 진행하는 것이다.


단수와 집합(복수)의 명명


※ 용어 구분 사용 : Thing : 복수 - 엔터티, 단수 - 인스턴스




데이터 모델링의 이해관계자

이해관계자의 데이터 모델링 중요성 인식

  - 실직적으로 DBA보다 업무시스템을 개발하는 응용시스템 개발자가 데이터 모델링도 같이하는 경우가 많음

  - 우리가 구축하는 시스템의 대부분은 데이터에 기반하기 때문에 데이터베이스 설계를 잘못 했을때 미치는 영향력은 매우 크다


데이터 모델링의 이해관계자

  - 정보시스템을 구축하는 모든 사람 (전문적으로 코딩하는 사람)

     ->프로젝트에 참여하는 모든 기술자는 완성된 모델을 정확하게 알고 있어야함

  - 기술자가 아니더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람

 




데이터 모델의 표기법인 ERD의 이해

데이터 모델 표기법

1976년 피터첸(Peter Chen)의 Entity-Relationship Model(E-R Model)이라는 표기법


ERD 표기법을 이용하여 모델링하는 방법

  - 각 업무분석에서 도출된 엔터티와 엔터티간의 관계를 이해하기 쉽게 도식화된 다이어그램으로 표시하는 방법

  - 해당 업무에 데이터의 흐름과 프로세스와의 연관성을 이야기하는데 가장 중요한 표기법이자 산출물

  - UML 표준 표기법을 사용하는 오브젝트 모델링

-> 해당 업무에 가장 적절한 클래스다이어그램을 그려내는 것이 가장 중요

  - 정보공학을 기반으로 하는 모델링

-> 해당 업무에 가장 적절한 ERD를 그려내는 것이 중요


  - ERD를 작성하는 작업순서

1. 엔터티의 배치

  - 처음에 어디에 배치하는건 중요한 문제이다

  - 가장 중요한 엔터티를 왼쪽 상단에 배치 하고 이것을 중심으로 다른 엔터티를 나열

  - 해당 업무에 가장 중요한 엔터티는 가운데쪽에 배치하면 향후 관계를 연결할 때 선이 꼬이지 않고 효과적으로 배치할 수 있게 된다.


2. 엔터티간 관계를 설정

  - 초기에는 Primary Key로 속성이 상속되는 식별자 관계 설정

  - 중복되는 관계가 발생되지 않도록 하고 Circle관계도 발생하지 않도록 유의


3. 관계에 관계이름을 부여

  - 지나치게 포괄적인 용어는 사용하지 않도록 한다.


4. 관계차수(Cardinality)를 표현

  - 관계가 참여하는 성격중 엔터티내에 인스턴스들이 얼마나 관계하여 참여하는지 나타낸다

  - IE표기법은 하나(1, one)의 관계는 실선으로 표기

  - Barker표기법은 점선과 실선을 혼합하여 표기




좋은 데이터 모델의 요소


완전성 (Completeness)

  - 업무에 필요로 하는 모든 데이터가 데이터 모델에 정의

  - 이 기준을 충족하지 못하면 다른 어떤 평가 기준도 의미가 없어짐


중복배제 (Non-Redundancy)

  - 하나의 데이터베이스 내에 동일한 사실은 반드시 한번만 기록

  - 저장공간의 낭비하지 않고 일관성을 유지


업무규칙 (Business Rules)

  - 업무규칙을 데이터 모델에 표현하고 이를 데이터모델을 사용하는 모든 사용자가 공유할 수 있도록 제공

  - 특히, 데이터 아키텍처에서 언급되는 논리 데이터 모델에서 이러한 요소들이 포함되어야 함

 

데이터 재사용 (Data Reusability)

  - 데이터의 통합성과 독립성에 대해서 충분히 고려

  - 데이터가 애플리케이션에 대해 독립적으로 설계되어야 재활용성 향상

  - 데이터 구조의 확장성 유연성에 많은 노력을 기울이고 있고, 확장성을 담보하기 위해서는 데이터 관점의 통합이 불가피하다


의사소통 (Communication)

  - 데이터 분석 과정에서 자연스럽게 많은 업무 규칙 도출

  - 도출되는 많은 규칙들은 데이터 모델에 엔터티, 서브타입, 속성, 관계 등의 형태로 최대한 자세하게 표현되어야 함

  - 표현한 많은 업무규칙을 모든 작업자가 동일한 의미로 이해 하여야 한다

  - 데이터모델의 의사소통의 도구로서의 역할


통합성 (Integration)

  - 동일한 데이터는 조직의 전체에서 한번만 정의되고 이를 여러 영역에서 참조, 활용하는 것

  - 물론 의도적으로 데이터의 중복시키는 경우도 존재 가능



※자료 출처 http://www.bysql.net

'Developer > SQLP 자격증' 카테고리의 다른 글

과목1. 데이터 모델링의 이해_#3  (0) 2017.05.28
과목1. 데이터 모델링의 이해_#2  (0) 2017.05.28
응시 자격 및 합격기준  (0) 2017.04.30

관련글 더보기