[SQLD] 1-1. 데이터 모델링의 이해 1
업데이트:
데이터 모델링
데이터 모델링이란?
데이터 모델링
: 데이터를 표기법에 의해 규칙을 가지고 표기하는 것
데이터 모델링이란 사용자의 요구사항으로부터 데이터의 실체를 나타내는 일이라고 해석할 수 있다
1) 업무정보 구성의 기초가 되는 정보들을 일정한 표기법에 의해 표현하여, 업무내용을 정확하게 분석하는 것
2) 분석된 모델을 가지고 실제 DB를 생성하여 개발 및 데이터관리에 사용하기 위한 것
3) 데이터 모델링 자체로서 업무를 설명하고 분석하는 것
모델링 특징
- 추상화
다양한 현상을 일정한 양식인 표기법에 의해 표현하는 것 - 단순화
복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것 - 명확화
누구나 이해하기 쉽게 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것
모델링의 세 가지 관점
- 데이터 관점(Data, What)
업무가 어떤 데이터와 관련있는지 또는 데이터간의 관계는 무엇인지에 대해 모델링 하는 방법 - 프로세스 관점(Process, How)
업무가 실제 하고 있는 일은 무엇인지 또는 무엇을 해야하는지 모델링하는 방법 - 상관 관점(Interaction)
업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법
데이터 모델링이 중요한 이유
데이터 모델링의 중요한 이유:
파급효과(Leverage)
, 복잡한 정보 요구사항의 간결한 표현(Conciseness)
, 데이터 품질(Data Quality)
-
파급효과(Leverage)
데이터 모델 변경 → 표준 영향 분석, 응용 변경 영향 분석 등 → 해당 분야의 실제적인 변경 작업 → 전체 시스템 구축의 큰 위험요소
데이터 구조의 변경으로 인한 일련의 변경작업이 야기되므로 데이터 설계가 중요함 -
복잡한 정보 요구사항의 간결한 표현(Conciseness)
데이터 모델은 구축 할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구
데이터 모델 : 건축물의 설계도면 : 시스템을 구축하는 많은 관련자가 설계자의 생각대로 데이터 정합성을 유지할 수 있도록 하는 것 -
데이터 품질(Data Quality)
데이터 품질의 문제가 야기되는 중대한 이유 중 하나가 데이터 구조의 문제
중복 데이터, 데이터 구조의 비지니스 정의 불충분, 동일한 성격의 데이터, 데이터 불일치 등의 문제의 원인이 될 수 있다
데이터 모델링의 3단계
추상화 수준에 따라 개념적 데이터모델, 논리적 데이터모델, 물리적 데이터모델 로 정의할 수 있다
-
개념적 데이터 모델링
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행한다
전사적 데이터 모델링이며 사용자와 개발자가 시스템 기능에 대해 논의할 수 있는 기반을 형성한다
현 시스템이 어떻게 변형되야 하는가에 대해 이해를 돕는다 -
논리적 데이터 모델링
시스템으로 구축하고자하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현한다
재사용성이 높다
일관성을 확보하고 중복을 제거하여 보다 신뢰성있는 데이터 구조를 얻는데 목적이 있다
식별자 확정, 정규화, M:M관계ㅒ 해소, 참조 무결성 규칙 정의 등이 있다
업무 중심의 데이터 모델을 만들어낸다 -
물리적 데이터 모델링
논리적 데이터 모델이 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다
실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계한다
데이터 독립성
데이터의 고유한 특징을 명확하게 하며 다른 기능의 변경으로부터 쉽게 변경되지 않고 고유한 기능을 제공하는 장점을 위해 독립성이 필요하다
종속의 주체는 보통 응용(Application : 사용자 접점 인터페이스 오브젝트)을 지칭한다
데이터 독립성의 필요성
데이터 종속성에 의해 발생하는 문제 :
유지보수 비용 증가 / 데이터 복잡도 증가 / 데이터 중복성 증가 / 요구사항 대응 저하
즉, 데이터 독립성의 필요성을 정리하자면 다음과 같다
-
중복(Duplication)
데이터 모델은 같은 데이터를 사용하는 사람, 시간, 장소를 파악하는데 도움을 준다
이러한 지식응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다 -
비유연성(Inflexibility)
데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스츼 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다 -
비일관성(Inconsistency)
데이터 중복이 없더라도 비일관성은 발생한다.(개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문이다)
데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있다
데이터 독립성 모델의 3단계
데이터 독립성 구성요소
데이터 베이스 스키마 구조는 3단계로 구분되고 각각 상호 독립적인 의미를 가지며 고유한 기능을 가진다
데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정으로 이해할 수 있다
항목 | 내용 | 비고 |
---|---|---|
외부 스키마 (External Schema) |
- View단계 여러개의 사용자 관점으로 구성, 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 DB 스키마 - DB의 개개 사용자나 응용프로그래머가 접근하는 DB 정의 |
사용자 관점(view) 접근하는 특성에 따른 스키마 구성 |
개념 스키마 (Conceptual Schema) |
- 데이터베이스의 전체적인 논리구조 모든 응용프로그램이나 사용자들이 필요로하는 데이터를 종합한 조직 전체의 데이터베이스로 하나만 존재한다 - DB에 저장되는 데이터와 관계를 표현한 스키마 |
통합 관점 |
내부 스키마 (Internal Schema) |
- 내부단계, 내부스키마로 구성, DB가 물리적으로 저장된 형식 - 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마 |
물리적 저장구조 |
논리적 독립성 & 물리적 독립성
독립성 | 내용 | 특징 |
---|---|---|
논리적 독립성 | - 개념스키마가 변경되어도 외부스키마에는 영향을 미치지 않도록 지원하는 것 - 논리적 구조가 변경되어도 응용 프로그램에 영향이 없음 |
- 사용자 특성에 맞는 변경 가능 - 통합 구조 변경 가능 |
물리적 독립성 | - 내부 스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것 - 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향 없음 |
- 물리적 구조 영향 없이 개념구조 변경 가능 - 개념구조 영향 없이 물리적인 구조 변경 가능 |
참고
DBGuide.net 데이터 모델링
[SQLD] 과목1_1장_1.데이터 모델의 이해
03. 데이터 모델링의 중요성 및 유의점
댓글남기기