Now Loading ...
-
SQLD: 1과목 데이터 모델링의이해
들어가기전
해당 과목은 SQL의 기본적인 부분으로.. 달달 외우는 것이 보통인듯하다.
인터넷에서 요약본으로 가기는 하지만 정의를 제대로 모르면 활용을 못하기에 하나씩 집어가려고 한다.
SQLD자격증을 취득하는 것도 중요하나 쓸 줄 모르면 의미가 없으니까 말이다.
어차피 기본지식은 이전에 공부해서 복습의 의미로 정리하려고 한다.
시작하자.
데이터 모델의 이해
데이터모델링이란? : 현상을 시각화 하는 것
인류 의사소통을 하면서 기록을 남긴다. 어떠한 현상에 대해 다른 사람에게 의미를 주기 위해서 기록을 했다고 한다.
모델이라는 것은 모형, 축소형과 같은 것으로 현상을 일정한 표기법에 따라 표현한 모형이다.
커뮤니케이션의 효율성을 높히기 위한 고급화 방법이라는 것이다.
모델링의 다양한 정의
사전: 어떠한 것에 대한 예비표현으로 그로부터 최종 대상이 구축되도록 하는 계획으로 기여하는 것
복잡한 현실세계를 단순화해 표현하는 것
모델이란 사물 또는 사건에 대한 양상이나 관점을 사람이나 그룹을 위해서 명확히 하는것
모델은 현실세계를 추상화한 반영이다.
모델링의 특징
모델링은 추상화, 단순화, 명확화 라는 3대 특징으로 요약할 수 있다.
1) 추상화(모형화): 현실세계를 일정한 형식에 맞춰 표현하는 것
2) 단순화 : 복잡한 현실세계를 표기법이나 언어로 표현하여 쉽게 이해하는 것
3) 명확화 : 누구나 이해하기 쉽게 애매모함을 제거하고 정확한 현상을 기술하는것
∴ 즉, 모델링은 현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법이다.
정보시스템 구축의 모델링은 계획,분석,설계단계에서 업무를 분석하고 설게할떄
이후 구축 운영단계에서 변경, 관리할 때 이용된다.
모델링의 세 가지 관점
모델링은 데이터 관점, 프로세스 관점, 데이터와 프로세스의 상관 관점으로 구분할 수 있다.
1) 데이터 관점(what): 데이터와 업무와의 관계, 데이터 간의 관계는 무엇인지(what)에 대해 모델링
2) 프로세스 관점(How): 실제하는 업무가 무엇인지, 무엇을 해야하는지(How) 모델링
3) 데이터와 프로세스 상관 관점: 업무가 처리하는 일의 방법에 따라 어떻게 영향을 받는지(Interaction) 모델링
여기서는 기본 개념이 중요해서 상관개념을 보다는 데이터 모델링을 중심으로 설명한다고 한다.
데이터 모델링의 기본 개념 이해
데이터모델링의 정의
데이터모델링은 1.데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL 문장을 기능과 성능측면에서
2.효율적으로 작성하기 위해 꼭 알아야 하는 핵심요소이다.
이후 전문가를 위해서도 밑바탕의 지식을 쌓기 위한 핵심이론이다.
데이터모델링은
(1)정보시스템을 구축하기 위해, 어떤 데이터가 존재하는지 업무가 필요하는 정보는 무엇인지 분석하는 것
(2)기업의 업무규칙에 대해서 참과 거짓을 구분하는 사실을 데이터에 접근하는 방법, 사람, 전산화등 관점에서 명확하게 표현하는 추상화기법
즉, 데이터관점의 업무 분석기법, 현실세계 데이터에 대해서 약속된 표기법 표현과정, 데이터베이스 구축을 위한 분석, 설계과정이다.
데이터 모델의 제공기능
업무분석의 과정에서 제공기능은 6가지가 있다.
(1) 시스템을 현재 또는 원하는 모습으로 가시화 시킨다.
(2) 시스템의 구조와 행동을 명세화할 수 있게 한다.
(3) 시스템을 구축하는 구조화한 틀을 제공한다.
(4) 시스템 구축 과정에서 결정한 것을 문서화한다.
(5) 다양한 영역에 집중하기 위해 다른 영역의 세부사항은 숨기는 다양한 관점을 제공한다.
(6) 특정 목표에 따라 구체화한 상세수준의 표현방법을 제공한다.
데이터 모델링의 중요성과 유의점
중요한 이유는 파급효과(Leverage), 요구사항의 간결한 표현(Conciseness), 데이터 품질(Data Quality)가 있다.
파급효과
시스템 구축을 할 때 테스트와 단위 테스트들이 반복되는데, 문제가 생길시 데이터 구조가 변경되는 경우에는 큰 문제가 되기에
데이터 설계가 중요하다는 것으로 서드임팩트를 고려하는 것이다.
요구 사항의 간결한 표현
구축시킬 시스템의 정보 요구 사항과 한계를 명확하고 간결하게 표현하는 도구이다. 요구사항을 정확하고 간결하게 표현되어야 한다는 것으로 요구사항의 명확화이다.
데이터 품질
데이터도 쌓이다보면 정확도가 떨어지는 데이터가 있을 수 있다. 그러한 데이터를 통해서 기회상실이 될 수 있기에 데이터 품질은 중요하다. 즉, 데이터의 정확도이다.
데이터모델링에서 유의할점은 3가지다.
(1)중복 (데이터의 정확성) : 데이터 모델은 데이터를 사용하는 사람, 시간 ,장소 파악에 도움을 주기에 여러 장소에 같은 정보 저장은 지양한다.
(2)비유연성(유지보수) : 업무변화에 데이터 모델이 수시로 변경될 수 있기에 유지보수 어려움이 가중될 수 있기에 데이터의 정의와 프로세스를 분리한다.
(3)비일관성(Relation의 명확화): 데이터 중복이 없어도 비일관성은 발생하는데 신용 상태 갱신없이 납부 이력 정보를 공개하듯이 데이터간의 상호 관계를 명확한 정의가 필요하다.
데이터 모델링의 3단계
추상화 수준에 따라서 3가지 개념적 데이터 모델, 논리적 데이터모델, 물리적 데이터 모델로 정의할 수 있다.
데이터 모델링
내용
수준
개념적
추상화 수준이 높고, 업무중심적이고 포괄적인 수준의 모델링 (현실의 설계화)
추상적
논리적
시스템을 구축하고자하는 업무에 키, 속성, 관계등의 표현(설계의 논리화)
추상반구체반
물리적
DB에 이식할 수 있도록 성능, 정장등 물리적인 성격고려(논리의 문서화)
구체적
개념적데이터모델링은 요구사항을 찾고 분석하는데 두가지가 있다. 데이터 요구사항 발견지원과 시스템의 변형시의 도움을 주고, 만약 데이터 모델링 과정이 전 조직에 걸쳐 이루어진다면 그것은 전사적 데이터 모델이라고 한다.
논리적데이터모델링은 논리적 구조와 규칙을 명확하게 표현하는 기법으로 누가, 어떻게, 전산화하는 다르게 데이터 존재하는 사실들은 인식하여 기록한다.
물리적데이터모델링은 컴퓨터 하드웨어에 기록될 것을 생각한다. 이에 대한 정의를 물리적 스키마라고 한다. 개념적 논리적을 한꺼번에 수행하고 물리적을 마지막에 수행하는 경우가 대부분이다.
프로젝트 생명주기에서 데이터 모델링
폭포수기반(Waterfall)기반에서는 분석과 설계 단계로 구분하여 명확하게 정의할 수 있다.
폭포수 기반은 위에서부터 내려져온다고해서 폭포수모델이다.
그리고 나선형모델은 업무 크기에 따라서 논리적 물리적 모델이 분석 설계 양쪽에서 수행된다.
일반적으로는 계획 분석단계에서는 개념적, 분석단계에서는 논리적, 설계단계에서는 물리적이다.
단, 객체지향은 한꺼번에 바라보면서 모델링을 전개하기에 일체형으로 진행된다.
분석 -> 설계 -> 개발 -> 테스트 -> 전환이행으로 표를 나중에 참고하면된다.
데이터 독립성의 이해
상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키고 기능을 극대화하는 것
즉 다른 서비스와 결합하여 프로세스를 제공해도 의미있는 단위로 제공하는 것이다.
출현배경에는 데이터 종속성이 있는데, 종속에 주체는 보통 응용을 지칭한다. 응용은 요구사항을 처리하는 사용자 접점의 인터페이스 오브젝트다. 즉 이것을 통해서 과거 파일처리방식이해를 벗어난듯
데이터 독립성에는 지속적으로 증가하는 유지보수 비용을 절감하고 데이터복잡도를 낮추며 중복된 데이터를 줄이기 위한 목적이다.
즉, 분산관리를 시켜 데이터의 독립성을 높혀 유지보수하기 편하게 관리하는 것이다.
이에 대한 효과로는 각 뷰의 독립성을 유지하고 계층별 뷰에 영향을 주지않고 변경이 가능하다.
단계별 스키마에 따라서 데이터 정의어(DDL)과 데이터 조작어(DML)가 다름을 제공한다.
데이터독립성을 이해하기 위해서는 구조, 독립성, 사상(Mapping) 3가지를 이해하면 된다.
데이터베이스 3단계 구조
ANSI의 데이터 독립성 모델은 외부단계, 개념적단계, 내부적단계로 구성된 서로 간섭하지 않는 모델이있다.
외부단계 (External Schema) - 사용자가 마주하는 것
< - > 논리적 데이터 독립성
개념적단계(Conceptual Schema) - 논리적구조로 개인 - 회사
<-> 물리적 데이터 독립성
내부적 단계(Internal Schema) - 물리적구조로 설계자
Touch background to close