1장 데이터 모델링의 이해

1절 데이터 모델의 이해

6. 데이터 모델링에서 데이터독립성의 이해

가. 데이터 독립성의 필요성

- 어떤 단위에 대해 독립적인 의미를 부여하고 그것을 효과적으로 구현하게 되면 자신이 가지는 고유한 특징을 명확하게 할 뿐만 아니라 다른 기능의 변경으로부터 쉽게 변경되지 않고 자신의 고유한 기능을 가지고 기능을 제공.

- 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이고 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적.

- 미국 표준 협회(ANSI) 산하의 X3 위원회(컴퓨터 및 정보 처리)의 특별연구분과위원회에서 1978년에 DBMS와 그 인터페이스를 위해 제안한 'three-schema architecture'로 정의.

1) 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능.

2) 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공.

데이터 독립성의 3단계는 구조, 독립성, 사상(Mapping)


나. 데이터베이스 3단계 구조

- ANSI/SPARC의 3단계 구성의 데이터독립성 모델은 외부단계와 개념적 단계, 내부적 단계로 구성된 서로 간섭되지 않는 모델을 제시

1) 외부단계

- 사용자와 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련이 있는 부분으로 사용자가 처리하고자 하는 데이터유형에 따라, 관점에 따라, 방법에 따라 다른 스키마 구조.

2) 개념단계

- 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 구조로 디자인한 형태

3) 내부적 단계

- 데이터가 물리적으로 저장된 방법에 대한 스키마 구조


다. 데이터 독립성 요소


라. 두 영역의 데이터 독립성


마. 사상(Mapping)

- 상호 독립적인 개념을 연결시켜주는 다리.

1) 논리적 사상

- 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결되는 구조.

2) 물리적 사상

- 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조.

Posted by 안녕탁이

1장 데이터 모델링의 이해

1절 데이터 모델의 이해

5. 프로젝트 생명주기(Life Cycle)에서 데이터 모델링

Posted by 안녕탁이

1장 데이터 모델링의 이해

1절 데이터 모델의 이해

4. 데이터 모델링의 3단계 진행

가. 개념적 데이터 모델링(Conceptual Data Modeling)

- 개념적 데이터베이스 설계(개념 데이터 모델링)는 조직, 사용자의 데이터 요구사항을 찾고 분석하고 어떠한 자료가 중요하며 또 어떠한 자료가 유지되어야 하는지를 결정한다. 이 단계에 있어서 주요한 활동은 핵심 엔티티와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔티티-관계 다이어그램을 생성하는 것이다. 엔티티-관계 다이어그램은 조직과 다양한 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해서 사용되며 데이터 모델링 과정이 전 조직에 걸쳐 이루어지는 것을 전사적 데이터 모델(Enterprise Data Model)이다.

1) 추상적이기 때문에 상위의 문제에 대한 구조화를 쉽게 하며, 사용자와 개발자가 시스템 기능에 대해서 논의할 수 있는 기반을 형성하고 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원.

2) 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용.


나. 논리적 데이터 모델링(Logical Data Modeling)

- 데이터베이스 설계 프로세스의 Input으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법이며 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태라고 정의하며 물리적인 스키마 설계를 하기 전 단계의 '데이터 모델' 상태.

1) 어떻게 데이터에 엑세스하고, 누가 데이터에 엑세스하며, 그러한 엑세스의 전산화와는 독립적으로 누가(Who), 어떻게(How:Process) 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록.

2) 정규화란 보다 신뢰성있는 데이터구조를 얻기 위해 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔티티에 배치되도록 하며 논리 데이터 모델의 상세화는 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등을 들 수 있으며, 추가적으로 이력 관리에 대한 전략을 정의하여 이를 논리 데이터 모델에 반영함으로써 데이터 모델링을 완료.


다. 물리적 데이터 모델링(Physical Data Modeling)

- 물리적 스키마란 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의.

Posted by 안녕탁이

1장 데이터 모델링의 이해

1절 데이터 모델의 이해

3. 데이터 모델링의 중요성 및 유의점

가. 파급효과(Leverage)

- 데이터 구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 되므로 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요.

나. 복잡한 정보 요구사항의 간결한 표현(Conciseness)

- 시스템을 구축하는 많은 관련자들이 설계자의 생각대로 정보요구사항을 이해하고 이를 운용할 수 있는 애플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록 하려면 정보 요구사항이 정확하고 간결하게 표현되어야 함.

다. 데이터 품질(Data Quality)

- 중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리함으로써의 나타나는 데이터 불일치 등의 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에 불가능한 경우가 대부분이므로 데이터 모델링을 할 때 유의점은 다음과 같음.

1) 중복(Duplication)

- 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 주기 때문에 이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

2) 비유연성(Inflexibility)

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

3) 비일관성(Inconsistency)

- 데이터의 중복이 없더라도 비일관성은 발생하기 때문에 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.

Posted by 안녕탁이

1장 데이터 모델링의 이해

1절 데이터 모델의 이해

2. 데이터 모델의 기본 개념의 이해

가. 데이터 모델링의 정의

- 정보 시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법

- 기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙(Business Rule)에 대하여 참(True) 또는 거짓(False)을 판별할 수 있는 사실(사실명제)을 데이터에 접근하는 방법(How), 사람(Who), 전산화와는 별개의(독립적인) 관점에서 이를 명확하게 표현하는 추상화 기법


나. 데이터 모델이 제공하는 기능

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

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

- 시스템을 구축하는 구조화된 틀을 제공한다.

- 시스템을 구축하는 과정에서 결정한 것을 문서화한다.

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

- 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공한다.

Posted by 안녕탁이

1장 데이터 모델링의 이해

1절 데이터 모델의 이해

1. 모델링의 이해

가. 모델링의 정의

모델이란

사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이라고 할 수 있다.


모델링이란

사람이 살아가면서 나타날 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생된다고 할 수 있으며 모델링은 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미한다.


모델을 만들어가는 일 자체를 모델링으로 정의 가능.

나. 모델링의 특징

1) 추상화

- 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미이며 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것.

2) 단순화

- 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념

3) 명확화

- 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것을 의미


다. 모델링의 세 가지 관점

1) 데이터 관점

- 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법(What, Data)

2) 프로세스 관점

- 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법(How, Process)

3) 데이터와 프로세스의 상관 관점

- 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)

Posted by 안녕탁이