차례:
- 스키마에 무관계 한
- 비 관계형 관계형 데이터베이스 관리 시스템은 20 년 이상 응용 프로그램 데이터를 저장하는 주요 방법이었습니다. 그들을 뒷받침하는 이론을 입증하기 위해 많은 수학적 연구가 수행되었습니다.
- 상용 서버
비디오: 운영체제 수준에서의 데이터베이스 성능 분석과 최적화 2024
NoSQL의 네 가지 핵심 기능은 다음 목록에 나와 있으며 대부분의 NoSQL 데이터베이스에 적용됩니다. 이 목록은 NoSQL과 전통적인 관계형 DBMS를 비교합니다.
-
스키마 불가 지론: 데이터베이스 스키마는 관계형 데이터베이스의 모든 가능한 데이터 및 데이터 구조에 대한 설명입니다. NoSQL 데이터베이스를 사용하면 스키마가 필요하지 않으므로 선행 스키마 설계를 수행하지 않고도 정보를 저장할 수 있습니다.
-
비 관계: 데이터베이스의 관계는 데이터 테이블 간의 연결을 설정합니다. 예를 들어 거래 세부 정보 목록을 별도의 배송 세부 정보 목록에 연결할 수 있습니다. NoSQL 데이터베이스를 사용하면이 정보가 집계로 저장됩니다. 배달 주소를 포함하여 트랜잭션에 관한 모든 정보가 포함 된 단일 레코드입니다.
-
상품 하드웨어: 일부 데이터베이스는 특수 저장 및 처리 하드웨어로 가장 잘 작동하도록 설계되었습니다. NoSQL 데이터베이스를 사용하면 값싼 기성품 서버를 사용할 수 있습니다. 저렴한 서버를 더 추가하면 NoSQL 데이터베이스를 확장하여 더 많은 데이터를 처리 할 수 있습니다.
-
고도로 배포 가능: NoSQL 데이터베이스를 사용하면 하나의 대형 데이터베이스를 보유하기 위해 서버 클러스터를 사용할 수 있습니다.
스키마에 무관계 한
NoSQL 데이터베이스는 스키마에 독립적입니다. NoSQL 데이터베이스에 데이터를 저장하기 전에 많은 사전 설계 작업을 수행 할 필요가 없습니다. 데이터베이스가 저장되고 내부적으로 작동하는 f}을 모른 채로 코딩을 시작하고 데이터를 저장 W 검색 할 수 있습니다. 고급 기능이 필요한 경우 수동으로 추가 색인을 추가하거나 데이터 저장소 구조를 조정할 수 있습니다. Schema Agnosticism은 NoSQL과 관계형 데이터베이스 간의 가장 중요한 차이 일 수 있습니다.
스키마에 독립적 인 데이터베이스의 큰 이점은 개발 시간이 단축된다는 것입니다. 이 이점은 여러 개발 릴리스를 거치고 데이터베이스의 내부 데이터 구조를 변경해야 할 때 증가합니다.
예를 들어, 전통적인 RDBMS에서는 스키마 재 설계 프로세스를 진행합니다. 스키마는 예상 할 데이터를 데이터베이스에 지시합니다. 저장된 데이터 또는 구조를 변경하고 수정 된 스키마를 사용하여 데이터베이스를 다시 구성해야합니다. 변경하려는 경우 기존 데이터를 다시 설계하는 방법을 결정하는 데 많은 시간을 할애해야합니다. NoSQL 데이터베이스에서는 단순히 다른 데이터 구조 만 저장하면됩니다. 데이터베이스에 미리 말할 필요가 없습니다.
이에 따라 쿼리를 수정해야 할 수도 있습니다. 가끔 특정 인덱스 (예: 데이터 유형별 쿼리보다 작거나 같은 정수 범위 인덱스)를 추가 할 수도 있지만 전체 프로세스는 다음과 같습니다. RDBMS보다 훨씬 덜 고통 스럽습니다.
RDBMS는 유연함 때문에 SQL을 사용하여 쿼리 변경 속도가 빨라졌습니다. NoSQL 데이터베이스는 스키마와 쿼리를 모두 변경할 수있는 유연성을 제공하므로 시간이 지남에 점점 더 많이 채택 될 것입니다.
쿼리에서도 스키마 변경 사항에 대해 너무 많이 걱정하지 않아도됩니다. 필드 계정 번호에 대한 인덱스를 고려하십시오. 여기서 계정 번호 는 저장된 문서의 어느 곳에 나 위치 할 수 있습니다 NoSQL 데이터베이스. 구조를 변경하고 계정 번호 가 저장된 위치를 변경할 수 있으며, 요소가 문서의 다른 곳에 동일한 이름을 가지고 있으면 쿼리 메커니즘을 변경하지 않고도 쿼리에 계속 사용할 수 있습니다.
모든 NoSQL 데이터베이스가 완전히 스키마에 독립적 인 것은 아닙니다. HBase와 같은 일부에서는 열 정의를 변경하기 위해 데이터베이스를 중지해야합니다. 아직 정의 된 모든 필드 (이 경우에는 열)가 각 레코드 (열 패밀리 만)에 미리 알려지기 때문에 NoSQL 데이터베이스로 간주됩니다.
RDBMS를 사용하면 레코드의 개별 필드를 null 값으로 식별 할 수 있습니다. RDBMS의 문제점은 레코드가 나중에 해당 열의 값을 가질 수있는 경우에 대비하여 스토리지가 null 값을 위해 예약 될 때 저장된 데이터 크기 및 성능에 부정적인 영향을 미친다는 점입니다. 카산드라에서는 단순히 열의 데이터를 제공하지 않아 문제를 해결할 수 있습니다.
비 관계형 관계형 데이터베이스 관리 시스템은 20 년 이상 응용 프로그램 데이터를 저장하는 주요 방법이었습니다. 그들을 뒷받침하는 이론을 입증하기 위해 많은 수학적 연구가 수행되었습니다.
이 토대는 테이블이 서로 어떻게 관련되어 있는지 설명합니다. 단일 Order 행은 많은 Delivery Address 행과 관련 될 수 있지만 각 Delivery Address 행은 여러 Order 행과 관련됩니다. 이것은 많은
- - - 많은 관계 입니다. NoSQL 데이터베이스에는 레코드 간의 관계 개념이 없습니다. 대신 데이터를 비정규 화합니다. 즉, NoSQL 데이터베이스에는 배달 주소가 포함 된 Order 구조가 있습니다. 이는 배달 주소가 주소를 사용하는 모든 주문 행에서 중복된다는 것을 의미합니다. 이 접근법은 여러 데이터 구조 (테이블)에 걸쳐 복잡한 쿼리 시간 조인을 요구하지 않는다는 장점이 있습니다. NoSQL 데이터베이스는 개별 레코드가 데이터베이스의 다른 레코드와 어떤 관련이 있는지에 대한 정보를 저장하지 않으므로 제한 사항처럼 들릴 수 있습니다. 그러나 NoSQL 데이터베이스는 저장할 수있는 데이터 구조 측면에서보다 유연합니다.
온라인 소매 업체의 주문을 고려하십시오. 주문에는 제품 코드, 수량, 품목 가격 및 품목 설명뿐만 아니라 배달 주소 및 지불 정보와 같은 주문자 정보가 포함될 수 있습니다.
관계형 데이터베이스의 다양한 테이블에 10 개의 행을 삽입하는 대신 JSON 또는 XML 문서와 같이 모든 주문 정보에 대해 단일 구조를 저장할 수 있습니다. 관계형 데이터베이스 이론에서 목표는 데이터를 정규화 (즉, 중복 된 데이터를 제거하기 위해 필드와 테이블을 구성하는 것)하는 것입니다.
NoSQL - 데이터베이스 - 특히 문서 또는 집계 데이터베이스 - 의도적으로 비정규 화하여 일부 데이터를 여러 번 저장합니다.
예를 들어 고객이 한 번 저장하고 여러 주문에서 참조하기보다는 시간이 지남에 따라 여러 차례에 걸쳐 여러 번에 걸쳐 "고객 배달 주소"를 여러 번 저장할 수 있습니다. 그렇게하려면 추가 저장 공간이 필요하고 응용 프로그램을 관리하는 데 약간의 사전 고려가 필요합니다. 왜 그렇게합니까?
데이터를 여러 번 저장하는 데는 두 가지 장점이 있습니다. 간편한 저장 및 검색: 저장하고 단일 레코드 만 가져옵니다.
쿼리 속도:
관계형 데이터베이스에서 쿼리 시간에 테이블간에 정보를 조인하고 제약 조건을 추가합니다. 데이터베이스 엔진은 많은 테이블을 평가해야 할 수도 있습니다. 서로 다른 테이블에서 더 많은 쿼리 제약 조건을 사용할수록 쿼리 속도가 빨라집니다. NoSQL 데이터베이스에서 쿼리를 평가하는 데 필요한 모든 정보는 단일 문서에 있습니다. 따라서 일치하는 문서 목록을 신속하게 확인할 수 있습니다.
-
관계형 뷰와 NoSQL 비정규 화는 레코드간에 데이터가 분산되는 문제에 대한 다른 접근법입니다. NoSQL에서는 동일한 데이터의 다른 뷰를 나타내는 여러 가지 비정규 화를 유지해야 할 수 있습니다. 이 접근법은 저장 비용을 증가 시키지만 더 나은 질의 시간을 제공합니다. 스토리지 비용이 계속 절감되고 개발 및 쿼리 속도가 빨라지므로 비정규화된 데이터 (일명
-
구체화 된 뷰 )는 NoSQL 솔루션을 할인하는 중요한 이유가 아닙니다. 그것은 장점과 단점을 가지고 같은 문제에 접근하는 다른 방법 일뿐입니다.
많은 NoSQL 데이터베이스에서 중요한 설계 결정은 단일 서버에 전체 데이터베이스를 보유하는 대신 여러 컴퓨터를 사용하여 단일 데이터베이스에 대한 데이터를 저장하는 것입니다.
여러 컴퓨터에 데이터를 저장하고 쿼리 할 수있게하는 것은 어렵습니다. 쿼리를 모든 서버로 보내고 응답을 기다려야합니다. 다행히 분산 된 쿼리를 처리하기 위해 서로 이야기하기에 충분히 빠르도록 기계를 설정하십시오! 이 접근법의 가장 큰 장점은 매우 큰 데이터 세트의 경우입니다. 일부 스토리지 요구 사항의 경우, 사용 가능한 최대 단일 서버조차도 필요한 모든 데이터를 저장하거나 처리 할 수 없기 때문입니다. 트위터와 페이스 북의 모든 메시지를 고려하십시오. 대부분의 사람들이 아침과 귀여운 고양이 비디오에 대해 가지고있는 것이 었더라도 모든 데이터를 효과적으로 관리하기 위해서는 분산 된 메커니즘이 필요합니다. 데이터베이스 배포의 장점은
상용 서버
라는 저렴한 서버를 사용할 수 있다는 것입니다.소규모 데이터 세트의 경우에도 단일 고성능 서버 대신 상용 서버 3 개를 구입하는 것이 더 저렴할 수 있습니다.
또 다른 주요 이점은 고 가용성 추가가 더 쉽다는 것입니다. 이미 데이터를 배포함으로써 중간에 이미 있습니다. 클러스터의 다른 서버간에 데이터를 한 번 또는 두 번 복제하면 서버 중 하나가 충돌, 화상 및 사망하더라도 데이터에 계속 액세스 할 수 있습니다.
모든 오픈 소스 데이터베이스가 지원되는 유료 버전의 데이터베이스를 개발 회사에서 사지 않는 한 모든 오픈 소스 데이터베이스가 고 가용성을 지원하는 것은 아닙니다.
고도로 분산 가능한 규칙의 예외는 그래프 데이터베이스의 예외입니다. 적시에 특정 그래프 쿼리에 효과적으로 응답하려면 데이터를 단일 서버에 저장해야합니다. 아무도 아직이 특별한 문제를 해결하지 못했습니다. 트리플 저장소 또는 그래프 저장소가 필요한지 신중하게 고려하십시오. 트리플 스토어는 일반적으로 배포 가능하지만 그래프 스토어는 그렇지 않습니다. 필요한 항목은 지원해야하는 쿼리에 따라 다릅니다.