목차
NoSQL이란
NoSQL은 = "Not Only SQL"의 약자로 SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 뜻한다.
NoSQL은 비관계형 데이터베이스 유형을 가리키며 데이터 베이스 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하며 질의한다.
이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 구성한다. 데이터를 구성하는 방법으로는 리스트, 해시 테이블, 트리, 그래프 등의 다양한 방법이 있고 각각의 방식은 명확한 장단점이 존재한다.
NoSQL의 장점
1. 스키마 유연성: NoSQL은 스키마가 동적이거나 덜 제한적이어서 데이터 모델을 쉽게 조정하고 변경할 수 있다.
2. 분산처리: NoSQL은 대부분 분산 데이터베이스로 설계되어 있어 대량의 데이터를 여러 서버에 분산하여 처리할 수 있다.
3. 높은 가용성과 확장성: NoSQL은 높은 가용성과 확장성을 제공하여 시스템이 확장될 때 성능이 떨어지지 않도록 한다.
4. 다양한 데이터 모델: NoSQL은 다양한 데이터 모델을 지원한다. 주요 모델로는 문서 지향, 키-값, 와이드 컬럼, 그래프 등이 있다.
NoSQL의 단점
- 낮은 일관성
- Key에 대한 입출력만 지원
- 데이터에 대한 규격화가 되어 있지 않음
- 데이터가 여러 컬렉션에 있을 경우 속도가 느림
- 데이터 중복에 따른 수정 작업의 번거로움
NoSQL의 주요 유형
- Key-Value
Redis, AWS DynamoDB, Riak - Document
MongoDB, Azure Cosmose DB, Couch DB, Mark Login, OrientDB - Graph
Neo4 j, Blazegraph, OrientDB - Wide-Column
Cassandra, HBase
1. 키-값 데이터베이스(Key-Value Stores): Redis, DynamoDB, Riak
- 키와 값의 쌍으로 데이터를 저장하는 방식
- 주로 캐시나 설정 데이터와 같이 단순한 데이터에 사용
2. 문서 지향 데이터베이스(Document Stores): MongoDB, Azure Cosmose DB, Couch DB, Mark Login, OrientDB
- NoSQL에서 가장 많이 사용되는 타입
- 여러 필드를 포함하고 있어 복잡한 구조의 데이터를 표현 가능
3. 그래프 데이터베이스(Graph Databases): Neo4j, Amazon Neptune, Blazegraph, OrientDB
- 계형 데이터를 표현하기 위해 그래프 구조를 사용하는 데이터 모델
- Node와 Edge로 구성
4. 와이드 컬럼 데이터베이스(Wide-Column Stores): Cassandra, HBase
- 열 기반의 데이터 모델을 사용하여 테이블을 열의 집합으로 표현
- 각 로우는 여러 가지 컬럼데이터를 가질 수 있다.
NoSQL 과 RDBMS의 차이
NoSQL | SQL | |
데이터 중복 |
데이터 중복 O
(데이터의 최신을 보장X)
|
데이터 중복 X
(데이터의 무결성 보장)
|
확장성 | 수직적, 수평적 확장 가능 |
대체로 수직적 확장
(수평적 확장이 불가능한것은 아님)
|
구조 |
스키마가 없음
(관계형 모델 사용X)
|
명확하게 정의된 스키마 형식
(관계형 모델 사용)
|
사용 |
읽기를 자주 하지만,
데이터 변경이 없는 경우
|
데이터가 자주 변경되는 경우 |
'개발지식' 카테고리의 다른 글
NCP를 이용한 서버 관리 (0) | 2024.09.09 |
---|---|
Web에 대한 이해도 높이기 (0) | 2024.05.28 |