NoSQL

Woo Yong·2023년 7월 6일
0

NoSQL

목록 보기
1/4

NoSQL

NoSQLNon Relational Operation Database SQL의 줄임말이며, RDB가 아닌 SQL입니다.

NoSQL 특징

  • 빅데이터 기술은 기존의 관계형 데이터베이스로 처리하게 힘든 상황에서 작동한다.
  • 테라 혹은 페타급 데이터를 처리해야하기 때문에 이 데이터를 정규화(중복제거)하는 것은 실직적으로 불가능하다. 그렇기 때문에 NoSQL은 정규화를 하지 않고 데이터를 중복하여 저장하는 것이다.
  • NoSQL은 ACID를 따르지 않고 CAP이론을 따른다.

NoSQL 장점

  • 불 필요한 Join의 최소화
  • 유연성있는 서버 구조 제공
  • 비정형 데이터 구조로 설계비용 감소
  • Read/Write가 빠르며 빅데이터 처리가 가능
  • 저렴한 비용으로 분산처리 및 병렬처리 가능

NoSQL 단점

  • 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
  • 많은 인덱스를 사용하려면 충분한 메모리가 필요하다.
  • 데이터 일관성이 항상 보장되지 않음.(실질적인 CAP이론의 한계?)

SQL vs NoSQL

SQLvsNoSQL


CAP

Consistency(일관성)

  • 분산된 노드 중 어느 노드로 접근하더라도 데이터 값이 같아야한다.
  • 모든 클라이언트는 동일한 시간에 동일한 항목에 대해 동일한 데이터를 보장받아야한다.

Acailability(가용성)

  • 분산 노드 중 하나 이상의 노드가 실패하더라도 정상적으로 요청을 처리할 수 있는 기능을 제공해야한다. 여러개의 서버에 데이터를 저장하여 장애를 극복해야한다는말 ...?
  • 모든 클라이언트는 네트워크 장애에도 정해진 시간에 원하는 값을 얻을 수 있어야한다.

Partion Tolerance(분산허용)

  • 분산 노드 간에 통신하는 네트워크가 장애가 나더라도 정상적으로 서비스를 수행해야한다.
  • 노드간 메시지 손실이 발생해도 시스템의 속성(일관성, 가용성)을 유지해야한다.

NoSQL 데이터베이스 데이터 구조 종류

NoSQL은 기본적으로 Map(Key-Value)구조를 기본으로 한다.

데이터와 컬럼의 중첩을 허용하며 정해진 스키마를 가지고 있지 않다.

NoSQL은 데이터 구조에 따라 크게 4가지로 나뉨

Key-Value

  • 기본적인 패턴으로 Key-Value 하나의 묶음(Unique)으로 저장되는 구조로 단순한 구조이기에 속도가 빠르며 분산 저장 시 용이하다.

컬럼 확장형

  • 행마다 키와 해당 값을 저장할 때마다 각각 다른 값의 다른 수의 스키마를 가질 수 있다.
  • 대량의 데이터 압축, 분산처리, 집계 쿼리 및 쿼리 동작 속도 그리고 확장성이 뛰어난 것이 특징이다.

도큐먼트형 (MongoDB, Azure Cosmos DB, CouchDB)

  • 테이블의 스키마가 유동적, 레코드마다 각각 다른 스키마를 가질 수 있다. (자유롭게 컬럼을 추가할 수 있다?)
  • 보통 XML, JSON과 같은 DOCUMENT를 이용해 레코드를 저장한다.
  • 트리형 구조로 레코드를 저장하거나 검색하는 데 효과적이다.

그래프형 (Neo4j, BlazeGraph, OrientDB)

  • 데이터를 노드로 표현하며 노드 사이 관계를 엣지로 표현한다.

출처

https://code-lab1.tistory.com/53

profile
Back-End Developer

0개의 댓글