DB/Data modeling

[DB] 데이터 모델링(Data Modeling) 및 DB 설계 절차

생각많은 프로그래머 2024. 2. 18. 16:52

 

데이터베이스 상에서

데이터 모델(Data Model)

현실 세계의 정보를

인간과 컴퓨터가 이해할 수 있도록

추상화하여 표현한 모델이다.

 

데이터 모델링(Data Modeling)이란,

조직의 정보 수집과 관리 시스템을 정의하는 시각적 표현 또는 청사진을 생성하는 프로세스를 말한다. 이 청사진 또는 데이터 모델은 데이터 분석자, 과학자, 엔지니어와 같은 다양한 이해관계자들이 조직의 데이터에 대한 통일된 개념을 생성할 수 있게 돕는다. 이 모델은 해당 비즈니스가 수집하는 데이터, 서로 다른 데이터 세트 사이의 관계, 데이터를 저장하고 분석하는 데 사용되는 방식을 설명한다.

출처 : https://aws.amazon.com/ko/what-is/data-modeling/

 

 

다시 말해 데이터 모델링

데이터베이스 설계의 핵심 부분 중 하나로,

데이터베이스에서 사용되는

데이터의 구조와 관계를 정의하는 과정을 말한다.

 

건축가와 설계도로 비유하여 설명해보면,

건축가는 건물을 짓기 전,

건축 프로젝트의 목적과 요구사항을 고려하여

설계도를 작성할 것이다.

 

여기서 건축가데이터베이스의 설계자로,

데이터의 구조와 특성을 이해하고 이를 바탕으로

데이터베이스를 구성하는 역할을 할 것이다.

 

이때 설계도데이터 모델을 의미한다.

데이터 모델은 데이터의 구조를 시각적으로 표현한 것으로

데이터베이스에서 테이블, 열, 관계 등을 포함한다.

이 설계도는 데이터베이스를 만들기 전에 작성되어

데이터베이스의 틀과 청사진 역할을 담당하는 것이다.

 

 

그렇다면, 데이터 모델링이 왜 필요할까? 

 

앞서 인용한 데이터 모델링에 대한

설명을 참고하면 그 이유를 설명할 수 있다. 

 

1. 데이터의 구조화

데이터 모델링을 통해 데이터를 구조화하면

데이터베이스에 저장된 정보의 구조와 관계를

명확하게 정의할 수 있다. 이를 통해 데이터를

논리적이고 인관되게 유지할 수 있다.

 

2. 의사소통

데이터 모델은 데이터베이스 설계자와 

다른 이해관계자들 간의 의사소통 도구로 활용된다.

이를 통해 프로젝트 관계자들이 데이터베이스 구조를

이해하고 필요한 변경 사항을 쉽게 파악할 수 있다.

 

3. 유지보수 및 확장성

데이터 모델을 통해 데이터베이스의 구조를 명확히 정의하면,

유지보수와 확장이 용이해진다. 새로운 요구사항이나 변경 사항이 

발생할 때 데이터 모델을 기반으로 수정과 확장 작업을 해낼 수 있다.

 

4. 데이터 품질 향상

데이터 모델링을 통해 데이터베이스의 데이터 품질을

향상시킬 수 있다. 일관된 데이터 구조를 유지하고

데이터 중복을 최소화하여 데이터의 일관성과 정확성을

유지할 수 있다.

 

5. 성능 향상

효율적인 데이터 모델을 사용하면 데이터베이스의

성능을 향상시킬 수 있다. 적절한 인덱스와 쿼리 최적화를

위한 기준을 설정하여 데이터 접근과 조작이 더욱 빠르고

효율적으로 이루어질  수 있다.

 

 

 

데이터 모델은 크게

개념적, 논리적, 물리적 으로 구분할 수 있다.

 

 

데이터 모델의 종류 : 개념적, 논리적, 물리적

 

데이터 모델 개념도

 

 

 

데이터 모델에 표시해야 할 요소에는

논리적 데이터 구조, 연산, 제약조건이 있다.

 

데이터 모델에 표시해야 할 요소
요소 설명
구조
(Structure)
데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과
개체 타입들 간의 관계로, 데이터 구조 및 정적 성질을 표현하는 요소
연산
(Operation)
데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한
명세로서 데이터베이스르르 조작하는 요소
제약조건
(Constraint)
데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

 

 

데이터베이스 설계 단계는 요구조건 분석,

개념적 설계, 논리적 설계, 물리적 설계가 있다. 

요구조건 분석은 경우에 따라 단계에서 생략될 수도 있다.

 

앞서 잠깐 설명한 데이터 모델링 절차에 대해

순서대로 살펴보며 각각의 특징을 알아보자.

 

데이터베이스 설계 절차
단계 모델 설명
요구조건
분석
- - 도출된 요구사항 간 상충을 해결하고 범위를 파악하여
외부 환경과의 상호 작용 분석을 통해 데이터에 대한 요구 분석
개념적
설계
개념적
데이터
모델
- 사용자의 요구에 대한 트랜젝션을 모델링 하는 단계
- 개념적 데이터 모델은 현실 세계에 대한 인식을 추상적,
개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델


* 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려
* 개념적 데이터 모델은 DB 종류와 관계가 없음
* 주요 산출물은 개체관계 다이어그램(ERD)*이 있음

논리적
설계
논리적
데이터
모델

- 트랜잭션의 인터페이스를 설계하는 단계

- DBMS에 맞는 논리적 스키마 설계 단계
- 업무의 모습을 모델링 표기법으로 형상화

* 논리적 설계 단계에서 정규화*를 수행
* 논리적 데이터베이스 구조로 매핑(Mapping)

* 스키마의 평가 및 정제
* 논리적 데이터 모델을 통해 "관계 데이터 모델",
"계층 데이터 모델", "네트워크 데이터 모델", 
"객체지향 데이터 모델", "객체-관계 데이터 모델" 중
하나의 모델에 맞게 설계
* 관계형 데이터베이스에서는 테이블을 설계하는 단계



물리적
설계
물리적
데이터
모델

- 논리 데이터 모델을 특정 DBMS의 특성과 성능을 고려하여

물리적인 스키마를 만드는 단계
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여
데이터베이스 저장 구조(물리 데이터 모델)로 변환하는 모델

* 테이블, 인덱스, 뷰, 파티션 등의 객체를 생성
* 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
* 성능 측면에서 필요 시 반 정규화*를 수행
* 레코드 집중의 분석 및 설계
* 저장 레코드 양식 설계
* 접근 경로(Access Path) 설계



 

아래 중요 개념은 위에서 다룬 개념 중

중요하다고 생각한 것으로 

앞으로 좀 더 상세한 내용을 

공유해보고자 한다.

이번에는 간단히만 정리해보았다.

 

+ 중요 개념 간단히 살펴보기

더보기

- 개체관계 다이어그램 = ERD(Entity Relationship Diagram)

각 업무 분석에서 도출된 에티티간의 관계를 이해하기 쉽게 도식화한 다이어그램

- 정규화(Normalization)

관계형 데이터 모델에서 데이터의 중복성을 제거하여

이상 현상을 방지하고 데이터의일관성과 정확성을 유지하기 위해

무손실 분해를 하는 과정

- 반정규화(De-Normalization) 

정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해

중복, 통합, 분리 등을 수행하는 데이터 모델링 기법

 

+ 정규화에 대해서는 아래 글을 참고 바랍니다!

2024.02.06 - [DB] - [DB] 데이터베이스 정규화(DB Normalization) 개념과 장단점

 

[DB] 데이터베이스 정규화(DB Normalization) 개념과 장단점

데이터베이스 정규화에서 중요한 배경이 될 이상현상에 대해서는 아래 글을 참고 바랍니다. 2024.02.01 - [DB/SQL - Oracle] - [SQL] 이상현상(Anomaly) + 키 예제 [SQL] 이상현상(Anomaly) + 키 예제 이번에는 예

bio-logisch.tistory.com