[오늘 할 일]
1. 스파르타 코딩클럽 2주차 강의 듣기
--------------------------------내용정리-------------------------------------
[모델링의 이해]
1) 정의
- 정보 시스템 구축을 위해 데이터 관점의 업무를 분석하는 과정
- 현실 세계 데이터를 약속된 표기법에 의해 추상화하여 표현하는 과정
- 데이터베이스를 구축하기 위한 분석 및 설계의 과정
> 관리하는 데이터에 대한 청사진이며 모델 구조만 보고도 어떤 데이터를 다루는지 알 수 있게 하는 과정
2) 모델링이 제공하는 기능
시각화 문서화 구체화, 구조화된 틀 제공, 다양한 관점 제공
3) 특징
- 추상화 : 현실 세계를 일정한 형식에 맞추어 표현하는 것을 의미
- 단순화 : 복잡한 현실 세계를 약속된 규칙에 기반한 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것을 의미,
- 명확화 : 단순화함으로써 현상을 정확하게 표현하고 기술하는 것을 의미
4) 데이터모델링의 단계
- 개념적 데이터 모델링(Conceptual Data Modeling) : 사용자가 필요로 하는 데이터의 요구사항을 찾고 분석하는 과정
: 추상화 수준이 가장 높고 업무 중심적인 모델링
- 논리적 데이터 모델링(Logical Data Modeling) : 정보의 논리적인 구조와 규칙을 명확하게 표현하는 과정
: 정규화를 통해 데이터 모델의 독립성을 확보한다.
*정규화 : 논리 데이터 모델의 일관성을 확보하고 중복을 제거하는 과정
- 물리적 데이터 모델링(Phsical Data Modeling) : 논리적 데이터 모델이 데이터 저장소로서 어떻게 하드웨어에 표현될 것인지를 다루는 과정
: 테이블, 인덱스 등을 생성하는 단계,
5) 데이터 모델링의 관점
a. 데이터 관점(What) : 업무가 어떤 데이터와 관련있는지 모델링하는 방법에 대해 고민하는 관점
> 비즈니스 프로세스에서 사용되는 데이터
b. 프로세스 관점(How) : 업무가 실제 하는 일이 무엇인지 그리고 무엇을 해야 하는지에 대해 모델링하는 방법을 고민하는 관점
> 도메인 분석, 시나리오 분석
c. 데이터와 프로세스의 상관 관점(Intersection) : 업무가 처리하는 일의 방법에 따라 데이터는 어떤 영향을 받고 있는지를 중심으로 모델링하는 방법
> CRUD(Create, Read, Update, Delete) 분석
[데이터 모델링의 중요성]
1) 중요성 및 유의점
a. 파급효과(Leverage) 방지 : 구체적인 내용은 변해도 큰 구조는 변하지 않도록 만드는 것
b. 간결한 표현 (Conciseness) : 시스템의 정보에 대한 요구 사항과 한계점을 가장 명확하고 간결하게 표현하는 것
c. 데이터 품질 (Data Quality) : 중복이 없고, 환경 변화에도 유연하고(유지보수가 쉽고), 데이터가 일관성을 가지며 데이터 간 관계 정의가 명확할 때 품질이 좋다.
2) 프로젝트 라이프 사이클 : 프로젝트 시작부터 완료에 이르기까지 거치는 일련의 단계를 의미
방법론으로 폭포수(Waterfall) 모델과 에자일(Agile) 모델이 있다.
a. 분석 : 논리 및 개념 데이터 모델링
b. 설계 : 물리 데이터 모델링
c. 개발 : DB구축 변경 관리
d. 테스트 : DB 튜닝
e. 전환/이행 : DB 전환
3) 데이터모델링의 이해관계자
정보시스템을 구축하는 데 있어 관련된 사람(DBA, 프로젝트 개발자, 현업 전문가, 전문 모델러)들이라면 비전공자이더라도 데이터 모델링을 해석할 줄 알아야 한다. 그래야 시스템 구축에 있어 위험도 없애고 원활한 업무 소통이 가능해진다.
[3층 스키마란]
데이터 모델링 과정에서 중요한 것은 데이터의 독립적 구성이다. 독립성은 여러 레벨에서 구조를 수정하더라도 다른 레벨의 스키마에 영향을 주지 않음을 말한다.
why? 종속적 구성이 되버리면 데이터 관계가 복잡해짐에 따라
- 유지보수 중복성이 증가하고
- 유지보수 비용 증가
- 데이터 복잡도 증가
- 요구사항 대응 저하
so. 데이터 독립성 필요
> 3층 스키마 구조
a. 외부 단계 (External Level) : 외부 스키마 - View 단계에서 개별 사용자가 보는 DB스키마로 사용자가 필요로 하는 데이터베이스 부분만 불러옴(사용자 관점)
(논리적 독립성)
b. 개념 단계 (Conceptual Level) : 개념 스키마 - 데이터의 전체적인 구조와 관계를 보여줌.(설계자 관점)
(물리적 독립성)
c. 내부 단계 (Internal Level) : 내부 스키마 - DB가 물리적으로 저장된 형식을 보여줌.(개발자 관점)
+) 사상(Mapping) 각 범주간 요청 응답을 전달하고 변환하는 프로세스
[데이터 모델링의 요소와 ERD]
1) 요소
a. 엔티티(Entity) - 업무가 관여하는 어떤 것
b. 속성(Attribute) - 어떤 것이 갖는 성격
c. 관계(Relationship) - 어떤 것 같의 관게
2) ERD(Entity Relationship Diagram)
데이터들의 관계를 나타낸 도표
- 대표적인 표기법
IE/Croe's Foot 표기법
Barker/Case*Method 표기법
3) 좋은 데이터 모델 요소
a. 완정성(Completeness) - 모든 데이터가 모델에 정의되어 있어야 한다.
b. 중복 제재(Non-Redundancy) - 하나의 데이터베이스 내에 동일한 사실은 한 번만 기록되어야 한다.
c. 업무 규칙(Business Rules) - 해당 데이터 모델 사용자들이 사용하는 데에 있어 업무 규칙을 가지고 동일한 판단을 하고 조작할 수 있도록 해야 한다.
d. 데이터 재사용(Data Reusability) - 데이터는 언제든 다시 사용할 수 있는 형태로 가공되고 보관되어야 한다.
e. 의사소통(Communication)의 도구로서의 역할
f. 통합성(Integration) - 동일한 데이터 구조는 데이터를 구성하는 조직 전체에서 한 번만 정의된다. 이를 여러 다른 영역에서 '참조', '활용'하는 것이다.
2. [DA] 사전캠프 데일리 미션 리스트 中
- 데이터 분석가 JD분석 (5개 중 눈에 보이는 2개..😵💫 더 찾아볼 예정)



[내일 할 일]
1. [DA] 사전캠프 데일리 미션 리스트 中
- 아티클 스터디
- 내가 생각하는 데이터분석의 핵심 역량
- 데이터 분석가 JD분석 / 비슷한 직무 JD분석 더 찾아보기
2. 스파르타 코딩클럽 3주차 강의 듣기