MongoDB에서 논리적 구조를 설계할 때 고려해야 할 Data Modeling의 주요 특징
MongoDB는 데이터와 프로세스 모두가 설계의 중심임
파일 시스템을 이용한 데이터 저장기술은 기업의 업무적 프로세스 중심으로 데이터를 해석하고 구조를 설계하는 방법
데이터베이스 관리 시스템을 이용한 방법은 기업에서 발생하는 데이터를 중심으로 분석, 설계하는 방법
NoSQL 기술에서는 기업의 업무적 프로세스와 데이터 모두를 설계의 중심으로 둠으로 유연한 데이터 구조를 설계할 수 있고 관리할 수 있음
Rich Document Structure를 제공함
관계형 데이터베이스는 데이터의 중복을 제거하고 무결성을 보장하기 위한 설계 방법으로 정규화된 설계 기법을 사용
•데이터 구조의 복잡성, 구현 단계에서 발생하는 과도한 조인문의 작성으로 인해 효율성이 저하되는 문제점들이 발생하게 됨
일부 데이터 중복이 발생한다 하더라도 빠른 데이터 처리 및 효율적인 관리가 보장된다면 비 정규화된 설계구조도 하나의 설계방법이 될 수 있다는 것
→ 이러한 설계 지향 방법을 Rich Document Structure라고 함
MongoDB는 조인하지 않음
NoSQL은 중첩 데이터 구조를 설계할 수 있기 때문에 불필요한 조인을 최소화 시킬 수 있음
MongoDB는 N:M 관계를 지원함
관계형 데이터베이스는 Entity간의 N:M 관계 구조를 설계할 수 없지만 MongoDB는 N:M 관계 구조를 설계하고 구축할 수 있음
MongoDB는 스키마 중심의 설계를 하지 않음
관계형 데이터베이스에서 하나의 테이블을 생성하면 테이블명은 사용자 계정명과 함께 결합되어 생성됨
•SCOTT 사용자 계정명으로 생성된 다수의 테이블들을 SCOTT라는 스키마로 생성되는 것임
•관계형 데이터베이스에서 사용자 계정은 DBMS에 접속할 수 있는 권한이 있는지 여부를 결정하는 인증의 의미를 가지고 객체이름을 결정하는 중요한 의미도 가지고 있음
MongoDB에서 사용자 계정은 오직 인증의 의미만 가지고 있기 때문에 스키마를 고려한 설계를 할 필요가 없음
MongoDB의 설계기준
데이터조작
-하나의 Collection은 여러개의 필드로 구성됨
-필드 중에는 소량의 데이터가 저장되는 필드가 존재하는 반면 대용량의 데이터가 저장되는 필드도 잇음
-매일 자주 참조되는 필드가 존재하는 반면 일주일 한달 일년에 한번씩 참조되는 필드로 존재할 것임
이렇게 다양항 필드들을 하나의 Collection으로 생성하게 되면 불필요하게 메모리 CPU와 같은 시스템 자원을 낭비하게 되고 시스템 성능을 저하시키는 원인이 될 수 있음
ACCESS PATTERN
빅데이터에 대한 쓰기 작업이 빈번한 Collection을 여러개의 Collection으로 분리설꼐하게 되면 초당 몇만 건의 데이터를 빠르게 저장하는 한꼐가 존재할 수밖에없음
빅데이터에 대한 읽기 작업이 빈번한 필드들을 여러개의 Collection에 분리 설꼐한다면 읽기 성능이 저하될 수 밖에없음
이러한 문제점을 고려해서 설계해야함
SCHEMA 설계 시 고려 사항
기업에서 발생하는 데이터들은 업무적 성격에 따라 다양성을 가지고 있어서 다양성에 맞는 가장 적절한 데이터 구조를
설계할 수 있어야 함
그러기 위해서는 MongoDB가 가지고 있는 데이터 저장 기술에 대한 명확한 이해가 먼저 필요함
MongoDB는 관계형 데이터베이스와는 다르게 조인 문장을 사용하지 않기 때문에 빠른 성능의 쓰기와 읽기가 가능한데 이것을 가능하게 해 주는 설계 구조를 Rich Document라고 함
Embedded Document RichDoucment

Extent Document(Rich Document)내장형 도큐먼트와 확장형 도큐먼트는 동일한 데이터 구조임
Rich Document의 장단점
장점
쿼리가 단순해지고 Join문을 실행할 필요가 없기 때문에 도큐먼트 단위의 데이터 저장에 효과적이며 빠른 성능이 보장됨
데이터 보안에 효과적임
단점
Embedded 되는 도큐먼트의 크기는 최대 16MB범위에서 가능함
Embedded 되는 도큐먼트가 존재하지 않는 컬렉션에는 적합하지 않음
강한 관계를 가지는 가진 Collection에는 유리한 데이터 구조이지만 약한 관계를 가진 Collection을 Rich Document로 설계한다면 절대적으로 불리할 수 밖에 없음
N:M 관계 패턴
관계형 데이터베이스에서 엔티티와 엔티티 간의 업무적 상관관계를 도식화할 수 있는데 이것을 관계라고 하며 구현단계에서 1:1, 1:N 형태로 표현함
관계형 데이터베이스에는 N:M 관계는 지원하지 않기 때문에 그림과 같은 데이터 구조는 설계할 수 없음
빅데이터가 발생하는 기업환경에는 다양한 비정형 데이터 구조가 발생할 수 있지만 관계형 데이터베이스에서는 구현할 수 없는 것이 정형화된 데이터 구조의 한계이자 문제점이기도 함
관계형 데이터베이스에서 N:M 관계의 데이터 구조는 다음과 같이 1 : N 관계로 재해석되어 설계됨
(모델링 다대다 관계해소)
MongoDB는 관계형 데이터베이스에서 제공하지 않는 N:M 관계 구조를 제공함
'학교공부 > Nosql' 카테고리의 다른 글
인덱스 사용자관리 (0) | 2022.02.01 |
---|---|
MongoDB - aggregation FrameWork (0) | 2022.02.01 |
MongoDB (0) | 2022.01.31 |
NoSql (0) | 2022.01.31 |
MongoDB를 위한 DataModeling (0) | 2021.11.26 |