[BE Study] #2. Data Modeling

kiteB·2021년 8월 17일
0

BE-Study

목록 보기
2/3
post-thumbnail

📌 2주차 스터디 키워드 및 질문


[키워드]

  • Data Modeling
  • RDB Modeling
  • NoSQL Modeling

[질문리스트]

  • Data 모델링이란 무엇일까요?
  • RDBNoSQL의 모델링 방법 차이를 설명해주세요.

🌸 목표
시간이 촉박한 해커톤에서 빠르고 정확한 모델링을 위한 공부


Data Modeling


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

현실 세계를 일정한 표기법에 의해 데이터베이스로 표현하는 일

데이터 모델링 목적

정보들을 일정한 표기법에 따라 표현함으로써 정보 시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하고, 분석된 모델을 통해 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용하기 위해서!

데이터 모델링 3단계

현실세계에서 데이터베이스까지 만들어지는 과정은 시간에 따라 진행되는 과정으로서
추상화 수준에 따라 개념적 데이터 모델링, 논리적 데이터 모델링, 물리적 데이터 모델링으로 정의할 수 있다.

📌 추상화
현실세계를 일정한 형식에 맞추어 표현한다는 의미!

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

  • 조직, 사용자의 데이터 요구사항을 찾고 분석하는데에서 시작한다.
  • 이 단계에서의 주요한 활동은 핵심 엔터티(Entity)와 그들 간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티-관계 다이어그램을 생성하는 것이다.
  • 이 과정이 전 조직에 걸쳐서 이루어지는 경우 전사적 데이터 모델(Enterprise Data Model)이라고 부른다.

📌 용어 정리

  • 엔터티(Entity): 업무의 관심 대상이 되는 정보를 가지고 있거나 그에 대한 정보를 알아야하는 유형, 무형의 사물이나 객체를 말한다. 쉽게 실체, 객체라고 생각하면 된다.
  • 엔터티-관계 다이어그램(ER Diagram): 서로 관계되어 있는 엔터티를 다이어그램(그림)으로 표현한 것이다.

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

  • 데이터 모델링 프로세스의 input으로써 비즈니스 정보의 논리적인 구조와 규칙을 명확하게 표현하는 기법 또는 과정이다.
  • 논리적 데이터 모델링의 결과로 얻어지는 논리 데이터 모델데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있다.
  • 즉, 믈리적 스키마 설계를 하기 전 단계의 데이터 모델 상태를 일컫는 말이다.
  • 이 단계에서 가장 중요한 활동인 정규화는 논리 데이터 모델 상세화 과정의 대표적인 활동으로, 논리 데이터 모델의 일관성을 확보하고 중복을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 더 신뢰성 있는 데이터 구조를 얻는데 목적이 있다.

📌 용어 정리

  • 스키마(Schema): 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다.

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

  • 논리 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가를 다룬다.
  • 이 단계에서는 테이블, 컬럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장 장치 등을 표시한다.
  • 보통 개념적, 논리적, 물리적 데이터 모델링을 한꺼번에 수행하여 논리적 데이터 모델링으로 수행 하는 경우가 대부분이다!

🔗 데이터 모델링을 예제와 함께 이해하고 싶다면? 여기 클릭


RDBMSNoSQL 모델링 비교


🔗 RDBNoSQL에 대해 궁금하다면? 여기 클릭

1. RDBMS 데이터 모델링 (개체 모델 지향)

RDMBS는 저장하고자 하는 도메인 모델을 먼저 분석하고, 이를 통해 개체 간의 관계(relationship)을 식별하여 테이블을 설계한다. RDBMS는 다양하고 복잡한 쿼리를 지원하기 때문에 테이블을 디자인한 후에 필요한 데이터를 가져올 수 있도록 쿼리를 작성한다. 테이블 설계 시 테이블 간 데이터 중복을 최소한으로 하는 정규화된 테이블을 설계한다.

2. NoSQL 데이터 모델링 (쿼리 결과 지향)


NoSQL은 복잡한 쿼리 기능이 없기 때문에 어떤 쿼리 결과가 필요한지를 먼저 정의한 다음, 그 결과를 얻을 수 있도록 테이블을 디자인해야 한다. 테이블 설계 시 데이터가 두 개 이상의 테이블에 중복되게 저장하는 비정규화된 테이블을 설계해야 한다.

💡 RDBMSNoSQL의 차이점

  • 개체 모델 지향 vs. 쿼리 결과 지향
  • 정규화 vs. 비정규화

📘 참고자료


https://doorbw.tistory.com/229
https://dataonair.or.kr/db-tech-reference/d-guide/da-guide/?mod=document&uid=276
http://www.incodom.kr/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%AA%A8%EB%8D%B8%EB%A7%81
https://byul91oh.tistory.com/8
https://rh-cp.tistory.com/76
https://programmingyoon.tistory.com/207
https://cyberx.tistory.com/166

profile
🚧 https://coji.tistory.com/ 🏠

0개의 댓글