[CS : Database] NoSQL(비관계형 데이터베이스)
NoSQL(비관계형 데이터베이스)
1️⃣ 관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는데 특화되어있음.
2️⃣ 스키마 없이 사용가능하거나 느슨한 스키마를 제공하는 저장소
3️⃣ 기존 RDBMS 형태의 관계형 데이터베이스의 한계를 극복하기 위한 저장소의 새로운 형태
📌 특징
- RDBMS와 달리 데이터 간의 관계를 정의하지 않음.
→ JOIN 연산 불가능 - RDBMS에 비해 대용량 데이터 저장 가능함.
- 분산형 구조
→ 여러 곳의 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때 데이터 유실 혹은 서비스 중지가 발생하지 않도록 함. - 유동적인 테이블 스키마
→ 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용됨.
📌 장단점
🔋 장점
- RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
- 비정형 데이터 구조 설계 → 설계 비용 감소
- 빅데이터 처리에 효과적
- 가변적인 구조로 데이터 저장 가능
- 데이터 모델의 유연한 변화 가능
🪫 단점
- 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
- 많은 인덱스를 사용하려면 충분한 메모리 필요 → 인덱스 구조가 메모리에 저장됨.
- 데이터 일관성 항상 보장되지 않음.
📌 종류
1️⃣ Key-Value DB
: 기본적인 패턴, Key-Value 하나의 묶음(Unique)으로 저장되는 구조
- 속도가 빠르고 분산 저장 시 용이함.
- Key 안에 (Cloumn, Value) 형태로 된 여러 개의 필드(==Column Families)를 가짐.
- Server config, Session clustering 등에 활용
→ 엑세스 속도는 빠르지만, scan에 용이 x
2️⃣ Wide-Column DB
: 행마다 키와 해당 값을 저장할 때마다 각각 다른 값의 다른 수의 스키마를 가질 수 있음.
- 대량의 데이터의 압축, 분산처리, 집계 쿼리 및 쿼리 동작 속도, 확장성이 뛰어남.
3️⃣ Document DB
: 문서 전체를 컬렉션이라 불리는 그룹으로 구성하여 Key-Value 데이터 베이스의 개념을 확장한 형태
- 문서 내에 있는 모든 속성에 대한 쿼리를 허용함.
4️⃣ Graph DB
: 노드 및 에지 기반 모델을 바탕으로 상호 연결된 데이터를 표현하고 복잡한 관계를 간단하게 스토리지하고 살펴볼 수 있도록 함.
ex) 소셜 네트워크를 사용하는 사용자들 간의 관계
📌 참고 블로그
https://azderica.github.io/00-db-nosql/
[DB] NoSQL 데이터베이스 정리 - Azderica
NoSQL 해당 게시글은 NoSQL에 대한 내용을 간략하게 정리하고, 여러가지 NoSQL Database를 특징별로 정리합니다. RDB와의 차이 대부분 RDB와 NoSQL의 차이를 인지하고 있는데 이를 표로 간략하게 정리하면
azderica.github.io
https://aws.amazon.com/ko/nosql/
NoSQL이란 무엇인가요? | 비관계형 데이터베이스, 유연한 스키마 데이터 모델 | AWS
aws.amazon.com
https://www.oracle.com/kr/database/nosql/what-is-nosql/
개발자가 NoSQL 데이터베이스를 선호하는 이유
NoSQL 데이터베이스는 변화하는 요구사항에 빠르게 적응하기에 애자일 개발 방법론에 자연스럽게 부합합니다.
www.oracle.com