[DB] 데이터 모델링의 이해

Loopy·2022년 3월 3일
0

데이터베이스

목록 보기
1/11
post-thumbnail

👉 SQLD 자격증 준비하면서 요약해놓은 정리본이다.

1️⃣ 모델링의 이해


1) 데이터 모델링의 정의

먼저 모델링이란, 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형인 모델을 표기법에 의해 규칙을 가지고 표기하는 것을 말한다.
즉, ""현실세계를 추상화, 단순화, 명확화하기 위해 일정한 표기법에 의해 표현하는 기법"" 이라고 할 수 있다.

모델링의 관점 3가지

1) 데이터 관점

  • 비즈니스 프로세스에서 사용되는 데이터를 의미
  • 업무가 어떤 데이터와 관련이 있으며 무슨 관계인지에 대해 모델링 (What, Data)
  • 구조 분석, 정적 분석

2) 프로세스 관점

  • 비즈니스 프로세스에서 수행하는 작업을 의미
  • 업무가 실제하고 있는 일은 무엇이며 어떻게 해야 하는지에 대해 모델링 (How, Process)
  • 시나리오 분석, 도메인 분석, 동적 분석

3) 데이터와 프로세스의 상관 관점

  • 프로세스와 데이터 간의 관계를 의미
  • 업무를 처리하는 방법에 따라 어떤 영향을 받는지에 대해 모델링(Interaction)
  • CRUD(Create Read Update Delete) 분석

💡그렇다면, 데이터 모델링이란 무엇일까?

데이터 모델링이란, 업무에서 필요로 하는 데이터시스템 구축 방법론에 의해 분석하고 설계하여 정보시스템을 구축하는 과정이다. 데이터 모델링을 하는 중요한 이유는, 1)정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하고 2)분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.

데이터 모델링의 특징 세가지

특징설명
추상화현실세계를 간략하게 표현한다
단순화누구나 쉽게 이해하도록 표현한다
명확화명확하게, 한 가지 의미로 해석되도록 표현한다

2️⃣ 데이터 모델링의 중요성 및 유의점

먼저, 1)파급효과(Leverage) 이다. 시스템 구축이 완성되어 가는 시점에서는 여러 단위 테스트들이 수행되고 과정들이 반복되는데 이때, 데이터 모델을 변경해야 한다면 많은 영향 분석이 일어나며 해당 분야의 실제적인 변경 작업이 들어가야 한다. 이러한 이유로, 시스템 구축 작업 중에서 다른 어떤 설계 과정보다 데이터 설계가 더 중요하다.

두번째로, 2)복잡한 정보 요구사항의 간결한 표현(Conciseness) 이다. 데이터 모델은 시스템을 구축하는 많은 관련자들이 설계자의 생각대로 정보요구사항을 이해하고 이를 운용할 수 있는 애플리케이션을 개발하고 데이터 정합성을 유지할 수 있도록 하는 것이기 때문에, 정보 요구사항이 정확하고 간결하게 표현되어야 이상적인 모델이라고 할 수 있다.

마지막으로, 3)데이터의 품질(Data Quality) 이다. 데이터베이스에 담겨 있는 데이터는 기업의 중요한이기 때문에 정확성이 높은 데이터어야 한다. 하지만, 자산 데이터 품질의 문제가 야기되는 중대한 이유 중 하나가 바로 데이터 구조의 문제이다.

💡데이터 모델링 시 유의점
1) 중복
2) 비유연성 : 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써, 데이터/프로세스의 작은 변화가 애플리케이션에 중대한 변화를 일으킬 수 있는 가능성을 줄여야 한다.
3) 비일관성 : 데이터 모델링을 할 때 데이터와 데이터 간 상호 연관 관계에 대한 명확한 정의를 내려 비일관성을 줄여야 한다.`

3️⃣ 데이터 모델링의 3단계 진행

개념적 데이터 모델링

  • 전사적 관점, 업무 관점의 모델링
  • 추상화 수준이 가장 높은 모델링
  • ⭐️엔터티와 속성을 도출하고, 개념적 ERD를 작성하는 단계
  • 추상화, 업무중심적, 포괄적, 개념적

논리적 데이터 모델링

  • 특정 DB 모델에 종속됌
  • ⭐️시스템으로 구축하고자 하는 업무에 대해 식별자(pk)를 정의하고 관계, 속성 등을 모두 표현하는 단계
  • 정규화를 통해 재사용성과 신뢰성을 높임
  • 정규화, 재사용성, 신뢰성
  • ex)식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등

물리적 데이터 모델링

  • 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가에 대한 정의를 물리적 스키마라고 함
  • ⭐️성능, 보안, 가용성 등을 고려하여 데이터 베이스를 실제 구축
  • 물리적인 저장 구조와, 사용될 저장 장치, 자료 추출을 위해 사용될 접근 방법을 결정
  • 테이블, 칼럼, 인덱스, 함수 등을 생성하는 단계

4️⃣ 데이터 모델링에서의 데이터 독립성의 이해

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

일체적 구성의 목적은, 상호간 영향에서 벗어나 개별 형식이 가지는 고유의 기능을 유지시키며 그 기능을 극대화 하는 것이다.

예시) SOA의 서비스 단위
독립적인 비즈니스로 처리 가능한 단위를 서비스로 정의
개별로도 의미가 있고 다른 서비스와 결합하여 프로세스로 제공해도 의미가 있는 단위(예, BPM)로 제공

데이터 독립성은, 데이터 종속성의 반대말로 응용(application)에 종속되지 않음을 의미한다. 즉, 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질을 말한다.

데이터 독립성을 확보했을 때 얻는 효과는 다음과 같다.

  • 데이터 복잡도 감소
  • 데이터 중복 제거
  • 사용자 요구사항 변경에 따른 대응력 향상
  • 관리 및 요지보수 비용 절감

그럼, 데이터독립성의 대표적인 예시인 3 단계 ANSI 표준 모델을 살펴보자.

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

3-Level Schema사용자, 설계자, 개발자가 DB를 보는 관점에 따라 DB를 기술하고 이 관계를 정리한 ANSI 표준으로, DB의 독립성을 확보할 수 있는 방법이다.

참고자료.
SQLD 전문가 가이드 책

profile
개인용으로 공부하는 공간입니다. 잘못된 부분은 피드백 부탁드립니다!

0개의 댓글