전통적인 관계형 데이터베이스의 한계를 극복하기 위해 등장한 비관계형 데이터베이스들을 총칭하는 말이다.
테이블 구조가 고정되어 있지 않고 유연한 형태로 데이터를 저장한다. key-value, document, graph 등이 있다.
관계형 DB보다 대규모 트래픽과 방대한 양의 비정현 데이터를 빠르게 처리하고 수평정 확장 구조를 통해 서버 확장이 용이하다!(클라우드 환경에서도 유리)
Document DB
JSON 객체와 비슷한 문서 형태로 데이터를 저장하는 형태를 말한다.
{
"_id": "12345",
"name": "foo bar",
"email": "foo@bar.com",
"address": {
"street": "123 foo street",
"city": "some city",
"state": "some state",
"zip": "123456"
},
"hobbies": ["music", "guitar", "reading"]
}
유연한 데이터 모델을 제공하여 반정형 데이터나 비정형 데이터 집합에 특히 적합하고 중첩된 구조도 지원해서 복잡한 관계나 계층적 데이터를 쉽게 표현할 수 있다고 한다.
(주식 망함)
key-value DB
프로젝트에 Redis가 있었는데 이것도 NoSQL을 설명할 때 말할 줄 몰랐다. 그저 Cache인줄만 알고 있었다.
어쨌든 key-value로만 이루어져 더 단순한 유형이다. 키는 고유해야하며 하나의 값으로만 연결이 된다. 캐싱과 세션 관리에 사용되며 메모리에 저장해 성능이 우수하다. Redis 뿐만 아니라 Amazon DynamoDB도 하나의 예시이다.
Key: user:12345
Value: {"name": "foo bar", "email": "foo@bar.com", "designation": "software developer"}
와이드 컬럼 저장소
이건 테이블 형태로 SQL과 비슷하지만 서로 다른 행마다 서로 다른 컬럼 집합을 가질 수 있다는 유연한 구조를 가지고 있다.
SQL에 유연성과 확장성을 결합한 형태로 받아들이면 될 것 같다.
데이터는 Row key를 기준으로 정렬되어 저장되며, 그 안에서 [컬럼명:값] 형태로 여러 개의 컬럼이 묶이는 구조이다.
| Row Key (Row ID) | 기본 정보 | 상품 클릭 정보 | ||
| user_1001 | name: 김코딩 | email: kim@test.com | ||
| user_1002 | name: 이데이터 | item_c101: 2026-05-04 | item_b202: 2026-05-02 | |
| user_1003 | name: 박시스템 | item_a111: 2026-05-03 |
- user_1001은 기본 정보만 가지고 있고 클릭한 상품 데이터는 없다.
- user_1002와 user_1003은 각각 서로 다른 개수의 상품 클릭 정보를 컬럼으로 가지고 있다.
- 이처럼 행마다 필요한 컬럼만 동적으로 생성하여 저장할 수 있다.
Graph DB
노드와 엣지 형태로 데이터를 저장하는 특징이 있다.
- 노드 (Node): 개체(Entity)를 나타낸다. (예: 사람, 장소, 상품 등)
- 속성 (Property): 노드나 간선이 가지는 세부 정보다. (예: 이름, 나이, 가입 날짜 등)
- 간선/관계 (Edge / Relationship): 노드와 노드 사이의 관계를 나타낸다. 간선은 방향과 유형을 가질 수 있으며, 관계 자체에 속성을 부여할 수도 있다. (예: "친구이다", "좋아한다", "근무한다" 등)
예시로는 Neo4J와 Amazon Neptune 등이 있다.

이 예시에서 그래프 데이터베이스는 다음과 같은 다양한 관계를 쿼리할 수 있다.
- 'Kevin Bacon을 Miss Piggy와 연결하는 가장 짧은 연결 고리는 무엇인가요?'
- A: 위의 Six Degrees 게임과 같이 최단 경로 분석을 사용하는 것입니다.
- '가장 많은 배우와 함께 작업한 사람은 누구인가요?'
- A: 차수 중심성을 활용해 가장 많은 공동 출연 기록을 가진 배우를 찾을 수 있습니다.
- 'Kevin Bacon과 다른 모든 배우들 간의 평균 거리는 얼마인가요?'
- A: 근접 중심성을 사용해 영화 산업에 속한 배우들 간의 높은 상호 연결성을 보여줄 수 있습니다.
https://www.oracle.com/kr/autonomous-database/what-is-graph-database/
출처
https://www.mongodb.com/ko-kr/resources/basics/databases/nosql-explained
What Is NoSQL? NoSQL Databases Explained
Learn what a NoSQL database is, why (and when!) you should use one, and how to get started using one.
www.mongodb.com
'Study > DataBase' 카테고리의 다른 글
| [DB/공부일지] 관계형 데이터베이스 (0) | 2026.05.04 |
|---|---|
| [DB/공부일지] DB와 DBMS의 차이 (0) | 2026.05.04 |
| [DB/공부일지] File Processing System (0) | 2026.05.04 |