상세 컨텐츠

본문 제목

[개미의 걸음 SQLD 1과목] 데이터 모델링의 이해

자격증/SQLD

by IT개미 데이터 2020. 12. 3. 07:07

본문

728x90

데이터 모델링

출처 : DBGUIDE.NET

주어진 데이터로부터 논리적 데이터 구조를 구성하는 작업

즉, 고객의 업무 프로세스를 이해하고 이를 바탕으로 정의한 규칙을 데이터 모델로 표현하는 작업

  • 고객과의 의사소통을 통한 고객의 업무 프로세스 이해
  • 이해한 고객의 업무 프로세스를 바탕으로 데이터 모델링 표기법을 사용해 모델링
      현실세계를 데이터베이스로 표현하기 위해 고객의 업무 프로세스를 추상화
      → 소프트웨어를 분석*설계하면서 점점 더 구체화

데이터 모델링의 세가지 요소

출처 : DBGIUDE.NET

데이터 모델링을 구성하는 개념 3가지는 데이터 모델에 대한 이해의 근간이 됨

1. 업무가 관여하는 어떤 것[Things]
2. 어떤 것이 가지는 성격[Attributes]
3. 업무가 관여하는 어떤 것 간의 관계[Relationship]

 

데이터 모델링의 특징

  • 현실세계에서 공통적인 특징을 찾아 일정한 구조에 맞추어 간략하게 표현하는 추상화
  • 복잡한 현실을 제한된 언어나 표기법을 통해 표기하는 단순화
  • 누구나 이해 가능하도록 정확하게 현상을 표기하는 정확화/명확화

 

데이터 모델링 목적

  • 데이터 모델링 표기법에 맞춰 표현함으로써 해당 업무 내용을 정확하게 분석
      
    → 단순한 시스템 구현을 넘어 업무의 흐름 분석 및 업무 형상화 목적
      
    → 데이터베이스 구축만을 위한 것이 아니라 업무를 설명하고 분석하는 부분에서도 매우 중요
  • 분석된 모델을 바탕으로 데이터베이스를 구축함으로써 개발 및 데이터관리에 사용

 

데이터 모델링 고려사항

  • 데이터베이스에 같은 정보를 여러 개 저장하지 않도록 하는 중복성 최소화
    → 데이터 중복을 제거하기 위해 정규화 작업 진행
    → 중복된 데이터 제거를 통한 데이터 모델의 독립성 확보
  • 데이터 정의를 데이터의 사용 프로세스와 분리하는 높은 유연성
  • 데이터간의 상호 연관관계를 명확하게 정의함으로써 유지하는 일관성

 

데이터 모델링 단계

개념적 모델링
[Conceptual Data Modeling]
* 고객의 업무 프로세스 분석 후 업무 전체에 대해 데이터 모델링 수행하는 단계
* 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링하는 단계
      추상화 수준이 가장 높은 수준의 모델링
* 계층형 데이터 모델, 네트워크 모델, 관계형 모델에 관계없이 업무 측면에서 모델링
* Entitiy와 Attribute를 도출하고 개념적 ERD[Entity Relationship Diagram]를 작성
논리적 모델링
[Logical Data Modeling]
* 개념적 모델링을 논리적으로 변환하는 단계
* 정규화를 통해 데이터 모델의 독립성 확봉
* 식별자를 정의하고 Attribute, Relationship 등을 모두 표현
물리적 모델링
[Physical Modeling]
* 실제 데이터베이스를 구축하기 위해 Table, Index, Function등을 생성하는 단계
* 성능, 보안, 가용성 등 물리적인 측면을 고려하여 데이터베이스 구축

 

# ERD[Entity Relationship Diagram]

더보기

1976년 Peter Chen이 만든 Entity Relationship Model 표기법

  • Entity와 Entity 간의 관계를 정의하는 모델링 방법
  • 사실상의 데이터 모델링 표준
  • 복잡하지 않고 이해하기 쉬워야 함

 

ERD 작성 절차

1. Entity 도출
       * 고객의 업무 프로세스에서 관리가 필요한 정보를 추출
2. Entity 배치
       * 중요한 Entity는 가급적 왼쪽 상단에 배치
            → 일반적으로 사람은 눈을 왼쪽에서 오른쪽으로 이동하려는 경향을 가지므로 
3. Entity 간 관계 설정
4. 관계명 기술
       * 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당
5. 관계 참여도 표현
       * 관계 참여도는 한 개의 Entity와 다른 Entity 간의 참여하는 관계 수를 의미
       * 관계 차수로 표기
6. 관계의 필수 여부 표현

 

데이터 모델링 관점

데이터 비즈니스 프로세스에서 사용되는 데이터를 의미
업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법
    구조 분석, 정적 분석
프로세스 비즈니스 프로세스에서 수행하는 작업을 의미
업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법
시나리오 분석, 도메인 분석, 동적 분석
데이터와 프로세스 프로세스와 데이터 간의 관계를 의미
업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법
CRUD[Create, Read, Update, Delete] 분석

 

좋은 데이터 모델 요소

완전성 업무에 필요한 모든 데이터가 정의되어 있어야 한다.
중복배제 하나의 데이터베이스에 동일한 데이터가 없어야 한다.
    → 중복시 저장공간 낭비
업무규칙 업무에 사용되는 규칙들을 데이터 모델에 표현해야 함
    → 모든 사용자가 해당 규칙에 대해 동일하게 판단하고 데이터 조작 가능
데이터 재사용 통합성[회사 전체 관점에서 설계]과 독립성[데이터가 Application에 독립적으로 설계]을 고려
최근에는 확장성을 강조하기 위해 많은 부분을 통합한 데이터 모델의 형태를 가짐
의사소통 주어진 업무를 데이터 관점에서 분석하고 설계한 데이터 모델은 의사소통을 위해 분석과정에서 도출되는 업무 규칙을 최대한 자세히 표현해야 함
통합성 공통 데이터를 도출하고 이를 전 영역에서 사용하기 적절한 통합된 형태로 설계
    → 통합데이터 모델은 데이터 재사용성을 향상시킴

 

728x90

관련글 더보기

댓글 영역