IT/SQLD

[SQLD]데이터 모델링의 이해

또닝 2017. 6. 16. 16:24

[ 데이터 모델링의 이해 ]


모델의 세가지 관점

1. 데이터 관점

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

2. 프로세스 관점

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

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

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


데이터 모델링의 중요성

1. 파급효과

2. 복잡한 정보 요구사항의 간결한 표현

3. 데이터 품질


데이터 모델링의 유의점

1. 중복(Duplication)

2. 비유연성(Inflexibility) : 데이터의 정의를 데이터의 사용 프로세스와 분리해야함

3. 비일관성(Inconsistency) : 데이터와 데이터 간 상호 연관 관계에 대해 명확하게 정의해야함


데이터 모델링의 3단계

데이터 모델링 

내용 

수준 

 개념적 데이터 모델링 

추상화수준↑

업무중심적이고 포괄적인 수준의 모델링 진행

전사적 데이터 모델링(Enterprise Data Modeling), EA(Enterprise Architecture) 수립시 많이 사용

추상적





구체적

 논리적 데이터 모델링

시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현

재사용성 ↑

 물리적 데이터 모델링

실제로 데이터 베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계 


1. 개념적 데이터 모델링

조직, 사용자의 데이터 요구사항을 찾고 분석하는데서 시작한다.

어떠한 자료가 중요하고, 유지되어야 하는지를 결정한다.

주요 활동은 핵심 엔티티와 그들간의 관계를 발견하고, 그것을 표현하기 위해서 엔티티-관계 다이어그램(ER Diagram)을 생성하는 것이다.

개념 데이터 모델은 사용자와 시스템 개발자가 데이터 요구1.  사항을 발견하는 것을 지원한다.

개념 데이터 모델은 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용하다.


2. 논리적 데이터 모델링

데이터베이스 설계 프로세스의 Input으로써 비지니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정

논리 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있다.

논리 데이터 모델의 상세화는 식별자 확정, 정규화 M:M 관계 해소, 참조 무결성 규칙 정의 등을 들 수 있다.

정규화라는 중요한 활동을 한다.


3. 물리적 데이터 모델링

논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다.

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


개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링 순서로 모델링을 수행한다.

데이터 모델링을 수행 하기 위해서는 데이터 독립성이 확보되어야 한다.


데이터 독립성 필요 배경

1. 유지보수 비용 증가

2. 데이터 중복성 증가

3. 데이터 복잡도 증가

4. 요구사항 대응 저하


ANSI / SPARC 3단계 구조

항목 

내용 

비고 

외부스키마 

View 단계

여러 개의 사용자 관점으로 구성, 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 DB스키마 

DB의 개개 사용자나 응용프로그래머가 접근하는 DB정의

사용자 관점

접근하는 특성에 따른 스키마 구성 

개념스키마 

개념단계 

하나의 개념적 스키마로 구성, 즉 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것

모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들가간의 관계를 표현한 것 

통합 관점 

내부스키마 

내부단계

내부스키마로 구성, 즉 DB가 물리적으로 저장된 방식

물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현 

 물리적 저장구조


데이터 독립성

독립성 

내용 

특징 

논리적 독립성 

개념스키마가 변경되어도 외부스키마에는 영향을 미치지 않도록 지원하는 것

논리적 구조가 변경되어도 응용 프로그램에 영향 없음 

사용자 특성에 맞는 변경 가능

통합 구조 변경 가능 

물리적 독립성 

내부스키마가 변경되어도 외부/개념스키마는 영향을 받지않도록 지원하는 것

저장장치의 구조 변경은 응용 프로그램과 개념스키마에 영향 없음 

물리적구조 영향없이 개념구조 변경 가능

개념구조 영향없이 물리구조 변경 가능  


좋은 데이터 모델의 요소

1. 완전성(Competeness)

업무에 필요로 하는 모든 데이터가 데이터 모델에 정의되어 있어야 한다.

2. 중복배제(Non-Redundancy)

하나의 데이터베이스 내에 동일한 사실은 반드시 한 번만 기록해야 한다.

3. 업무규칙(Business Rules)

데이터 모델링 과정에서 도출되고 규명되는 수많은 업무규칙을 데이터 모델에 표현하고 이를 해당 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 제공해야 한다.

4. 데이터 재사용(Data Reusability)

데이터의 재사용성을 향상시키고자 한다면 데이터 통합성과 독립성에 대해서 충분히 고려해야 한다.

5. 의사소통(Communication)

업무규칙들은 해당 정보세스템을 운용, 관리하는 많은 관리자들이 설계자가 정의한 업무규칙들을 동일한 의미로 받아들이고 정보시스템을 활용할 수 있게 하는 역할과 데이터 모델이 진정한 의사소통의 도구로서의 역할을 하게 된다.

6. 통합성(Intergration)

가장 바람직한 데이터구조의 형태는 동일한 데이터는 조직의 전체에서 한 번만 정의되고 이를 여러 다른 영역에서도 참조, 활용하는 것이다.


'IT > SQLD' 카테고리의 다른 글

[SQLD] SQL기본_GROUP BY, HAVING절  (0) 2017.11.21
[SQLD] 함수  (0) 2017.11.20
[SQLD] SQL기본_TCL/WHERE절  (0) 2017.11.20
[SQLD] SQL기본_DDL  (0) 2017.11.20
[SQLD] 엔티티  (0) 2017.10.20