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
Participe da conversa