Você está na página 1de 19

BANCO DE DADOS NÃO RELACIONAIS

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
Apresentação da disciplina

Objetivos Metodologia de ensino


• Trabalhar conceitos básicos sobre NoSQL, • Explicações e sínteses objetivas do conteúdo;
incluindo modelos de dados sem esquema, • Incentivo da participação do aluno através de exemplos
agregados, novos modelos de distribuição, práticos;
teorema CAP e map-reduce.
• Exercícios que possibilitem o raciocínio do aluno de
• Realizar atividades práticas envolvendo os acordo com a matéria abordada;
principais bancos de dados NoSQL de mercado
• Delegação de pesquisas para estimulação do
conhecimento e automotivação para o mercado de
trabalho;
Sistema de avaliação
• Trabalhos em grupo e expositivo com o intuito de
• Os alunos serão avaliados através de provas (70%) e estimular a comunicação;
trabalhos (30%) em forma de exercícios ou
apresentações orais. • Trabalhos individuais voltados para estimulação do
autoaprendizado.
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.
Bibliografias

Bibliografia básica Bibliografia complementar


• Pramod J. Sadalage; Martin Fowler. NoSQL
Essencial: um guia conciso para o mundo • http://nosql-database.org
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.
Introdução
Banco de dados NoSQL
• 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.
Banco de Dados NoSQL: como funciona?
• 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.
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.
NoSQL: tipos de bancos de dados
• 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;


NoSQL: tipos de bancos de dados
• 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.


NoSQL: tipos de bancos de dados
• 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.
NoSQL: tipos de bancos de dados
• 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.
Os benefícios dos bancos de dados NoSQL
• 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.
Os benefícios dos bancos de dados NoSQL
• 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.
Maneiras de usar sistemas de banco de
dados NoSQL
• 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.
Maneiras de usar sistemas de banco de
dados NoSQL
• 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.
Maneiras de usar sistemas de banco de
dados NoSQL
• 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.
Maneiras de usar sistemas de banco de
dados NoSQL
• 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.
UNIFUNEC – BANCO DE DADOS NÃO RELACIONAIS – Prof. Ronaldo Pires Dias 65

Você também pode gostar