데이터 모델링의 이해

2024. 7. 17. 19:42SQL

1.모델링의 이해

가. 모델링의 정의

 어떤 목적을 달성하기 위해 커뮤니케이션의 효율성을 극대화한 고급화된 표현방법.

나타날 수 있는 다양한 현상은 사람, 사물, 개념 등에 의해 발생된다고 할 수 있으며, 모델링은 이것을 표기법에 의해 규칙을 가지고 표기하는 것 자체를 의미.

- webster 사전

어떤 것에 대한 예비표현으로 그로부터 최종 대상이 구축되도록 하는 계획으로써 기여

 복잡한 현실세계를 단순화시켜 표현하는 것

모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것

현실 세계의 추상화된 반영

 

나. 모델링의 특징

 1) 추상화 : 현실세계를 일정한 형식에 맞추어 표현, 다양한 현상을 일정한 양식인 표기법에 의해 표현

 2) 단순화 : 복잡한 현실 세계를 쉽게 이해할 수 있도록 하는 개념

 3) 명확화 : 애매모호함을 제거하고 정확하게 현상을 기술하는 것

 

다. 모델링의 세가지 관점.

1) 데이터 관점 : 어떤 데이터와 관련이 있는지, 데이터 간의 관계는 무엇인지, What, Data

2) 프로세스 관점 : 업무가 실제 하고 있는 일은 무엇인지, 무엇을 해야하는지. How, Process

3) 데이터와 프로세스의 상관 관점 : 업무가 처리하는 일에 따라 데이터는 어떻게 영향을 받고 있는지

 


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

가. 모델링의 정의

정보시스템을 구축하기 위해 어떤 데이터가 존재하는지, 업무가 필요로하는 정보는 무엇인지 분석하는 것

 참 또는 거짓을 판별할 수 있는 사실, 데이터에 접근하는 방법, 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법.

 

데이터 모델링을 하는 주요한 입무는 정보들을 일정한 표기법에 의해 표현하여, 업무 내용을 정확하게 분석하는 것이 첫 번째 목적, 실제 데이터 베이스를 생성하여 개발 및 데이터 관리에 사용하기 위한 것이 두 번째 목적. 

 단지 데이터베이스만을 구축하기 위한 용도로만 쓰이는 것이 아닌, 업무를 설명하고 분석하는 부분에도 매우 중요한 의미를 가지고 있다.

 

나. 데이터 모델이 제공하는 기능

시스템을 현재 또는 원하는 모습으로 가시화

시스템의 구조와 행동을 명세화

시스템 구축을 구조화된 틀을 제공

시스템 구축 과정에서 결정한 것을 문서화

다른 영역의 세부 사항은 숨기는 다양한 관점 제공

수체화된 상세 수준의 표현방법 제공


3. 데이터 모델링의 중요성 및 유의점

중요한 이유는 파급효과/복잡한 정보의 간결한 표현/ 데이터 품질

가. 파급효과(Leverage)

각 단위의 테스트들이 성공적으로 수행되면 이를 묶어서 병행테스트, 통합테스트 수행. 이러한 시점에서 다른 영향들이 생기게 됨. 문제가 발생하면 작업이 달라지고 다른 위험요소가 생기므로, 모델링을 통해 데이터 설계가 중요하다.

 

나. 복잡한 정보 요구사항의 간결한 표현(Conciseness)

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

데이터 모델을 리뷰하면서 파악하는 것이 빠른 방법. 설계 도면을 예시로, 건축물을 만들어가면서 파악하는 것이 아닌, 설계 도면을 보고 건축물을 이해하고 파악하는 것.

데이터 정합성을 유지할 수 있어야하고 정보 요구사항이 정확하고 간결하게 표현되어야 이해하기 쉬움.

 

다. 데이터 품질(Data Quality)

데이터는 기업의 중요한 자산. 데이터는 기간이 오래될수록 활용가치는 훨씬 높아짐. 하지만 정확성이 떨어진다면? 물거품이 될 수 있음 그러므로 중요함

데이터 품질의 문제가 나타나는 이유 중 하나가 바로 데이터 구조의 문제. 중복 데이터 미정의, 데이터 구조의 비즈니스 정의 불충분, 데이터 불일치(동일 성격의 데이터를 통합하지 않고 분리할 때 나타남).

1) 중복(Duplicaiton) : 여러 장소에 같은 정보를 저장하는 잘못

2) 비유연성(Inflexibility) : 모델의 설계에 따라 업무도 변하므로 비유연성은 유지보수의 어려움을 가중, 데이터나 프로세스를 분리시켜야 변화를 일으킬 가능성이 줄어듬

3) 비일관성(Inconsistency) : 중복이 없더라도 비일관성은 발생 (=데이터 불일치), 정보의 갱신 없이 클라이언트의 이력을 갱신하는 것. 데이터와 데이터 간 상호 연관 관계에 대해 명확해야 이런 위험을 예방할 수 있다.


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

데이터 모델은 분명한 목표를 가지고 있다. 추상적 수준에 따라 개념적 데이터 모델 - 논리적 데이터 모델 - 물리적 데이터 모델로 정리.

처음 현실세계에서 개념적 데이터 모델링을 전개. 개념적 데이터 모델은 추상화 수준이 높음 / 업무 중심적 / 포괄적인 수준의 모델링 진행

(EA기반 모델링은 상위 수준인 개괄적인 데이터 모델링을 먼저 수행 / 이후 업무 영역에 따른 개념적 데이터 모델링을 함.)

논리적인 데이터 모델링 = 업무의 구체적인 모습과 흐름에 따른 구체화된 업무 중심의 데이터 모델

물리적인 데이터 모델링 = 논리적 데이터 모델링 이후 저장 구조에 따른 설계

 

 :: 개념적 데이터 모델링 : 추상화 수준이 높음, 업무 중심적임, 포괄적인 수준의 모델링, 전사적 데이터 모델링, EA 수립시 이용

 :: 논리적 데이터 모델링 : 시스템으로 구축하고자 하는 업무에 대해 속성, 관계 등을 정확하게 표현, 재사용성이 높음

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

 

가. 개념적 데이터 모델링

개념적 데이터 베이스의 설계는 조직 또는 사용자의 데이터 요구사항을 찾고 분석하는 것에서 시작. 어떠한 자료가 중요하고 어떠한 자료가 유지되어야 하는지 결정. 주요 활동은 핵심 엔티티와 그들 간의 관계 발견, 표현하기 위한 엔티티-관계 다이어그램(ERD) 생성, ERD는 어떤 데이터가 중요한지 나타내기 위함. 데이터 모델링이 전 조직에 이루어지면 = 전사적 데이터 모델(Enterprise Data Model; EDM)이라 함. 

1. 사용자와 시스템 개발자가 데이터 요구사항을 발견하는 것.

2. 현 시스템이 어떻게 변해야하는지 이해하는데 유용

 

나. 논리적 데이터 모델링

논리적 데이터 모델링은 설계 프로세스의 인풋. 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 것. 물리적인 스키마 설계를 하기 전 단계의 데이터 모델의 상태를 말함.

핵심은 어떻게 데이터에 접근하고 누가 데이터에 접근하며, 비즈니스 데이터에 존재하는 사실들을 인식하여 기록하는 것.

데이터 모델링 과정에서 가장 핵심인 부분임. 시스템 설계의 모든 과정을 지원하는 과정의 도구임.

중요한 활동은 '정규화'. 정규화는 논리적 데이터 모델을 상세화하는 과정의 대표적인 활동. 일관성을 확보하고 중복을 제거함. 상세화는 식별자 확정, 정규화, M:M관계 해소, 참조 무결성 규칙 정의 등.. 이력 관리에 대한 전략을 정의

 

다. 물리적 데이터 모델링

어떻게 컴퓨터 하드웨어에 표현할 것인가. 이 단계에서 결정되는 것은 테이블, 칼럼 등 물리적인 저장 구조와 사용할 저장 장치, 자료 추출 접근 방법 등이 결정된다. 계층적 데이터베이스 관리 시스템에서는 관리자가 물리적 스키마를 설계하고 구현하는 것이 중요. 현실 프로젝트는 차례로 수행하지 않고 개념적 논리적 데이터 모델을 한꺼번에 수행함. 


5. 프로젝트 생명주기에서 데이터 모델링 

Waterfall 기반 : 데이터 모델링의 위치가 분석/설계 단계로 구분되어 명확하게 정의 가능

정보공학, 구조적 방법론 : 분석단계에서 업무 중심 논리적 데이터 모델링 수행, 설계 단계에서 물리적 데이터 모델링 수행

나선형모델, RUP : 업무 크기에 따라 논리적 물리적 데이터 모델이 설계단계 양쪽에서 수행. 비중은 분석단계에서 논리 모델이 더 많음.

단, 객체 지행 개념은 데이터 모델링과 프로세스 모델링을 한꺼번에 진행함.


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

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

가장 큰 목적은 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 그 기능을 극대화하는 것. 효과적으로 구현하게 되면 고유한 특징을 명확하게 하고, 다른 기능으로부터 쉽게 변경되지 않고 고유기능을 제공할 수 있다. 

(어떻게 보면 파급효과 면에서 강점을 가질 수 있겠다.)

또한 클라이언트가 접근하는 유형에 따라 데이터 구성 방법이 영향받으므로 고유 기능을 지키기 위해.

데이터독립성은 지속적으로 증가하는 유지보수비용을 절감할 수 있음. 데이터 복잡도를 낮춤, 중복된 데이터를 줄일 수 있음.

 

나. 데이터베이스의 3단계 구조

외부단계, 개념적단계, 내부적단계가 서로 간섭되지 않는 모델

외부단계 : 사용자와 가까운 단계, 사용자가 보는 자료에 대한 관점과 관련, 사용자가 처리하고자 하는 데이터 유형, 관점, 방법에 따라 다른 스키마 구조. (보는 자료 데이터, 관점, 유형)

개념단계 : 사용자가 처리하는 데이터 유형의 공통사항을 처리하는 스키마 구조 (처리하는 데이터 공통사항)

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

 

다. 데이터독립성 요소

항목 내용 비고
외부 스키마 여러 개의 사용자 관점으로 구성, 각 사용자가 보는 개인적 DB, 어떻게 사용자나 관리자가 접근하는 DB 정의 사용적 관점, 접그하는 특성에 따른
개념 스키마 모든 사용자 관점을 통합한 전체 DB기술, 저장되는 데이터와 관계를 표현 통합관점
내부 스키마 DB가 물리적으로 저장된 형식, 실제 저장되는 방법 표현 물리적 저장 구조

 

 

라. 두 영역의 데이터 독립성

독립성 내용 특징
논리적 독립성 개념스키마 변경되도 외부스키마에는 영향 안가도록. 논리적 구조가 바뀌어도 프로그램에 영향 없음 사용자 특성에 맞는 변경,
통합 구조 변경 가능
물리적 독립성 내부스키마가 변경되도 그 외 스카마는 영향 안가도록, 저장장치 구조변경은 프로그램과 개념스키마에 영향 없음 물리적 구조 영향없이 개념구조 변경가능, 개념주고 영향없이 물리구조 변경가능

 

논리적 독립성 = 개념(컨셉)이 바뀌어도 보여지는건 바뀌지 않는다. 개념이 바뀌어도 어플은 바뀌지 않는다.

물리적 독립성 = 내부(하드웨어)가 바뀌어도 컨셉이나 데이터는 바뀌지 않는다. 하드웨어랑 컨셉은 별개임.

 

마. Mapping 사상

독립적인 개념을 연결시켜주는 것

사상 내용
외부적/개념적 사상
(논리적 사상)
외부적 뷰와 개념적 뷰의 상호 관련성 정의 사용자가 접근하는 형식에 따라 다른 타입의 필드 가짐. 개념적 뷰 필드 타입은 변화 없음
개념적/내부적 사상
(물리적 사상)
개념적 뷰와 저장된 데이터베이스의 상호관련성 정의 데이터 베이스 구조가 바뀐다면, 개념적/내부적 사상이 바껴야됨, 그래야 개념적 스키마가 남아있음.

 

즉, 외부화면이나 인터페이스 스키마 구조는, 전체 통합된 개념(컨셉)이 연결된다라는 것이 논리적 사상. 통합된 개념적 스키마 구조와 물리적 구조의 테이블스페이스(저장공간)과 연결되는 구조가 물리적 사상. 

(인터페이스는 개념과 연결된다. 개념은 저장공간과 연결된다). 데이터 독립성을 보장하기 위해서는 사상을 하는 스크립트(DDL)을 DBA가 필요할 때마다 변경해 주어야 한다. 즉 , 각 단계(외부, 개념, 내부)의 독립성을 보장하기 위해서 변경사항이 발생했을 때 DBA가 적절하게 작업을 해주기 때문에 독립성이 보장된다.

:: 맵핑을 하는 스크립트(DDL)(맵핑설계도)는 변경사항이 생길때 DBA가 알아서 해줌. 그래서 독립성은 유지됨. 

 


7. 데이터 모델링의 중요한 3가지 개념

가. 데이터 모델링의 세가지 요소

1. 업무가 관여하는 어떤 것(Things)

2. 어떤 것이 가지는 성격(Attributies)

3. 업무가 관여하는 어떤 것 간의 관계(Relationships)

업무가 관여하는 어떤 것이 어떤 성격이고 그 어떤것들끼리의 관계가 중요함.

 이것들은 엔티티, 속성, 관계로 인식되는 것인데, 사물이나 사건등을 지칭하는 것을 Things, 세부사항을 Attributies, 그 연관성을 Realtionships.

 

나. 단수화 집합(복수)의 명명

개념 복수/집합개념
타입/클래스
개별/단수개념
어커런스/인스턴스
어떤 것
Things
엔터티 타입(Entity type) 엔터티(Entity)
엔터티(Entity) 어커런스(Occurence), 인스턴스(Instance)
어떤 것간의 연관
Association between Things
관계(Relationships) 페어링(Pairing)
어떤 것의 성격
Characteristic of a Thing
속성(Attributies) 속성값(Attribute Value)

 

어떤 것의 전체를 지칭 = Entity set

Entity Type의 복수 = Set, Type

엔터티를 어떤 것에 대한 집합으로 명명하여 지칭.

개별지칭으로 엔터티가 있지만, 집합개념으로 사용하는 경우엔 인스턴스/어커런스를 단수의 개념으로 사용

(어커런스,인스턴스를 묶어서 엔티티라고 부르고 그것들을 묶어서 엔터티 타입이라고 부름)

 

관계도 이를 복수로 통칭하여 표현하고 개별적인것은 페어링.

성격을 묶은 것을 속성. 그 안에 것으로 속성값.

 


8. 데이터 모델링의 이해관계자

가. 이해관계자의 데이터 모델링 중요성 인식.

데이터베이스를 전문적으로 하는 DBA(DataBase Administrator)가 모델링을 전적으로 하는 경우는 드뭄. 오히려 응용시스템 개발자가 모델링도 같이함. 

모든 시스템 엔지니어가 데이터 모델링을 하거나 할 기회가 있음에도 불구하고 대부분의 사람들은 단지 프로그램을 개발하기 위한 언어에만 관심을 두고 어플리케이션을 개발하는데, 정보 시스템을 개발한다고 할 때 적절한 데이터 활용은 사실 중요하다.

왜냐하면 데이터베이스 설계를 잘못했을 때 모든 데이터베이스에 영향이 가므로, 모든 개발자들은 데이터 모델을 이해하는 것이 업무에 도움이 될 것이다.

Bachmann "프로그래머는 데이터집합의 탐색자이다."

 

나. 데이터 모델링의 이해관계자

누가 데이터모델링을 연구하고 학습하는가?

1. 정보시스템을 구축하는 모든 사람은 데이터 모델을 해석할 수 있어야한다.

2. IT기술에 종사하거나 업무에서 정보화를 추진해야 된다면, 데이터 모델링을 알아야한다. 왜냐하면 업무 이해도를 높이고 모든 사람들과 원활하게 시스템돌아가는 것을 아니까. 또한 리스크를 줄일 수 있다.


9. 데이터 모델의 표기법인 ERD의 이해

가. 데이터 모델 표기법.

1976, 피터첸, E-R 표기법 (Entity-Relationship model) 

우리나라 대학은 Chen의 모델 표기법

데이터아키텍처 전문가(DAP)에서는 Barker표기법 적용

본 서적에서는 IE표기법, 바커 표기법 적용

 

나. ERD(Entity-Relationship Diagram)표기법을 이용하여 모델링하는 방법

ERd는 각 업무에서 도출된 엔티티와 그 관계를 이해하기 쉽게 다이어그램으로 표시. 데이터 프름과 프로세스의 연관성을 이야기하는데 중요함. 

 

1) ERD 작업순서

ERD를 작성하는 작업순서는

① 엔티티를 그린다.

② 엔티티를 적절하게 배치한다

③ 엔티티의 관계를 설정한다

④ 관계명을 기술한다.

⑤ 관계의 참여도를 기술한다

⑥ 관계의 필수여부를 기술한다.

ERD는 엔티티와 엔티티 사이 관계를 나타내므로 두개를 이용하여 작성하고

Primay key, Foreign Key를 ERD 규칙에 따라 기술. 엔티티는 사각형으로 표기

 

2) 엔티티 배치

사람의 시각은 왼쪽에서 오른쪽, 위쪽에서 아래쪽으로 가므로

가장 중요한 엔티티는 왼쪽 상단 배치. 이를 중심으로 나열

업무에서 가장 중요한 엔티티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치하여 어울릴 수 있도록 한다.

(왼쪽 상단과 중심부분이 우선순위구나)

여기서는 고객, 주문이 젤 중요. 이를 따라 출고가 되고 재고를 두고 이어서 이어서 나열한 듯.

 

3) ERD 관계식서를 보고 서로 관련있는 엔티티간 관계를 설정

초기에는 모두 Primary eky로 속성이 상속되는 식별자 관계로 설정. 중복되는 관계가 발생되지 않도록. circle 관계도 발생하지 않도록 주의

 

4) ERD 관계명 표시가 완료되면 관계 이름 부여.

현재형을 사용해야함. 포괄적인 용어는 사용하지 않도록.

 

5)  엔티티내에 인스턴스들이 얼마나 관계에 참여하는지를 나타내는 관계차수(Cardinality)를 표현.

IR표기법으로는 관계는 실선, Barker표기법으로는 점선과 실선.

다수(Many)관계는 까마귀발,

관계의 필수/선택표시는 관계선에 원.


10. 좋은 데이터 모델의 요소.

가. 완전성(Completeness)

 모든 데이터가 데이터 모델에 정의되어 있어야 한다. 

 

나. 중복배제(Non-Redundancy)

 하나의 데이터베이스 내에 반드시 한 번만 기록해야 함. (예 '나이' 와 '생년월일'이 동시 존재한다면 중복임)

왜냐면 데이터 관리 비용을 줄일 수 있고 저장공간 낭비를 없애고 일관성을 유지할 수 있음.

 

다. 업무규칙(Business Rules)

 수많은 업무규칙을 데이터 모델에 표현하고 모든 사용자가 공유할 수 있도록 제공하는 것.

(예 : 급여(기본급, 상여금, 수당, 수수료,) - 사원(내근, 설계사, 계약직, 대리점) 모든 사용자(개발자, 관리자)가 동일한 판단과 데이터를 조작할 수 있도록)

 

라. 데이터 재사용 (Data Resuability)

데이터의 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해서 고려해야함. 통합모델이어야만 데이터 재사용성을 향상시킬 수 있음.

과거 데이터를 애플리케이션의 부속품이라고 생각했는데 이것은 데이터 중복이 많이 발생하고 일관성 문제가 심각해짐. 독립적으로 설계되어야만 재사용성을 향상시킬 수 있음.

확장성을 담보하기 위해서는 데이터 관점의 통합이 필요. (주체가 되는 집합의 통합, 대상이 되는 집합의 통합 등은 정보시스템의 안정성과 확장성을 높일 수 있음)

 

마. 의사소통(Communication)

데이터를 분석하는 과정에서 많은 업무 규칙들이 도출되는데 이것들은 데이터 모델에 엔티티,서브타입, 속성, 관계 등의 형태로 최대한 자세하기 표현되어야 함. 그래야 사용하는 관련자들이 동일의미로 받아들이고 정보시스템을 활용할 수 있기 때문. 데이터 모델이 진정한 의사소통의 도구로써 역할을 할 수 있음

 

바. 통합성(Integration)

동일한 성격의 데이터임에도 불구하고 전체 조직관점에서 보면 여러곳에 동일한 데이터가 존재한다. 그러므로 조직의 전체에서 한번만 정의되고 다른 영역에서 참조하고 활용하는 것이다. 공유데이터에 대한 구조를 여러 업무 영역에서 사용할 수있도록 용이하게 정의해야함.

 

 

 


 

 

 
반응형