What is Data Modeling?
모델링이란 복잡한 현실 세계를 추상화, 단순화시켜 명확하게 표현하기 위한 기법을 의미한다. 데이터베이스를 구축하기 위한 분석 및 설계의 과정으로, 현실세계의 데이터를 미리 약속한 표기법에 의해 표현한다.
모델링에는 세 가지 관점이 있다.
- 업무가 어떤 데이터와 관련이 있는지에 대해서 모델링하는 데이터 관점 (What)
- 업무가 실제로 하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 프로세스 관점(How)
- 업무 처리의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 상관 관점(Process)
데이터 모델링이 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 우선시 여겨지는 이유는 파급효과 때문이다. 데이터 모델링은 구축할 시스템의 복잡한 정보들을 간결하게 표현할 수 있을 뿐만 아니라 데이터의 중복을 막고 유연한 데이터 교환과 일관성을 지켜주어 데이터 품질을 향상시킬 수 있다. 데이터 모델이 제공하는 기능으로는 아래와 같은 기능들이 있다.
- 시스템을 원하는 모습으로 가시화한다
- 시스템의 구조를 명세화하고, 특정 목표에 따라 구체화 된 상세 수준의 표현 방법을 제공한다
- 시스템을 구축하는 틀을 제공하고 구축하는 과정에서 결정한 것을 문서화한다
- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점을 제공한다
데이터 모델링의 3단계
개념적 데이터 모델링
현실세계를 추상화하여 개념적인 구조로 바꾼다. 업무 중심적이며 포괄적인 수준의 모델링을 진행한다. EA enterprise architecture 수립 시 많이 사용한다. (EA - 엔터프라이즈 구축을 위한 설계 도면)
논리적 데이터 모델링
개념적 구조를 분석하여 시스템으로 구축하고자 하는 업무에 대해 key, 속성, 관계 등으로 표현한다.
데이터 모델링 과정에서 가장 핵심이 되는 부분으로, 정규화가 해당 과정에서 진행된다.
물리적 데이터 모델링
실제로 데이터베이스에 이식할 수 있도록 설계하는 단계로, 성능, 저장 등의 물리적인 성격을 고려하여 설계한다.
데이터 독립성
데이터 간 독립성이 필요한 이유는 데이터의 중복성과 복잡도를 절감하여 유지보수 비용을 감소시키고 끊임없는 클라이언트의 요구사항에 대한 대응을 향상시키기 위해서이다. 데이터 독립성을 확보하면 계층별 view 끼리 서로 영향을 주지 않고 변경이 가능하며 단계별 스키마에 따라 DDL 데이터 정의어와 DML 데이터 조작어를 다르게 사용할 수 있다.
데이터 베이스의 3단계 구조
ANSI/SPARC American National Standards Institute, Standards Planning And Requirements Committee 미국 정보처리 위원회는 3단계의 데이터 독립성 모델을 제시했다. 외부단계, 개념적 단계, 내부적 단계로 구성된 이 데이터 독립성 모델은 각 단계 간에 서로 간섭하지 않는 모델을 제시하고 있다.
외부단계 - 외부스키마
외부단계는 사용자와 가까운 단계로, 사용자 개개인이 보는 자료에 대한 관점과 관련이 있는 부분이다. 여러 사용자의 관점으로 구성된 DB 스키마가 자리한다.
개념단계 - 개념스키마
개념단계는 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 view를 스키마 구조로 디자인한 형태를 의미한다. 모든 응용 시스템드리나 사용자들이 필요로 하는 데이터들을 통합한 조직 전체의 DB 를 기술한 것으로, DB 에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마가 자리한다. 데이터 모델이라고 보면 된다.
개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것을 논리적 독립성이라고 한다.
내부단계 - 내부스키마
내부단계는 물리적 장치에서 데이터가 실제로 저장된 방법을 표현하는 스키마가 저장된다. DB 그 자체라고 보면 된다.
내부 스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것을 물리적 독립성이라고 한다. 저장 장치의 물리적 구조 변경이 응용 프로그램과 개념 스키마에 영향을 끼치지 않도록 해야 한다.
사상(매핑 mapping)
데이터베이스 3단계 구조에는 두 가지 사상이 있다.
- 논리적 사상(외부적 사상~개념적 사상) : 외부적 view 와 개념적 view 의 상호 호환성을 정의한다. 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있으나 개념적 view 의 필드 타입에는 변화가 없다 ... dao?
- 물리적 사상(개념적 사상~내부적 사상) : 개념적 view 와 저장된 데이터베이스 간의 상호 관련성을 정의한다. 만약 저장된 데이터베이스의 구조가 바뀐다면, 개념적/내부적 사상도 바뀌어야 개념 스키마가 그대로 남아있게 된다.
좋은 데이터 모델링이란
좋은 데이터 모델링이란 먼저, 업무에 필요한 데이터가 모두 정의되어야 한다. 이를 완전성이라고 한다. 동일한 데이터는 유일하게 정의하여 통합성을 높이고, 다른 영역에서 사용할 경우 참조를 이용하여 중복을 최대한 배제하여야 한다. 데이터 모델 분석만으로도 비즈니스 로직이 이해되어 당사자들간의 의사소통이 가능해야 한다. 데이터의 통합성과 독립성을 고려하여 데이터 재사용성을 높게 만들어야 한다.
'SQL' 카테고리의 다른 글
정규화 (0) | 2021.05.17 |
---|---|
데이터 모델링의 3요소와 식별자 (0) | 2021.05.13 |
트랜잭션 (0) | 2021.05.11 |
집합과 결합 (0) | 2021.04.27 |
db index & view (0) | 2021.04.27 |