티스토리 뷰

database

[Database] NoSQL

tonirr 2020. 8. 30. 17:48

1. NoSql의 등장배경

  • 2000년 후반으로 넘어오면서 소셜네트워크 서비스 등이 등장하면서 대규모 데이터를 생산하였다.

  • 데이터 패러다임이 변화하면서 기존 시스템에 한계가 나타났으며 새로운 형태의 데이터 저장 기술이 필요하게 되었다.

  • 대용량 데이터를 보유한 구글과 아마존에 의해 빅테이블(Bigtable)과 Dynamo라는 논문이 발표되었고 이로인해 새로운 데이터 저장 기술을 만들어지기 시작하였다.

2. NoSql의 특징

  • NoSql은 RDBMS(관계형 데이터베이스)와는 달리 데이터 간의 관계를 정의하지 않는다.

    • RDBMS의 Foreign key와 join 이 존재하지 않는다.

  • RDBMS에 비해 비교적 훨씬 대용량의 데이터를 저장할 수 있다.

  • 분산형 구조

    • 데이터를 여러 대의 서버에 분산해 저장한다.

    • 분산 시에 데이터를 상호 복제하여 특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 없는 형태로 이루어져 있다.

    • 고정되지 않은 테이블 스키마

  • 테이블 스키마가 유동적이다.

3. NoSql의 분류

  • Key-Value Database

    • 속도가 빠르고 분산 저장에 용이하다.

    • 단순한 저장구조를 가지며 복잡한 조회 연산을 지원하지 않는다.

    • 고속 읽기와 쓰기에 최적화된 경우가 많다.

    • 메모리를 저장소로 쓰는 경우 매우 빠른 속도로 읽기 쓰기가 가능하다.

    • Key-Value 하나의 묶음으로 정해진 스키마 없이 저장되는 구조이다.

    • 특징

    • ex) Redis, Oracle NoSQL Database, Voldemorte, Memcached, Hazelcast, EhCache

  • Document-based Database

    • Value에 Document를 저장하기 때문에 복잡한 데이터 구조를 표현할 수 있다.

    • 여러개의 테이블을 하나의 Document에 모아둘 수 있다. 그렇기 때문에 조회할 때 한번의 조회로 필요한 데이터를 획득할 수 있다.

    • 테이블 스키마가 유동적이기 때문에 레코드마다 다른 스키마를 가질 수 있다.

    • Key-Value Store의 확장 형태로, Value에 Document 타입을 저장한다. Document는 XML, JSON이 주로 사용된다.

    • 특징

    • ex) MongoDB, Azure Cosmos DB, CouchDB, MarkLogic

  • Column-based Database

    • 하나의 키에 여러개의 컬럼 묶음으로 데이터를 저장할 수 있다.

    • 데이터의 열을 빠르게 검색하는 데에 최적화 되어있다.

    • Column별로 데이터가 저장되기때문에 압축에도 높은 효율을 얻을 수 있다.

    • Key-Value Store의 확장 형태로, RDBMS에서 행 단위로 데이터를 저장하는 것과 다르게 열 단위로 연속적으로 저장하는 방식이다.

    • 특징

    • ex)  Cassandra, HBase, ScyllaDB, GoogleBigTable, Vertica, Druid, Accumulo, Hypertable

  • Graph Database

    • 노드 간 관계를 수의 제약 없이 형성할 수 있다.

    • 데이터 간의 관계를 쿼리하는 속도가 매우 빠르다.

    • RDBMS에 비해 데이터모델이 가변적이다.

    • 데이터 간의 관계에 특화된 모델로서 데이터를 노드로 표현하고 노드 사이의 관계를 엣지로 표현하여 저장하는 방식이다.

    • 특징

    • ex) Neo4j, Blazegraph, OrientDB, FlockDB

  • SearchEngine

    • JSON 형식으로 문서 저장한다.

    • 텍스트를 여러 단어로 변형하거나 텍스트의 특질을 이용한 동의어나 유의어를 활용한 검색이 가능하다.

    • 관계형 데이터베이스에서 불가능한 비정형 데이터의 색인과 검색이 가능하다.

    • 형태소 분석을 통한 자연어 처리가 가능하다.

    • 대량의 데이터와 텍스트를 빠르게 검색하기위한 저장스토어이다.

    • 특징

    • ex) Elasticsearch

  • Time Series Database

    • 시간 단위의 데이터를 처리하고 그래프를 그리는데 용이하다.

    • 시간의 흐름에 따라 지속적으로 수집된 데이터를 시간 순서에 따라 저장하고 조회하기에 최적화된 API 제공한다.

    • 시계열(Time Series)를 처리하기 위해 최적화된 데이터베이스

    • 특징

    • ex) InfluxDB, RRDtool, Graphite

'database' 카테고리의 다른 글

[Database] 데이터 모델링 - 데이터 성능  (0) 2021.03.01
[Database] 데이터 모델링 - 데이터 모델링의 개요  (0) 2021.03.01
[Database] 루씬(Lucene)  (0) 2020.09.27
auto increment  (0) 2020.04.13
DBeaver 단축키  (0) 2020.04.13
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함