서론
1과목 데이터 모델링의 이해
1장 데이터 모델링의 이해
1절 데이터 모델의 이해 정리
1. 모델링의 이해
모델링의 정의
- 복잡한 현실세계를 단순화 시켜 표현하는 것
- 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것
- 현실 세계의 추상화된 반영
※ 즉, 복잡한 현실세계를 일정한 표기법에 의해 표기하는 것
모델링의 특징
- 추상화
- 단순화
- 명확화
모델링의 3가지 관점
- 데이터 관점 (Data, What)
: 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링하는 방법 - 프로세스 관점 (Process, How)
: 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법 - 상관 관점 (Data vs Process)
: 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법
2. 데이터 모델링
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
제공하는 기능
- 시스템 가시화
- 시스템의 구조와 행동 명세화
- 시스템을 구축하는 구조화된 틀 제공
- 시스템을 구축하는 과정에서 결정한 것을 문서화
- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공
- 특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공
데이터 모델링의 중요성 & 유의점
중요성
- 파급효과 (Laverage)
: 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 중요함 - 복잡한 정보 요구사항의 간결한 표현 (Conciseness)
: 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구 - 데이터 품질 (Data Quality)
: 데이터 중복, 비유연성, 비일관성이 발생할 수 있음
데이터 모델링의 유의점
- 중복
- 비유연성
- 비일관성
데이터 모델링의 3단계 진행
- 개념적 데이터 모델링
: 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행
(전사적 모델링, EA 수립 시 많이 사용) - 논리적 데이터 모델링
: 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현
(재사용성이 높음) - 물리적 데이터 모델링
: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계
프로젝트 생명주기 (Life Cycle)에서 데이터 모델링
- 계획 (정보전략계획/분석) 단계 : 개념적 데이터 모델링
- 분석 단계 : 논리적 데이터 모델링
- 설계 단계 : 물리적 데이터 모델링
3. 데이터 독립성
- 지속적으로 증가하는 유지보수 비용을 절감하고, 데이터 복잡도와, 데이터 중복성을 낮추기 위한 목적이 있다.
- 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 데이터 독립성 개념이 출현하였다.
데이터 독립성의 필요성
- 유지보수 비용 증가
- 데이터 중복성 증가
- 데이터 복잡도 증가
- 요구사항 대응 저하
데이터 베이스 3단계 구조 & 데이터 독립성 요소
데이터 베이스 3단계 구조 | |
외부 단계 | |
<논리적 데이터 독립성> : 외부 단계, 개념적 단계의 독립성 유지 | |
개념적 단계 | |
<물리적 데이터 독립성> : 개념적 단계, 내부적 단계의 독립성 유지 | |
내부적 단계 |
단계 | 설명 | 비고 |
외부 스키마 .(External Schema) |
View 단계 : 여러 개의 사용자 관점으로 구성 즉, 개개 사용자가 보는 개인적 DB스키마 (DB의 개개 사용자가 접근하는 DB정의) |
사용자 관점 |
개념 스키마 .(Conceptual Schema) |
개념 단계 : 하나의 개념적 스키마로 구성 모든 사용자 관점을 통합한 조직 전체의 DB를 기술 (DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마) |
통합 관점 |
내부 스키마 .(Internal Schema) |
내부 단계 : 내부 스키마로 구성 DB가 물리적으로 저장된 형식 (물리적 장치에서 데이터가 저장되는 방법을 표현하는 스키마) |
물리적 관점 |
- 논리적 데이터 독립성
: 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것
즉, 논리적 구조가 변경되어도 응용 프로그램에 영향이 없다. - 물리적 데이터 독립성
: 내부 스키마가 변경되어도 외부/개념 스키마에는 영향을 받지 않도록 지원하는 것
즉, 저장 장치의 구조 변경은 응용프로그램과 개념 스키마에 영향이 없다.
독립성 | 내용 | 특징 |
논리적 독립성 |
- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것 - 논리적 구조가 변경되어도 응용 프로그램에 영향이 없다. |
- 사용자 특성에 맞게 변경 가능 - 통합 구조로 변경 가능 |
물리적 독립성 |
- 내부 스키마가 변경되어도 외부/개념 스키마에는 영향을 받지 않도록 지원하는 것 - 저장 장치의 구조 변경은 응용프로그램과 개념 스키마에 영향이 없다. |
- 물리적 구조에 영향 없이 개념 구조 변경 가능 - 개념 구조에 영향 없이 물리적 구조 변경 가능 |
※ 사상 (Mapping) : 상호 독립적인 개념을 연결시켜주는 다리
사상 | 내용 | 예시 |
외부적/개념적 사상 (논리적 사상) |
외부적 뷰와 개념적 뷰의 상호 관련성을 정의 | 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음. (개념적 뷰의 필드 타입은 변화 없음) |
개념적/내부적 사상 (물리적 사상) |
개념적 뷰와 저장된 데이터베이스의 상호관련성을 정의 | 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야함. (그래야 개념적 스키마가 그대로 남아있게 됨) |
4. 데이터 모델링의 3가지 요소
- 업무가 관여하는 어떤 것(Things)
- 어떤 것이 가지는 성격(Attributes)
- 업무가 관여하는 어떤 것 간의 관계(Relationships)
데이터 모델링 용어
개념 | 복수/집합 개념 & 타입/클래스 | 개별/단수 개념 & 어커런스/인스턴스 |
어떤 것 (Thing) | 엔티티 타입 (Entity Type) | 엔티티 (Entity) |
엔티티 (Entity) | 인스턴스 (Instance) 어커런스 (Occurrence) |
|
어떤 것 간의 연관 (Relationships) (Association between Things) |
관계 (Relationship) | 패어링 (Pairing) |
어떤 것의 성격 (Attributes) (Characteristic of a Thing) |
속성 (Attribute) | 속성값 (Attribute Value) |
좋은 데이터 모델의 요소
요소 | 설명 |
완전성 | 업무에 필요한 데이터가 모두 정의되어야 함 |
중복 배제 | 동일한 사실은 한번만 저장 해야 함 |
업무 규칙 | 데이터 모델 분석만으로도 비즈니스 로직이 이해되어야 함 |
데이터 재사용 | 데이터 통합성과 독립성 고려해야 함 |
의사소통 | 데이터 모델을 보고 이해 당사자들끼리 의사소통이 이루어져야 함 |
통합성 | 동일한 데이터는 유일하게 정의해서 다른 영역에서 참조해야 함 |
'자격증 > SQLD' 카테고리의 다른 글
[SQLD] 1과목 2장 5~6절 (0) | 2023.08.28 |
---|---|
[SQLD] 1과목 2장 4절 (0) | 2023.08.27 |
[SQLD] 1과목 2장 1~3절 (0) | 2023.08.26 |
[SQLD] 1과목 1장 - 5절 식별자 (0) | 2023.08.25 |
[SQLD] 1과목 1장 - 2~4절 엔티티, 속성, 관계 (0) | 2023.08.24 |