모델링의 이해
1. 모델링의 정의
💡 데이터 모델링의 정의
- 정보 시스템 구축을 위해 데이터 관점의 업무를 분석하는 과정
- 현실 세계의 데이터를 약속된 표기법에 의해 표현하는 과정
- 데이터베이스를 구축하기 위한 분석 및 설계의 과정
-
데이터베이스에서의 모델은 관계형 데이터베이스 관리 시스템(RDBMS)이 지원하는 데이터베이스의 구조나 형식을 의미함
- 관리하는 데이터에 대한 청사진과 같음
- 모델 정보(구조)만 보고도 어떤 데이터를 다루는지 알 수 있음
-
데이터 모델은 데이터를 기반으로 한 모델링의 과정
- 모델링: 모델을 만드는 과정
- 현실 세계를 얼마만큼 추상화시켜 표현할 것인지 그림을 그리는 과정
- 그 결과를 토대로 세상을 단순화시켜 명확하게 바라볼 수 있게 됨
- 현실 세계의 모습들을 추상화하여 저장하는 과정
- 데이터베이스의 형식을 만드는 과정
-
모델링은 모두 데이터를 기반으로 행해짐
- 세상에 존재하는 모든 것은 데이터로 표현 가능
- 데이터를 모아 구조화하고 집약하는 작업 == 모델링
-
데이터 모델은 데이터베이스의 큰 그림을 이해하고 그걸 바탕으로 SQL 문장을 작성하는 데 필요한 매우 중요한 요소
- 데이터 모델을 잘 설계하는 것 == 데이터베이스를 잘 만드는 것
-
데이터 모델에 대한 이해가 잘 되어 있으면 단순한 기능을 사용하는 것뿐만 아니라 성능적인 측면도 고려해 SQL문을 작성할 수 있음
- SQL 문장을 어떻게 구성할 지에 대한 지식
- 효율적인 구성에 대한 지식
- 모델링을 올바른 관점으로 바라보고 구성하는 것이 중요
-
데이터 모델링의 목적
- 업무에 필요한 정보를 정확하게 정의하고 표현하여 업무를 분석
→ 개발하기 위해서만 데이터 모델링을 하는 것이 아님!
- 분석 모델을 통해 실제 데이터베이스를 생성하여 데이터를 관리
-
데이터 모델이 제공하는 기능
기능 | 설명 |
---|
시각화 | 시스템을 원하는 모습으로 시각화하여 보여 줄 수 있도록 한다 |
문서화 | 시스템의 구조와 행동을 문서화한다 |
구체화 | 특정한 목표에 따라 구체화된 상세 수준의 표현 방법을 제공한다 |
구조화된 틀 제공 | 시스템을 구축하는 구조화된 틀을 제공한다 |
다양한 관점 제공 | 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공한다 |
2. 모델링의 특징
- 추상화(Abstraction)
- 현실 세계를 일정한 형식에 맞추어 표현하는 것
- 모델링은 세상에 존재하는 수많은 대상을 특정한 기준에 따라 나누고 나뉜 기준의 상위 기준을 모아서 또 다른 기준으로 구분하여 나누는 과정을 반복
- 위와 같은 과정을 계속 따라가면 수많은 요소를 하나의 문장, 단어, 개념으로 표현할 수 있는 순간에 도달하게 되는데, 이는 결국 모델링을 통한 추상화 과정이라고 볼 수 있음
- 단순화(Simplification)
- 복잡한 현실 세계를 약속된 규칙에 기반한 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것
- 현실 세계에 존재하는 수많은 요소를 정확하게 분류하여 나누고 구분하는 것은 현실적으로 불가능 → 모델링은 복잡한 세상을 단순화 시킬 수 있도록 구조화함
- 명확화(Clarity)
- 누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고 현상을 정확하게 기술하는 것을 의미
- 현실 세계에 존재하는 데이터를 정리하고 단순화 시키는 과정에서 한 대상이 갖는 의미를 명확하게 기술
- 모델링의 과정 속에는 대상을 명확화하고 구체화 시키는 과정 뿐만 아니라 그 대상을 어떻게 표기하고 기술할 것인지를 고민하는 과정이 포함되며 이는 명확성을 증가시키는 과정이라고 볼 수 있음
3. 데이터모델링의 단계
(1) 개념적 데이터 모델링(Conceptual Data Modeling)
- 조직이나 사용자가 필요로 하는 데이터의 요구사항을 찾고 분석하는 과정
- 복잡하지 않고 중요한 부분을 위주로 모델링하는 단계
- 추상화 수준이 가장 높고 업무 중심적인 모델링
- 전사적 관점에서 기업의 데이터 모델링
(2) 논리적 데이터 모델링(Logical Data Modeling)
- 비즈니스 과정에서 나타나는 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법/과정
- 누가(Who), 어떻게(How: Process) 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실을 인식하여 기록하는 것
- 정규화*를 수행하여 데이터 모델의 독립성 확보
*정규화 : 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 보다 신뢰성 있는 데이터 구조를 얻는 방법
(3) 물리적 데이터 모델링(Physical Data Modeling)
- 논리적 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인지를 다루는 과정
- 구축할 데이터베이스 관리 시스템에 테이블, 인덱스 등을 생성하는 단계
- 성능, 보안, 가용성을 고려하여 구축
4. 데이터 모델링의 관점
- 데이터 관점 (What)
- 업무가 어떤 데이터와 관련 있는지 모델링하는 방법에 대해 고민하는 관점
- 비즈니스 프로세스에서 사용되는 데이터
- 프로세스 관점 (How)
- 업무가 실제 하는 일이 무엇인지 그리고 무엇을 해야 하는지에 대해 모델링하는 방법을 고민하는 관점
- 도메인 분석, 시나리오 분석
- 데이터와 프로세스의 상관 관점 (Intersection)
- 업무가 처리하는 일의 방법에 따라 데이터는 어떤 영향을 받고 있는지를 중심으로 모델링을 하는 방법
- 일에 의해 데이터가 어떤 변화가 일어나지는지에 대해 초점을 맞추는 관점
- CRUD(Create, Read, Update, Delete) 분석
업무 상황에서 훨씬 더 정제되고 일관적인 데이터 수집이 가능하기 때문에 모델링은 일상보단 업무적인 환경에서 더 많이 사용합니다. 그렇기 때문에 관련된 용어들이 업무적인 환경과 더 깊이 연결되어 있는 경우가 많습니다. 이러한 관점에서의 모델링은 시스템의 대상이 되는 업무를 분석하여 정보 시스템으로 구성하는 과정에서 업무의 내용과 그 모습을 적절한 표기법(Notation)으로 표현하는 것을 의미합니다.