1.6 Banco de Dados NoSQL Flashcards
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
O Modelo NoSQL segue as propriedades de mnemônico BASE, enquanto que o SQL segue o mnemônico ACID.
BASE representa ____ (1) , ____ (2) e ____ (3); enquanto que ACID significa ____ (1), ____ (2), ____ (3) e ____ (4).
O BASE privilegia a ____ (consistência / disponibilidade) sob a ____ (consistência / disponibilidade); já o ACID privilegia a ____ (consistência / disponibilidade) sob a ____ (consistência / disponibilidade).
BASE = Basically Available; Soft State e Eventually Consistency
ACID = Atomicidade, Consistência, Isolamento e Durabilidade
BASE privilegia disponibilidade sob consistência (pois busca ser mais rápido)
ACID privilegia consistência sob disponibilidade (pois apesar de mais lento é mais sólido)
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
Dentro do Teorema CAP, de que nunca é possível garantir, simultaneamente, a (1) Consistência, (2) Disponibilidade (Availability) e (3) Tolerância a Partições, relacione estes três itens com suas definições abaixo
( ) Todos os nós de um sistema distribuído têm os mesmos dados a qualquer momento. Quando uma operação de gravação é feita, todos os nós refletem essa mudança imediatamente, garantindo que qualquer consulta posterior retorne o dado mais recente.
( ) O sistema está sempre disponível para receber e processar solicitações de leitura e escrita. Mesmo que alguns nós estejam inoperantes, o sistema responde a todas as requisições, embora possa não garantir que os dados retornados sejam sempre consistentes.
( ) O sistema continua a operar mesmo que haja falhas de comunicação entre alguns nós (partições). Ou seja, ele mantém o funcionamento e a disponibilidade, apesar de parte da rede estar inacessível ou dividida.
Na ordem em que aparecem 1 - 2 - 3
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
Relacione estes quatro modelos de armazenamento de dados em NoSQL com suas respectivas definições: (1) Chave-valor; (2) Documento; (3) Coluna; (4) Grafo
( ) Armazenam e recuperam dados no formato de documentos semiestruturados, como JSON, XML ou BSON.
( ) representam dados em termos de nós, arestas e propriedades, permitindo consultas complexas de relacionamentos.
( ) Armazena dados por meio de pares, onde um identificador é usado para localizar o dado correspondente. Oferece acesso rápido para consultas simples.
( ) Os dados são organizados e armazenados em colunas, em vez de linhas como em bancos de dados relacionais. Isso permite uma alta compressão de dados e consultas eficientes para operações de agregação.
Na ordem em que aparecem 2 - 4 - 1 - 3
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
Bancos de dados NoSQL ____ (podem / não podem) ser indexados.
Bancos de dados NoSQL ____ (são / não são) considerados banco de dados relacionais
Nos bancos de dados NoSQL ____ (devem / não devem) ser definidos um esquema de dados fixo antes de qualquer operação.
Podem - Não são - não devem
NoSQL = banco de dados não relacionais
Nestes Bancos de Dados há ausência de esquema ou a presença de um esquema flexível.
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
O que é uma Collection no MongoDB?
No MongoDB, uma Collection (ou coleção) é um agrupamento de documentos que compartilham um propósito ou contexto comum. Ela é equivalente a uma tabela em bancos de dados relacionais, mas com uma diferença importante: as collections no MongoDB não exigem um esquema fixo, o que significa que os documentos dentro de uma coleção podem ter diferentes campos e estruturas.
Portanto, se Collection = Tabela, então cada Documento = Linha (Tupla)
Collection NÃO se limita apenas a documentos e pode ser usado em outros contextos!
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
O que é o MongoDB?
É um BANCO DE DADOS NoSQL orientado a DOCUMENTOS, projetado para armazenar e gerenciar grandes volumes de dados de forma flexível e escalável. Ao contrário dos bancos de dados relacionais (como o MySQL ou PostgreSQL), que armazenam dados em tabelas com linhas e colunas, o MongoDB ARMAZENA OS DADOS EM DOCUMENTOS no formato JSON (ou BSON, que é uma versão binária otimizada para performance).
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
Relacione os modelos de armazenamentos a seguir com seus principais exemplos: (1) Chave-valor; (2) Documento; (3) Coluna; (4) Grafo
( ) MongoDB
( ) HBase
( ) ArangoDB
( ) Redis
(2) MongoDB
(3) HBase
(4) ArangoDB
(1) Redis
Em Matéria de Tecnologia da Informação, quanto ao Banco de Dados NoSQL,
O que é Sharding?
Sharding é uma técnica de particionamento horizontal de dados usada em bancos de dados para distribuir grandes volumes de dados em vários servidores ou instâncias. O objetivo do sharding é melhorar a escalabilidade e o desempenho do banco de dados, dividindo os dados em partes menores chamadas de shards (fragmentos), que podem ser distribuídas e armazenadas em diferentes máquinas.
Como funciona o Sharding:
- Cada shard contém uma porção dos dados completos, mas não uma réplica completa do banco de dados. Por exemplo, em um banco de dados de clientes, o shard 1 pode armazenar clientes com nomes de “A a M”, enquanto o shard 2 armazena clientes com nomes de “N a Z”.
- O banco de dados distribui as consultas de forma eficiente entre os shards, de acordo com as regras de particionamento, garantindo que apenas o shard relevante seja consultado.
Vantagens do Sharding:
a) Escalabilidade horizontal: Permite adicionar mais servidores (shards) à medida que a quantidade de dados cresce, em vez de sobrecarregar um único servidor.
b) Melhor desempenho: Como os dados são divididos, as consultas podem ser distribuídas entre os shards, reduzindo a carga em um único servidor.
c) Alta disponibilidade: Se um shard falhar, outros shards continuam funcionando, aumentando a disponibilidade do sistema.
Exemplo de uso:
Em um banco de dados de uma rede social com milhões de usuários, o sharding pode ser utilizado para armazenar os dados dos usuários em diferentes servidores com base em uma chave (por exemplo, o ID do usuário), dividindo a carga entre os servidores e acelerando o acesso aos dados.
O MongoDB é um banco de dados que usa amplamente o sharding para escalar horizontalmente, assim como outros bancos de dados NoSQL e até alguns bancos relacionais em ambientes grandes.