참고사이트
모델링의 이해
1️⃣ 모델링의 정의
Webster 사전
- 가설적 또는 일정 양식에 맞춘 표현(a hypothetical or stylized representation)
- 모델링은 실제로 존재하지 않는 가상의 상황이나 사물을 표현하는 것이다.
- 이러한 모델은 현실 세계의 복잡성을 이해하고, 특정 시나리오를 테스트하거나 예측하는데 사용될 수 있다.
- 어떤 것에 대한 예비 표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것
- 모델이 최종 결과물을 만드는 데 필요한 계획과 예비 표현임을 나타낸다.
- 즉, 모델은 최종 제품이나 시스템이 어떻게 작동할지를 예측하고, 이를 기반으로 실제 구현이 이루어 진다.
복잡한 '현실세계'를 단순화시켜 표현하는 것
- 모델링의 주요 목적 중 하나는 현실 세계의 복잡성을 단순화하는 것이다.
- 현실 세계의 많은 요소와 관계를 단순화하여 이해하기 쉽게 표현함으로써, 복잡한 시스템이나 문제를 더 잘 이해하고 해결할 수 있게 한다.
예를 들어, 경제 모델은 경제 시스템의 복잡한 상호작용들을 단순화하여, 예측하는데 사용될 수 있다.
모델이란 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위하여 명확하게 하는 것이다.
- 모델은 특정 사물이나 사건의 특정 측면이나 관점을 명확하게 하는 역활을 한다.
- 이는 모델이 여러 이해관계자에게 명확한 정보를 제공하여, 그들의 이해를 돕기 위해 만들어 진다는 점을 강조한다.
예를 들어, 사업 계획 모델은 투자자에게 사업의 핵심 요소와 수익성을 명확히 설명하여 투자 결정을 도울 수 있다.
모델이란 현실 세계의 추상화된 반영이다.
- 모델은 현실 세계의 복잡한 현상이나 사물을 추상화하여 표현한 것이다.
- 추상화는 중요하지 않은 세부 사항을 생략하고, 핵심 요소에 집중하여 본질적인 특성을 파악하는 데 도움을 준다.
2️⃣ 모델링의 특징
위의 정의를 요약하여 모델링의 특징을 요약하면 추상화, 단순화, 명확화의 3대 특징으로 요약할 수 있다
정보 시스템 구축에서, 모델링은 계획/분석/설계 할 때 업무를 분석하고, 설계하는데 이용하고 이후 구축/운영 단계에서는 변경과 관리의 목적으로 이용하게 된다.
1. 추상화 (Abstraction)
추상화의 정의는 현실 세계를 일정한 형식에 맞추어 표현하는 것이다.
추상화의 의미는 다음과 같다.
- 모형화
- 추상화는 모형화와 가설적 표현을 포함한다. 현실 세계의 복잡한 현상이나 객체를 간단한 모델로 표현하여 본질적인 특성을 파악할 수 있다.
- 표기법 사용
- 추상화는 다양한 현상을 일정한 양식, 즉 표기법에 의해 표현한다. 이는 UML(Unified Modeling Language), ERD(Entity-Relationship Diagram) 등과 같은 표준화된 표기법을 사용하여 수행된다.
추상화의 예시로는, 기후 변화를 예측하기 위해 대기와 해양의 상호작용을 수학적 모델로 표현하는 것(기후 모델링)과, 조직의 비즈니스 프로세스를 BPMN(Business Process Model and Notation)으로 시각화하여 이해하는 것이 있다.
2. 단순화(Simplification)
단순화의 정의는 복잡한 현실 세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것이다.
단순화의 의미는 다음과 같다.
- 복잡성 감소
- 단순화는 복잡한 현상을 이해하기 쉬운 형태로 축소한다.
- 이는 핵심 요소만을 남기고 불필요한 세부 사항을 제거하는 것을 뜻한다.
- 표준화
- 단순화는 약속된 규약과 표기법을 사용하여 일관성을 유지한다.
- 이는 모델이 명확하고 일관되게 해석되게 만들어준다.
단순화의 예시로는, 복잡한 지하철 노선과 역 정보를 간단한 선과 점으로 표현하여 쉽게 이해할 수 있도록 한 지하철 노선도가 있다.
3. 명확화
명황화의 정의는 누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고, 정확한 현상을 기술하는 것이다.
명확화의 의미는 다음과 같다.
- 명확성 제공
- 명확화는 모델이 오해 없이 명확히 이해될 수 있도록 애매한 부분을 제거하고 정확하게 기술하는 것이다.
- 일관된 해석
- 명확화는 모든 이해관계자가 동일한 해석을 할 수 있도록 돕는다.
명확화의 예시로는, 건물을 지을때 관계자드링 모두 동일한 해석을 할 수 있는 건물의 설계도가 있다.
3️⃣ 모델링의 세가지 관점
모델링의 세가지 관점은 정보 시스템을 구축할 때 각기 다른 측명에서 시스템을 이해하고 설계하는 방법을 제공한다. 이들은 데이터 관점, 프로세스 관점, 데이터와 프로세스의 상관 관점이다. 각 관점은 특정한 질문에 답하기 위해 시스템을 분석하교 표현하는 방법을 강조한다.

1. 데이터 관점(Data Perspective)
데이터 관점은 시스템에서 다루어야 할 데이터가 무엇인지, 데이터 간의 관계는 어떻게 되는지를 모델링하는 방법이다.
- What, Data
- 이 관점은 시스템에서 필요한 데이터의 구조와 그들간의 관계를 정의한다.
- 데이터 관점은 주로 "무엇"에 초점을 맞추며, 데이터가 어떻게 저장되고 조직되는지를 설명한다.
- 모델링 방법
- 주로 ERD(Entity-Relationship Daigram)와 같은 데이터 모델링 도구를 사용하여 엔티티, 속성, 관계를 시각적으로 표현한다.
- 중요성
- 데이터 모델링은 데이터 베이스의 설계의 기초가 되며, 데이터의 무결성과 일관성을 유지하는 데 중요하다.
2. 프로세스 관점(Process Perspective)
프로세스 관점은 시스템이 수행하는 작업이 무엇인지, 또는 무엇을 해야 하는지를 모델링하는 방법이다.
- How, Process
- 이 관점은 시스템이 수행해야 할 작업이나 활동을 정의한다.
- 프로세스 관점은 "어떻게"에 초점을 맞추며, 비즈니스 프로세스나 작업 흐름을 설명한다.
- 모델링 방법
- 주로 BPMN(Business Process Model and Notation)이나 DFD(Data Flow Diagram)와 같은 도구를 사용하여 프로세스와 그 흐름을 시각적으로 표현한다.
- 중요성
- 프로세스 모델링은 시스템이 비즈니스 요구사항을 어떻게 충족시킬지, 그리고 업무 절차를 어떻게 최적화할지를 이해하는 데 중요하다.
프로세스 관점의 예시로는 주문 처리 시스템이 있는데, 주문생성, 결제, 배송등의 주요 프로세스를 정의하고, 각 프로세스의 단계와 흐름을 시작적으로 표현한다
3. 데이터와 프로세스의 상관 관점(Interaction Perspectvie)
데이터와 프로세스의 상관 관점은 프로세스가 데이터를 어떻게 처리하고 , 데이터가 프로세스에 의해 어떻게 영향을 받는지를 모델링 하는 방법이다.
- Interaction
- 이 관점은 데이터와 프로세스 간의 상호작용을 설명한다.
- 즉 프로세스가 데이터를 어떻게 읽고, 쓰고, 수정하는지를 모델링 한다.
- 모델링 방법
- 통합 모델링 도구나 방법을 사용하여 데이터와 프로세스 간의 상호작용을 시각적으로 표현한다.
- 이는 프로세스 다이어그램과 데이터 모델을 통합하여 상호 관계를 명확히 한다.
- 중요성
- 데이터와 프로세스의 상관 모델링은 시스템의 기능적 요구사항을 완전히 이해하고, 데이터 흐름과 프로세스 간의 의존성을 관리하는 데 중요하다.
상관 관점의 예시로는 재고 조회 시스템이 있는데 재고 조회 프로세스가 있는데, 데이터베이스에서 재고 데이터를 읽고, 재고 업데이트 프로세스가 재고 데이터를 수정하는 방식 등을 모델링하낟.
데이터 모델의 기본 개념과 이해
1️⃣ 모델링의 정의
데이터 모델은 데이터베이스의 구조를 이해하고, 이를 바탕으로 효율적인 SQL문장을 작성하기 위해 필요한 핵심 요소이다.
데이터 모델링의 정의
- 정보 시스템을 구축하기 위해
- 데이터 모델링은 정보시스템을 구축하기 위해 해당 업무에서 어떤 데이터가 존재하는지, 또는 업무가 필요로 하는 정보가 무엇인지를 분석하는 방법이다.
- 업무 규칙(Business Rule)
- 기업 업무에 대한 종합적인 이해를 바탕으로, 데이터에 존재하는 업무 규칙에 대해 참(True) 또는 거짓(False)을 판별할 수 있는 사실을 명확하게 표현하는 추상화 기법이다.
- 시스템 구축 과정
- 데이터 모델링은 실무적으로 업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정으로 정의된다.
데이터 모델링의 주요 목적
- 정확한 업무 분석
- 데이터 모델링의 첫 번째 목적은 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이다.
- 이는 업무 정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현함으로써 이루어진다.
- 예시: 고객 관리 시스템을 구축할 때, 고객 정보, 주문 정보, 제품 정보 등의 데이터를 어떻게 구조화할 것인지를 분석하고 모델링한다.
- 데이터베이스 생성 및 관리
- 두 번째 목적은 분석된 모델을 바탕으로 실제 데이터베이스를 생성하고, 이를 개발 및 데이터 관리에 사용하는 것이다.
- 예시: ER 다이어그램을 사용하여 데이터베이스 테이블을 설계하고, 이를 바탕으로 SQL 스크립트를 작성하여 데이터베이스를 구축한다.
데이터 모델링의 중요성
- 업무 설명 및 분석
- 데이터 모델링은 단순히 데이터베이스를 구축하기 위한 것이 아니라, 업무를 설명하고 분석하는 데에도 중요한 의미를 갖는다.
- 예시: 비즈니스 프로세스를 이해하고 개선하기 위해 데이터를 모델링하면, 업무 흐름을 시각화하고 개선할 수 있는 기회를 찾을 수 있다.
- 효율적인 SQL 작성:
- 데이터 모델을 이해하면 SQL 문장을 기능적이고 성능적으로 효율적으로 작성할 수 있다.
- 예시: 잘 설계된 데이터 모델은 조인(Join) 연산을 최소화하고, 인덱스를 효과적으로 활용할 수 있게 하여 SQL 성능을 최적화한다.
데이터 모델링의 주요 목적은 정확한 업무 분석과 데이터베이스 생성 및 관리이다. 이를 통해 업무 정보를 구조화하고, 정보시스템 구축의 기반을 마련하며, 효율적인 SQL 작성을 가능하게 한다. 데이터 모델링은 데이터베이스 구축뿐만 아니라 업무 설명과 분석에도 중요한 의미를 가지고 있다.
2️⃣ 데이터 모델이 제공하는 기능
- 시각화: 시스템의 현재 또는 목표 상태를 시각적으로 표현하여 이해를 돕는다.
- 명세화: 시스템의 구조와 동작을 구체적으로 정의하여 명확한 설계를 지원한다.
- 구조화된 틀 제공: 일관되고 체계적인 설계 접근 방식을 제공한다.
- 문서화: 설계 과정에서의 결정을 기록하여 유지보수와 협업을 용이하게 한다.
- 관점 제공: 특정 영역에 집중할 수 있도록 다른 영역의 세부 사항을 숨긴다.
- 구체화된 표현 방법 제공: 설계와 구현 단계에서 필요한 상세 수준의 정보를 제공한다.
이러한 기능들은 데이터 모델링이 정보 시스템의 설계, 구현, 유지보수에 있어 중요한 역할을 하도록 하며, 시스템의 효율성과 일관성을 높이는 데 기여한다.
데이터 모델링의 중요성 및 유의점
데이터 모델링이 중요한 이유는 파급효과(Leverage), 복잡한 정보 요구사항의 간결한 표현(Conciseness), 데이터 품질(Data Quality)로 정리할 수 있다.
1️⃣ 파급효과(Leverage)
시스템 구축이 거의 완료된 시점에서, 데이터 모델의 변경이 불가피할 경우, 이는 시스템 전체에 큰 영향을 미친다.
- 시스템 구축이 진행 중일 때, 데이터 모델의 변경은 데이터 구조와 응용 프로그램 전반에 걸친 영향을 미치게 된다.
- 이는 표준 영향 분석, 응용 변경 영향 분석 등의 많은 영향 분석을 요구한다.
- 변경 작업은 많은 단위 테스트, 병행 테스트, 통합 테스트를 필요로 하며, 이 과정에서 데이터 구조의 변경은 프로젝트의 큰 위험 요소로 작용할 수 있다.
- 데이터 베이스 스키마의 변경으로 인한 대규모 데이터 마이그레이션 작업이 필요하게 될 수 있다.
- 데이터 모델의 변경은 모든 관련 응용 프로그램 코드의 수정과 재테스트를 요구할 수 있다.
따라서 데이터 설계는 시스템 구축 작업 중 다른 어떤 설계 과정보다 중요하다.
2️⃣ 복잡한 정보 요구사항의 간결한 표현(Conciseness)
데이터 모델은 복잡한 정보 요구사항을 명확하고 간결하게 표현할 수 있는 도구이다.
- 데이터 모델은 시스템의 정보 요구사항을 시각적으로 표현하여 이해를 돕는다. 이는 다수의 기능 요구사항 문서를 검토하는 것보다 훨씬 효율적이다.
- 데이터 모델은 건축물의 설계 도면과 유사하다. 설계 도면이 건축물의 구조와 디자인을 명확히 표현하듯이, 데이터 모델은 시스템의 정보 요구사항을 명확히 한다.
- 데이터 모델은 시스템을 구축하는 많은 관련자들이 설계자의 의도를 이해하고 이를 구현할 수 있도록 돕는다.
복잡한 요구사항을 간결하게 표현하기 위해, ER 다이어그램을 통해 데이터베이스의 구조를 시각적으로 표현하고, 관계자들이 이를 검토하여 정보 요구사항을 이해할 수 있다.
3️⃣ 데이터 품질(Data Quality)
시스템데이터베이스에 담긴 데이터는 기업의 중요한 자산이며, 데이터 품질은 그 가치를 결정한다.
- 데이터 품질 문제는 데이터 구조의 문제에서 비롯될 수 있다. 이는 중복 데이터, 비즈니스 정의의 불충분, 데이터 불일치 등으로 인한 문제를 포함한다.
- 데이터 품질 문제는 데이터가 쌓이면서 점차 심각해지며, 데이터의 전략적 활용 시점에 문제가 드러난다.
- 데이터 구조의 문제가 치유가 불가능한 데이터 품질 문제를 야기할 수 있다.
이러한 데이터 문제는 중북된 데이터로 인해 발생하는 데이터 불일치 문제가 있고, 데이터베이스에 저장된 데이터의 정확성이 떨어져 중요한 비즈니스 결정을 내릴 때 잘못된 정보를 기반으로 결정을 내리게 될 수 있다.
데이터 모델링을 할 때 유의점은 다음과 같다.
1. 중복(Duplication)
데이터 모델은 중복 데이터를 방지하는 데 도움을 준다.
- 데이터 베이스가 여러 장소에 같은 정보를 저장하지 않도록, 같은 데이터를 사용하는 사람, 시간, 장소를 파악한다.
- 중복 데이터는 데이터 불일치와 비효율성을 초래할 수 있다.
예시로, 동일한 고객 정보가 여러 테이블에 중복되어 저장되지 않도록, 고객 정보를 한 곳에서 관리한다.
2. 비유연성(Inflexibility)
데이터 모델은 설계에 따라 유연성을 가질 수 있다.
- 데이터 모델이 비유연하게 설계되면, 사소한 업무 변화에도 데이터 모델이 변경되어야 할 수 있다.
- 데이터 정의를 데이터 사용 프로세스와 분리하여 유연성을 높일 수 있다.
예시로, 데이터베이스 스키마를 변경하지 않고도 새로운 비즈니스 요구사항을 충족할 수 있도록 유연하게 설계한다.
3. 비일관성(Inconsistency)
데이터 모델은 데이터 일관성을 유지하는데 도움을 준다.
- 데이터의 중복이 없더라도 데이터 간의 상호 연관 관계가 명확하게 정의되지 않으면, 비일관성이 발생할 수 있다.
- 데이터와 데이터 간의 상호 연관 관계를 명확히 정의하여 비일관성을 예방한다.
예시로, 고객의 신용 상태와 납부 이력 정보가 일관되게 유지되도록 데이터 모델에서 관계를 정의한다.