Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

걸음마부터 달리기

DB-6/25 본문

카테고리 없음

DB-6/25

성추 2024. 6. 25. 18:55

모델링 정의:

모델: 다양한 현상(사람,사물,개념 등에 발생하는...) 에 대해서 일정한 표기법에 의해 표현해 놓은 모형(추상)

모델링: 이러한 표기법에 의해 규칙을 가지고 표기하는 것

모델링은 약간 행위에 초점을 맞춘 느낌. 모델을 만들기 위해

모델링 특징:

추상화: 현실세계를 일정한 형식에 맞추어 표현

단순화: "복잡한" 현실세계를 약속된 규약에 의해 표기로 표현하여 쉽게 이해할 수 있도록

명확화: 누구나 이해하기 쉽고 정확하게 현상 기술

모델링의 특징을 위해서 현실세계를 일정한 표기법에 의해 표현하는 기법

 

특히나 업무 분석(현실세계)으로 정보시스템(IT분야로) 모습으로 적절한 표기법으로 표현하는 것: 모델링

세가지 관점:

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

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

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

모델링 이유: 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하게, DB구축 및 개발 >> 데이터 모델링 자체로도 업무 설명 및 분석 가능

 

우리는 데이터 관점에서 모델링을 수행하여 DB를 구축해야한다

>> 정보시스템 구축을 위해 업무 분석을 데이터관점에서 수행하고

>> 모델링의 약속된 표기법에 의해 데이터를 표현 

>> 뿐만 아니라 이를 바탕으로 DB 구축

 

모델링 중요이유:

파급효과 ) 중간에 모델이 바뀌어버리면 데이터 구조의 변경에 따른 영향분석 및 변경작업의 스케일이 상당히 커 번거로움

복잡한 정보 요구사항의 간결한 표현 ) 설계자의 생각대로 요구사항을 이해하고 운용할 수 있게 해줌

데이터 품질) 모델링할때 충분히 데이터 구조를 잘 설계해야 나중에 이 데이터의 비즈니스 가치가 높아지면서 바꿀 일도 없음 (품질 치유 불가능 혹은 너무 어려워서)

 

유의점:

중복: 데이터 모델 자체로 그 데이터를 사용하는 사람, 시간 , 장소 파악이 됨. 따라서 DB에 데이터를 여러장소에 같은 정보를 저장하는 잘못을 하지 않게

비유연성: 어떻게 설계했느냐에 따라 모델이 수시로 변경될 수도 있다. == 유지보수 어려워짐

데이터 정의를 데이터 사용 프로세스와 분리함으로서 요구사항 변화에도 DB의 중대한 변화를 일으킬 가능성을 줄인다. 

비일관성: 중복이 없어도 비일관성이 존재할 수 있다. 서로 종속적인 데이터면... (신용정보와 납부정보) 따라서 데이터 사이의 상호연관 관계를 명확하게 정의하라

 

모델링 3단계: 

데이터 모델은 DB를 만들어내는 설계서로서 분명한 목표를 가짐.

개념적 데이터 모델 , 논리적 데이터 모델, 물리적 데이터 모델 

개념적 데이터 모델: 사용자와 조직이 사용하는 데이터의 요구사항을 찾고 분석함.

개념적 데이터 모델링은 내가 하고자 하는 일의 데이터 간의 관계를 구상하는 단계 이다.

출처: https://inpa.tistory.com/entry/DB-📚-데이터-모델링-1N-관계-📈-ERD-다이어그램 [Inpa Dev 👨‍💻:티스토리]

>> 엔티티엔티티간의 관계를 발견하고 표현 ER다이어그램

이런식으로 데이터의 요구사항을 찾고 공식화하는 것은 두가지 중요한 기능 :

1) 사용자와 개발자가 데이터 요구사항을 발견하는것을 지원하고 논의기반 형성

2) 현 시스템이 어떻게 변형(개발) 되어야 하는가를 이해하는데 유용

 

즉 업무 파악(현실) 및 그걸로 인한 데이터 구상화 

 

논리적 데이터 모델: 

개념적인 데이터 모델이 완성되면, 구체화된 업무 중심의 데이터 모델을 만들어 내는데, 이것을 논리적인 데이터 모델링이라고한다. 이 단계에서 업무에 대한 Key, 속성, 관계등을 표시하며, 정규화 활동을 수행한다. 

출처: https://inpa.tistory.com/entry/DB-📚-데이터-모델링-1N-관계-📈-ERD-다이어그램 [Inpa Dev 👨‍💻:티스토리]

업무를 기반으로 모델을 조금 더 구체화

엔티티와 관계로 ERD를 그렸던 앞 과정에서 더 나아가 데이터베이스가 채택한 논리적 데이터 모델을 기반으로 데이터구조 표현.

즉 관계형 DB냐 NoSql이냐 이런 논리적 구조를 택하고 그에 맞게 설계하는 과정 (특정 DBMS에 종속적이진 않음)

https://blog.naver.com/james_parku/110175729208

 

 

물리적 데이터 모델: 앞에서 했던 논리적 데이터 모델을 어떻게 하드웨어에 표현할 것인가.

물리적으로 컴퓨터에 어떻게 저장될 것인가: 스키마

스키마 설계 및 구현

 

Design(설계) 에서 주로 논리적 데이터 모델링까지

Implementation(개발)에서 주로 물리적 모델링까지

 

데이터독립성: 데이터(구조) 의 변화에 따라 Application도 영향없이 그대로... (사용자 인터페이스와 DB 간 서로 독립성 유지)

DB는 이러한 3가지 스펙으로 데이터 독립성을 제시함.

개념스키마는 우리가 일반적으로 보는 그 전체적인 DB 테이블들 말하는거.

외부스키마는 개념스키마의 일부 View만 제공함.

내부 스키마는 저장구조 자체를 명시함

사상(Mapping):

즉 각 View(외부 스키마)는 전체 스키마 구조를 가지는 Table(개념적 스키마) 에 Mapping된다는거고 

또한 개념 스키마는 물리적인 테이블과 Mapping된다는거

 

모델링 3요소 : 개체, 속성, 관계

현실세계는 개체,속성,관계로 모델링이 가능하다는거. 따라서 업무도 이런식으로 현실세계를 모델링해라.