4. 데이터 모델링의 3단계 진행
-
개념적 데이터 모델링
-
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA수립시 많이 이용
-
-
논리적 데이터 모델링
-
시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음
-
-
물리적 데이터 모델링
-
실제로 DB에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
-
-
개념 - 논리 - 물리 순서로 '추상적 → 구체적'
5. 프로젝트 생명 주기(Life Cycle)에서 데이터 모델링
-
데이터축과 애플리케이션축으로 구분되어 프로젝트 진행. 각각 도출된 사항은 상호 검증을 지속적으로 수행하면서 단계별 완성도를 높임.
-
단, 객체지향 개념은 데이터와 프로세스를 한꺼번에 바라보면서 모델링을 전개하므로 데이터 모델링과 프로세스 모델링을 구분하지 않고 일체형으로 진행 ( 예 - 클래스 )
6. 데이터 모델링에서 데이터 독립성의 이해
-
데이터 독립성의 필요성
-
유지보수 비용 절감을 위해
-
데이터 복잡도를 낮추기 위해
-
중복된 데이터 줄이기 위해
-
사용자 요구사항에 대해 화면과 DB간에 독립성을 유지하기 위해
-
-
데이터 독립성을 확보하게 되면 얻을 수 있는 효과
-
각 View의 독립성 유지, 계층별 View에 영향을 주지않고 변경 가능
-
단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공
-
-
데이터베이스 3단계 구조
-
외부 단계 : 사용자가 처리하고자 하는 데이터유형에 따라, 관점에 따라, 방법에 따라 다른 스키마 구조
-
개념적 단계 : 사용자가 처리하는 데이터 유형의 공통적인 사항을 처리하는 통합된 뷰를 스키마 구조로 디자인한 형태
-
내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조
-
-
데이터독립성 요소
-
외부 스키마
- 개개인 사용자 단계로서 개개인 사용자가 보는 개인적 DB 스키마
- DB의 개개인 사용자나 응용프로그래머가 접근하는 DB 정의
- 사용자 관점
-
개념 스키마
- 개념단계 하나의 개념적 스키마로 구성
- 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것
- DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마
- 통합관점
-
내부 스키마
- 내부단계, 내부 스키마로 구성
- DB가 물리적으로 저장된 형식
- 물리적 장치에서 데이터가 실제로 저장되는 방법을 표현하는 스키마
- 물리적 저장구조
-
데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정
-
-
두 영역의 데이터 독립성
-
논리적 독립성
- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 하는 것
- 논리적 구조가 변경되어도 응용 프로그램에 영향 없음
- 사용자 특성에 맞는 변경 가능
- 통합 구조 변경 가능
-
물리적 독립성
- 내부 스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 하는 것
- 저장장치의 구조변경은 응용프로그램과 개념스키마에 영향 없음
- 물리적 구조 영향 없이 개념구조 변경 가능
- 개념구조 영향 없이 물리적인 구조 변경가능
-
즉, 논리적인 데이터독립성은 외부의 변경에도 개념 스키마가 변하지 않는 특징을 가짐
-
-
사상(Mapping) : 상호 독립적인 개념을 연결시켜주는 다리
-
외부적 / 개념적 사상 ( 논리적 사상 )
- 외부적 뷰와 개념적 뷰의 상호 관련성
- 예) 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음
-
개념적 / 내부적 사상 ( 물리적 사상 )
- 개념적 뷰와 저장된 DB의 상호관련성
- 예) 만약 저장된 DB 구조가 바뀐다면 개념적 / 내부적 사상이 바뀌어야 함
-
데이터 독립성을 보장하기 위해서는 사상을 하는 스크립트(DDL)를 DBA가 필요할 때마다 변경해 주어야 함
-
※ '[SQL 전문가 가이드] -한국데이터베이스진흥원' 참고
'자격증' 카테고리의 다른 글
[SQLD] SQLD 자격검정 일정 연기 (feat.코로나19) (0) | 2020.03.04 |
---|---|
[SQLD] 데이터 모델의 이해 (4) (0) | 2020.02.27 |
[SQLD] 데이터 모델의 이해 (2) (0) | 2020.02.23 |
[SQLD] 데이터 모델의 이해 (1) (0) | 2020.02.22 |