Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Python
- 코드프레소
- 프리온보딩
- React
- 예리님
- 파이콘코리아
- cleancode
- env
- flask
- 코테
- AWS
- 네트워크
- mongodb
- 패스트캠퍼스
- js
- 깃
- 전문가를위한파이썬
- 원티드
- 플라스크
- 알고리즘
- pyladies
- javascript
- 환경변수
- 파이썬
- pyladiesseoul
- git
- 위코드
- fluentpython
- codepresso
- 리액트
Archives
- Today
- Total
개발자가 내팔자
[SQLD] 데이터 모델링의 이해 1 본문
1-1 데이터 모델의 이해
모델링이란?
=> 현실세계를 추상화, 단순화, 명확화 하기 위해 일정한 표기법에 의해 표현하는 기법
모델링의 정의
- 복잡한 현실세계를 단순화 시켜 표현
- 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연과노딘 사람이나 그들을 위해 명확하게 하는 것
- 현실 세계의 추상화된 반영
모델링의 특징
- 추상화(모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현한다는 의미
- 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현
- 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술
모델링의 세가지 관점
- 데이터 관점 (Data, What) : 업무가 어떤 데이터와 관련이 있는지, 데이터 간의 관계는 무엇인지
- 프로세스 관점 (Process, How) : 업무가 실제 하고 있는 일은 무엇인지, 무엇을 해야 하는지
- 상관 관점 (Data vs Process) : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지
데이터 모델링의 정의
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 현실세계의 데이터에 대해 약속된 표기법에 의해 표현되는 과정
- 데이터베이스를 구축하기 위한 분석/설계의 과정
데이터 모델이 제공하는 기능
- 시스템을 현재 또는 원하는 모습으로 가시화
- 시스템의 구조와 행동을 명세화
- 시스템을 구축하는 구조화된 틀을 제공
- 시스템을 구축하는 과정에서 결정한 것을 문서화
- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항을 숨기는 다양한 관점을 제공
- 특정 목표에 따라 구체화된 상세 수준의 표현 방법을 제공
데이터 모델링의 중요성 및 유의점
중요성 | 설명 |
---|---|
파급효과 (Leverage) | - 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 중요함 |
복잡한 정보 요구사항의 간결한 표현 (Conciseness) | - 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구 |
데이터 품질 (Data Quality) | - 데이터의 중복, 비 유연성, 비 일관성이 발생할 수 있음 |
데이터 모델링의 3단계 진행
단계 명 | 설명 |
---|---|
개념적 데이터 모델링 | - 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링 진행. |
- 전사적 데이터 모델링. | |
- EA 수립 시 많이 사용 | |
논리적 데이터 모델링 | - 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현. |
- 재 사용성이 높음 | |
물리적 데이터 모델링 | - 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계 |
프로젝트 생명주기(Life Cycle)에서 데이터 모델링
- 프로젝트 생명 주기는 정보전략계획 -> 분석 -> 설계 -> 개발 -> 테스트 -> 전환/이행 단계가 있음
- 정보 전략 계획/분석 단계 : 개념적 데이터 모델링
- 분석 단계 : 논리적 데이터 모델링
- 설계 단계 : 물리적 데이터 모델링
데이터 독립성의 필요성
- 지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위한 목적이 있음
- 끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적으로 데이터 독립성 개념이 출현
데이터 독립성이 필요한 시점
- 유지보수 비용 증가
- 데이터 중복성 증가
- 데이터 복잡도 증가
- 요구사항 대응 저하
데이터 독립성을 확보하면
- 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경 가능
- 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공
데이터베이스 구조 3단계
- ANSI/SPARC의 3단계 구성의 데이터 독립성 모델은 외부 단계와 개념적 단계, 내부적 단계로 구성된 서로 간섭 되지 않는 모델을 제시하고 있다.
단계명 | 설명 | 비고 |
---|---|---|
외부 스키마 | ||
(External Schema) | - View 단계 여러 개의 사용자 관점으로 구성, 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 DB 스키마 | - 사용자 관점 |
- DB의 개개 사용자나 응용프로그래머가 접근하는 DB 정의 | ||
개념 스키마 | ||
(Conceptual Schema) | - 개념 단계 하나의 개념적 스키마로 구성하여 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것 | - 통합 관점 |
- 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들과의 관계를 표현하는 스키마 | ||
내부 스키마 | ||
(Internal Schema) | - 내부 단계, 내부 스키마를 구성, DB가 물리적으로 저장된 형식 | - 물리적 관점 |
- 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마 |
데이터베이스 3단계 구조에서 데이터 독립성 2가지
독립성 | 설명 | 비고 |
---|---|---|
논리적 독립성 | - 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것 | - 사용자 특성에 맞는 변경 가능 |
- 논리적 구조가 변경되어도 응용 프로그램에 영향 없음 | - 통합 구조 변경 가능 | |
물리적 독립성 | - 내부 스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것 | - 물리적 구조 영향 없이 개념 구조 변경 가능 |
- 저장 장치의 구조 변경은 응용프로그램과 개념 스키마에 영향 없음 | - 개념 구조 영향 없이 물리적인 구조 변경 가능 | |
데이터베이스 3단계 구조에서의 사상(매핑) 2가지
독립성 | 설명 | 비고 |
---|---|---|
외부적/개념적 사상 | ||
(논리적 사상) | - 외부적 뷰와 개념적 뷰의 상호 호환성 을 정의함 | - 사용자가 접근하는 형식에 따라 다른 타입의 필드를 가질 수 있음 |
- 개념적 뷰의 필드 타입은 변화가 없음 | ||
개념적/내부적 사상 | ||
(물리적 사상) | - 개념적 뷰와 저장된 데이터베이스의 상호 관련성 정의 | - 만약 저장된 데이터베이스 구조가 바뀐다면 개념적/내부적 사상이 바뀌어야 함. 그래야 개념 스키마가 그대로 남아있게 됨. |
데이터 모델링 3가지 요소
- 업무가 관여하는 어떤 것(Things)
- 어떤 것이 가지는 성격(Attributes)
- 업무가 관여하는 어떤 것의 관계(Relationships)
데이터 모델링 용어
데이터 모델링 작업 순서
- 엔티티를 그린다.
- 엔티티를 적절하게 배치한다.
- 엔티티간 관계를 설정한다.
- 관계명을 기술한다.
- 관계의 참여도를 기술한다.
- 관계의 필수 여부를 기술한다.
데이터 모델링의 이해 관계자
- 정보 시스템을 구축하는 모든 사람(전문적으로 코딩만 하는 사람 포함)은 데이터 모델링도 전문적으로 할 수 있거나 적어도 완성한 모델링을 정확하게 해석할 수 있어야 한다. 즉 프로젝트에 참여한 모든 IT 기술자들은 데이터 모델링에 대해 정확하게 알고 잇어야 한다는 것을 의미한다.
- IT 기술에 종사하거나 전공하지 않았더라도 해당 업무에서 정보화를 추진하는 위치에 있는 사람도 데이터 모델링에 대한 개념 및 세부 사항에 대해 어느 정도 지식을 가지고 있어야 한다.
좋은 데이터 모델의 요소
요소 | 설명 |
---|---|
완전성 | - 업무에 필요한 데이터가 모두 정의되어야 함 |
중복 배제 | - 동일한 사실은 한 번만 저장 해야함 |
업무 규칙 | - 데이터 모델 분석만으로도 비즈니스 로직이 이해 되어야 함 |
데이터 재사용 | - 데이터 통합성과 독립성을 고려해야 함 |
의사소통 | - 데이터 모델을 보고 이해 당사자들끼리 의사소통이 이루어져야 함 |
통합성 | - 동일한 데이터는 유일하게 정의해서 다른 영역에서 참조해야 함 |
Comments