Database/SQLD

[SQLD] 1-01. 데이터 모델의 이해

콩스프 2024. 2. 5. 22:17

01.  데이터 모델의 이해

 

(1) 모델링이란?

데이터베이스의 모델링 ➡ '현실 세계를 단순화하여 표현하는 기법'

 

- 모델 : 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형

- 모델링 : 모델을 만들어가는 일 == 현실 세계에서 필요한 데이터를 저장하는 데이터베이스를 구축하기 위한 분석  / 설계의 과정

 

 

(2) 모델링의 특징

① 추상화 (Abstraction) : 현실 세계를 일정한 형식으로 표현 == 아이디어나 개념을 간략하게 표현하는 과정

 

② 단순화 (Simplification) : 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현 (불필요한 세부 사항 제거)

 

③ 명확화 (Clarity) : 불분명함을 제거하고 명확하게 해석할 수 있도록 기술

 

 

(3) 모델링의 세 가지 관점

① 데이터 관점 (What, Data)

     : 데이터 위주의 모델링

       ➡ 어떤 데이터들이 업무와 얽혀있는지, 데이터 간에는 어떤 관계가 있는지에 대해 모델링하는 방법

 

② 프로세스 관점 (How, Process)

     : 프로세스 위주의 모델링

     ➡ 업무가 실제로 처리하고 있는 일은 무엇인지, 앞으로 처리해야 하는 일은 무엇인지를 모델링

 

③ 데이터와 프로세스의 상관 관점 ( Data vs. Process, Interaction)

    : 데이터와 프로세스의 관계를 위주로 한 모델링

    ➡ 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지를 모델링

 

 

* 데이터의 품질 (데이터의 신뢰도, 정확성 등을 나타내는 척도) 을 보장하기 위해 데이터 모델링 시 유의할 점

중복
(Duplication)
같은 데이터가 여러 엔티티에 중복으로 저장되는 현상을 지양해야 함
비유연성
(Inflexibility)
데이터 모델의 설계에 따라 애플리케이션의 사소한 변경에도 데이터 모델이 수시로 변경되어야 하는 상황이 생길 수 있음. 이런 상황은 시스템을 유지보수하는 데에 어려움을 가중시키므로 데이터 모델과 프로세스를 분리하여 유연성을 높이는 것이 바람직함
비일관성
(Inconsistency)
데이터의 중복이 없는 경우에도 비일관성이 발생할 수 있음. 개발자가 다른 데이터와의 연관성을 고려하지 않고 일부 데이터만 변경할 수 있기 때문. 이런 위험을 예방하기 위해 데이터 모델링을 할 때 데이터 간의 연간 관계에 대해 명확하게 정의해야 함 

 

 

(4) 모델링의 세 가지 단계

① 개념적 데이터 모델링 (Conceptual Data Modeling) - 계획 / 분석

     : 전사(회사 전체 차원의)적 데이터 모델링 수행 시 행해지며 추상화 레벨이 가장 높은 모델링

       이 단계에서는 업무 중심적이고 포괄적인 수준의 모델링이 진행 됨

  • ERD 도출, 업무중심, 포괄적인 수준의 모델링

 

② 논리적 데이터 모델링 (Logical Data Modeling) - 분석

     : 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성, 관계 등을 모두 표현하는 단계

  • 테이블 도출, 재사용성, 정규화 수행

 

③ 물리적 데이터 모델링 (Physical Data Modeling) - 설계

    : 실제 데이터베이스로 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현하는 단계

  • DB구축, 물리적 성격, 개념적보다 구체적

 

💡 데이터 모델링의 3요소
어떤 것 (Things), 성격 (Attributes), 관계 (Relationships)