Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Contudo, devemos nos fazer algumas perguntas:
Que tipos de aplicações tínhamos na década de 70?
Volume de dados produzido?
E hoje, com as novas gerações de aplicações?
Cloud Computing
Web 2.0
Redes Sociais
Business Intelligence
Introdução
Introdução
(exemplo)
O que é
O termo NoSQL foi primeiramente usado informalmente em
NoSQL? Strozzi em 1998.
Apresenta:
Flexibilidade
Ausência de esquema
NoSQL não diz respeito a um modelo de dados específico.
Agrupamento de alguns modelos de dados que se distanciam da
O que é abordagem relacional.
NoSQL?
Tais modelos podem ser código-aberto, distribuídos,
horizontalmente escaláveis.
Desenvolvidos para solucionar problemas tais como:
manipulação de dados como o gerenciamento de grandes bases de
dados
O que é demandas por alta disponibilidade
possibilidade de escalar para proporções maiores
NoSQL?
Fornece sistema BASE (Basically Available, Soft State, Eventual
consistent)
Chave-valor
Modelos de Colunas
Modelos Documentos
de dados
dados NoSQL
Grafos
Dentre os sistemas de bancos de dados conhecidos como NoSQL,
o Chave-valor é o que apresenta o modelo mais simples.
Chave-valor
Sua estrutura é composta por uma chave e um valor.
Esse modelo pode ser comparado com a estrutura de dados Tabela
Hash.
Além dos tipos básicos de dados como numerais e cadeias de
caracteres, algumas soluções desse modelo de banco de dados
permitem listas e conjuntos de valores dos tipos básicos.
Chave-valor
Algumas características:
Não é possível a definição de um esquema.
Formado por uma única tabela composta por duas colunas: uma
correspondente à chave e a outra ao valor associado.
Chave-valor A chave precisa ser única.
O valor da chave é definida pelo usuário.
Não são agrupados por tipos de dados.
Os dados estão armazenados em uma única coluna de uma mesma
tabela.
Algumas características (cont.):
Não existe a possibilidade ou mesmo necessidade de uso de junções.
Não existe referência de chaves.
Não dá suporte a relacionamentos entre os itens de dados.
Não se tem uma linguagem de consulta padrão.
Chave-valor
Por que usar esse modelo de dados?
Menor tempo de resposta permitindo que a capacidade de
armazenamento de suas bases de dados seja uma das maiores dos
sistemas enquadrados no conceito NoSQL.
Organizado em linhas e colunas.
Colunas
CPF Nome Telefone
Os atributos de uma mesma categoria são priorizados.
Família de coluna:
Permite a existência de atributos não atômicos
Podem apresentar quantidades de atributos diferentes
Colunas Não sendo necessário reservar espaços de armazenamento para
valores nulos.
Modelo é flexível:
Documentos de uma mesma coleção podem apresentar campos
distintos.
Exemplo:
Documentos
Permite que consultas mais complexas envolvendo documentos
de coleções distintas ocorram.
É necessário que um documento possua um DBRef (Database
Documentos References) do documento relacionado.
DBRef é uma estrutura que armazena as informações da coleção de
documentos e ObjectId do documento referenciado.
Exemplo:
Documentos
DBRef não garantem integridade referencial.
Documentos
Chave-valor, colunas e documentos têm seu foco no
armazenamento dos dados.
Grafos
Esse modelo possui três tipos de informações: os nós, arestas e
propriedades.
Nós: instâncias de dados.
Grafos Arestas: relacionamentos mantidos entre instâncias.
Propriedades: valores de dados contidos nas instâncias. Podendo
assumir valores como: booleanos, inteiros, caracteres e conjunto de
valores.
Os nós e arestas podem conter rótulos.
Nós: podem ser usados para diferenciarem instâncias como
Grafos funcionário e cliente, por exemplo.
Arestas: determinar o tipo de relacionamento que está ocorrendo
como, por exemplo, a venda ou o aluguel de um veículo.
Arestas também podem conter propriedades que as descrevem
que assim como os nós.
Exemplo:
Grafos
Garante a integridade referencial.
O nó de entrada sempre fará referência ao nó de saída.
Teorema CAP
Colunas
Chave-valor
Os BD classificados como NoSQL podem conviver com outros
modelos bancos de dados?
Persistência poliglota
Persistência
Poliglota
ArangoDB:
Modelo orientado a documento, chave-valor e grafo.
ArangoDB query language (AQL).
Permite o uso de joins.
MongoDB:
Alguns SGBDs Modelo orientado a documento.
NoSQL A chave de uma instância, neste caso o documento, é chamada de
oid (ObjectId).
Pode ser definida no momento da persistência do documento, ou pode
ter seu valor gerado aleatoriamente pelo próprio banco.
Alta velocidade no acesso a dados.
Suporta complexos tipos de dados.
Oferece alto desempenho e alta disponibilidade.
Cassandra:
Modelo orientado a coluna.
Open-source
Originalmente criado pelo Facebook.
Alguns SGBDs Projetado para oferecer alta escalabilidade, sem pontos de falhas e
com customizável nível de consistência.
NoSQL Rendimento de gravação muito alto e bom rendimento de leitura
Linguagem de consulta semelhante a SQL (desde 0.8 - Cassandra
Query Language) e suporte para procura por índices secundários
Consistência ajustável e suporte para replicação
Esquema flexível.
Modelagem de Dados NoSQL
Desafios de Migração de Banco de Dados Relacional para NoSQL
Pesquisa Migração de Banco de Dados NoSQL na Nuvem
Modelagem de Dados NoSQL:
Como modelar os dados de modo a não aumentar a complexidade
Desafios de das consultas?
Alguns trabalhos tem sido propostos para modelagem de NoSQL.
Pesquisa Entretanto, eles consideram apenas qual o modelo mais viável para o BD
NoSQL.
Não tratam de como modelar o NoSQL para uma aplicação.
Modelagem de Dados NoSQL (cont.):
Outros trabalhos propõe abordagens para a modelagem orientada a
Desafios de consulta.
Desenvolvedor deve considerar quais consultas ele utilizará quando
Pesquisa estiver modelando o BD.
Entretanto, mudanças nos requisitos de negócio/aplicação podem
tornar o modelo obsoleto.
Migração de Banco de Dados Relacional para NoSQL
Desafios de Mudanças:
Demanda no gerenciamento de dados
Pesquisa Requisitos das aplicações
Popularização da computação em nuvem.
Migração de Banco de Dados Relacional para NoSQL
Algumas empresas que adotam DBs Relacionais se deparam com a
necessidade de novas abordagens para persistência:
Devido a ampliação de seus serviços
Desafios de Caso da Netflix: