기획자의 데이터 공부 - 데이터 모델링의 이해
* 모델링 정의
- 살면서 나타나는 다양한 현상을 표기법에 의해 규칙을 갖고 표기하는 것
- WEBSTER 사전 : 가설적 또는 일정 양식에 맞춘 표현,
어떤 것에 대한 예비표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여
- 복잡한 현실세계를 단순화시켜 표현한 것
- 모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위해 명확하게 하는 것
- 모델이란 현실 세계의 추상화된 반영
* 모델링 특징
- 추상화 : 현실세계를 일정한 형식에 맞추어 표현
- 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해하게 함
- 명확화 : 누구나 이해하기 쉽게 하기 위한 대상에 대한 모호함을 제거하고 정확하게 현상 기술
- 정보시스템 구축에서는 모델링을 계획/분석. 설계 시 분석하고 설계 이후 구축/운영에서 변경, 관리
* 모델링의 세가지 관점
- 데이터 관점 : 업무가 어떤 데이터와 관련 있는지, 데이터 간 관계는 무엇인지에 대해 모델링하는 방법
- 프로세스 관점 : 업무가 실제 하는 일이 무엇이고 무엇을 해야하는지 모델링하는 방법
- 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향 받는지 모델링하는 방법
* 데이터 모델링
- 정보시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
- 데이터베이스 구축을 위한 분석/설계 과정
* 데이터 모델이 제공하는 기능
- 시스템을 현재 또는 원하는 모습으로 가시화하도록 도움
- 시스템의 구조와 행동을 명세화
- 시스템 구축하는 구조화된 틀 제공
- 시스템 구축하는 과정에서 결정한 것을 문서화
- 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점 제공
- 특정 목표에 따라 구체화된 상세 수준의 표현 방법 제공
* 데이터 모델링이 중요한 이유 : 파급효과, 복잡한 정보 요구사항의 간결한 표현, 데이터 품질
* 파급효과
데이터 구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 될 수 있음
시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요함
* 복잡한 정보 요구사항의 간결한 표현
데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현하는 도구
정보 요구사항이 명확하고 간결하게 표현되어야 함
* 데이터 품질
- 중복 : 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 함
- 비유연성 : 데이터 모델은 사소한 업무변화에도 데이터 모델이 수시로 변경돼서 유지소루 어려움 가중시킴
- 비일관성 : 데이터 중복이 없더라도 발생 가능, 데이터 간 상호 연관관계에 대한 명확한 정의 필요
* 데이터 모델링 3단계
- 개념적 데이터 모델링 : 추상화 수준이 높고, 업무중심적이고 포괄적인 수준의 모델링 진행,
전사적 데이터 모델링, EA 수립 시 많이 이용
- 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등을 정확히 표현, 재사용성 높음
- 물리적 데이터 모델링 : 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
* 개념적 데이터 모델링
- 핵심 엔티티와 그들 간의 관계를 발견하고, 표현하기 위해 엔티티-관계 다이어그램을 생성
- 엔티티-관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떤 데이터가 중요한지 나타내기 위해 사용
- 데이터 모델링 과정이 전 조직에 걸쳐 이루어지면 전사적 데이터모델이라고 불림
- 데이터 요구를 공식화하는 중요한 기능
개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원
개념 데이터 모델은 현 시스템이 어떻게 변형되어야 하는지를 이해하는데 유용함
* 논리적 데이터 모델링
- 누가 어떻게 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록
- 시스템 구축을 위해 가장 먼저 시작할 기초적인 업무조사부터 인간이 결정할 사항을 모두 정의
- 정규화는 논리 데이터 모델 상세화 과정의 대표적인 활동
논리 데이터 모델의 일관성을 확보, 중복을 제거, 속성들이 적절한 엔티티에 배치되게 함, 신뢰성 있는 데이터 구조
- 논리 데이터 모델 상세화 : 식별자 확정, 정규화, M:M관계 해소, 참조무결성 규칙 정의 등
* 물리적 데이터모델링
- 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룸
- 테이블, 컬럼 등으로 표현되는 물리적인 저장구조, 사용될 저장장치, 자료를 추출하기 위해 사용될 접근 방법 등 결정
- 실제로는 개념적 데이터 모델링과 논리적 데이터 모델링을 한번에 수행하는 경우가 대부분
[본 글은 SQLD 자격증 공부를 위해 아카이빙한 글입니다.