[SQLD 정리] 데이터 모델링 기초(1)
- -
[SQLD 정리] 데이터 모델링 기초(1)
안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 데이터 모델링 기초(1) ] 입니다. : )
시험 보기전 핸드폰으로 쭉~ 읽어보면 좋을 것 같다.
과목 Ⅰ - 데이터 모델링의 이해
[ 제 1절 데이터 모델링의 이해 ]
1. 모델링의 이해
▶ 모델링의 정의
- 다양한 현상에 대해 일정한 표기법에 의해 표현해 놓은 모형
1) Webster 사전
ㆍ 가설적 또는 일정 양식에 맞춘 표현해
ㆍ 어떤 것에 대한 예비표현, 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것
2) '현실세계'를 단순화 시킨 표현
3) 사물 또는 사건에 관한 양상(Aspect)이나 관점(Perspective)을 연관된 사람이나 그룹을 위해 명확하게 하는 것.
4) 모델이란 현실 세계의 추상화된 반영
▶ 모델링의 세 가지 특징
- 추상화, 단순화, 명확화
1) 추상화(모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미.
2) 단순화 : 복잡한 현실세계를 특정 표기법 or 언어로 표현하여 쉽게 이해할 수록 하는 개념.
3) 명확화 : 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것.
- 정보시스템 구축에서 모델링을 계획/분석/설계 할 때 이용하고 이후 구축/운영 단계에서는 변경과 관리의 목적으로 이용하게 된다.
▶ 모델링의 세 가지 관점
- 데이터관점, 프로세스관점, 데이터와 프로세스 상관관점
- 모델링 = 데이터관점(Data, What) + 상관관점(Data vs Process) + 프로세스관점(Process, How)
1) 데이터 관점
업무가 어떤 데이터와 관련이 있는지, 데이터간의 관계는 무엇인지 모델링 하는 방법
2) 프로세스관점
업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지를 모델링 하는 방법
3) 데이터와 프로세스의 상관관점
업무가 처리하는 일의 처리 방법에 따라 데이터는 어떻게 영향받는지 모델링 하는 방법
2. 데이터 모델의 기본 개념
▶ 데이터 모델링의 정의
- 데이터 베이스 골격을 이해하고, 이를 바탕으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성하기위한 핵심요소
- 정보시스템을 구축하기 위해, 해당 업무에 어떤 데이터가 존재하는지 or 업무가 필요로 하는 정보는 무엇인지 분석하는 방법
(정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법)
- 데이터에 존재하는 업무 규칙에 대하여 참, 거짓을 판별할 수 있는 사실을 데이터에 접근하는 방법, 사람, 전산화 와는 별개의 관점에서 이를 명확하게 표현하는 추상적인 기법
(현실세계의 데이터(what)에 대해 약속된 표기법에 의해 표현하는 과정
- 즉 데이터베이스를 구축하기 위한 분석/설계의 과정
▶ 목적
1. 정보들을 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는것
2 : 분석된 모델을 통해 실제 데이터베이스 생성하여 개발 및 데이터 관리에 사용하기 위해
▶ 데이터 모델이 제공하는 기능
- 시스템을 현재 or 운하는 모습으로 가시화하는데 도움
- 시스템 구조와 행동을 명세화 가능
- 시스템 구축하는 구조화된 틀 제공
- 시스템을 구축하는 과정에서 결정한 것을 문서화
- 다양한 영역에 집중하기 위해 다른 영역의 세부 사항은 숨기는 다양한 관점 제공
- 특정 목표에 따라 구체화된 상세 수준의 표현방법 제공
3. 데이터 모델링의 중요성 및 유의점
- 중요한 이유 : 파급효과 (Leverage), 간결한 표현(Conciseness), 데이터 품질(Data Quality)
▶ 파급효과
시스템 구축시 간략하게는 기획 => 분석 => 설계 => 개발 => 테스트 등의 단계를 거치게 된다.
테스트 단계에서 고객의 단순 변심, 요구사항 변경 등의 데이터 모델의 변경이 필요한 상황이 발생했다면,
그 정도에 따라 위의 작업이 무의미 해지고, 처음부터 다시 시작해야하는 상황까지도 발 생 할 수 있다.
즉 데이터 구조의 변경으로 인한 작업은, 시기 및 정도에 따라 전체 시스템 구축 프로젝트에서 큰 위험요소이다.
▶ 복잡한 정보 요구사항의 간결한 표현 (Conciseness)
데이터 모델은 건축물로 비유하자면 설계 도면에 해당 한다.
시스템을 구축하는 많은 관련자들이 설계자의 생각대로 정보요구사항을 이해하고 이를 운용할 수 있는 애플리케이션을 개발하고, 데이터 정합성을 유지할 수 있도록 해야 한다.
이렇게 이상적인 역할을 할 수 있는 모델이 되기위해 정보 요구사항이 정확하고 간결하게 표현되어야 한다.
▶ 데이터 품질(Data Quality)
데이터베이스에 담겨있는 데이터는 기업의 중요한 자산이다.
이 데이터는 기간이 지날수록 활용가치는 더욱 높아진다. 다만 그 데이터가 정확성이 떨어진다면 다른얘기다.
데이터 품질의 문제는 데이터 구조가 설계되고 초기에 데이터가 조금 쌓일 때에는 인지하지 못하는 경우가 대부분이다.
이러한 데이터 문제는 오랜 기간 숙성된 데이터를 전략적으로 활용하려 하는 시점에 문제가 대두 된다.
중복 데이터 발생 또는 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고분리함으로써 나타나는 데이터 불일치 등 데이터 구조의 문제로 인한 데이터 품질의 문제는 치유하기에 불가능한 경우가 대부분이다.
이와 같은 상황이 발생하지 않도록 유의해야할 사항
1) 중복 (Duplication)
- 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다.
이러한 정보는 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
2) 비유연성(Inflexibility)
- 데이터 모델을 어떻게 설계했는가에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다.
데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
3) 비일관성(Inconsistency)
- 데이터의 중복이 없어도 비일관성은 발생한다.
ex) 신용 상태에 대한 갱신 없이 고객의 납부 이력을 갱신 하는 케이스, 납부 이력과 신용 상태는 밀접한 관련이 있다.
데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의를 하여 이러한 위험을 예방하도록 해야 한다.
4. 데이터 모델링의 3단계 진행
- 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델
▶ 개념적 데이터 모델링(Conceptual Data Modeling)
- 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링
- 사용자의 데이터 요구사항을 찾고 분석하는데서 시작, 이 과정은 어떠한 자료가 중요하며 또 어떠한 자료가 유지되어야 하는지 결정하는 것도 포함.
- 핵심 엔터티와 그들간의 관계를 발견하고, 그것을 표현하기 위해 엔터티(Entity)-관계(RelationTion) 다이어 그램 (E-R Diagram)을 생성
(E-R Diagram은 데이터베이스 사용자에게 어떠한 데이터가 중요한지 나타내기 위해 사용됨)
- 이 과정이 전 조직에 걸쳐 이루어 지는 경우 전사적 데이터 모델(Enterprise Data Model) 이라고 불린다.
▶ 논리적 데이터 모델링(Logical Data Modeling)
- 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정
- 물리적인 스키마 설계를 하기 전 단계
- 어떻게 데이터에 엑세스 하고, 누가 데이터에 엑세스 하는지 즉 누가(Who), 어떻게(How : Process) 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것
- 이 단계에서 가장 중요한 활동 중 하나는 '정규화'
- 정규화는 논리 데이터 모델 상세화 과정의 대표적인 활동, 모델의 일관성 확보, 중복 제거, 속성들이 가장 적절한 엔터티에 배치되도록 한다. (신뢰성 있는 데이터 구조)
- 논리 데이터 모델의 상세화 : 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등
▶ 물리적 데이터 모델링(Physical Data Modeling)
- 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다.
- 물리적 스키마 : 데이터가 물리적으로 어떻게 저장될 것인가에 대한 정의
(이 단계에서 테이블, 컬럼 등으로 표현되는 물리적인 저장구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등이 결정 됨)
- 보통 프로젝트에서는 개념, 논리, 물리적 데이터 모델링을 한꺼번에 수행하여 논리적 데이터 모델링으로 수행하는 경우가 대부분이다.
[ 관련 문제 풀어보기]
1. 데이터 모델링에 대한 아래 보기 설명 중 알맞은 것은?
1) 논리 모델링의 외래키는 물리 모델에서 반드시 구현되지는 않는다
2) 실제로 데이터베이스를 구축할 때 참고되는 모델은 개념적 데이터 모델링이다
3) 물리 모델링 -> 논리 모델링 -> 개념 모델링 단계로 갈수록 구체적이다
4) 데이터 모델링의 3가지 요소는 Process, Attributes, Relationship 이다
1번 정답 : 1번
논리 모델링의 외래키는 물리 모델에서 반드시 구현되지 않음. (선택 사항임)
실제 데이터베이스 구축 시 참고되는 모델은 물리적 데이터 모델링이다
개념 모델링에서 물리 모델링으로 가면서 더 구체적이며 개념 모델링이 가장 추상적이다
데이터 모델링의 3요소는 Thing, Attirbutes, Relationship 이다
2. 데이터 모델링에 대한 단계 중 아래에서 설명하는 단계는 어떤 단계의 모델링인가?
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링,
EA 수립 시 많이 이용됨
1) 개념적 데이터 모델링
2) 논리적 데이터 모델링
3) 물리적 데이터 모델링
4) 추상적 데이터 모델링
2번 정답 : 1번
3. 엔터티 - 인스턴스 - 속성 - 속성값에 대한 관계 설명중 틀린 것을 고르시오.
1) 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다
2) 한 개의 엔터티는 두 개 이상의 속성을 갖는다
3) 하나의 속성은 하나 이상의 속성값을 가진다
4) 하나의 엔터티의 인스터스는 다른 엔터티의 인스턴스간의 관계인 Paring 을 가진다
3번 정답 : 3번
하나의 속성은 하나의 속성값을 가지며 하나 이상의 속성값을 가지는 경우 정규화가 필요함
4.다음 중 데이터 모델링 개념에 대한 설명에서 ⓐ, ⓑ에 들어갈 단어로 올바른 것은?
전사적 데이터 모델링 수립 시 많이 사용하며, 추상화 수준이 높고 업무 중심적이고 포괄적인 수준의 모델링을 진행한느 것을 ⓐ 데이터 모델링 이라고 한다. 이와 달리 실제로 데이터 베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링은 ⓑ 데이터 모델링 이라고 한다.
4번 정답
ⓐ : 개념적
전사적 데이터 모델링이나 EA 수립시에 많이 하며, 추상화 수준이 높고 업무 중심적이면서 포괄적인 수준의 모델링을 진행하는 것
ⓑ : 물리적
실제 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링 방식
5. 다음 중 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지며 사원, 부서, 고객, 상품, 자재 등이 예가 될 수 있는 엔터티로 가장 적절한 것은?
1. 기본 엔터티(키 Entity)
2. 중심 엔터티(메인 Entity)
3. 행위 엔터티
4. 개념 엔터티
5번 정답 : 1번
기본엔터티란 그 업무에 원래 존재하는 정보로서 다른 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성이 가능하고 자신은 타 엔터티의 부모의 역할을 하게 된다. 다른 엔터티로부터 주식별자를 상속받지 않고 자신의 고유한 주식별자를 가지게 된다. 예를 들어 사원, 부서, 고객, 상품, 자재 등이 기본엔터티가 될 수 있다.
6. 다음 중 데이터 조회 시 빠른 성능을 낼 수 있도록 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성으로 가장 적절한 것은?
1. 파생속성
2. 기본속성
3. 설계속성
4. PK속성
6번 정답 : 1번
데이터 조회시 빠른 성능을 갖기 위해 원래의 속성의 값을 계산하여 저장할 수 있도록 만든 속성을 파생속성(Derived Attribute)이라고 한다.
7. 다음 설명이 의미하는 데이터모델링의 유의점에 해당아는 특성은?
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 뎅티ㅓ 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
1. 중복
2. 비유연성
3. 비일관성
4. 일관성
7번 정답 : 2번
데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스가 작은 변화가 애플리ㅔ이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
관련글 |
'1. 자격증 > SQLD 준비' 카테고리의 다른 글
[SQLD 정리] 데이터 모델링 기초(2) - 엔터티(Entity) (0) | 2019.03.24 |
---|
소중한 공감 감사합니다