본문 바로가기
Developer/데이터베이스

데이터 모델링

by TFactory 2019. 5. 12.

모델링이란?

  • 사람이 살아가면서 나타낼 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형
  • 즉 현실세계에 있는 항목들을 추상화, 단순화, 명확화를 이용하여 논리 모델로 표현해 놓는것이다.

모델링의 특징

  • 추상화 : 특정 요소에서 공통적인 부분을 파악하는 작업
  • 단순화 : 복잡한 요소들을 단순화 시키는 것 즉 산재되어 있는 모델들의 공통적인 요소들을 찾아서 간략화 하는 작업(정규화)
  • 명확화 : 누구나 이해하기 쉽게 애매모호 한 것 들을 명확하게 표현하는 작업
  • 즉 모델링이란 현실세계를 일정한 규칙(표기법)에 의해 재정의 하는 것이다

모델링의 관점

  • 데이터 관점 : 업무가 어떤 데이터와 관련이 되어있고 또 이러한 데이터들이 어떤 데이터들과 관련이 있는지에 대해 모델링
  • 프로세스 관점 : 업무가 실제 어떤 흐름으로 진행되고 어떤일을 하는지에 대하여 모델링
  • 데이터와 프로세스의 상관관점 : 업무의 흐름에 따라 처리할 때 데이터가 어떻게 영향을 받고 어떻게 처리되는지에 대해 모델링

데이터 모델링이란?

  • 업무의 흐름을 파악하여서 업무에서 필요로 하는 데이터와 업무에서 최종적으로 필요한 정보를 분석하도록 정보시스템 상에서 구축할 수 있게 도와주는것
  • 잘 파악되고 분석이 된 데이터 모델링은 나타낸 결과로 업무에 대해서 설명을 하고 분석 및 파악을 할 수 있는 중요한 요소

데이터 모델링을 구축하는 이유

  • 업무의 구성이 되는 기본적인 정보들을 일정하게 정해져 있는 표기법에 의해 표현해서 업무내용을 정확하게 이해하고 분석하기 위함
  • 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위함

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

  • 구축하려는 시스템의 현재상태 또는 원하는 상태 구축하려면 어떻게 해야 하는지 한 눈에 파악할 수 있게 해준다.
  • 시스템의 구조와 행동을 한눈에 보기 쉽고 자세히 표현할 수 있다.
  • 구축하려는 시스템의 틀을 보여줄 수 있다.
  • 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제시해 준다.
  • 특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공한다.

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

  • 파급효과 : 시스템이 어느정도 완성을 하게 되면 수많은 종류의 테스트를 진행하게 되는데 이때 만약 나타난 오류나 변경사항 작업 중 데이터 모델의 변경이 피할 수 없는 상황이 오게되면 이에 따른 수많은 영향도를 분석을 하고 작업을 하는데 이 작업이 프로젝트에 크나큰 위험을 초래 할 수도 있기 때문에 모델링시 파급효과에 대해 고려를 하면서 모델링을 해야한다.
  • 복잡한 정보 요구사항의 간결한 표현 : 데이터 모델을 보면서 수많은 프로젝트 관계자들이 이 업무에 대해서 이해하고 작업을 하기 때문에 데이터 모델상에 시스템과 요구사항들이 정해진 표현법에 맞게 정확하고 간결하게 표현이 되어야 한다.
  • 데이터 품질 : 데이터는 기업의 가장큰 자산으로서 잘못된 데이터베이스 구축으로 데이터가 쌓이게 되면 데이터의 정확도와 품질을 낮아지게 되고 이는 데이터를 이용한 비지니스적인 요소들을 잃어버리게 된다.이런 데이터베이스 품질을 유지하기 위해 중복(Duplication), 비유연성(Inflexibility), 비일관성(Inconsistency)를 주의해야 한다.
    • 중복(Duplication) : 중복된 데이터는 모델링을 이해하는데 오해의 요소등 문제점이 생길 수 도 있다.
    • 비유연성(Inflexibility) : 데이터 모델을 어떻게 설계 했느냐에 따라서 업무변화에 따른 유지보수 상황이 생겼을 때 수정의 난이도가 천차만별이기 때문에 데이터와 프로세스를 분리하여서 구축된 데이터베이스가 어플리케이션에 끼치는 영향을 최소화 해야한다.
    • 비일관성(Inconsistency) : 데이터를 수정하거나 삭제, 갱신, 추가 할 때 데이터가 연관되어지게 설계가 되어있지 않으면 데이터의 모순성이 발생되면서 데이터에 대한 신뢰성을 잃게된다.
    • 데이터 모델링의 3단계

데이터 모델링

내용

개념적 데이터 모델링

추상화 수준이 높고 업무를 중심으로 포괄적인 수준으로 모델링을 진행한다.

엔티티 중심의 데이터 모델링

논리적 데이터 모델링

구축대상이 되는 업무에 관한 Key, 관계, 속성등을 좀 더 구체적으로 정의

물리적 데이터 모델링

구축하고자 하는 물리적인 데이터베이스 환경에 맞게 성능, 저장, 물리적인 테이블 스페이스 등을 고려해 설계

 

개념적 데이터 모델링

  • 사용자 또는 조직의 요구사항을 찾고 분석하는데 목적이 있다. 이를 통해서 도출되는 정보들을 토대로 어떠한 데이터들이 유지되고 중요한지 알 수 있다.
  • 핵심 엔터티와 그들간의 관계를 발견하고 이를 표현하기 위해 엔티티-관계 다이어그램(E-R Model)을 사용한다.

<참고> 엔티티-관계 다이어그램(E-R Model)의 기능

  • 사용자와 시스템 개발자가 데이터 요구사항을 발견한 후 시스템 기능에 대해 논의 할 수 있는 기반을 만든다.
  • 현재의 시스템이 앞으로 어떤 방향으로 변형되어서 개발되어야 하는지 이해하는데 도움을 준다.

엔티티-관계 다이어그램(E-R Model)

 

논리적 데이터 모델링

  • 개념적 데이터 모델링을 통해서 얻은 결과물을 이용해서 실제로 비지니스 환경에 맞게 구체적으로 데이터 모델링을 진행 하는 작업
  • 어떤 데이터를 어떻게 접근하고 어떻게 사용할 것인지를 정의한다.
  • 논리데이터 모델링 진행시 정규화는 중요한 활동이다.

물리적 데이터 모델링

  • 실제로 데이터베이스에 구현하는 단계로 테이블, 컬럼등을 물리적 데이터베이스 환경에 구현을 한다.
  • 프로세스 생명주기에서 데이터 모델링
  • 소프트웨어 개발 방법론 별 데이터 모델링 위치
  • Waterfall 기반 : 데이터 모델링의 위치가 분석과 설계단계로 구분되어 명확하게 정의
  • 정보공학, 구조적 방법론 : 분석단계에서 업무중심의 논리적 데이터 모델링을 수행, 설계 단계에서 하드웨어와 성능을 고려한 물리적인 데이터 모델링을 수행
  • 나선형모델(RUP - Rational Unified Process) : 업무 크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계단계 양쪽에서 수행 비중은 분석단계에서 논리적인 데이터 모델이 더 많이 수행

데이터 독립성이란?

  • 해당하는 것에 의존도를 낮추고 그 것 자체에 만으로도 독자적인 의미를 갖추게 되면 그것의 고유한 기능을 명확하게 할 뿐만 아니라 어떠한 기능이 변경되었을 때 변경되지 않고 자신의 특징을 유지할 수 있다.

데이터 독립성의 장점

  • 데이터 독립성은 지속적으로 증가하는 유지보수 비용을 절감, 데이터 복잡도를 낮추고, 중복된 데이터를 줄일 수 있다.
  • 프로젝트 진행 간 끊임없이 요구되는 요구사항에서 화면단과 데이터단의 독립성을 유지하기 위한 목적

데이터 베이스 3단계 구조(ANSI/SPARC)

  • 외부단계(External Schema) : 사용자에게 제공되는 단계로 사용자에게 맞춰서 데이터가 제공된다.
  • 개념적단계(Conceptual Schema) : 어떤 데이터가 저장되어 있고 이들의 제약조건과 관계는 어떤것인지 등.
  • 내부적 단계(Internal Schema) : 데이터베이스에 저장되어있는 전체적인 데이터들

데이터 독립성 영역

종류

내용

특징

논리적 독립성

1. 개념스키마가 변경되어도 외부스키마에는 영향이 없도록 지원

2. 논리적 구조가 변경되어도 응용프로그램에는 영향이 없도록 하는것

1. 사용자 특성에 맞는 변경 가능

2. 통합구조 변경 가능

물리적 독립성

1. 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 하는것

2. 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향 없음

1. 물리적 구조 영향 없이 개념구조 변경 가능

2. 개념구조 영향 없이 물리적인 구조 변경 가능

사상(Mapping)

종류

내용

특징

외부적/개념적 사상

1. 외부적 뷰와 개념적 뷰의 상호 관련성을 의미함

1. 사용자가 보고자 하는 화면에 따라 원하는 필드를 가질 수 있지만 개념적 뷰에는 영향이 없다.

개념적/논리적 사상

1. 개념적 뷰와 저장된 데이터베이스의 상호 관련성을 의미

1. 저장된 데이터베이스의 구조가 바뀌면 개념적/내부적 사상(Mapping)도 바뀌어야 개념적 스키마가 유지된다.

* 데이터의 독립성을 보장하기 위해서는 DDL을 사용해서 DBA가 작업할때 유의해서 변경해야한다.

 

데이터 모델링의 요소

  • 어떤것(Things) : 사물이나 사건을 바라볼 때 지칭하는 것
  • 성격(Attributes) : 어떤것(Things)이 가지는 세부적인 성격이나 특징
  • 관계(Relationships) : 어떤것과 어떤것끼리의 관계나 연관성

ERD(Entity Relationship Diagram)

  • 각 업무부분에서 도출된 엔티티와 엔티티간의 관계를 이해하기 쉽게 그림으로 도식화해서 표현한것
  • 해당 업무에서 데이터의 흐름과 프로세스의 연관성을 이야기하는 데 가장 중요한 표기법이자 산출물이다.

ERD 작성 순서

  • 엔티티 배치 : 가장 중요한 엔티티는 읽는 순서(보통은 왼쪽상단부터 오른쪽 아래)에 따라 가장 중요한 엔티티를 배치하고 업무상 흐름이 많은 엔티티는 중앙에 배치한다. 그리고 흐름상 중심이 되는 엔티티와 교류하는 엔티티는 그 옆에 배치하도록 한다.
  • 관계의 연결 : PK간의 상속되는 식별자 관계를 설정하거나 중복되는 관계가 발생하지 아니하고 Circle관계가 발생하지 않도록 연결한다.
  • 관계명 표시 : 연결된 관계에 이름을 붙인다. 관계이름 정할 때 현재형을 사용하고 지나치게 포괄적인 용어(예, 이다, 가진다 등)는 쓰지 않는다.
  • 관계차수와 선택성 표시 : 연결된 엔티티들 간의 관계를 표시한다. IE 표기법 또는 Barker 표기법 등을 사용한다.

데이터모델의 요소

  • 완전성 : 업무에 필요한 모든 데이터가 데이터모델에 정의 되어 있어야 한다.
  • 중복배제 : 데이터베이스 내에 동일한 의미의 데이터들은 한번만 정의 되어있어야 한다.
  • 업무규칙 : 업무분석중 도출되는 모든 업무적 특성, 규칙은 모두 데이터모델에 반영이 되어있어야 한다.
  • 데이터 재사용 : 데이터모델은 추가되는 요구사항에 따라 유연하고 독립적으로 재사용 할 수 있어야 하는데 이를 위해서는 통합모델로 데이터 모델을 구성해야 한다.
  • 의사소통 : 데이터 모델에는 업무분석중 도출된 여러가지 업무적인 특성, 관계 등을 내포하고 있다. 그렇기 때문에 데이터 모델을 이용해 관계자들이 분석된 업무들의 특징을 동일한 의미로 숙지해야기 위한 수단으로 사용된다.
  • 통합성 : 데이터 모델 구축중 시스템 상에서는 다른 업무일지라도 업무에서 사용되는 데이터가 결국 같은 유형의 데이터이게 되면 업무별로 데이터를 구성하는 것이 아니라 통합적으로 데이터 모델을 구성해 참조하는 방식으로 설계해야 한다.

 

'Developer > 데이터베이스' 카테고리의 다른 글

식별자  (0) 2019.05.12
관계(Relationship)  (0) 2019.05.12
속성(Attribute)  (0) 2019.05.12
엔티티(Entity)  (0) 2019.05.12