Um banco de dados de documentos é um tipo de banco de dados NoSQL que pode ser usado para armazenar e consultar dados como documentos semelhantes a JSON. O JavaScript Object Notation (JSON) é um formato aberto de intercâmbio de dados que pode ser lido tanto por humanos quanto por máquinas. Os desenvolvedores podem usar documentos JSON em seu código e salvá-los diretamente no banco de dados de documentos. A natureza flexível, semiestruturada e hierárquica dos documentos e dos bancos de dados de documentos permite que eles evoluam conforme as necessidades das aplicações.

Banco de dados de documentos JSON
Consulta ao banco de dados de documentos JSON

Quais são as vantagens dos bancos de dados de documentos

Os bancos de dados de documentos possibilitam uma indexação flexível, consultas ad hoc eficientes e análises de dados em grupos de documentos. Saiba mais sobre os benefícios abaixo.

Facilidade de desenvolvimento

Os documentos JSON são mapeados para objetos — um tipo de dados comum na maioria das linguagens de programação. Ao criar aplicações, os desenvolvedores podem criar e atualizar documentos com flexibilidade diretamente do código. Isso significa que eles gastam menos tempo criando modelos de dados com antecedência. Portanto, o desenvolvimento de aplicações é mais rápido e eficiente.

Esquema flexível

Um banco de dados orientado a documentos permite que você crie vários documentos com campos diferentes na mesma coleção. Isso pode ser útil ao armazenar dados não estruturados, como e-mails ou publicações em mídias sociais. No entanto, alguns bancos de dados de documentos oferecem validação de esquema, para que você possa impor algumas restrições à estrutura.

Performance em escala

Os bancos de dados de documentos oferecem recursos de distribuição integrados. Você pode escalá-los horizontalmente em vários servidores sem afetar o desempenho, o que também é econômico. Além disso, os bancos de dados de documentos oferecem tolerância a falhas e disponibilidade por meio da replicação integrada.

Quais são os casos de uso de bancos de dados de documentos

O modelo de documento funciona bem com casos de uso como gerenciamento de conteúdo, catálogos, gerenciamento de sensores e muito mais. Para cada caso de uso, cada documento é único e evolui com o tempo.

Gerenciamento de conteúdo

Um banco de dados de documentos é uma excelente opção para aplicações de gerenciamento de conteúdo, como blogs e plataformas de vídeo. Com um banco de dados de documentos, cada entidade que a aplicação rastrear pode ser armazenado como um documento único. Um desenvolvedor consegue atualizar uma aplicação de maneira mais intuitiva no banco de dados de documentos, à medida que as exigências evoluem. Além disso, se o modelo de dados precisar mudar, somente os documentos afetados precisarão ser atualizados. Nenhuma atualização de esquema é exigida e nenhum tempo de inatividade de banco de dados é necessário para fazer as alterações.

Catálogos

Bancos de dados de documentos são eficientes e eficazes para o armazenamento de informações de catálogo. Por exemplo, em uma aplicação de comércio eletrônico, diferentes produtos costumam ter números de atributos diferentes. Gerenciar milhares de atributos em bancos de dados relacionais é ineficiente e afeta a performance de leitura. Ao usar um banco de dados de documentos, os atributos de cada produto podem ser descritos em um único documento para gerenciamento fácil e maior velocidade de leitura. Alterar os atributos de um produto não afetará os outros.

Gerenciamento de sensores

A Internet das Coisas (IoT) resultou em organizações coletando regularmente dados de dispositivos inteligentes, como sensores e medidores. Os dados do sensor normalmente chegam como um fluxo contínuo de valores variáveis. Devido a problemas de latência, alguns objetos de dados podem estar incompletos, duplicados ou ausentes. Além disso, você deve coletar um grande volume de dados antes de poder filtrá-los ou resumi-los para análise.

Os armazenamentos de documentos são mais convenientes nesse caso. Você pode armazenar rapidamente os dados do sensor como estão, sem limpá-los ou ajustá-los a esquemas predeterminados. Você também pode escalá-lo conforme necessário e excluir documentos inteiros depois que a análise for concluída.

Como funcionam os bancos de dados de documentos

Os bancos de dados de documentos armazenam dados como pares de valores-chave no formato JSON. Você pode ler e gravar documentos JSON nos bancos de dados programaticamente.

Estrutura de documentos JSON

O JSON representa os dados de três maneiras:

Valor chave

Os pares de valores-chave são registrados entre colchetes. A chave é uma string e o valor pode ser qualquer tipo de dado, como inteiro, decimal ou booleano. Por exemplo, um valor-chave simples é {"year": 2013}.

Matriz

Uma matriz é uma coleção ordenada de valores definidos entre colchetes esquerdo ([) e direito (]). Os itens na matriz são separados por vírgula. Por exemplo, {"fruit": ["apple", "mango"]}.

Objetos

Um objeto é uma coleção de pares de valores-chave. Essencialmente, os documentos JSON permitem que os desenvolvedores incorporem objetos e criem pares aninhados. Por exemplo, {"address": {"country": "USA", "state": "Texas"}}.

Exemplo de documentos JSON

No exemplo a seguir, um documento semelhante a JSON descreve um conjunto de dados de filme.

[
    {
        "year" : 2013,
        "title" : "Turn It Down, Or Else!",
        "info" : {
            "directors" : [ "Alice Smith", "Bob Jones"],
            "release_date" : "2013-01-18T00:00:00Z",
            "rating" : 6.2,
            "genres" : ["Comedy", "Drama"],
            "image_url" : "http://ia.media-imdb.com/images/N/O9ERWAU7FS797AJ7LU8HN09AMUP908RLlo5JF90EWR7LJKQ7@@._V1_SX400_.jpg",
            "plot" : "A rock band plays their music at high volumes, annoying the neighbors.",
            "actors" : ["David Matthewman", "Jonathan G. Neff"]
        }
    },
    {
        "year": 2015,
        "title": "The Big New Movie",
        "info": {
            "plot": "Nothing happens at all.",
            "rating": 0
        }
    }
]

Você pode observar que o documento JSON contém valores, matrizes e objetos simples de forma bastante flexível. Você pode até mesmo ter uma matriz com objetos JSON dentro dela. Portanto, bancos de dados orientados a documentos permitem criar uma hierarquia de nível ilimitado de objetos JSON incorporados. Depende inteiramente de você qual esquema você deseja fornecer ao seu armazenamento de documentos.

Operações do banco de dados de documentos

Você pode criar, ler, atualizar e excluir documentos inteiros armazenados no banco de dados. Os bancos de dados de documentos fornecem uma linguagem de consulta ou API que permite aos desenvolvedores executar as seguintes operações:

Criar

Você pode criar documentos no banco de dados. Cada documento tem um identificador exclusivo que serve como chave.

Leia

Você pode usar a API ou a linguagem de consulta para ler os dados do documento. Você pode executar consultas usando valores de campo ou chaves. Você também pode adicionar índices ao banco de dados para aumentar o desempenho de leitura.

Atualize

Você pode atualizar documentos existentes de forma flexível. Você pode reescrever o documento inteiro ou atualizar valores individuais.

Qual é a diferença entre banco de dados de documentos e armazenamentos de valores-chave

Um banco de dados de chave-valor é um banco de dados NoSQL que usa um método de chave-valor simples para armazenar dados. Ele armazena dados como um conjunto de pares de chave-valor em que uma chave atua como um identificador exclusivo. Tanto as chaves quanto os valores podem ser qualquer coisa, desde objetos simples até objetos compostos complexos.

Um banco de dados orientado a documentos é um tipo especial de armazenamento de valores-chave em que as chaves só podem ser cadeias de caracteres. Além disso, o documento é codificado usando padrões como JSON ou linguagens relacionadas, como XML. Você também pode armazenar PDFs, arquivos de imagem ou documentos de texto diretamente como valores.

Ao consultar seu repositório de documentos, você pode ler o valor ou parte de um valor, especialmente se o valor for outro objeto JSON. Por exemplo, você pode ter {"book": {"id": 1, "price": $10}} e, em seguida, consultar book.price, e o banco de dados retornará o valor 10. Os bancos de dados de chave-valor sempre retornam o valor inteiro com informações de ID e preço.

Como a AWS pode oferecer suporte aos seus requisitos de banco de dados de documentos

O Amazon DocumentDB (compatível com MongoDB) é um serviço de banco de dados de documentos JSON nativo totalmente gerenciado que oferece suporte a workloads de documentos, incluindo MongoDB. Os desenvolvedores podem usar o mesmo código, drivers e ferramentas de aplicações MongoDB para executar, gerenciar e escalar workloads no Amazon DocumentDB. Você pode desfrutar de melhor performance, escalabilidade e disponibilidade sem se preocupar com o gerenciamento da infraestrutura subjacente. Com o Amazon DocumentDB, você pode:

  • Escalar para milhões de solicitações de leitura e gravação por segundo com os clusters elásticos do Amazon DocumentDB, com pouco ou nenhum impacto no desempenho e nenhum gerenciamento da infraestrutura subjacente.
  • Armazenamento e computação desacoplados para que você possa aumentar o desempenho de leitura com até 15 réplicas de leitura que compartilham o mesmo armazenamento subjacente, sem precisar realizar gravações nos nós da réplica.
  • Automatizar tarefas manuais indiferenciadas de gerenciamento de banco de dados sem taxas de licenciamento, incluindo provisionamento de hardware, aplicação de patches, configuração e muito mais.
  • Obter 99,99% de alta disponibilidade aprimorada com os clusters globais do Amazon DocumentDB para aplicações distribuídas globalmente que oferecem suporte a um rápido desempenho de leitura local. 
  • Obtenha 99,99% de disponibilidade com replicação automática, backup contínuo e isolamento estrito da rede.
  • Altamente confiável e durável, com armazenamento tolerante a falhas e com recuperação automática, recuperação pontual, backups contínuos e muito mais. O Amazon DocumentDB torna seus dados duráveis em três AZs em uma região, replicando novas gravações de seis maneiras, enquanto você paga apenas por uma cópia.
  • Altamente seguro com criptografia padrão em repouso, isolamento de rede e auditoria avançada, ao mesmo tempo em que fornece a capacidade de controlar as permissões em nível de recursos com acesso refinado.
  • Ampla cobertura de conformidade, incluindo SOC (1, 2 e 3), PCI DSS, qualificação para HIPAA e muito mais.

Comece a usar bancos de dados de documentos na AWS criando uma conta gratuita hoje mesmo!

Modelagem de dados com o Amazon DocumentDB
Introdução aos clusters elásticos do Amazon DocumentDB