본문 바로가기

[DB]DataBase/[SQL]

[SQLD] 데이터 모델링

728x90
반응형

데이터 모델링?

[위키백과] 데이터 모델링

 

데이터 모델링 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org

  • 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
  • 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정 (추상화 반영)
  • 복잡한 현실 세계를 단순화해서 표현
  • 데이터베이스를 구축하기 위한 분석 및 설계의 과정
  • 사물 또는 사건에 대한 양상(aspect)이나 관점(perspective)를 연관된 사람이나 그룹을 위해 명확하게 하는 과정

데이터 모델링 특징

  • 추상화(모형화)
    • 현실 세계를 일정한 형식에 맞추어 표현함.
  • 단순화
    • 복잡한 현실을 제한된 언어나 표기법을 통해 이해하기 쉽게 함.
  • 명확화(정확화)
    • 애매모호함을 제거하고 누구나 이해가 가능하도록 정확하게 현상을 기술함.
  • 시스템 구현, 업무 분석, 업무 형상화의 목적이 있음.
  • 데이터 모델링 자체로 업무를 설명하고 분석하는 부분에서도 매우 중요한 의미를 가짐.

데이터 모델링 3가지 관점

  • 데이터 관점(what, data)
    • 업무가 어떤 데이터와 연관 있는지, 데이터 간 관계가 무엇인지 모델링
  • 프로세스 관점(how, process)
    • 실제하고 있는 업무는 무엇인지, 무엇을 해야 하는지 모델링
  • 데이터와 프로세스 간 상관 관점(interaction)
    • 업무를 처리하는 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링

데이터 모델 제공 기능

  • 시스템을 현재 또는 원하는 모습으로 가시화
  • 시스템의 구조, 행동 명세화
  • 시스템을 구축하는 구조화된 틀 제공
  • 시스템 구축 과정에서 결정한 것을 문서화
  • 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 관점
  • 특정 목표에 따라 구체한 상세 수준의 표현 방법

데이터 모델링 3요소

  1. Thinig
    1. 업무가 관여하는 어떤 것 -> 엔터티
  2. Attribute
    1. 어떤 것이 가지는 성격 -> 속성
  3. Relationship
    1. 업무가 관여하는 어떤 것 간의 관계 -> 관계

 

데이터 모델링 유의점

  • 중복(Duplication)
    • 데이터 모델링은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다.
    • 이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
  • 비유연성(Inflexibility)
    • 데이터 모델을 어떻게 설계했냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다.
    • 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
  • 비일관성(Inconsistency)
    • 데이터의 중복이 없더라도 비일관성은 발생한다.
    • 데이터 모델링을 할 때 데이터와 데이터 간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.
    • 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 해당한다.

좋은 데이터 모델링 방법

  • 완전성(completeness)
    • 모든 데이터가 데이터 모델에 정의
  • 중복 배제
    • 동일 사실은 한 번만 기록
  • 업무 규칙
    • Business Rule을 데이터 모델에 표현하고, 사용자에게 제공
  • 데이터 재사용
    • 데이터 재사용성을 증가시키려면 '통합성'과 '독립성'에 대해 고려
    • 외부의 변화에 대해 데이터 구조적으로 영향을 덜 받기 위해 확장성, 유연성을 고려
    • '행위의 주체', '행위의 대상', '행위 자체'에 대한 집합의 통합 필요
  • 의사소통
    • 설계자가 정의한 많은 업무 규칙들을 동일한 의미로 받아들이고 활용하게 하는 역할
  • 통합성
    • 바람직한 데이터 구조는 조직 전체에서 한 번만 정의되고, 다른 영역에서 참조&활용(integration) 되는 것

데이터 모델링 과정

데이터 모델링이 진행 될 수록 추상적 -> 구체적으로 된다.

  1. 개념적 데이터 모델링
    1. 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행
    2. 사용자 요구사항 분석에 따라 '엔터티-관계 다이어그램' 생성
    3. 전사적 데이터 모델링, EA(Enterprise Architect) 수립 시 많이 사용
  2. 논리적 데이터 모델링
    1. 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현
    2. 어떻게 데이터에 액세스하고, 누가 데이터에 액세스 하는지 등을 모델링
    3. 시스템 전 과정을 지원하는 과정의 도구
    4. 정규화를 통해 일관성을 확보하고, 중복을 제거하여 속성들이 적절한 엔터티에 배치하도록 함
    5. 재사용성이 높음
  3. 물리적 데이터 모델링
    1. 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
    2. 논리 데이터 모델이 하드웨어에 어떻게 표현될 것인가를 다룸
    3. 물리적 스키마, 저장 장소, 저장 장치, 접근 방법 등에 대해 정의

프로젝트 생명주기에 따른 데이터 모델링

데이터 모델링 이해관계자

반응형

'[DB]DataBase > [SQL]' 카테고리의 다른 글

[SQLD] 데이터베이스 스키마 구조  (0) 2024.02.21
[SQLD] 데이터 독립성  (0) 2024.02.20
[SQL] CONVERT_TZ()  (0) 2023.07.14
[SQL] JOIN문  (0) 2023.04.15
[SQL] 집계함수(Aggregate function)  (0) 2023.04.15