본문 바로가기
스터디/SQL 전문가 가이드

[SQL 전문가 가이드] 데이터 모델링

by Bhinney 2023. 2. 4.

📎 SQL 전문가 가이드를 보고 공부 중 입니다.

📎 수정될 수도 있습니다.


 

📍세 가지 관점

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

2️⃣ 프로세스 관점 (How) : 무엇을 해야하는 지

3️⃣ 데이터와 프로세스의 상관 관점 (Interaction) : 프로세스에 따라 데이터가 어떻게 영향을 받는지


 

📍데이터 모델링

데이터 모델
  • 데이터 베이스의 골격을 이해
  • 이해를 바탕으로 SQL 문장을 기능과 성능적인 측면에서 효율적으로 작성하기 위해 알아야하는 핵심 요소
목적
  • 업무 내용을 정확하게 분석하는 것
  • 분석된 모델을 가지고 실제 데이터 베이스를 생성하여 개발 및 관리
중요성

1️⃣ 파급 효과 (Leverage)

: 시스템이 구축이 완성 되어가는 시점에 데이터 모델링의 변경이 필요한 상황이 발생했다면, 이를 위해 데이터 변경에 따른 파급효과를 생각해야 함

데이터 구조 변경으로 인해 발생하는 일련의 변경 작업은 큰 위험요소

그렇기 때문에 시스템 구축 작업 중에서 어떤 설계 과정보다 데이터 설계가 더 중요

 

2️⃣ 복잡한 정보 요구사항의 간결한 표현 (Conciseness)

: 정보의 요구사항을 빠르게 파악하는 좋은 방법은 많은 페이지의 기능적 요구사항을 파악하는 것보다 간결하게 그려져 있는 데이터 모델을 리뷰하면서 파악하는 것이 훨씬 빠른 방법

만약 건축물에 비유한다면, 데이터 모델은 설계 도면

요구사항이 정확하고 간결하게 표현되어야 함

 

3️⃣ 데이터 품질 (Data Quality)

: 데이터는 기업의 중요한 자산이며, 기간이 오래되면 될수록 활용 가치는 상승

만약 해당 데이터가 정확성이 떨어지는 그저 그런 데이터라면?

초기에는 문제를 인지하지 못 하는 경우가 대부분이며, 문제가 대두되는 시점은 쌓인 오래된 데이터를 활용하려고 하는 시점

데이터 품질의 문제가 일어나는 중대한 이유 중 하나는 "데이터 구조의 문제"

중복 데이터의 미정의, 데이터 구조의 비즈니스 정의의 불충분, 동일한 성격의 데이터를 통합하지 않고 분리하여 나타나는 데이터 불일치 등 데이터 구조의 문제로 일어난 데이터 품질의 문제는 치유하기 불가능한 경우가 대부분

 

유의점

1️⃣ 중복 (Duplication) 

: 같은 데이터를 사용하는 사람, 시간, 장소 등을 파악하는 데 도움

여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 주의

 

2️⃣ 비유연성 (Inflexibility) 

: 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있음

데이터 정의를 데이터의 사용 프로세스와 분리함으로 파급효과의 가능성을 줄임

 

3️⃣ 비일관성 (Inconsistency)

: 데이터의 중복이 없더라도 발생 가능

예를 들어 신용 상태에 대한 갱신 없이 고객의 납부 이력을 갱신하는 것

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

데이터 간의 상호 연관관계에 대한 명확한 정의는 이러한 위험을 사전에 예방할 수 있도록 도움

 


📍 데이터 모델링의 3단계

✅ 개념적 데이터 모델링 (Conceptual Data Modeling)

: 핵심 엔티티와 그들 간의 관계를 발견, 그것을 표현하기 위해서 엔티티 관계 다이어그램을 생성하는 것

어떤 자료가 중요한 지, 어떤 자료가 유지되어야 하는 지

 

 

개념 데이터 모델을 통해 조직의 데이터 요구를 공식화하는 것은 아래의 두가지 중요한 기능을 지원

첫쨰, 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원

둘째, 현 시스템이 어덯게 변형 되어야 하는가를 이해하는데 유용

 

✅ 논리적 데이터 모델링 (Logical Data Modeling)

: 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법, 또는 과정

데이터 모델링 과정에서 핵심이 되는 부분

"최종적으로 모델링이 완료된 상태" 라고 정의 할 수 있음

 

이 단계에서 수행하는 또 한 가지 중요한 활동은 정규화

정규화는 논리 데이터 모델의 일관성 확보 및 중복 제거로 속성들이 가장 적절한 엔티티에 배치 되도록 하여 신뢰성 있는 데이터 구조를 얻는 것이 목적

 

✅ 물리적 데이터 모델링 (Physical Data Modeling)

: 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가

논리 데이터 모델이 데이터 저장소로써 어떻게 하드웨어에 표현 될 것인가 


📍데이터 독립성

필요성
  • 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며, 그 기능을 극대화 하는 것이 가장 큰 목적
  • 자신이 가지는 고유한 특징을 명확하게 하며 다른 기능의 변경으로부터 쉽게 변경되지 않고 자신의 고유한 기능을 가지고 기능을 제공하는 장점을 가지게 됨
효과
  • 각 View의 독립성을 유지하고 계층별 View에 영향을 주지 않고 변경 가능
  • 단계별 스키마에 따라 정의어(DDL)와 조작어(DML)가 다름을 제공

↔️ 반대말은 데이터 종속성

 

 

요소

✅ 외부 스키마 (External Schema)

  • 사용자 관점
  • View 단계 여러 개의 사용자 관점으로 구성
  • 개개인 사용자 단계로써 사용자가 보는 개인적 DB 스키마
  • 접근하는 특성에 따른 스키마 구성

 

✅ 개념 스키마 (Conceptual Schema)

  • 통합 관점
  • 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것
  • DB에 저장되는 데이터와 그들간의 관계를 표현하는 스키마

 

✅ 내부 스키마 (Internal Schema)

  • 물리적 저장구조
  • 내부단계, 내부 스키마로 구성
  • DB가 물리적으로 저장된 형식
  • 데이터가 실제적으로 저장되는 방법을 표현하는 스키마
독립성

 

독립성 내용 특징
논리적 독립성 ◦ 개념 스키마가 변경되어도 외부 스키마에는 영햑을 미치지 않도록 지원하는 것
◦ 논리적 구조가 변경되어도 응용 프로그램에 영향 없음
◦ 사용자 특성에 맞는 변경 가능
◦ 통합 구조 변경 가능
물리적 독립성 ◦ 내부 스키마가 변경되어도 외부/ 개념 스키마는 영향을 받지 않도록 지원하는 것
◦ 저장 장치의 구조 변경은 응용 프로그램과 개념 스키마에 영향 없음
◦ 물리적 구조 영향 없이 개념 구조 변경 가능
◦ 개념 구조 영향 없이 물리적인 구조 변경 가능

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

  • 업무가 관여하는 어떤 것 (Thing)
  • 어떤 것이 가지는 성격 (Attribute)
  • 업무가 관여하는 어떤 것 간의 관계 (Relationships)

댓글