관계형 데이터베이스
- 1960-1970년대에 비즈니스 데이터 처리를 하기 위한 것이 근원
- 트랜잭션 처리(영업, 은행 거래, 항공 예약, 창고 재고 보관) + 일괄 처리(고객 송장 작성, 급여 지불, 보고)
- 오늘날 웹에서 볼 수 있는 대부분의 서비스(온라인 게시물, 토론, 소셜 네트워크, 전자 상거래, 게임, SaaS)는 여전히 관계형 데이터베이스를 통해 제공
NoSQL
- Not Only SQL
- 대규모 데이터셋이나 매우 높은 쓰기 처리량 달성을 관계형 데이터베이스보다 쉽게 할 수 있는 뛰어난 확장성이 필요해짐
- 상용 데이터베이스 제품보다 무료 오픈소스 소프트웨어에 대한 선호도 확산
- 관계형 스키마의 제한에 대한 불만과 더욱 동적이고 표현력이 풍부한 데이터 모델에 대한 바람
- 문서 데이터베이스
- 그래프 데이터베이스
JSON
- 다중 테이블 스키마보다 더 나은 지역성(locality)를 가짐
- 모든 관련 정보가 한 곳에 있어서 질의 하나로 충분
맵리듀스(MapReduce)
- 많은 컴퓨터에서 대량의 데이터를 처리하기 위한 프로그래밍 모델
- map(collect) + reduce(fold, inject) 함수를 기반으로 함
그래프형 데이터 모델
- 데이터에서 다대다 관계가 매우 일반적인 경우
- 정점(vertex)와 간선(edge)로 이루어짐
- 소셜 그래프
- 웹 그래프
- 웹 페이지의 인기나 검색 결과에서의 순위
- 도로나 철도 네트워크
- 두 지점 간 최단 경로
- 동종 데이터와 마찬가지 방식으로 사용하면 단일 데이터 저장소에 완전히 다른 유형의 객체를 일관성 있게 저장할 수 있는 강력한 방법을 제공
- 어떤 음식에 어떤 물질이 포함되었는지 보여주는 정점 집합과 알레르겐을 연결할 때 사용한다면,
- 각 사람들이 먹을 수 있는 안전한 음식이 무엇인지 알아내는 질의 작성이 가능
- 그래프 데이터를 관계형 구조로 넣어도 SQL을 사용해 질의할 수 있지만,
- 찾고자 하는 정점을 찾기 전에 가변적인 여러 간선을 순회해야 하므로 미리 조인 수를 고정할 수 없어 약간 어려움.
- 사이퍼를 사용하면 4줄이면 가능한 질의를 SQL을 사용하면 29줄로 작성해야 하기도 함
- 다양한 데이터 모델은 서로 다른 사용 사례를 만족하기 위해 설계됨
- 단일 만능 솔루션이 아닌, 각기 목적에 맞는 다양한 시스템을 보유해야 함
문서 및 그래프데이스는 저장할 데이터를 위한 스키마를 강제하지 않아 변화하는 요구사항에 맞춰 애플리케이션을 쉽게 변경할 수 있음.
'인프라,데이터' 카테고리의 다른 글
데이터 중심 애플리케이션 설계 4장 정리 (0) | 2022.05.29 |
---|---|
데이터 중심 애플리케이션 설계 3장 정리 (0) | 2022.05.22 |
데이터 중심 애플리케이션 설계 1장 정리 (0) | 2022.05.08 |
데이터 파이프라인 핵심 가이드 8-10 (0) | 2022.04.24 |
데이터 파이프라인 핵심 가이드 7 (0) | 2022.04.17 |