컴퓨터 시스템에 저장되는, 구조화된 정보 혹은 데이터의 집합
데이터베이스에서 데이터를 정의, 저장, 검색 및 인출, 관리하기 위해 사용되는 소프트웨어
정의
특징
JOIN 연산이 힘들다.
여러 곳의 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 발생하지 않도록 한다.
데이터를 저장하는 column이 각기 다른 이름과 데이터 타입을 갖는 것이 허용된다.
장점
관계형데이터베이스에 비해 저렴한 비용으로 분산처리와 병렬 처리가 가능하다.
설계 비용이 줄어든다.
정해진 구조가 없기 때문에 다양한 구조로 데이터 저장이 가능하다.
데이터 모델의 유연한 변화가 가능하다.
단점
일관성이 보장되지 않는다.
많은 인덱스를 활용하려면 충분한 메모리가 필요하다.
종류
출처: https://inyl.github.io/programming/2017/05/09/database.html
데이터를 json document 형태로 저장한다.
보통의 SQL처럼 행과 열이 존재하는 것이 아니라 원하는 종류와 모양으로 저장할 수 있다.
데이터들은 같은 모양을 갖지 않아도 된다.
프론트엔드와 백엔드 간의 소통 언어로 JSON이 활용되기 때문에 편리한 이점이 있다.
트리형 구조로 레코드를 저장하거나 검색하는 데 효과적이다.
가장 큰 예시로 mongoDB가 있다.
출처: https://database.guide/what-is-a-graph-database/#more-896
column이나 document가 필요없고 각 노드 사이의 관계를 알아야 할 때 활용한다.
소셜 네트워크 시스템에서 주로 활용되며 데이터를 각각 저장하고 이를 관계망으로 연결한다.
관계형 데이터베이스보다 성능이 좋고 유연하여 유지보수에 용이하다.
출처: https://en.wikipedia.org/wiki/Key-value_database
기본적인 패턴으로 단순하게 Key-Value의 묶음으로 저장되는 구조이기 때문에 속도가 빠르고 분산 저장시 용이하다.
파티셔닝을 통해 다른 유형의 데이터베이스로는 불가능한 범위까지 수평 확장을 가능하게 한다.
가장 많이 활용하는 Key-Value DB로 Amazon Dynamo DB가 있다.
출처: https://database.guide/what-is-a-column-store-database/
행마다 키와 값을 저장할 때마다 각각 다른값의 다른 수의 스키마를 가질 수 있다.
대량의 데이터의 압축, 분산처리, SUM , COUNT 와 같은 집계 쿼리 및 쿼리 동작 속도, 확장성이 뛰어난 것이 대표적인 특징이다.
대표적인 DB로 Cassandra가 있다.