NoSQL 튜토리얼: NoSQL 데이터베이스의 유형 및 예

NoSQL이란 무엇입니까?

NoSQL 데이터베이스는 고정된 스키마가 필요하지 않은 비관계형 데이터 관리 시스템입니다. 조인을 방지하고 확장이 쉽습니다. NoSQL 데이터베이스를 사용하는 주요 목적은 막대한 데이터 스토리지 요구 사항이 있는 분산 데이터 저장소를 위한 것입니다. NoSQL은 빅데이터 및 실시간 웹앱에 사용됩니다. 예를 들어 Twitter, Facebook, Google과 같은 회사는 매일 테라바이트 규모의 사용자 데이터를 수집합니다.

NoSQL 데이터베이스 "Not Only SQL" 또는 "Not SQL"을 의미합니다. 더 나은 용어는 "NoREL"이지만 NoSQL이 인기를 끌었습니다. Carl Strozz는 1998년에 NoSQL 개념을 도입했습니다.

기존 RDBMS는 SQL 구문을 사용하여 추가 통찰력을 위해 데이터를 저장하고 검색합니다. 대신, NoSQL 데이터베이스 시스템은 정형, 반정형, 비정형 및 다형성 데이터를 저장할 수 있는 광범위한 데이터베이스 기술을 포괄합니다. 이 NoSQL 데이터베이스 튜토리얼의 다이어그램을 통해 NoSQL에 대해 이해해 보겠습니다.

NoSQL 데이터베이스

왜 NoSQL인가?

NoSQL 데이터베이스의 개념은 Google, Facebook, Amazon등 엄청난 양의 데이터를 다루는 사람입니다. 대용량 데이터에 RDBMS를 사용하면 시스템 응답 시간이 느려집니다.

이 문제를 해결하려면 기존 하드웨어를 업그레이드하여 시스템을 "확장"할 수 있습니다. 이 과정은 비용이 많이 듭니다.

이 문제에 대한 대안은 로드가 증가할 때마다 데이터베이스 로드를 여러 호스트에 분산시키는 것입니다. 이 방법을 "스케일 아웃"이라고 합니다.

NoSQL

NoSQL 데이터베이스는 비관계형이므로 웹 애플리케이션을 염두에 두고 설계되었기 때문에 관계형 데이터베이스보다 확장성이 뛰어납니다.

NoSQL 데이터베이스의 간략한 역사

  • 1998년 - Carlo Strozzi는 경량 오픈 소스 관계형 데이터베이스에 NoSQL이라는 용어를 사용합니다.
  • 2000년 - 그래프 데이터베이스 Neo4j가 출시되었습니다
  • 2004년 - 구글 빅테이블 출시
  • 2005- CouchDB 시작됩니다
  • 2007-에 관한 연구 논문 Amazon 다이나모 출시
  • 2008년 - 페이스북의 오픈소스 Cassandra 프로젝트
  • 2009년 - NoSQL이라는 용어가 다시 도입되었습니다.

NoSQL의 특징

비 관계형

  • NoSQL 데이터베이스는 절대 다음을 따르지 않습니다. 관계형 모델
  • 플랫 고정 열 레코드가 있는 테이블을 제공하지 마십시오.
  • 자체 포함 집계 또는 BLOB 작업
  • 객체 관계형 매핑 및 데이터 정규화가 필요하지 않습니다.
  • 쿼리 언어, 쿼리 플래너, 참조 무결성 조인, ACID와 같은 복잡한 기능이 없습니다.

스키마 프리

  • NoSQL 데이터베이스는 스키마가 없거나 완화된 스키마를 갖습니다.
  • 데이터 스키마에 대한 어떤 종류의 정의도 필요하지 않습니다.
  • 동일한 도메인에서 다양한 데이터 구조를 제공합니다.
NoSQL의 특징
NoSQL은 스키마가 없습니다

간단한 API

  • 제공된 데이터 저장 및 쿼리를 위해 사용하기 쉬운 인터페이스 제공
  • API를 사용하면 낮은 수준의 데이터 조작 및 선택 방법을 사용할 수 있습니다.
  • JSON을 사용하는 HTTP REST에 주로 사용되는 텍스트 기반 프로토콜
  • 표준 기반이 아닌 NoSQL 쿼리 언어를 주로 사용함
  • 인터넷 연결 서비스로 실행되는 웹 기반 데이터베이스

분산

  • 여러 NoSQL 데이터베이스를 분산 방식으로 실행할 수 있습니다.
  • 자동 확장 및 장애 조치 기능 제공
  • 종종 확장성과 처리량을 위해 ACID 개념을 희생할 수 있습니다.
  • 분산 노드 간 동기 복제는 거의 없음 비동기 멀티 마스터 복제, 피어 투 피어, HDFS 복제
  • 최종 일관성만 제공
  • 공유된 내용 없음 Archi강의. 이렇게 하면 조정이 줄어들고 배포가 더 많이 가능해집니다.
NoSQL의 특징
NoSQL은 공유되지 않습니다.

NoSQL 데이터베이스 유형

NoSQL 데이터베이스 크게 키-값 쌍, 열 지향, 그래프 기반, 문서 지향의 네 가지 유형으로 분류됩니다. 모든 카테고리에는 고유한 속성과 제한 사항이 있습니다. 위에 지정된 데이터베이스 중 어느 것도 모든 문제를 해결하는 데 더 좋지 않습니다. 사용자는 제품 요구 사항에 따라 데이터베이스를 선택해야 합니다.

NoSQL 데이터베이스 유형:

  • 키-값 쌍 기반
  • 열 중심 그래프
  • 그래프 기반
  • 문서 중심

NoSQL 데이터베이스 유형

키-값 쌍 기반

데이터는 키/값 쌍으로 저장됩니다. 많은 양의 데이터와 무거운 부하를 처리할 수 있도록 설계되었습니다.

키-값 쌍 스토리지 데이터베이스는 각 키가 고유한 해시 테이블로 데이터를 저장하며 값은 JSON, BLOB(Binary Large Objects), 문자열 등이 될 수 있습니다.

예를 들어 키-값 쌍에는 "Guru99"와 같은 값과 연결된 "Website"와 같은 키가 포함될 수 있습니다.

키-값 쌍 기반

가장 기본적인 NoSQL 데이터베이스 예제 중 하나입니다. 이러한 종류의 NoSQL 데이터베이스는 컬렉션, 사전, 연관 배열 등으로 사용됩니다. 키 값 저장소는 개발자가 스키마 없는 데이터를 저장하는 데 도움이 됩니다. 장바구니 내용에 가장 적합합니다.

Redis, Dynamo, Riak은 키-값 저장소 데이터베이스의 NoSQL 예입니다. 그들은 모두를 기반으로 Amazon의 Dynamo 종이입니다.

열 기반

열 지향 데이터베이스는 열에서 작동하며 Google의 BigTable 문서를 기반으로 합니다. 모든 열은 별도로 처리됩니다. 단일 열 데이터베이스의 값은 연속적으로 저장됩니다.

열 기반 NoSQL 데이터베이스

열 기반 NoSQL 데이터베이스

SUM, COUNT와 같은 집계 쿼리에서 높은 성능을 제공합니다. AVG, MIN 등. 데이터는 열에서 쉽게 사용할 수 있습니다.

컬럼 기반 NoSQL 데이터베이스는 데이터 웨어하우스를 관리하는 데 널리 사용됩니다. 비즈니스 인텔리전스, CRM, 도서관 카드 카탈로그,

H베이스, Cassandra, HBase, Hypertable은 컬럼 기반 데이터베이스의 NoSQL 쿼리 예제입니다.

문서 지향

Document-Oriented NoSQL DB는 데이터를 키 값 쌍으로 저장하고 검색하지만 값 부분은 문서로 저장됩니다. 문서는 JSON 또는 XML 형식으로 저장됩니다. 값은 DB에서 이해되고 쿼리될 수 있습니다.

관계형 대. 문서

관계형 대. 문서

왼쪽 다이어그램에는 행과 열이 있고 오른쪽에는 JSON과 유사한 구조를 가진 문서 데이터베이스가 있는 것을 볼 수 있습니다. 이제 관계형 데이터베이스의 경우 어떤 열이 있는지 등을 알아야 합니다. 그러나 문서 데이터베이스의 경우 JSON 개체와 같은 데이터 저장소가 있습니다. 유연하게 만드는 것을 정의할 필요가 없습니다.

문서 유형은 주로 CMS 시스템, 블로깅 플랫폼, 실시간 분석 및 전자 상거래 애플리케이션에 사용됩니다. 다양한 집계 구조에 대한 여러 작업이나 쿼리가 필요한 복잡한 거래에는 사용해서는 안 됩니다.

Amazon 단순DB, CouchDB, MongoDB, 리악, 로터스 노츠, MongoDB, 인기 있는 문서에서 유래되었습니다. DBMS 시스템.

그래프 기반

그래프 유형 데이터베이스는 엔터티와 해당 엔터티 간의 관계를 저장합니다. 엔터티는 관계가 에지인 노드로 저장됩니다. Edge는 노드 간의 관계를 제공합니다. 모든 노드와 엣지에는 고유한 식별자가 있습니다.

그래프 기반

테이블이 느슨하게 연결된 관계형 데이터베이스에 비해 그래프 데이터베이스는 본질적으로 다중 관계형 데이터베이스입니다. 이미 DB에 캡쳐되어 있어 순회관계가 빠르고 계산할 필요가 없습니다.

소셜 네트워크, 물류, 공간 데이터에 주로 사용되는 그래프 기반 데이터베이스입니다.

Neo4J, 무한 그래프, OrientDB, FlockDB는 널리 사용되는 그래프 기반 데이터베이스입니다.

NoSQL용 쿼리 메커니즘 도구

가장 일반적인 데이터 검색 메커니즘은 GET 리소스를 사용하여 키/ID를 기반으로 값을 REST 기반으로 검색하는 것입니다.

문서 저장소 데이터베이스는 키-값 쌍의 값을 이해하므로 더 어려운 쿼리를 제공합니다. 예를 들어, CouchDB MapReduce로 뷰 정의 가능

CAP 정리란 무엇입니까?

CAP 정리는 브루어의 정리라고도 합니다. 분산 데이터 저장소가 XNUMX가지 보장 중 XNUMX가지 이상을 제공하는 것은 불가능하다고 명시되어 있습니다.

  1. 일관성
  2. 유효성
  3. 파티션 공차

일관성 :

데이터는 작업 실행 후에도 일관성을 유지해야 합니다. 즉, 데이터가 기록되면 이후의 모든 읽기 요청에 해당 데이터가 포함되어야 합니다. 예를 들어, 주문 상태를 업데이트한 후에는 모든 클라이언트가 동일한 데이터를 볼 수 있어야 합니다.

운영시간:

데이터베이스는 항상 사용 가능하고 응답성이 있어야 합니다. 가동 중지 시간이 없어야 합니다.

파티션 허용오차:

Partition Tolerance는 서버 간의 통신이 불안정하더라도 시스템이 계속 작동해야 함을 의미합니다. 예를 들어, 서버는 서로 통신할 수 없는 여러 그룹으로 분할될 수 있습니다. 여기서 데이터베이스의 일부를 사용할 수 없는 경우 다른 부분은 항상 영향을 받지 않습니다.

최종 일관성

"최종 일관성"이라는 용어는 고가용성과 확장성을 얻기 위해 여러 시스템에 데이터 복사본을 보유하는 것을 의미합니다. 따라서 한 시스템의 데이터 항목에 대한 변경 사항은 다른 복제본으로 전파되어야 합니다.

데이터 복제는 즉각적이지 않을 수 있는데, 일부 사본은 즉시 업데이트되고 다른 사본은 적절한 시간이 지나면서 업데이트되기 때문입니다. 이러한 사본은 상호적일 수 있지만 적절한 시간이 지나면서 일관성을 갖게 됩니다. 따라서 최종 일관성이라는 이름이 붙었습니다.

베이스: B비정상적으로 A유효한, S자주 상태, E의도적 일관성

  • 기본적으로 사용 가능이란 CAP 정리에 따라 DB가 항상 사용 가능함을 의미합니다.
  • 소프트 상태는 입력이 없어도 가능함을 의미합니다. 시스템 상태가 변경될 수 있음
  • 최종 일관성은 시스템이 시간이 지남에 따라 일관성을 유지한다는 것을 의미합니다.

최종 일관성

NoSQL의 장점

  • 기본 또는 분석 데이터 소스로 사용할 수 있습니다.
  • 빅데이터 역량
  • 단일 장애 지점 없음
  • 간편한 복제
  • 별도의 캐싱 계층이 필요하지 않음
  • 빠른 성능과 수평 확장성을 제공합니다.
  • 구조화된 데이터, 반구조화된 데이터, 구조화되지 않은 데이터를 동일한 효과로 처리할 수 있습니다.
  • 사용하기 쉽고 유연한 객체지향 프로그래밍
  • NoSQL 데이터베이스에는 전용 고성능 서버가 필요하지 않습니다.
  • 주요 개발자 언어 및 플랫폼 지원
  • RDBMS를 사용하는 것보다 구현이 간단합니다.
  • 이는 온라인 애플리케이션의 기본 데이터 소스 역할을 할 수 있습니다.
  • 데이터 속도, 다양성, 양, 복잡성을 관리하는 빅데이터를 처리합니다.
  • 분산 데이터베이스 및 다중 데이터 센터 운영에 능숙합니다.
  • 데이터를 저장하기 위해 특정 캐싱 계층이 필요하지 않습니다.
  • 다운타임이나 서비스 중단 없이 쉽게 변경할 수 있는 유연한 스키마 설계 제공

NoSQL의 단점

  • 표준화 규칙 없음
  • 제한된 쿼리 기능
  • RDBMS 데이터베이스와 도구가 비교적 성숙함
  • 여러 트랜잭션이 동시에 수행될 때 일관성을 유지하는 등 전통적인 데이터베이스 기능을 제공하지 않습니다.
  • 데이터 양이 증가하면 키가 어려워져 고유한 값을 유지하기가 어렵습니다.
  • 관계형 데이터에서는 잘 작동하지 않습니다.
  • 새로운 개발자에게는 학습 곡선이 빡빡합니다.
  • 오픈 소스 옵션은 기업에게는 그다지 인기가 없습니다.

제품 개요

  • NoSQL은 고정된 스키마가 필요하지 않고 조인이 필요 없으며 확장이 쉬운 비관계형 DMS입니다.
  • NoSQL 데이터베이스의 개념은 Google, Facebook, Amazon등, 엄청난 양의 데이터를 다루는 사람
  • 1998년 - Carlo Strozzi는 경량 오픈 소스 관계형 데이터베이스에 NoSQL이라는 용어를 사용했습니다.
  • NoSQL 데이터베이스는 관계형 모델을 따르지 않으며 스키마가 없거나 완화된 스키마를 갖습니다.
  • NoSQL 데이터베이스의 1가지 유형은 2)입니다. 키-값 쌍 기반 3). 열 중심 그래프 4). 그래프 기반 XNUMX). 문서 중심
  • NOSQL은 구조화된 데이터, 반구조화된 데이터, 구조화되지 않은 데이터를 동일한 효과로 처리할 수 있습니다.
  • CAP 정리는 일관성(Consistency), 가용성(Availability), 분할 허용(Partition Tolerance) 세 단어로 구성됩니다.
  • BASE는 다음을 의미합니다. B비정상적으로 A유효한, S자주 상태, E의도적 일관성
  • "최종 일관성"이라는 용어는 고가용성과 확장성을 얻기 위해 여러 시스템에 데이터 복사본을 보유하는 것을 의미합니다.
  • NOSQL 제한된 쿼리 기능 제공