데이터 중심 애플리케이션 설계 - 2. 2장 요약

Bloooooooooooooog..·2023년 7월 24일
0

데이터 모델과 질의 언어

관계형 모델과 문서 모델

오늘날 가장 널리 알려진 데이터모델은 관계형 모델을 기반으로 한 SQL이다. 데이터는 SQL에서 테이블이라고 불리는 관계로 구성되어 있고 순서 없는 tuple의 집합이다.

1970년대와 80년대 초반에는 네트워크 모델과 계층 모델이 대안으로서 존재하였으나, 결국 관계형 데이터 모델이 우위를 차지하게 되었다

NoSQL의 탄셍

2010년에 들어서는 NoSQL이 관계형 데이터 모델의 우위를 뒤집기 위해서 시도되고 있다. NoSQL은 Not Only SQL로 재해석되기도 한다. 이런 NoSQL의 채택 이유는 아래와 같다.

  1. 대규모 데이터셋이나 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 할 수 있는 확장성 필요
  2. 무료 오픈소스 소프트웨어에 대한 선호도 확산
  3. 관계형 모델에서 지원하지 않는 특수 질의 동작
  4. 동적이고 풍부한 데이터 모델에 대한 바람

NoSQL의 갈래

NoSQL은 두 가지 갈래로 볼 수 있다. 문서 데이터베이스, 네트워크 데이터베이스.
문서 모델은 다대다와 다대일 관계를 표현할 때 관계형 데이터베이스와 다르지 않다. 다만 문서 데이터 모델을 선호하는 이유는 스키마 유연성, 지역성에 기인한 더 나은 성능 때문이다.

문서 데이터베이스와 관계형 데이터베이스의 혼합

대부분의 관계형 데이터베이스 시스템은 2000년대 중반 이후 XML을 지원하고, 여기에는 XML문서의 지역적 수정과 XML 문서 내부에서 색인하고 질의하는 기능을 포함한다.

관계형 데이터베이스와 문서 데이터베이스는 시간이 지남에 따라 점점 비슷해지며 이런 현상은 긍정적이다.

그래프형 데이터 모델

데이터에서 다대다가 매우 일반적인 상황에서는 그래프형 데이터 모델링이 자연스럽다. 그래프는 정점과 간성으로 이루어져있다. 만약 도로나 철도, 소셜 그래프를 그려야하는 상황에서는 이런 데이터 모델을 사용하는 것이 적절하다고 볼 수 있다.

종합

관계형, 문서, 그래프 데이터베이스 모두 현재 널리 사용되고 있다. 단일 솔루션이 만능이 아니기 때문에 목적에 맞는 다양한 시스템을 보유해야 한다.

각 데이터 모델은 고유한 질의 언어나 프레임워크를 지원한다. 그 예로 일반적으로 사용하는 관계형 모델 언어인 SQL이 있고,
맵리듀스, 몽고DB의 집계 파이프라인, 사이퍼, 스파클 등이 있다.

profile
공부와 일상

0개의 댓글