NoSQL 데이터베이스 개요

NoSQL의 약자는 1998 년에 만들어졌습니다. 많은 사람들은 NoSQL이 SQL을 흉내 내기 위해 만들어진 비판적인 용어라고 생각합니다. 사실이 용어는 SQL뿐 아니라 다른 SQL을 의미합니다. 아이디어는 두 기술이 공존 할 수 있고 각각의 기술이 자리를 잡을 수 있다는 것입니다. NoSQL의 움직임은 지난 수년간 많은 웹 2.0 리더가 NoSQL 기술을 채택한 가운데 나온 뉴스입니다. Facebook, Twitter, Digg, Amazon, LinkedIn, Google과 같은 회사는 모두 NoSQL을 사용합니다.

NoSQL을 분석하여 CIO 또는 동료에게 설명 할 수 있도록하십시오.

NoSQL은 필요성으로부터 나왔습니다.

데이터 저장 : 세계에 저장된 디지털 데이터는 엑사 바이트 단위로 측정됩니다. 엑사 바이트는 10 억 기가 바이트 (GB)의 데이터와 같습니다. Internet.com에 따르면 2006 년에 추가 된 저장된 데이터의 양은 161 엑사 바이트였습니다. 2010 년 4 년 후, 저장되는 데이터의 양은 거의 1,000 ExaBytes가 될 것이며 이는 500 % 이상 증가 할 것입니다. 다시 말해서 세계에 많은 데이터가 저장되어 있으며 앞으로도 계속 성장할 것입니다.

상호 연결된 데이터 : 데이터가 지속적으로 연결됩니다. 하이퍼 링크로 창출 된 웹 제작, 블로그에는 핑백이 있으며 모든 주요 소셜 네트워크 시스템에는 사물을 묶는 태그가 있습니다. 주요 시스템은 상호 연결되도록 제작되었습니다.

복잡한 데이터 구조 : NoSQL은 계층 적으로 중첩 된 데이터 구조를 쉽게 처리 할 수 ​​있습니다. SQL에서 동일한 작업을 수행하려면 모든 종류의 키가있는 여러 개의 관계형 테이블이 필요합니다.

또한 성능과 데이터의 복잡성 사이에는 관계가 있습니다. 소셜 네트워킹 애플리케이션 및 시맨틱 웹에 필요한 대량의 데이터를 저장할 때 기존 RDBMS에서 성능이 저하 될 수 있습니다.

NoSQL이란 무엇입니까?

NoSQL을 정의하는 한 가지 방법은 그것이 아닌 것을 고려하는 것입니다.

그것은 SQL이 아니며 관계형이 아닙니다. 이름에서 알 수 있듯이 RDBMS를 대체하는 것이 아니라이를 칭찬합니다. NoSQL은 대규모 데이터 요구를위한 분산 데이터 저장소 용으로 설계되었습니다. 매일 500,000,000 명의 사용자 또는 트위터를 보유한 Facebook을 생각해보십시오.

NoSQL 데이터베이스에는 고정 스키마가없고 조인도 없습니다. RDBMS는 더 빠르고 더 빠른 하드웨어를 얻고 메모리를 추가함으로써 "확장"됩니다. 반면에 NoSQL은 "수평 확장"을 이용할 수 있습니다. 스케일 아웃은 많은 상품 시스템에 부하를 분산시키는 것을 의미합니다. 이것은 대규모 데이터 세트를위한 저렴한 솔루션이되는 NoSQL의 구성 요소입니다.

NoSQL 카테고리

현재 NoSQL 세계는 4 가지 기본 범주에 부합합니다.

  1. 키 - 값 저장소 는 2007 년에 작성된 Amazon의 Dynamo Paper 를 기반으로합니다. 주요 아이디어는 고유 한 키와 특정 데이터 항목에 대한 포인터가있는 해시 테이블의 존재입니다. 이러한 매핑에는 대개 성능을 최대화하기위한 캐시 메커니즘이 수반됩니다.
    Column Family Stores 는 많은 기계에 분산 된 매우 많은 양의 데이터를 저장하고 처리하기 위해 작성되었습니다. 여전히 키가 있지만 여러 열을 가리 킵니다. BigTable (Google의 Column Family NoSQL 모델)의 경우 행은 행 키로 식별되고이 키로 데이터를 정렬하여 저장합니다. 열은 열 패밀리에 의해 정렬됩니다.
  1. 문서 데이터베이스Lotus Notes 에서 영감을 얻었으며 키 - 값 저장소와 유사합니다. 모델은 기본적으로 다른 키 - 값 콜렉션의 콜렉션 인 버전 관리 된 문서입니다. 반 구조화 된 문서는 JSON과 같은 형식으로 저장됩니다.
  2. 그래프 데이터베이스 는 노드, 노트와 노드 속성 사이의 관계로 구축됩니다. 행과 열의 테이블과 SQL의 견고한 구조 대신 많은 기계에서 확장 가능한 유연한 그래프 모델이 사용됩니다.

주요 NoSQL 플레이어

NoSQL의 주요 업체는 주로 NoSQL을 채택한 조직으로 인해 나타났습니다. 가장 큰 NoSQL 기술 중 일부는 다음과 같습니다.

NoSQL 쿼리

NoSQL 데이터베이스를 쿼리하는 방법에 대한 질문은 대부분의 개발자가 관심을 갖고있는 것입니다. 어쨌든 거대한 데이터베이스에 저장된 데이터는 최종 사용자 나 웹 서비스에 검색하여 보여줄 수 없다면 누구에게도 도움이되지 않습니다. NoSQL 데이터베이스는 SQL과 같은 높은 수준의 선언적 쿼리 언어를 제공하지 않습니다. 대신 이러한 데이터베이스를 쿼리하는 것은 데이터 모델에 따라 다릅니다.

많은 NoSQL 플랫폼은 데이터에 대한 RESTful 인터페이스를 허용합니다. 다른 오퍼 질의 API. 여러 NoSQL 데이터베이스를 쿼리하려고 개발 된 몇 가지 쿼리 도구가 있습니다. 이러한 도구는 일반적으로 단일 NoSQL 범주에서 작동합니다. 한 가지 예가 SPARQL입니다. SPARQL은 그래프 데이터베이스 용으로 설계된 선언적 쿼리 사양입니다. 다음은 특정 블로거의 URL을 검색하는 SPARQL 쿼리의 예입니다 (IBM의 호의).

PREFIX foaf :
SELECT? url
FROM
어디에서 {
기고가 foaf : 이름 "Jon Foobar".
기고인 foaf : weblog? url.
}

미래의 NoSQL

방대한 데이터 스토리지를 필요로하는 조직은 NoSQL을 진지하게 고려하고 있습니다. 분명히,이 개념은 소규모 조직에서 그다지 주목받지 못하고 있습니다. Information Week가 실시한 설문 조사에서 44 %의 비즈니스 IT 전문가가 NoSQL에 대해 들어 보지 못했습니다. 또한 응답자의 1 %만이 NoSQL이 전략적 방향의 일부라고보고했습니다. 분명히 NoSQL은 연결된 세상에 자리를 잡고 있지만 많은 사람들이 생각할 수있는 대중적 호소력을 얻기 위해 계속 진화 할 필요가 있습니다.