목표

: 데이터 모델링의 정의, 특징, 종류(설계 단계), 유의사항을 이해한다.

1. 데이터 모델링 정의

데이터 모델링(Data Modeling) 은 현실세계 데이터를 단순화시켜 데이터베이스로 표현하기 위한 작업(추상화 과정)이다.
고객의 업무 프로세스 내 비즈니스 프로세스 규칙을 정의하여 데이터 모델로 표현할 수 있어야 하며 이해하기 쉽게 간결하게 모델링 해야 한다.
cf. 데이터 모델링 표기법을 사용해서 모델링 해야 한다.


2. 데이터 모델링 특징

(1) 추상화(Abstraction)

현실 세계를 일정한 양식(표기법)에 맞추어 간략하게 표현해야 한다.

(2) 단순화(Simplification)

복잡한 현실을 누구나 이해하기 쉽도록 약속된 규약에 의한 제한된 표기법 또는 언어를 이용하여 표현해야 한다.

(3) 명확화(Clarity)

명확하게 의미가 한 가지로 해석되어야 함으로 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술해야 한다.


3. 종류(모델링 단계)

이미지 출처: https://wikidocs.net/1208


(1) 개념적 데이터 모델링

추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행한다. 전사적 데이터 모델링이라고도 불리며 EA 수립 시 많이 이용한다. 핵심 엔터티를 도출하고 ERD를 작성한다.
keywords : 업무 중심적, 포괄적, 추상화 수준이 높음

🔍 EA(Enterprise Architecture)

조직의 프로세스 및 정보 시스템 및 부서의 구조와 기능을 포괄적이고 정확한 방법으로 기술하는 방법이고, 이것을 통해 조직이 전략적 목표에 따라 행동하도록 방향을 제시하는 것이다.(출처: 위키백과)

(2) 논리적 데이터 모델링

시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현하는 단계이다. 특정 데이터베이스 모델에 종속 된다. 데이터 정규화가 이루어지며 재사용성이 높은 특징을 가진다.
keywords : 재사용성이 높음

🔍 정규화

논리적 데이터 모델 상세화 과정에서의 대표적인 활동으로 일관성 확보, 중복 제거로 속성들이 가장 적절한 엔터티에 배치되도록 한다. 정규화의 목적은 신뢰성 있는 데이터 구조를 얻기 위함이다.

(3) 물리적 데이터 모델링

실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려한 설계 단계이다. 가장 구체적인 데이터 모델링 단계이며 추상화 수준이 가장 낮은 단계이다.
keywords : 데이터베이스 이식, 성능과 저장 등의 물리적인 성격을 고려


표 출처: http://blog.skby.net/데이터-모델링-data-modeling/


4. 유의사항

(1) 중복(Duplication)

데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 줌으로써 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 중복성을 최소화 해야한다.

(2) 비유연성(Inflexibility)

데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

데이터의 정의를 데이터의 사용 프로세스와 분리하여 유연성을 높여야 한다.

(3) 비일관성(Inconsistency)

데이터의 중복이 없더라도 비일관성은 발생할 수 있는데, 예를 들면 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 경우이다. 개발자가 서로 연관된 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 이와 같은 문제가 발생할 수 있다. 데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의한다면 이러한 위험을 사전에 예방하는데 도움을 줄 수 있다. 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 해당한다.

데이터간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 해야 한다.


5. Reference

👩🏻‍💻개인 공부 기록용 블로그입니다
오류나 틀린 부분이 있을 경우 댓글 혹은 메일로 따끔하게 지적해주시면 감사하겠습니다.

댓글남기기