오늘 CS 배운것을 작성해 둔다
4. NoSQL
4-1. 특징
-NoSQL이라고도 부르며, Not Only SQL의 줄임말이다
-이는 곧 SQL뿐만 아니라 다른 여러 장점을 가지고 있다는 소리이다.
-기존의 관계형 DB의 한계를 뛰어넘기 위해 만들어진 새로운 형태의 DB라서, 관계형 DB보다 더 융통성 있는 데이터 모델을 사용하며,
데이터의 저장 및 검색에 특화된 매커니즘을 제공한다
-NoSQL은 대부분 분산 환경에서의 데이터 처리를 더욱 빠르게 하기 위해 개발되었다.
4-2 종류
MongoDB - MongoDB에서 제작 방식은 문서, 운영체제는 Unix, Linux, Windows,Mac 에서 지원 오픈 소스이며 분산처리에 적합하다
Redis - Redis Labs에서 제작 Key-Value방식 Unix, Linux, Windows, Ma에서 지원, 오픈소스이며, 캐싱처리에 적합하다
DynamoDB - AWS에서 제작, Key-Value방식, AWS 클라우드(Unix,Linux,Windows)에서 작동, 오픈 소스이며 AWS에서만 사용가능하며 확장에 용이하다
HBase Apache 소프트웨어제단에서 제작, Wide-column Store방식 Linux에서 작동, 오픈소스이며, 빅데이터에 적합하다
Neo4j Neo4j Inc에서 제작, Graph방식이며 Unix, Linux, Windows, Mac에서 작동, 오픈소스이며, 추천 기능에 적합하다
(1)MongoDB
-유연한 스키마 : MongoDB는 유연한 문서 지향 데이터 모델을 사용하여 데이터를 저장. 이는 데이터의 구조를 동적으로
변경할 수 있음을 의미한다.
-분산 아키텍쳐 : MongoDB는 수평적으로 확장 가능한 분산 아키텍쳐를 제공하여 대규모 데이터 처리 및 고가용성을 지원
-문서형 DB 특징
1.JSON 객체와 비슷한 문서에 데이터를 저장
2.각 문서에는 필드와 값의 쌍이 포함
3.대량의 데이터를 수용하도록 수평 스케일아웃이 가능
(2)Redis
-인메모리 데이터 저장소 Redis는 데이터를 메모리에 저장하므로 매우 빠른 데이터 액세스와 응답 시간을 제공
-다양한 데이터 구조 : Redis는 문자열, 해시, 목록, 집합, 정렬된 집합 등 다양한 데이터 구조를 지원하여 유연한 데이터 모델링을 가능하게 한다.
-Key-Value DB 특징
1.NoSQL에서도 키값 DB가 존재
2.대량의 데이터를 저장해야 하지만 검색을 위해 복잡한 쿼리를 수행할 필요가 없는 경우 사용
3.사용자 선호도 저장 또는 캐싱에서 사용
(3)DynamoDB
-관리형 서비스 : DynamoDB는 AWS의 관리형 NoSQL DB 서비스로, 서버 관리와 확장성에 대한 부담을 줄여준다
-높은 확장성 : DynamoDB는 데이터의 크기나 트래픽의 증가에 따라 자동으로 확장되어 수평적으로 확장 가능한 성능을 제공한다.
-Key-Value DB 특징 (상동)
(4)HBase
-분산 저장 시스템 : HBase는 Hadoop 분산 파일 시스템(HDFS) 위에서 작동하며, 대용량 데이터의 분산 저장과 처리를 지원한다.
-일관된 읽기/쓰기 성능 : HBase는 일관된 읽기와 쓰기 성능을 제공하여 대규모 데이터에 대한 실시간 액세스를 지원한다.
-Wide-column store
1.테이블,행 및 동적 열에 데이터를 저장
2.각 행이 동일한 열을 가질 필요가 없다는 점에서 RDB에 비해 뛰어난 유연성을 제공
3.대량의 데이터 저장에 적합
4.IOT 데이터와 사용자 프로필 데이터 저장 시 사용
(5)Neo4j
-그래프 데이터베이스 : Neo4j는 그래프 DB로서 데이터 간의 관계를 중요시하고 효과적으로 저장하고 조회할 수 있다.
-ACID 트랜잭션 : Neo4j는 원자성, 일관성, 고립성, 지속성(ACID)을 보장하는 트랜잭션을 지원하여 데이터의 정합성과 신뢰성을 유지
-그래프 DB 특징
1.소셜 네트워킹, 추천 엔진 등에서 사용
2.정점과 간선에 데이터를 저장
3.정점에는 사람, 장소 및 사물에 대한 정보가 저장
4.간선에는 정점과의 관계에 대한 정보가 저장
결론적으로.(대체적으로)
데이터 구조가 정해져 있고, 내부 데이터 수정이 빈번할 때 -> SQL DB(RDB)가 좋다
테이블 구조가 정확히 잡혀있지 않고 (추가적으로 수정될 가능성이 높을 때)대량의 데이터를 처리할 때
->NoSQL DB가 적합
그리고 DBMS의 트렌드를 잘 따라가는것도 좋다!
'내일배움캠프 TIL' 카테고리의 다른 글
| 내일 배움 캠프 23_08_31 TIL (0) | 2023.08.31 |
|---|---|
| 내일 배움 캠프 23_08_30 TIL (0) | 2023.08.30 |
| 내일 배움 캠프 23_08_29 TIL (0) | 2023.08.29 |
| 내일 배움 캠프 23_08_28 TIL (0) | 2023.08.28 |
| 내일 배움 캠프 23_08_25 TIL (0) | 2023.08.25 |