NoSQL é um termo genérico que representa os bancos de dados não relacionais. Uma classe definida de banco de dados que fornecem um mecanismo para armazenamento e recuperação de dados que são modelados de formas diferentes das relações tabulares usadas nos bancos de dados relacionais.
MongoDB também no Azure? SIM! - DevOps Summit 2017
BancoDadosNoSQL
1. BANCODEDADOSNÃORELACIONAIS
P r o f. : R O N A L D O P I R E S D I A S
Te c n o l o g i a e m A n á l i s e e D e s e n v o l v i m e n t o d e S i s t e m a s - N o t u r n o
2. Objetivos Metodologia de ensino
• Trabalhar conceitos básicos sobre NoSQL,
incluindo modelos de dados sem esquema,
agregados, novos modelos de distribuição,
teorema CAP e map-reduce.
• Realizar atividades práticas envolvendo os
principais bancos de dados NoSQL de mercado
• Explicações e sínteses objetivas do conteúdo;
• Incentivo da participação do aluno através de exemplos
práticos;
• Exercícios que possibilitem o raciocínio do aluno de
acordo com a matéria abordada;
• Delegação de pesquisas para estimulação do
conhecimento e automotivação para o mercado de
trabalho;
• Trabalhos em grupo e expositivo com o intuito de
estimular a comunicação;
• Trabalhos individuais voltados para estimulação do
autoaprendizado.
Apresentaçãodadisciplina
Sistema de avaliação
• Os alunos serão avaliados através de provas (70%) e
trabalhos (30%) em forma de exercícios ou
apresentações orais.
3. EMENTA
• NoSQL: Definição e motivação
• Análise de sistemas NoSQL
• Modelos de dados
• Modelos de distribuição
• Consistência
• Map-Reduce
• Implementação de bancos de dados
não relacionais.
4. Bibliografia básica Bibliografia complementar
• Pramod J. Sadalage; Martin Fowler. NoSQL
Essencial: um guia conciso para o mundo
emergente da persistência poliglota. Novatec.
2013.
• Eric Redmond; Jim R. Wilson. Seven Databases in
Seven Weeks: a guide to modern databases and
NoSQL movement. The Pragmatic Bookshelf.
2012.
• Gaurav Vaish. Getting Started with NoSQL: your
guide to the world and technology of NoSQL.
Packt. 2013.
• http://nosql-database.org
Bibliografias
6. BancodedadosNoSQL
• NoSQL significa ‘não relacional’. Bancos NoSQL são comumente usados em áreas de
conhecimento como Data Science. As maior diferença entre bancos NoSQL e
relacionais é que bancos relacionais trabalham com tabelas, enquanto em Bancos
NoSQL todos os dados constam no mesmo registro.
• O termo “NoSQL” surgiu em 1998, mas foi em 2006, quando foi citado pelo Google,
que o termo popularizou-se. Era uma época onde os bancos relacionais não mais
suportavam a massa de dados da internet. Só a internet hoje armazena alguns
terabytes de dados.
• Os bancos de dados NoSQL são, basicamente, bancos de dados que não são
relacionais (SQL). O nome NoSQL já indica “Not Only SQL”. As NoSQL databases não
precisam, necessariamente, ser parecidas entre si. São classificadas assim
justamente por serem diferentes das relacionais.
7. BancodeDadosNoSQL:comofunciona?
• O termo “NoSQL’’ é utilizado para designar os banco de dados não relacionais e
quase sempre é relacionado com Big Data. Isso porque, Big Data está em ascensão
e é matéria prima dos Bancos de Dados NoSQL.
• Para entender os NoSQLs, é importante saber que a linguagem SQL sempre foi
usada para tratamento de dados em bancos relacionais, ao longo dos anos.
• Em suma, a principal diferença entre os bancos de dados relacionais e NoSQL é que
o segundo permite maior velocidade, flexibilidade e escalabilidade ao armazenar e
acessar dados não estruturados.
8. SQL Vs NoSQL
• Os bancos de dados SQL são relacionais, enquanto os bancos de dados NoSQL são
não relacionais.
• O sistema de gerenciamento de banco de dados relacional (RDBMS) é a base para a
linguagem de consulta estruturada (SQL), que permite aos usuários acessar e
manipular dados em tabelas altamente estruturadas.
• Este é o modelo básico para sistemas de banco de dados como MS SQL Server, IBM
DB2, Oracle e MySQL. Mas com bancos de dados NoSQL, a sintaxe de acesso a
dados pode ser diferente de banco de dados para banco de dados.
9. NoSQL:tiposdebancosdedados
• Modelo Colunas
• No modelo colunas, o banco de dados faz armazenamento em linhas particulares
de tabela. Esse esquema é o perfeito oposto dos bancos relacionais, que
armazenam conjuntos de dados em uma única linha.
• Exemplos clássicos do modelo de colunas são os bancos Hbase e Cassandra;
10. NoSQL:tiposdebancosdedados
• Modelo Grafos
• Armazena dados na forma de grafo. Isto é, aqui os dados são dispostos no formato
de arcos conectados por arestas. Podemos definir como um conjunto de linhas
conectadas por vértices também.
• O modelo de grafos é vantajoso frente à pesquisas complexas, pois a latência e a
performance promete ser menor do que no modelo chave-valor, por exemplo.
• Um exemplo prático disso é o banco Neo4j.
11. NoSQL:tiposdebancosdedados
• Modelo Chave-Valor
• Em chave-valor, nós temos um banco que é formado por conjuntos de chaves, que
por sua vez são acompanhados de valores como tabelas hash. A estrutura chave-
valor também é bem flexível e própria para armazenamento de big data.
• É interessante também frisar que esse formato é altamente disponível. Exemplos
práticos são REDIS e MemcacheD.
12. NoSQL:tiposdebancosdedados
• Modelo Documento
• Neste modelo, os dados são “documentos”. É o esquema de armazenamento do
MongoDB, por exemplo. Esse modelo é altamente flexível e não carece de colunas
pré montadas, como é o caso do Cassandra.
• Esse modelo é especialmente eficiente para tratar dados não estruturados, já que
uma única coleção pode contar com grupos de dados (documentos) de diversos
formatos diferentes.
13. OsbenefíciosdosbancosdedadosNoSQL
• Os bancos de dados NoSQL ajudam profissionais de TI e desenvolvedores a
gerenciar os novos desafios da diversidade sempre crescente de tipos de dados e
modelos, além de serem altamente eficazes ao processar dados imprevisíveis,
muitas vezes com uma velocidade de consulta altíssima. Também oferecem uma
migração de banco de dados suave para a nuvem para as cargas de trabalho NoSQL
atuais.
• Desenvolva com agilidade:
• Com a capacidade de responder a situações não planejadas, os BDs NoSQL
atendem a ciclos de versão de software frequentes e são adequados para um
desenvolvimento de aplicativo mais ágil e rápido.
14. OsbenefíciosdosbancosdedadosNoSQL
• Manipule dados com flexibilidade:
• O NoSQL dá mais liberdade, velocidade e flexibilidade aos desenvolvedores para
alterar o esquema e as consultas e se adaptar aos requisitos de dados. As
informações armazenadas como uma agregação facilitam melhorias iterativas
rápidas – sem precisar projetar o esquema antecipadamente.
• Opere em qualquer escala:
• Os BDs NoSQL podem oferecer vantagens operacionais e economias atrativas com
a capacidade de escalar horizontalmente – ou adicionar servidores menos caros
sem necessidade de atualização. Eles podem ser dimensionados para tratar mais
dados ou manter um banco de dados único e grande, em um cluster de servidores
altamente distribuível.
15. Maneirasdeusarsistemasdebancode
dadosNoSQL
• Usar modelos de dados baseados em NoSQL é uma ótima opção para empresas
que desejam criar aplicativos móveis, Web, IoT (Internet das Coisas) e de jogos que
exigem bancos de dados flexíveis, escalonáveis, de alto desempenho e altamente
funcionais para oferecer experiências excelentes ao usuário – seja para jogos,
comércio eletrônico, análise de Big Data ou aplicativos Web em tempo real e muito
mais.
• Distribua seus aplicativos globalmente:
• Conquiste mais usuários, onde quer que eles estejam no mundo, com o
desempenho aprimorado de aplicativo, com alta disponibilidade e recuperação de
desastre.
16. Maneirasdeusarsistemasdebancode
dadosNoSQL
• Aprimore seus aplicativos de comércio eletrônico:
• Com esquemas flexíveis e dados hierárquicos, o NoSQL é bastante adequado para
armazenar dados de catálogo de produto, em que produtos variados têm atributos
diferentes.
• Ofereça experiências ao cliente em tempo real:
• Ofereça personalização, recomendações em tempo real e uma experiência
sofisticada ao usuário com os BDs NoSQL.
17. Maneirasdeusarsistemasdebancode
dadosNoSQL
• Atraia jogadores com conteúdo novo:
• Ofereça experiências personalizadas com conteúdo como estatísticas no jogo,
integração com as redes sociais e placares de líderes. A baixa latência e a
escalabilidade elástica são compatíveis com os picos de tráfego em lançamentos de
jogos e torneios.
• Acomode diversas cargas de trabalho de IoT:
• Dimensione instantânea e elasticamente para processar uma ingestão de dados
sustentada e com uso intenso de gravação, com desempenho de consulta
melhorado para aplicativos IoT.
18. Maneirasdeusarsistemasdebancode
dadosNoSQL
• Crie aplicativos sem servidor:
• Dimensione com facilidade a ingestão de dados, a taxa de transferência e os
volumes de dados com disponibilidade imediata, indexação automática, taxas de
ingestão estáveis e desempenho de consulta.
• Obtenha insights mais significativos do Big Data:
• Implemente o Machine Learning em escala nos dados dinâmicos de alto volume e
obtenha mais dados da sua análise.
• Migre cargas de trabalho NoSQL existentes para a nuvem:
• Gaste menos tempo gerenciando um banco de dados local com uma migração para
a nuvem enquanto ainda usa ferramentas, drivers, bibliotecas e SDKs existentes.
19. UNIFUNEC – BANCO DE DADOS NÃO RELACIONAIS – Prof. Ronaldo Pires Dias 65