본문 바로가기
공부-Data Engineer/데이터베이스

[쉽게 설명한] 데이터 모델링

by ChanKim0718 2020. 6. 2.
반응형

데이터모델링

아주 기초적인 내용이지만 개념을 전혀 모르면

쓸모없는(효율적이지 않은) 데이터베이스를 만들어 버릴 수도 있기 때문에...

반드시 공부하고 넘어가자.

 

하지만 내용이 어렵지 않고

데이터베이스를 만들면서

자연스럽게 익숙해지니 걱정 안 해도 된다!

Data Modeling

먼저, 모델링이란 말이 뭘까?

많이 사용하는 단어지만 뭔가 추상적인 단어라 감이 안 올 수 있다.

 

예전에 수강했던 머신러닝 수업에서

강사님은 모델링을 [옷의 사이즈를 찾는 과정]에 비유하셨다.

(※TIP - 머신러닝 모델링의 결과는 함수이고, 데이터 모델링의 결과는 데이터베이스다)

 

나에게 딱 맞는 옷을 사면 좋겠지만 의류회사는 나 혼자만을 위해서

딱 맞는 옷을 만들어 줄 수 없다. 최대한 많은 사람들에게 팔 수 있도록

여러 체형을 측정해서 일정 범위별 사이즈를 만들어야 한다.

이렇게 사이즈를 만드는 과정이 모델링이다!

T-shirt size

그리고 XS, S, M, L, XL와 같은 옷의 사이즈는 체형을 모델링한 결과(모델)이다.

(※TIP - DBGuide.net에서는 모델링을 '복잡한 현실세계를 일정한 표기법에 의해 표현하는 일'이라고 정의한다.)

 

데이터도 똑같다.

여러 데이터에 맞는 데이터베이스(옷 사이즈)를

만들어줘야 하고 그 데이터베이스를 만드는 과정이 데이터 모델링이다.

 

그럼 어떻게 데이터 모델링을 할까?

가장 먼저 사용자가 원하는 요구사항을 수집해야 한다.

누가 이 데이터를 사용하는지? 어떤 데이터에 어떤 속성이 있는지? 등의

요구사항을 수집한 후 3단계 모델링 프로세스를 거친다.

 

1. 개념적 데이터 모델링

2. 논리적 데이터 모델링

3. 물리적 데이터 모델링

 

시험에 나올만한 내용이라 암기를 해야 할 것 같지만

프로세스 이름에 내용이 다 있어서 쉽게 기억할 수 있다.

 

1. 개념적 데이터 모델링

말 그대로 개념(생각)으로 데이터를 구성해보는 것이다.

예를 들어 친구들과 캠핑을 가는데 필요한 물품을 메모장에 적어보는 것

이 자체가 개념적 데이터 모델링이다.

 

여기에 추가로 물품을 누가 가져올지 정해보자

텐트는 박지성이 숯과 삼겹살은 손흥민이 가져오기로 한다면

데이터 간의 관계(물품-가져올사람)가 구성된다.

Mapping Diagram

데이터베이스에서는 [물품], [가져올 사람]과 같은 데이터의 집합을 엔티티(Entity) 또는 개체라고 한다.

하나의 엔티티(개체)는 하나 이상의 속성(attribute)을 가지고 있는데

예를 들어 [물품]이라는 엔티티는 [품목, 갯수]라는 2가지 속성이 존재하는 것이다.

[가져올 사람] 엔티티에는 [이름]이라는 1가지 속성이 있다.

엔티티, 속성, 개체, 이런 용어는 데이터베이스에서 수두룩하게 나오는 용어이니

처음에 헷갈리더라도 숙지해보자!

 

이렇게 모든 데이터를 수집한 요구사항에 맞게 데이터 간의 관계로 구성한다.

(물론 다른 데이터와 전혀 관계가 없는 데이터가 있을 수도 있다) 

 

일반적으로 개념적 모델링 결과는 약속된 ERD(Entity-Relationship Diagram) 규칙을 사용해 표기한다.

(ERD 표기법에 대한 자세한 내용은 나중에 따로 업로드하겠다.)

E-R Diagram 예시

(※TIP - 개념적 데이터 모델링의 정의는 '가지고 있거나 가질 데이터의 개념을 매핑하는 것'이다.)

 

2. 논리적 데이터 모델링

논리적 데이터 모델링은 개념(생각)으로만 구성했던 데이터를 

논리적인 규칙(상세속성, 정규화)을 이용해서

실제 데이터베이스가 지원하는 모델로 구체화하는 것이다.

(여기서 정규화는 매우 중요한 개념인데 나중에 따로 업로드하겠다.)

논리적 데이터 모델링

위 그림을 보면 물품의 [물품번호], 가져올 사람의 [번호]는 없던 속성이다.

하지만 이것을 데이터베이스로 사용하려면 이런 상세속성이 필요하다.

그 이유를 예로 들면 사람 이름에는 동명이인이 있을 수 있기 때문에

가져올 사람의 [이름]을 [번호]와 함께 사용하는 것이다.

그러면 동명이인이 있어도 구분할 수 있다(1번 손흥민!, 2번 손흥민!)

 

3. 물리적 데이터 모델링

물리적 데이터 모델링은 말 그대로 물리적으로

실제 데이터가 데이터베이스에 저장되도록 만드는 것이다.

그렇게 하려면 데이터베이스가 이해하는 방식으로 코드를 작성해야 한다.

그것을 데이터정의언어 DDL(Data Definition Language)이라고 한다.

(이것에 대해서는 SQL 파트에서 공부하자!)

 

데이터 모델링은 반복 프로세스이다.

조직의 요구사항에 맞게 데이터 모델링을 지속적으로 재구성 및 최적화해야 한다.

그렇게 해서 데이터를 사용자가 쉽고 빠르게 사용할 수 있게 만드는 것이 목적이다.


우리는 앞으로 DBMS(Database Management System)를 사용할 것이고

데이터 엔지니어, 데이터 사이언티스트, 데이터 분석가와 같은

직무에 적용하기 위해(또는 협업하기 위해) 이 개념을 익히는 것이다.

반응형