본문 바로가기

Data Architecture

데이터 모델링 개념

 

데이터 모델링이란?

- 현실 세계에 대해 우리가 관심있어하는 대상을 데이터베이스화 하기 위한 개념적 도구

 

 

잘된 데이터 설계

- 데이터 중복 배제, 일관성 확보, 프로그램 유연성 확보

 

 

모델링 절차

- 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터모델링

 

 

개념적 데이터 모델링

- 주제 영역을 정의하고 주제 영역내의 핵심 엔터티를 도출하여 그들간의 관계를 정의하는 

*주제영역, 핵심엔티티, 관계

- 주제 영역이란 부서의 분류하는 것과 유사. (최상위 개념적 데이터 모델링)

- 엔터티란 데이터를 담는 그릇이며 물리 모델에서 테이블로 전환. 핵심 엔터티란 엔터티 분류   엔터티, 메인 엔터티, 액션 엔터티  액션 엔터티를 제외한 나머지 부분.

 

개념 데이터 모델

논리 데이터 모델

물리 데이터 모델

주제영역 정의

엔터티 후보 식별

핵심 엔텉 정의

관계 정의

속성 정의

엔터티 상세화

식별자 확정

정규화

M;M 관계 해소

참조무결성 정의

이력관리 정의

논리물리 데이터 모델 변환

반정규화

 

데이터 표준화

- 구성 요소 : 표준 단어, 표준 용어, 표준 도메인

- 표준 단어/용어 : 속성명과 컬럼명의 표준화

- 표준 도메인 : 데이터 타입과 길의  값을 표준화하여 일관된 data 생성 유도

 

 

전사 아키텍처

- IT는 건축과 달리 가시성이 안좋으므로 전사 아키텍처는 현재의 모습을 가시화하여 관리를 가능하게 하는 것이다.

- 전사아키텍처 정책 수립, 전사아키텍처 정보 수립, 전사아키텍처 관리 정책 수립이 있다.

 

 

 

데이터 모델링

 

 

데이터 모델링 탄생 배경

1. 정보시스템의 핵심인 데이터를 어떻게 중복 없이 관리  것인가?

2. 정확한 정보 시스템 구축을 위해서 설계/개발 보다는 정확한 업무의 업무파악 (데이터에 대한 정확한 분석) 이 선결되어야 한다는 결론

3. 현실 세계를    표현할  있는 ERD으로 발전

 

 

모델의 정의

- 현실 세계에 대해 우리가 관심있어 하는 대상을 데이터베이스화 하기 위한 개념적 도구

 

 

모델링의 정의

- 기업 업무에 대한 종합적인 이해를 바탕으로

- 데이터에 존재하는 업무 규칙에 대해  또는 거짓을 판별할  있는 사실을 정의

- 어떻게, 누가 접근하는지에 대한 전산화와는 별개의 관점

- 현재 업무를 파악하여 문제점을 인식하고

- 개선사항을 도출하여 미래에 적합한 설계를 이끌어 내기 위해

- 인간이 해야할 대부분의 결정을 내리는 단계까지를 모두 포함하는 것.

 

데이터 모델이 제공하는 

- 시스템을 현재 또는 원하는 모습으로 가시화하도록 해준다.

- 시스템의 구조와 행동을 명세화할  있게 한다.

- 시스템을 구축하는 틀을 제공

- 우리가 결정한 것을 문서화한다.

- 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공

- 특정 목표에 따라 다양한 상세 수준을 제공한다.

 

 

 

데이터 모델의 필요성

 

 

고품질의 데이터 모델 : 시스템의 안정성, 유연성, 성능에 지대한 영향.

-> 고품질의 데이터 모델링은 시스템 개발에 있어서 가장 핵심적인 과정

 

 

프로세스 중심적인 시스템 구축 방법

- 고품질의 데이터 모델을 설계하기 위한 단계에서 정보 공유의 문제점 다수 발생

- 데이터 무결성에 좋지 않은 영향 -> 즉, 데이터 품질에도 악영향

-> 시스템이 효과적이고 효율적으로 운영되기 위해서는 기능별 시스템을 가로지르는 시스템 간의 상호작용과 데이터 통합이 중요하다.

 

 

데이터 모델(설계)이 중요한 이유

- 파급효과, 간결한 표현, 데이터 품질

 

 

어플리케이션과 데이터의 통합

- 어플리케이션 코딩 차원의 통합에 너무도 많은 비용 초래

- 데이터를 기반으로  통합은 효과적이고 저비용이며 성공적으로 완수하기 위한 필요조건

 

 

개발자들의 시스템 이해

- 개발자들이 개발할 시스템과 데이터를   확실하게 이해하기 위해 데이터의 모형화 필요

- 사용자 관점 데이터: 사용자가 원하는 논리적 개념(View), 시스템이 어떻게 그것을 제공하는 지의 물리적 개념을 명확하게 표현 가능

- 물리적 표현 또는 사용에 관계없는 데이터  자체의 본질

- 어플리케이션  데이터 사용

 

 

데이터 모델링  주의점

- 중복배제, 유연성, 일관성이 있어야 한다!

 

 

데이터 모델링 단계

- 개념 데이터 모델링 : 주제영역을 정의하고 주제영역 내의 핵심 엔터티를 도출하고 그들 간의 관계를 정의하고 이를 표현하기 위해 ERD 작성

- 논리 데이터 모델링 : 상세 속성 정의, 엔터티 상세화, 이력관리 결정

- 물리 데이터 모델링 : 목표하는 DBMS 특성  구현 환경 등을 감안한 스키마를 일정한 기준과 규칙에 의해 도출. ex) 데이터 사용량 분석. 인덱스 정의. 반정규화 수행

 

 

모델링 기본 원칙

- 커뮤니케이션 원칙 : 요구사항이 정의한 그대로  

- 모델링 상세화 원칙 : 데이터의 본질과 잠재적 사용을 이해할  있을만큼 상세화해야함.

- 논리적 표현 원칙 : 물리적 제약조건 없이 비즈니스를 그대로 반영.

-> 논리적 설계와 물리적 설계를 구별하지 못하면 잘못된 방향으로 진행하게 

 

 

좋은 데이터모델의 요소

- 완전성, 중복 배제, 비즈니스 룰, 데이터 재사용, 안정성  확장성, 간결함, 의사소통, 통합성

 

 

 

데이터 모델링 기법 이해

 

 

데이터 모델 목적

- 데이터 베이스 설계에 대한 계획 또는 청사진

- 시스템의 데이터 구조에 대한 형상을 이해하고 원활한 소통을 도모하게 

- 다르게 인식하고 있는 뷰들을 하나로 통합할  있는 단일화된 설계안을 만들  있음

- 서로 다른 뷰를 충족시킬  있는 데이터 처리와 제약조건 등의 요구사항을 정의하기 위해

 

 

개체  관계 모델 기법

- 요즘은 서브타입이 추가된 확장형을 그냥 ERD라 

- ERD를 사용하면 뷰를 하나로 통합할  있으며 서로 다른 뷰를 충족시킬  있는 데이터 처리와 제약조건 등의 요구사항을 정의   있다.

 

 

개체  관계 모델 구성 요소

- 엔터티, 속성, 식별자, 관계, 카디널리티, 존재종속, 서브타입

 

 

객체지향

- 인스턴스 = Row, Record, 튜플. / 엔터티 = Relation, 테이블. / 식별자 = PK = Key

- 객체지향 장점은 재사용 코드와 같은 개념이 실제로 가능한 환경, 모든 비즈니스 규칙이 표현될  있는 유일한 환경을 제공하며, 프로세스와 데이터 모델링을 함께 운영.

 

 

*서브타입 관련 문구

- 개괄적으로 봤을 경우 서브타입은 배타적 혹은 포괄적 (IE도 마찬가지).

- 그러나 바커 표기법은 서브타입의 중복을 허락하지 않는 상호 배타적.

 

'Data Architecture' 카테고리의 다른 글

물리 데이터 모델링  (0) 2021.04.05
엔터티 상세화 - 논리 데이터 모델  (0) 2021.04.05
속성 정의 - 논리 데이터 모델  (0) 2021.04.05
논리 데이터 모델링 이해  (0) 2021.04.05
개념 데이터 모델링  (0) 2021.04.05