MongoDB? 소개, Archi강의, 특징 및 예시
MongoDB?
MongoDB 대용량 데이터 저장에 사용되는 문서 중심의 NoSQL 데이터베이스입니다. 기존 관계형 데이터베이스처럼 테이블과 행을 사용하는 대신 MongoDB 컬렉션과 문서를 활용합니다. 문서는 데이터의 기본 단위인 키-값 쌍으로 구성됩니다. MongoDB. 컬렉션에는 관계형 데이터베이스 테이블과 동등한 문서 및 기능 세트가 포함됩니다. MongoDB 2000년대 중반쯤에 등장한 데이터베이스이다.
MongoDB 기능
- 각 데이터베이스에는 문서가 포함된 컬렉션이 포함되어 있습니다. 각 문서는 다양한 필드 수에 따라 다를 수 있습니다. 각 문서의 크기와 내용은 서로 다를 수 있습니다.
- 문서 구조는 개발자가 각자의 프로그래밍 언어로 클래스와 객체를 구성하는 방식과 더 유사합니다. 개발자는 자신의 클래스가 행과 열이 아니라 키-값 쌍으로 구성된 명확한 구조를 가지고 있다고 말하는 경우가 많습니다.
- 행(또는 호출된 문서 MongoDB) 미리 정의된 스키마가 필요하지 않습니다. 대신 필드를 즉시 생성할 수 있습니다.
- 내에서 사용 가능한 데이터 모델 MongoDB 계층적 관계를 표현하고 배열과 다른 더 복잡한 구조를 보다 쉽게 저장할 수 있게 해줍니다.
- 확장성 – MongoDB 환경은 매우 확장 가능합니다. 전 세계 기업들은 데이터베이스 내에 약 수백만 개의 문서가 있는 100개 이상의 노드를 실행하는 클러스터를 정의했습니다.
MongoDB 예시
아래 예는 문서를 모델링하는 방법을 보여줍니다. MongoDB.
- _id 필드는 다음에 의해 추가됩니다. MongoDB 컬렉션의 문서를 고유하게 식별합니다.
- 주목할 수 있는 점은 RDBMS의 주문 데이터(OrderID, Product 및 Quantity)는 일반적으로 별도의 테이블에 저장된다는 것입니다. MongoDB 실제로 컬렉션 자체에 포함된 문서로 저장됩니다. 이는 데이터가 모델링되는 방식의 주요 차이점 중 하나입니다. MongoDB.
주요 구성 요소 MongoDB Archi강의
다음은 에서 사용되는 몇 가지 일반적인 용어입니다. MongoDB
- _신분증 – 이 필드는 모든 작업에 필수입니다. MongoDB 문서. _id 필드는 MongoDB 문서. _id 필드는 문서의 기본 키와 같습니다. _id 필드 없이 새 문서를 생성하는 경우, MongoDB 자동으로 필드가 생성됩니다. 예를 들어 위 고객 테이블의 예를 보면 Mongo DB는 컬렉션의 각 문서에 24자리 고유 식별자를 추가합니다.
_ID | 고객 ID | 고객 이름 | 주문 아이디 |
---|---|---|---|
563479cc8a8a4246bd27d784 | 11 | Guru99 | 111 |
563479cc7a8a4246bd47d784 | 22 | 트레버 스미스 | 222 |
563479cc9a8a4246bd57d784 | 33 | 니콜 | 333 |
- 수집 – 이것은 다음의 그룹입니다. MongoDB 서류. 컬렉션은 다음과 같은 다른 RDMS에서 생성된 테이블과 동일합니다. Oracle 또는 MS SQL. 컬렉션은 단일 데이터베이스 내에 존재합니다. 소개에서 볼 수 있듯이 컬렉션은 어떤 종류의 구조도 강제하지 않습니다.
- 커서 – 이는 쿼리 결과 집합에 대한 포인터입니다. 클라이언트는 커서를 통해 반복하여 결과를 검색할 수 있습니다.
- 데이터베이스 – RDMS와 같은 컬렉션용 컨테이너로 테이블용 컨테이너입니다. 각 데이터베이스는 파일 시스템에서 자체 파일 세트를 가져옵니다. ㅏ MongoDB 서버는 여러 데이터베이스를 저장할 수 있습니다.
- 문서 – A의 기록 MongoDB 컬렉션은 기본적으로 문서라고 불립니다. 문서는 필드 이름과 값으로 구성됩니다.
- 분야 – 문서의 이름-값 쌍. 문서에는 11개 이상의 필드가 있습니다. 필드는 관계형 데이터베이스의 열과 유사합니다. 다음 다이어그램은 키 값 쌍이 있는 필드의 예를 보여줍니다. 따라서 아래 예에서 CustomerID와 XNUMX은 문서에 정의된 키 값 쌍 중 하나입니다.
- JSON – 이것은 다음과 같이 알려져 있습니다. Java스크립트 객체 표기법. 구조화된 데이터를 표현하기 위한 사람이 읽을 수 있는 일반 텍스트 형식입니다. JSON은 현재 많은 프로그래밍 언어에서 지원됩니다.
_id 필드와 일반 컬렉션 필드 간의 주요 차이점에 대해 간단히 알아보세요. _id 필드는 컬렉션의 문서를 고유하게 식별하는 데 사용되며 자동으로 추가됩니다. MongoDB 컬렉션이 생성될 때.
왜 사용 하는가? MongoDB?
다음은 왜 사용을 시작해야 하는지에 대한 몇 가지 이유입니다. MongoDB
- 문서 중심 – 이후 MongoDB 하는 NoSQL 유형 데이터베이스는 관계형 형식으로 데이터를 보유하는 대신 데이터를 문서에 저장합니다. 이것은 만든다 MongoDB 실제 비즈니스 상황과 요구 사항에 매우 유연하고 적응력이 뛰어납니다.
- 임시 쿼리 – MongoDB 필드별 검색, 범위 쿼리, 정규 표현식 검색을 지원합니다. 문서 내의 특정 필드를 반환하기 위한 쿼리를 만들 수 있습니다.
- 인덱싱 – 인덱스를 생성하여 검색 성능을 향상시킬 수 있습니다. MongoDB. 다음의 모든 필드 MongoDB 문서를 색인화할 수 있습니다.
- 복제 - MongoDB 복제본 세트로 고가용성을 제공할 수 있습니다. 복제본 세트는 두 개 이상의 mongo DB 인스턴스로 구성됩니다. 각 복제본 세트 멤버는 언제든지 기본 복제본 또는 보조 복제본 역할을 할 수 있습니다. 기본 복제본은 클라이언트와 상호 작용하고 모든 읽기/쓰기 작업을 수행하는 주 서버입니다. 보조 복제본은 기본 복제를 사용하여 기본 복제본의 데이터 사본을 유지 관리합니다. 기본 복제본이 실패하면 복제본 세트는 자동으로 보조 복제본으로 전환된 다음 기본 서버가 됩니다.
- 로드 밸런싱 – MongoDB 여러 데이터에 걸쳐 데이터를 분할하여 수평으로 확장하기 위해 샤딩 개념을 사용합니다. MongoDB 인스턴스. MongoDB 여러 서버에서 실행되어 로드 균형을 맞추고 데이터를 복제하여 하드웨어 오류가 발생하는 경우에도 시스템을 계속 가동할 수 있습니다.
데이터 모델링 MongoDB
소개 부분에서 본 것처럼, MongoDB 유연한 스키마를 가지고 있습니다. 와는 달리 SQL 데이터를 삽입하기 전에 테이블의 스키마를 선언해야 하는 데이터베이스 MongoDB의 컬렉션은 문서 구조를 강제하지 않습니다. 이런 종류의 유연성은 MongoDB 너무 강력합니다.
Mongo에서 데이터를 모델링할 때 다음 사항을 명심하세요.
- 애플리케이션의 요구 사항은 무엇입니까? 애플리케이션의 비즈니스 요구 사항을 살펴보고 애플리케이션에 필요한 데이터와 데이터 유형을 확인합니다. 이를 바탕으로 문서의 구조가 적절하게 결정되었는지 확인하십시오.
- 데이터 검색 패턴이란 무엇입니까? 쿼리 사용량이 많을 것으로 예상되는 경우 데이터 모델에서 인덱스를 사용하여 쿼리 효율성을 높이는 것을 고려하십시오.
- 데이터베이스에서 삽입, 업데이트, 제거가 자주 발생합니까? 전체 효율성을 높이기 위해 데이터 모델링 설계에 필요한 경우 인덱스 사용을 재고하거나 샤딩을 통합하세요. MongoDB 환경을 제공합니다.
차이점 MongoDB & RDBMS
다음은 주요 용어 차이점 중 일부입니다. MongoDB 및 RDBMS
RDBMS | MongoDB | 차이 |
---|---|---|
작업대 | 수집 | In RDBMS, 테이블에는 데이터를 저장하는 데 사용되는 열과 행이 포함되어 있습니다. MongoDB, 이와 동일한 구조를 컬렉션이라고 합니다. 컬렉션에는 키-값 쌍인 필드가 포함된 문서가 포함되어 있습니다. |
열 | 문서 | RDBMS에서 행은 테이블의 암시적으로 구조화된 단일 데이터 항목을 나타냅니다. ~ 안에 MongoDB, 데이터는 문서에 저장됩니다. |
단 | 분야 | RDBMS에서 열은 데이터 값 집합을 나타냅니다. 이것들은 MongoDB 필드로 알려져 있습니다. |
조인 | 포함된 문서 | RDBMS에서는 데이터가 다양한 테이블에 분산되어 있는 경우가 있으며, 모든 데이터에 대한 완전한 보기를 표시하기 위해 데이터를 가져오기 위해 테이블 간에 조인을 형성하는 경우도 있습니다. ~ 안에 MongoDB, 데이터는 일반적으로 단일 컬렉션에 저장되지만 포함된 문서를 사용하여 분리됩니다. 그래서 조인이라는 개념이 없습니다. MongoDB. |
용어 차이점 외에도 몇 가지 다른 차이점이 아래에 나와 있습니다.
- 관계형 데이터베이스는 데이터 무결성을 강화하는 것으로 알려져 있습니다. 이는 명시적인 요구사항이 아닙니다. MongoDB.
- RDBMS에서는 데이터가 정규화 먼저 고아 레코드 및 중복을 방지할 수 있도록 데이터를 정규화하려면 더 많은 테이블이 필요하며, 이로 인해 더 많은 테이블 조인이 발생하므로 더 많은 키와 인덱스가 필요합니다. 데이터베이스가 증가하기 시작하면 성능이 문제가 될 수 있습니다. 다시 말하지만 이는 명시적인 요구 사항이 아닙니다. MongoDB. MongoDB 유연하며 먼저 데이터를 정규화할 필요가 없습니다.