SQLD

SQLD(1일차)

seunghyeoniya 2023. 8. 24. 14:50

과목 1 데이터 모델링의 이해

제1장 데이터 모델링의 이해

제1절 데이터 모델의 이해

[1] 모델링의 이해

1. 모델링의 정의

모델링은 사람, 사물, 개념 등에 의해 발생되는 다양한 현상을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미한다.

즉 모델을 만들어가는 일 자체를 모델링으로 정의할 수 있다.

 

2. 모델링의 특징 -> 명 단 추

1) 명확화 : 누구나 이해하기 쉽게 하기 위해 대상에 대한 애매모호함을 제거하고 정확하게 현상을 기술하는 것

2) 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 것

3) 추상화 : 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미로 다양한 현상을 일정한 양식인 표기법에 의해 표현하는 것

 

정보시스템 구축에서는 모델링을 계획/분석/설계 할 때 업무를 분석하고 설계하는데 이용하고 이후 구축/운영 단계에서는 변경 관리의 목적으로 이용하게 된다.

 

3. 모델링의 세 가지 관점 -> 데 프 데프상

모델링은 크게 세 가지 관점인 데이터관점, 프로세스관점, 데이터와 프로세스의 상관관점으로 구분하여 설명할 수 있다.

1) 데이터관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해서 모델링하는 방법(What, Data)

2) 프로세스관점 : 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야 하는지 모델링하는 방법(How, Process)

3) 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법(Interaction)으로 설명될 수 있다.

 

[2] 데이터 모델의 기본 개념의 이해

1. 모델링의 정의

업무에서 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정

- 데이터 모델링을 하는 중요한 이유

첫 번째. 업무정보를 구성하는 기초가 되는 정보들을 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하기 위한 것이다.

두 번째. 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.

- 데이터 모델링이라는 것은 단지 데이터베이스만을 구축하기 위한 용도로만 쓰이는 것이 아니라 데이터 모델링 자체로써 업무를 설명하고 분석하는 부분에도 매우 중요한 의미를 가지고 있다고 할 수 있다.

 

2. 데이터 모델이 제공하는 기능 -> 구 문 명 가 구 다

1) 시스템을 구축하는 구조화된 틀을 제공한다.

2) 시스템을 구축하는 과정에서 결정한 것을 문서화한다.

3) 시스템의 구조와 행동을 명세화 할 수 있게 한다.

4) 시스템을 현재 또는 원하는 모습으로 가시화하도록 도와준다.

5) 특정 목표에 따라 구체화된 상세 수준의 표현방법을 제공한다.

6) 다양한 영역에 집중하기 위해 다른영역의 세부사항은 숨기는 다양한 관점을 제공한다.

 

[3] 데이터 모델링의 중요성 및 유의점 -> 간 파 품

1. 복잡한 정보 요구사항의 간결한 표현

데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다.

정보 요구사항을 파악하는 가장 좋은 방법은 수많은 페이지의 기능적인 요구사항을 파악하는 것보다,

간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법이다.

이상적으로 역할을 할 수 있는 모델이 갖추어야 할 가장 중요한 점은 정보 요구사항이 정확하고 간결하게 표현되어야 한다.

 

2. 파급효과(Leverage)

데이터 모델의 변경이 불가피한 상황이 발생하여 데이터 구조의 변경에 따른 표준 영향 분석, 응용 변경 영향 분석 등 많은 영향 분석이 일어난다.

그 이후에는 해당 분야의 실제적인 변경 작업이 발생하는데 변경을 해야 하는 데이터 모델의 형태에 따라서 그 영향의 정도는 차이가 있겠지만,

데이터 구조의 변경으로 인한 일련의 변경작업은 전체 시스템 구축 프로젝트에서 큰 위험요소가 된다.

이러한 파급효과를 방지하기 위해서 시스템 구축 작업 중 다른 어떤 설계 과정보다 데이터 설계가 가장 중요하다.

 

3. 데이터 품질(Data Quality)

데이터는 오래될수록 활용가치가 훨씬 높아진다. 하지만 오래도록 저장된 데이터가 그저 그런 데이터나 정확성이 떨어지는 데이터라고 하면,

해당 데이터로 얻을 수 있었던 소중한 비즈니스의 기회를 상실할 수도 있을 정도로 문제가 된다. 데이터 품질의 문제가 중요한 이유이다.

데이터 품질의 문제가 야기되는 중대한 이유 중 하나는 데이터 구조 문제이다.

데이터 구조로 인한 데이터 품질의 문제는 치유하기가 불가능한 경우가 대부분이다. 데이터 모델링을 할 때의 유의점은 다음과 같다.

-> 중 비유 비일, 중국 뷰 빌리지

1) 중복(Duplication)

데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 준다.

이러한 지식 응용은 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.

2) 비유연성(Inflexibility)

데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다.

데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.

3) 비일관성(Inconsistency)

데이터의 중복이 없더라도 비일관성은 발생한다. 예를 들어 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 것이다.

개발자가 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문이다.

데이터 모델링을 할 때 데이터와 데이터간 상호 연관 관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 해준다.

 

[4] 데이터 모델링의 3단계 진행

데이터 모델은 데이터베이스를 만들어내는 설계서로써 분명한 목표를 가지고 있다.

데이터베이스가 만들어지는 과정은 시간과 추상화 수준에 따라 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델로 정리할 수 있다.

-> 개 논 물

 

처음 현실세계에서 추상화 수준이 높은 상위 수준을 형상화하기 위해 개념적 데이터 모델링을 전개한다.

참고로 EA기반 전사적인 데이터 모델링을 전개할 때는 더 상위 수준인 개괄적인 데이터 모델링을 먼저 수행하고 개념적 데이터 모델링을 전개한다.

상위 수준의 데이터 모델이 완성되면 업무의 구체적인 모습과 흐름에 따른 구체화된 업무 중심의 데이터 모델을 만들어내는데 이것을 논리적인 데이터 모델링이라고 한다. 논리적인 데이터 모델링 이후 데이터베이스의 저장구조에 따른 테이블스페이스 등을 고려한 방식을 물리적인 데이터 모델링이라고 한다.

 

1. 개념적 데이터 모델링 : 추상적

* 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링, EA 수립시 많이 이용

엔터티 - 관계 다이어그램 : 핵심 엔터티들의 관계를 표현하기 위해서 생성하는 것으로 사용자에게 어떠한 데이터가 중요한지 나타낼 수 있다.

전사적 데이터 모델 : 전 조직에 걸쳐 데이터 모델링이 이루어지는 모델이다.

개념적 데이터 모델링의 효과

첫 번째. 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원한다.

두 번째. 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용하다. 고립된 시스템도 해결이 가능하다.

 

2. 논리적 데이터 모델링 : 추상적과 구체적의 사이

* 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현, 재사용성이 높음

시스템 설계의 모든 과정을 지원하는 '과정의 도구'라고 불릴 만큼 데이터 모델링 과정에서 가장 핵심이 되는 부분이다.

정규화 : 논리적 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 한다. 신뢰있는 데이터를 얻는다.

논리적 데이터 모델 상세화 과정 : 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의

 

3. 물리적 데이터 모델링 : 구체적

* 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계

스키마 : 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의이다.

테이블, 컬럼 등으로 표현되는 물리적인 저장구조와 사용될 저장 장치, 자료 추출을 위해 사용될 접근 방법 등을 결정

 

실제로는 개념적 데이터 모델링과 논리적 데이터 모델을 합쳐서 논리적인 데이터 모델링으로 한꺼번에 수행한다.

 

[5] 프로젝트 생명주기(Life Cycle)에서 데이터 모델링

분석 설계 단계로 구분한다.

분석 단계에서는 업무중심의 논리적인 데이터 모델링을 수행하고, 설계 단계에서는 하드웨어와 성능을 고려한 물리적인 데이터 모델링을 수행한다.

클래스 : 데이터 모델링과 프로세스 모델링을 구분하지 않고 일체형으로 진행한다.

 

[6] 데이터 모델링에서 데이터 독립성의 이해

1. 데이터독립성의 필요성

어떤 단위에 대해 독립적인 의미를 부여하고 그것을 효과적으로 구현하게 되면 자신이 가지는 고유한 특징을 명확하게 할 뿐만 아니라,

다른 기능의 변경으로부터 쉽게 변경되지 않고 자신의 고유한 기능을 가지고 제공하는 장점을 가진다.

(데이터독립성 <-> 데이터종속성)

(과거. 사용자가 접근하는 유형에 따라 데이터를 구성하는 방법이 영향을 받았다.)

지속적으로 증가하는 유지보수 비용을 절감하고 데이터 복잡도를 낮추며 중복된 데이터를 줄이기 위한 목적

끊임없이 요구되는 사용자 요구사항에 대해 화면과 데이터베이스 간에 서로 독립성을 유지하기 위한 목적

데이터독립성 확보 효과

1) 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경이 가능하다.

2) 단계별 Schema에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공한다.

데이터 독립성은 3단계 구조, 독립성, 사상(Mapping)의 3가지 ANSI 표준 모델로 표현된다. -> 구 독 사, 구독 사랑해

 

2. 데이터베이스 3단계 구조

서로 간섭되지 않는 모델의 ANSI/SPARC은 외부 단계 개념적 단계, 내부적 단계의 3단계로 구성된다.

1) 외부 단계 : 사용자와 가까운 단계로 사용자 개개인이 보는 자료에 대한 관점과 관련

2) 개념적 단계 : 사용자가 처리하는 통합된 뷰의 설계 단계로 데이터 유형의 공통적인 사항을 처리하는 스키마 구조로 디자인한 형태

3) 내부적 단계 : 데이터가 물리적으로 저장된 방법에 대한 스키마 구조

 

3. 데이터독립성 요소

1) 외부스키마 : 개인적인 데이터베이스 스키마

2) 개념스키마 : 조직적인 데이터베이스 스키마

3) 내부스키마 : 물리적인 데이터베이스 스키마

데이터베이스 스키마 각각은 상호 독립적인 의미를 가지며,

데이터 모델링은 통합관점의 뷰를 가지고 있는 개념 스키마를 만들어가는 과정이다.

 

 

 

 

[데이터 전문가 포럼] SQL 개발자 스터디 교재(2020.08.22.)

#SQLD

'SQLD' 카테고리의 다른 글

SQLD(6일차)  (1) 2023.08.30
SQLD(5일차)  (0) 2023.08.29
SQLD(4일차)  (1) 2023.08.28
SQLD(3일차)  (0) 2023.08.26
SQLD(2일차)  (0) 2023.08.25