O que é NoSQL?

Avatar


16 de Julho de 2021

Fala pessoal!!!

Estou de volta trazendo mais um artigo de um tema que é frequente nos editais que abordam a disciplina de Banco de Dados, estou falando do NoSQL, você sabe o que é?  Sim, não, talvez?…então vem comigo! 🙂

Você pode ver o termo NoSQL ao ler sobre bancos de dados não relacionais.  O termo NoSQL  significa “Not only SQL”, ou seja, “não apenas SQL”, trata-se de um termo bastante flexível. Alguns bancos de dados não relacionais dão suporte a uma versão do SQL (Structured Query Language) adaptada para documentos em vez de tabelas, o que facilita a operação por parte dos profissionais que tenham conhecimento sobre SQL.

Os bancos de dados NoSQL proporcionam armazenamento de dados semiestruturados (como arquivos JSON, XML, por exemplo), satisfazendo um dos “Vs”, a Variedade,  da teoria sobre Big Data.

Os bancos de dados NoSQL geralmente se enquadram em quatro modelos: Modelo orientado a chave-valor, Modelo orientado a documentos, Modelo orientado a família de colunas e Modelo orientado a grafos. Vejamos de forma resumida cada um deles:

  • Modelo Orientado a Chave-valor:
    • Estrutura mais simples dos bancos NoSQL;
    • A chave geralmente é do tipo String, já o valor pode ser qualquer tipo;
    • Usado tanto para persistir dados, quanto para ficar em memória formando caches;
    • Adequado para aplicações de leituras frequentes;
    • Pesquisa em banco fica limitada ao campo chave, não podendo fazer consultas mais elaboradas;
    • Ideal para resolver questões de lentidão para leitura e escrita de dados em grande variedade e volume;
    • Limitação: Campo valor não permite indexação.
    • O foco de um repositório de chave-valor é a capacidade de ler e gravar dados com muita rapidez. As funcionalidades de pesquisa são secundárias.
    • Um repositório de chave-valor é uma excelente opção para a ingestão de dados, quando um grande volume de dados chega como um fluxo contínuo e deve ser armazenado imediatamente.

  • Modelo Orientado a Documentos:
    • É uma extensão do modelo chave-valor, onde o valor é o próprio documento;
    • Pode criar índices sobre os dados armazenados;
    • Pode realizar vários tipos de consultas e filtros nos valores armazenados e não somente no campo chave;
    • Os documentos podem ser formados por dados semiestruturados, como XML e JSON;
    • O foco de um banco de dados de documentos é a funcionalidade de consulta.

  • Modelo Orientado a Colunas:
    • É uma extensão do modelo chave-valor, porém apresenta algumas características do modelo de banco relacional (criação de linhas e colunas);
    • Busca resolver problemas de flexibilidade e escalabilidade no armazenamento de dados. No tocante a flexibilidade, ao invés de previamente definir as colunas, serão responsáveis por armazenar registros, o responsável pela modelagem cria “famílias de colunas”, sendo estas famílias agrupadas de acordo com a frequência de dados utilizadas nas aplicações. O resultado é que cada registro vai receber as colunas que de fato foram utilizadas, sem precisar alterar a estrutura de dados (esquema) já armazenados.
    • Cada família de colunas contém um conjunto de colunas que estão logicamente relacionadas.

  • Modelo Orientado a Grafos:
    • Quando a estratégia requer saber mais do relacionamento dos dados, do que sobre o próprio dado;
    • Em comparação com os demais modelos, o orientado a grafos é o mais especializado;
    • Totalmente modelado utilizando a teoria dos grafos, ou seja, possui um modelo de dados estabelecido, utilizando vértices e arestas para armazenar dados dos itens que passaram pela coleta;
    • Ao estabelecer o vínculo entre os dados, é possível definir este tipo de vínculo, criando rótulos de acordo com o negócio;
    • É formado por uma coleção de nós e arestas. Cada nó representa uma entidade (por ser uma pessoa, organização, local) e cada aresta representa uma conexão ou relacionamento entre dois nós. Cada nó em um banco de dados baseado em grafos é definido por um identificador exclusivo, um conjunto de arestas de saída e/ou arestas de entrada e um conjunto de propriedades expressas como pares de chave/valor.

 

Questão de Concurso

(CEBRASPE/CESPE/TJDFT/ANALISTA DE SISTEMAS/2015) 

Um banco de dados permite à aplicação o armazenamento e a recuperação de dados com eficiência, o que garante segurança e integridade das informações. No caso de banco de dados relacional, os dados são armazenados em tabelas e os relacionamentos entre elas as tornam relacionais. A esse respeito, julgue os itens que se seguem.

Um banco de dados em grafos está diretamente relacionado a um modelo de dados já estabelecido, o que viabiliza recomendar a utilização para os casos em que a interconectividade dos dados é tão importante quanto os próprios dados.

Gabarito: Certo

(CEBRASPE/CESPE/SLU/DF/ANALISTA DE GESTÃO DE RESÍDUOS SÓLIDOS/2019)

No que se refere a banco de dados relacional (SQL) e não relacional (NoSQL) e ao framework JPA, julgue o item subsecutivo.
Para uma empresa que necessite implantar uma base de dados altamente escalável, com grande desempenho e cujo esquema de dados seja flexível, de modo que suporte constantes mudanças de campos e valores armazenados, a melhor opção é uma base de dados NoSQL.

Gabarito: Certo

Bem pessoal, vou ficando por aqui, até o próximo artigo e bons estudos!

========================================

Prof. Luis Octavio Lima

 

 

 

Avatar


16 de Julho de 2021