스물두줄

정보관리기술사 · 데이터베이스

정보관리기술사 NoSQL 모델링

NoSQL 모델링은 대용량 분산 환경에서 접근 패턴을 먼저 정하고 구조를 설계하는 활동이다. NoSQL은 Not Only SQL이며, 고정 스키마와 조인 중심 RDBMS를 보완하는 비관계형 데이터베이스다. 핵심은 쿼리 중심 모델링이다. 조회 패턴을 기준으로 저장 구조…

주요 장면

  1. 0:02 NoSQL 모델링이란
  2. 0:26 RDBMS와의 차이
  3. 0:53 네 가지 데이터 모델
  4. 1:22 모델링 절차
  5. 1:53 사례 계산
  6. 2:29 흔한 실수와 정리

대본

NoSQL 모델링이란

NoSQL 모델링은 대용량 분산 환경에서 접근 패턴을 먼저 정하고 구조를 설계하는 활동이다.

NoSQL은 Not Only SQL이며, 고정 스키마와 조인 중심 RDBMS를 보완하는 비관계형 데이터베이스다.

핵심은 쿼리 중심 모델링이다. 조회 패턴을 기준으로 저장 구조를 정한다.

RDBMS와의 차이

관계형은 데이터를 정규화해 중복을 없애고, 조인으로 필요한 데이터를 합친다.

NoSQL은 조인을 피하고, 함께 읽히는 데이터를 한 덩어리로 묶는다.

이 덩어리를 집계 단위라고 부른다. 문서 DB에서는 한 문서가 그 단위다.

따라서 질의가 한 번에 끝나도록 데이터를 담는 방식을 고르는 것이 모델링이다.

네 가지 데이터 모델

NoSQL은 데이터 모델에 따라 네 가지 유형으로 나뉜다.

키-값은 키 하나에 값 하나를 담고, 키로 조회한다.

문서형은 JSON 문서 단위로 저장하고, 함께 읽히는 데이터를 한 문서에 담는다.

컬럼 패밀리형은 행 키 범위를 스캔하고, 그래프형은 관계를 따라 순회한다.

유형 선택이 곧 모델링의 출발점이다. 시험에서는 유형과 특징을 함께 묻는다.

모델링 절차

NoSQL 모델링은 여섯 단계로 진행한다. 출발점은 테이블이 아니라 조회와 쓰기 패턴이다.

먼저 읽기·쓰기 빈도와 응답 시간 요구를 목록으로 정리한다.

다음으로 엔티티와 관계를 정하고, 유형별로 키 구조와 파티션 키를 설계한다.

정규화와 비정규화를 비교하고, 일관성 수준과 인덱스를 정한다.

마지막으로 부하 시험을 하고, 불일치하면 1단계로 돌아가 다시 설계한다.

사례 계산

고객 ID로 최근 주문 20건을 조회하는 가상의 쇼핑몰 예를 보자.

관계형은 주문, 주문상품, 고객, 배송 테이블을 조인해야 해서 접근이 많다.

문서형은 상품과 배송 정보를 주문 문서에 중첩해 한 번의 범위 읽기로 끝낸다.

다만 상태가 바뀌면 문서를 갱신해야 하므로 쓰기 증폭이 생긴다. 답안에 함께 적는다.

흔한 실수와 정리

정답은 내장이다. 함께 자주 읽히는 데이터는 상위 문서 안에 넣는다.

흔한 실수 첫째는 RDBMS 설계를 그대로 옮기는 것이다. 조인이 반복돼 지연이 커진다.

둘째는 값이 편중된 파티션 키를 고르는 것이다. 핫스팟이 생긴다.

셋째는 일관성 수준을 쓰지 않는 것이다. CAP 트레이드오프를 답안에 적어야 한다.

쿼리 패턴, 파티션 키, 일관성 수준 세 가지를 모두 쓰면 감점을 피한다.

같은 장의 영상