SlideShare uma empresa Scribd logo
BANCO DE DADOS II
Bancos de Dados NoSQL
Prof.: Cláudio Bezerra Leopoldino
Eric Silva
Objetivo
 Este trabalho tem como objetivo apresentar
algumas das principais características do NoSQL,
um banco de dados que possui como diferencial um
grande poder de escalabilidade, proporcionando
uma maior capacidade de armazenamento e
velocidade.
Introdução – Banco de dados
 “Um conjunto de dados relacionados que possuem um
significado.”(Ramez Elmasri, Shamkant B. Navathe)
 Quando guardamos as informações de nossos
amigos(nome, telefone, endereço...) em uma
agenda, estamos criando um banco de dados.
 Também podemos armazenar esses dados no nosso
computador, em um Excel por exemplo, também
temos um banco de dados.
Banco de Dados Relacional
 “No modelo relacional os dados são percebidos pelo
usuário como tabelas.” (C. J. Date)
 Tabela é uma estrutura com linhas e colunas, e cada
linha possui o mesmo conjunto de colunas.
 Um registro(linha da tabela) é uma ocorrência de
uma entidade(tabela), e podem existir associações
entre as entidades, através de regras de
relacionamento.
Banco de Dados Relacional
Países
UFs
Cidades
Banco de Dados NoSQL (Not OnlySQL)
 É um Banco de Dados não relacional, ou seja, não
utiliza uma estrutura fixa de tabelas, e geralmente
não oferecem suporte a instruções SQL.
 Não há Joins
 Não há SQL Injection
 Não utilizamos comandos CREATE TABLE, ALTER TABLE...
 A grande motivação para o surgimento do NoSQL
é resolver o problema de escalabildade, pois pode
ser muito caro e/ou complexo escalar um Banco de
Dados Relacional.
Banco de Dados NoSQL (Not OnlySQL)
 Grandes empresas mundiais utilizam e apóiam esta
abordagem.
 O Google investe desde 2004 no BigTable, um banco
proprietário desenvolvido para suprir as necessidades de
armazenamento da empresa.
 O Facebook projetou o Cassandra, um sistema de alta
disponibilidade e escalabilidade, para trabalhar com o seu
grande fluxo de informações.
 O objetivo não é subutilizar os Bancos de Dados
Relacionais, e sim apresentar uma alternativa.
Comparação entre as duas abordagens
Banco de Dados Relacional Banco de Dados NoSQL
Escalabilidade É possível, porém possui uma
certa complexidade, o que
dificulta a implementação.
Quanto mais dados, mais
espaço no servidor e
memória são necessários.
Como não possui estrutura fixa, a
inclusão de dados é bastante
flexível. Quanto mais dados,
aumenta-se o número de servidores,
que podem ser ou não de alta
performance, barateando e
otimizando o armazenamento.
Consistência As regras de integridade
garantem a consistência das
informações.
Não garante a consistência da
informação, caso nenhuma
informação seja atualizada,
retornará o mesmo valor para todas
as solicitações.
Disponibilidade Uma grande demanda pode
ser prejudicial(dificuldade
com o volume de acesso e
distribuição de dados).
Possui um alto grau de distribuição
de dados(em vários servidores), e
garante um maior número de
solicitações.
Comparação entre as duas abordagens
Banco de Dados Relacionais Banco de Dados NoSQL
Resumo Todos os dados são guardados em
tabelas. Tenta-se diminuir ao máximo
a redundância através das relações
entre as tabela.
Alta escalabilidade,
disponibilidade, desempenho e
menor tempo de resposta a
consultas
Características Tabelas, esquema definido,
redundância mínima, entidade e
relacionamento, ACID
Registros, não possui estrutura
fixa, escalabilidade
Necessidades Sistemas financeiros, sistemas
corporativos, consistência dos dados
Sistemas em nuvem, análises
sociais, performance na
consulta/escrita, replicação
SGBD DB2, Firebird, InterBase, SQL Server,
MySQL, Oracle, PostgreSQL
Cassandra, BigTable, MongoDB,
CouchDB, Dynamo
Empresas que
utilizam
SAP, OpenERP, Previdência Social,
Caixa, Itaú
Twitter, Facebook, Amazon,
LinkedIN, Google, Yahoo
Então NoSQL é melhor?
NÃO!
É diferente...
Modelo híbrido
 Podemos estabelecer um modelo de sistema que
utilize as duas abordagens, criando um sistema de
banco de dados híbrido.
 Em uma aplicação, quando existe uma parte do
sistema que necessite de ACID, podemos utilizar um
Banco de Dados Relacional, e quando for
necessário desempenho em um módulo, então
podemos utilizar o NoSQL.
Modelo híbrido - Exemplo real
 A boo-box, uma empresa brasileira de tecnologia de publicidade e mídias
sociais que exibe propaganda para 60 milhões de pessoas por mês no Brasil,
possui um modelo de negócios baseado em propaganda integrada com
sistemas de recomendação buscando se aproximar dos interesses do usuário,
fazendo uma recomendação otimizada, baseada em conteúdo acessado.
 Contudo, para buscar promoções de lojas, mercados, marcas e links, que
satisfaçam os interesses do usuário, é necessário o acesso as API’s dos sistemas
dos respectivos estabelecimentos.
 Se o modelo de dados fosse inteiramente baseado em um modelo relacional,
seria necessário efetuar o acesso as API’s a cada vez que o usuário acessar
uma página diferente e salvar na base de dados, tornando-se muitas vezes
um processo demorado.
 Já com o modelo híbrido propõe-se uma solução com maior desempenho,
devido à estrutura, a qual consiste em guardar as requisições feitas
temporariamente, como forma de cache, diminuindo assim o acesso as API’s
externas.
Modelo híbrido - Exemplo real
Classificação dos Bancos de Dados
NoSQL
ORIENTADOS A DOCUMENTOS
 Podemos “comparar” Documentos com as linhas do
modelo relacional.
 Esse formato proporciona uma maior flexibilidade, pois
os documentos não precisam possuir estrutura em
comum, cada documento possui somente o que é
importante.
 Um documento pode conter documentos aninhados.
Classificação dos Bancos de Dados
NoSQL
ORIENTADOS A DOCUMENTOS
 Imaginemos que temos uma relação de Pessoa com Cargo e
queremos criar uma consulta para recuperar o cargo da
pessoa João.
 No modelo orientado a documentos bastaria recuperar o
documento do João, que conteria o documento de seu
cargo.
 No modelo relacional seria necessário realizar um join entre
a tabela Pessoa e Cargo, o que exigiria um certo custo de
desempenho.
Classificação dos Bancos de Dados
NoSQL
codigo nome apelido idade peso Altura
1 João da Silva Joãozinho 22 55.0 1.64
2 Francisco Pedro 20 50.0 1.55
ORIENTADOS A DOCUMENTOS
Classificação dos Bancos de Dados
NoSQL
ORIENTADOS A DOCUMENTOS
Classificação dos Bancos de Dados
NoSQL
ARMAZENAMENTO CHAVE-VALOR
 Esse é o tipo de banco de dados NoSQL mais simples.
 Funciona como uma grande tabela hash, onde se
fornece uma chave e obtemos um valor como resultado.
 put(chave, valor)
 get(chave)
 Esses tipos de bancos de dados são o que tem a maior
escalabilidade.
Classificação dos Bancos de Dados
NoSQL
ARMAZENAMENTO CHAVE-VALOR
chave_1 Valor da chave 1
chave_2 Valor da chave 2
chave_3 Valor da chave 3
chave_4 Valor da chave 4
Classificação dos Bancos de Dados
NoSQL
ORIENTADO A COLUNAS
 Os dados são organizados por um trio (linha,
coluna e um dado do tipo timestamp), onde linhas e
colunas são identificadas como chaves e o
timestamp permite diferenciar múltiplas versões de
um mesmo dado.
Classificação dos Bancos de Dados
NoSQL
ORIENTADO A COLUNAS
Classificação dos Bancos de Dados
NoSQL
BASEADOS EM GRAFOS
 Os dados são armazenados em nós de um grafo
 A estrutura do modelo de grafos é composta por: nós, os
relacionamentos e os atributos dos nós
 As operações realizadas nos dados são transformações nos
grafos, fazendo uso de conceitos conhecidos nos grafos:
vizinhos, caminhos, subgrafos, etc.
 Está relacionado a soluções matemáticas
Classificação dos Bancos de Dados
NoSQL
BASEADOS EM GRAFOS
Nó
Relacionamento
Atributos
Classificação dos Bancos de Dados
NoSQL
QUANDO UTILIZAR CADA MODELO
Complexidade dos dados
Volumededados
Chave/valor
Colunas
Documentos
Grafos
Dificuldades encontradas no NoSQL
 Como não há um padrão de estrutura, a migração de um
banco de dados pode gerar certas dores de cabeça.
 Ausência de ferramentas de alto nível como as que
encontramos no modelo relacional.
 Curva de aprendizado. Cada banco de dados apresenta a
sua própria linguagem de consulta e manipulação.
 Pouco material para referência, bem como conteúdos
“duplicados”.
Conclusão
 As bases de dados NoSQL são um excelente
complemento para o modelo relacional, evitando
que o apliquemos em situações para as quais não
foi desenvolvido.
 A escolha por um modelo não relacional não deve
ser baseada apenas pelo fato de ganho de
performance, é necessário analisar a modelagem
de forma coerente e saber onde esse modelo pode
ser aplicado.
Referências bibliográficas
 Ramez Elmasri, Shamkant B. Navathe Fundamentals of database systems – 6ª edição.
Addison-Wesley, 2011.
 C. J. Date. Introdução a Sistemas de Bancos de Dados. Tradução da 8ª edição
americana. Rio de Janeiro: Elsevier Brasil, 2003.
 VERAS, M. Arquitetura de Nuvem: Amazon Web Services. Rio de Janeiro: Brasport, 2013.
 Thalles Ramon P. de Sousa, André Luiz de S. Silva Rocha, NoSQL: Princípios e
Características. Faculdade de Tecnologia da Paraíba (FATECPB), João Pessoa - PB, 2010.
 Renato Molina Toth, Abordagem NoSQL – uma real alternativa. Universidade Federal de
São Carlos, Campus Sorocaba, São Paulo.
 Pollyanna Gonçalves, Web 2.0 e os Bancos de Dados Não Relacionais. Universidade
Federal de Ouro Preto, Minas Gerais.
 https://www.ibm.com/developerworks/br/library/os-apache-cassandra/
 http://blog.boo-box.com/br/2010/usando-banco-de-dados-nosql-redis/

Mais conteúdo relacionado

Mais procurados

Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
Fhabiana Thieli Machado
 
Fundamentos de Blockchain
Fundamentos de BlockchainFundamentos de Blockchain
Fundamentos de Blockchain
Marcelo Laranjeira Melo
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
Jhonathan de Souza Soares
 
Análise de Dados
Análise de DadosAnálise de Dados
Análise de Dados
Lucila Pesce
 
Banco de Dados - Conceitos
Banco de Dados - ConceitosBanco de Dados - Conceitos
Banco de Dados - Conceitos
ssuser69006f
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
Albert Belchior
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
Aricelio Souza
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetos
eneck
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
Alex Martins
 
Modelagem multidimensional conceitos básicos
Modelagem multidimensional conceitos básicosModelagem multidimensional conceitos básicos
Modelagem multidimensional conceitos básicos
Tânia Resende
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
Juliano Padilha
 
Visualização de dados
Visualização de dadosVisualização de dados
Visualização de dados
grupohanium
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
Fábio Delboni
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
Gabriel Alves Scavassa
 
Big Data e Análise de Dados Massivos
Big Data e Análise de Dados MassivosBig Data e Análise de Dados Massivos
Big Data e Análise de Dados Massivos
Francisco Oliveira
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
Iorgama Porcely
 
Personalização e customização no produto RM
Personalização e customização no produto RMPersonalização e customização no produto RM
Personalização e customização no produto RM
TOTVS Connect
 
Coordenação Pedagogica
Coordenação PedagogicaCoordenação Pedagogica
Coordenação Pedagogica
serradourado
 
Rm1150140512 totvs educacional
Rm1150140512 totvs educacionalRm1150140512 totvs educacional
Rm1150140512 totvs educacional
Tiago Henrique Ribeiro Ferreira
 
Modelo E-R
Modelo E-RModelo E-R

Mais procurados (20)

Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Fundamentos de Blockchain
Fundamentos de BlockchainFundamentos de Blockchain
Fundamentos de Blockchain
 
6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna6 Principios arquitetura de dados moderna
6 Principios arquitetura de dados moderna
 
Análise de Dados
Análise de DadosAnálise de Dados
Análise de Dados
 
Banco de Dados - Conceitos
Banco de Dados - ConceitosBanco de Dados - Conceitos
Banco de Dados - Conceitos
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Trabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetosTrabalho banco de dados orientado a objetos
Trabalho banco de dados orientado a objetos
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Modelagem multidimensional conceitos básicos
Modelagem multidimensional conceitos básicosModelagem multidimensional conceitos básicos
Modelagem multidimensional conceitos básicos
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
 
Visualização de dados
Visualização de dadosVisualização de dados
Visualização de dados
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
#4 Primeiros comandos no MongoDB
#4   Primeiros comandos no MongoDB#4   Primeiros comandos no MongoDB
#4 Primeiros comandos no MongoDB
 
Big Data e Análise de Dados Massivos
Big Data e Análise de Dados MassivosBig Data e Análise de Dados Massivos
Big Data e Análise de Dados Massivos
 
Segurança em Banco de Dados
Segurança em Banco de DadosSegurança em Banco de Dados
Segurança em Banco de Dados
 
Personalização e customização no produto RM
Personalização e customização no produto RMPersonalização e customização no produto RM
Personalização e customização no produto RM
 
Coordenação Pedagogica
Coordenação PedagogicaCoordenação Pedagogica
Coordenação Pedagogica
 
Rm1150140512 totvs educacional
Rm1150140512 totvs educacionalRm1150140512 totvs educacional
Rm1150140512 totvs educacional
 
Modelo E-R
Modelo E-RModelo E-R
Modelo E-R
 

Destaque

Business Intelligence - Data Warehouse
Business Intelligence - Data WarehouseBusiness Intelligence - Data Warehouse
Business Intelligence - Data Warehouse
Rudson Kiyoshi Souza Carvalho
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
Rodrigo De Souza Valerio
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
Meritt - Cada Aluno é Único
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
João Helis Bernardo
 
Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
Felipe Monteiro
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
Getup Cloud
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
Rodrigo Aurélio
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
eduardohabib
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
Otávio Santana
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?
Kinn Julião
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
Waldyr Felix
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
Paulo Bischof
 
549891
549891549891
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
Allisson Azevedo
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
Allisson Azevedo
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
Mario Guedes
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
Kinn Julião
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
alexculpado
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
Ismar Silveira
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
Ismar Silveira
 

Destaque (20)

Business Intelligence - Data Warehouse
Business Intelligence - Data WarehouseBusiness Intelligence - Data Warehouse
Business Intelligence - Data Warehouse
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
2º Meritt CC - NoSQL - E o Futuro dos Bancos de Dados na Web
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Integrando aplicações com redis
Integrando aplicações com redisIntegrando aplicações com redis
Integrando aplicações com redis
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
Bancos de dados open source
Bancos de dados open sourceBancos de dados open source
Bancos de dados open source
 
01 aula1 habib
01 aula1 habib01 aula1 habib
01 aula1 habib
 
Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra) Bancos orientados a colunas (Cassandra)
Bancos orientados a colunas (Cassandra)
 
Redis – What, Why, When, How?
Redis – What, Why, When, How?Redis – What, Why, When, How?
Redis – What, Why, When, How?
 
Escalando Aplicações com Redis
Escalando Aplicações com RedisEscalando Aplicações com Redis
Escalando Aplicações com Redis
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
549891
549891549891
549891
 
Deploy completo de uma aplicação Django
Deploy completo de uma aplicação DjangoDeploy completo de uma aplicação Django
Deploy completo de uma aplicação Django
 
Docker + Django
Docker + DjangoDocker + Django
Docker + Django
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1Paradigmas de Linguagens de Programacao - Aula #1
Paradigmas de Linguagens de Programacao - Aula #1
 
Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2Paradigmas de Linguagens de programacao - Aula #2
Paradigmas de Linguagens de programacao - Aula #2
 

Semelhante a Algumas das principais características do NoSQL

Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Mozart Dornelles Claret
 
Nosql
NosqlNosql
Nosql
Suissa
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
Ademir Tadeu
 
NoSQL
NoSQLNoSQL
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
Congresso Catarinense de Ciências da Computação
 
Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
Filipe Silvestrim
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
Jéssica Nathany Carvalho Freitas
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
Carlo Pires
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativas
João Gabriel Lima
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
cris.finholdt
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
ronaldopiresdias
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
Antonio Lazaro Carvalho Borges
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
Lorran Pegoretti
 
No sql std
No sql stdNo sql std
No sql std
Arthur Azevedo
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
José Fernando Castroviejo Vilela
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
Gabriel Alves Scavassa
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
Jorge Ávila Miranda
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
Albert Belchior
 
Modeloestruturaçaoads
ModeloestruturaçaoadsModeloestruturaçaoads
Modeloestruturaçaoads
csmp
 
Ver
VerVer
Ver
csmp
 

Semelhante a Algumas das principais características do NoSQL (20)

Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
Nosql
NosqlNosql
Nosql
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 
NoSQL
NoSQLNoSQL
NoSQL
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 
Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativas
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
No sql std
No sql stdNo sql std
No sql std
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Banco de dados aula 2
Banco de dados  aula 2Banco de dados  aula 2
Banco de dados aula 2
 
Modeloestruturaçaoads
ModeloestruturaçaoadsModeloestruturaçaoads
Modeloestruturaçaoads
 
Ver
VerVer
Ver
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (7)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Algumas das principais características do NoSQL

  • 1. BANCO DE DADOS II Bancos de Dados NoSQL Prof.: Cláudio Bezerra Leopoldino Eric Silva
  • 2. Objetivo  Este trabalho tem como objetivo apresentar algumas das principais características do NoSQL, um banco de dados que possui como diferencial um grande poder de escalabilidade, proporcionando uma maior capacidade de armazenamento e velocidade.
  • 3. Introdução – Banco de dados  “Um conjunto de dados relacionados que possuem um significado.”(Ramez Elmasri, Shamkant B. Navathe)  Quando guardamos as informações de nossos amigos(nome, telefone, endereço...) em uma agenda, estamos criando um banco de dados.  Também podemos armazenar esses dados no nosso computador, em um Excel por exemplo, também temos um banco de dados.
  • 4. Banco de Dados Relacional  “No modelo relacional os dados são percebidos pelo usuário como tabelas.” (C. J. Date)  Tabela é uma estrutura com linhas e colunas, e cada linha possui o mesmo conjunto de colunas.  Um registro(linha da tabela) é uma ocorrência de uma entidade(tabela), e podem existir associações entre as entidades, através de regras de relacionamento.
  • 5. Banco de Dados Relacional Países UFs Cidades
  • 6. Banco de Dados NoSQL (Not OnlySQL)  É um Banco de Dados não relacional, ou seja, não utiliza uma estrutura fixa de tabelas, e geralmente não oferecem suporte a instruções SQL.  Não há Joins  Não há SQL Injection  Não utilizamos comandos CREATE TABLE, ALTER TABLE...  A grande motivação para o surgimento do NoSQL é resolver o problema de escalabildade, pois pode ser muito caro e/ou complexo escalar um Banco de Dados Relacional.
  • 7. Banco de Dados NoSQL (Not OnlySQL)  Grandes empresas mundiais utilizam e apóiam esta abordagem.  O Google investe desde 2004 no BigTable, um banco proprietário desenvolvido para suprir as necessidades de armazenamento da empresa.  O Facebook projetou o Cassandra, um sistema de alta disponibilidade e escalabilidade, para trabalhar com o seu grande fluxo de informações.  O objetivo não é subutilizar os Bancos de Dados Relacionais, e sim apresentar uma alternativa.
  • 8. Comparação entre as duas abordagens Banco de Dados Relacional Banco de Dados NoSQL Escalabilidade É possível, porém possui uma certa complexidade, o que dificulta a implementação. Quanto mais dados, mais espaço no servidor e memória são necessários. Como não possui estrutura fixa, a inclusão de dados é bastante flexível. Quanto mais dados, aumenta-se o número de servidores, que podem ser ou não de alta performance, barateando e otimizando o armazenamento. Consistência As regras de integridade garantem a consistência das informações. Não garante a consistência da informação, caso nenhuma informação seja atualizada, retornará o mesmo valor para todas as solicitações. Disponibilidade Uma grande demanda pode ser prejudicial(dificuldade com o volume de acesso e distribuição de dados). Possui um alto grau de distribuição de dados(em vários servidores), e garante um maior número de solicitações.
  • 9. Comparação entre as duas abordagens Banco de Dados Relacionais Banco de Dados NoSQL Resumo Todos os dados são guardados em tabelas. Tenta-se diminuir ao máximo a redundância através das relações entre as tabela. Alta escalabilidade, disponibilidade, desempenho e menor tempo de resposta a consultas Características Tabelas, esquema definido, redundância mínima, entidade e relacionamento, ACID Registros, não possui estrutura fixa, escalabilidade Necessidades Sistemas financeiros, sistemas corporativos, consistência dos dados Sistemas em nuvem, análises sociais, performance na consulta/escrita, replicação SGBD DB2, Firebird, InterBase, SQL Server, MySQL, Oracle, PostgreSQL Cassandra, BigTable, MongoDB, CouchDB, Dynamo Empresas que utilizam SAP, OpenERP, Previdência Social, Caixa, Itaú Twitter, Facebook, Amazon, LinkedIN, Google, Yahoo
  • 10. Então NoSQL é melhor? NÃO! É diferente...
  • 11. Modelo híbrido  Podemos estabelecer um modelo de sistema que utilize as duas abordagens, criando um sistema de banco de dados híbrido.  Em uma aplicação, quando existe uma parte do sistema que necessite de ACID, podemos utilizar um Banco de Dados Relacional, e quando for necessário desempenho em um módulo, então podemos utilizar o NoSQL.
  • 12. Modelo híbrido - Exemplo real  A boo-box, uma empresa brasileira de tecnologia de publicidade e mídias sociais que exibe propaganda para 60 milhões de pessoas por mês no Brasil, possui um modelo de negócios baseado em propaganda integrada com sistemas de recomendação buscando se aproximar dos interesses do usuário, fazendo uma recomendação otimizada, baseada em conteúdo acessado.  Contudo, para buscar promoções de lojas, mercados, marcas e links, que satisfaçam os interesses do usuário, é necessário o acesso as API’s dos sistemas dos respectivos estabelecimentos.  Se o modelo de dados fosse inteiramente baseado em um modelo relacional, seria necessário efetuar o acesso as API’s a cada vez que o usuário acessar uma página diferente e salvar na base de dados, tornando-se muitas vezes um processo demorado.  Já com o modelo híbrido propõe-se uma solução com maior desempenho, devido à estrutura, a qual consiste em guardar as requisições feitas temporariamente, como forma de cache, diminuindo assim o acesso as API’s externas.
  • 13. Modelo híbrido - Exemplo real
  • 14. Classificação dos Bancos de Dados NoSQL ORIENTADOS A DOCUMENTOS  Podemos “comparar” Documentos com as linhas do modelo relacional.  Esse formato proporciona uma maior flexibilidade, pois os documentos não precisam possuir estrutura em comum, cada documento possui somente o que é importante.  Um documento pode conter documentos aninhados.
  • 15. Classificação dos Bancos de Dados NoSQL ORIENTADOS A DOCUMENTOS  Imaginemos que temos uma relação de Pessoa com Cargo e queremos criar uma consulta para recuperar o cargo da pessoa João.  No modelo orientado a documentos bastaria recuperar o documento do João, que conteria o documento de seu cargo.  No modelo relacional seria necessário realizar um join entre a tabela Pessoa e Cargo, o que exigiria um certo custo de desempenho.
  • 16. Classificação dos Bancos de Dados NoSQL codigo nome apelido idade peso Altura 1 João da Silva Joãozinho 22 55.0 1.64 2 Francisco Pedro 20 50.0 1.55 ORIENTADOS A DOCUMENTOS
  • 17. Classificação dos Bancos de Dados NoSQL ORIENTADOS A DOCUMENTOS
  • 18. Classificação dos Bancos de Dados NoSQL ARMAZENAMENTO CHAVE-VALOR  Esse é o tipo de banco de dados NoSQL mais simples.  Funciona como uma grande tabela hash, onde se fornece uma chave e obtemos um valor como resultado.  put(chave, valor)  get(chave)  Esses tipos de bancos de dados são o que tem a maior escalabilidade.
  • 19. Classificação dos Bancos de Dados NoSQL ARMAZENAMENTO CHAVE-VALOR chave_1 Valor da chave 1 chave_2 Valor da chave 2 chave_3 Valor da chave 3 chave_4 Valor da chave 4
  • 20. Classificação dos Bancos de Dados NoSQL ORIENTADO A COLUNAS  Os dados são organizados por um trio (linha, coluna e um dado do tipo timestamp), onde linhas e colunas são identificadas como chaves e o timestamp permite diferenciar múltiplas versões de um mesmo dado.
  • 21. Classificação dos Bancos de Dados NoSQL ORIENTADO A COLUNAS
  • 22. Classificação dos Bancos de Dados NoSQL BASEADOS EM GRAFOS  Os dados são armazenados em nós de um grafo  A estrutura do modelo de grafos é composta por: nós, os relacionamentos e os atributos dos nós  As operações realizadas nos dados são transformações nos grafos, fazendo uso de conceitos conhecidos nos grafos: vizinhos, caminhos, subgrafos, etc.  Está relacionado a soluções matemáticas
  • 23. Classificação dos Bancos de Dados NoSQL BASEADOS EM GRAFOS Nó Relacionamento Atributos
  • 24. Classificação dos Bancos de Dados NoSQL QUANDO UTILIZAR CADA MODELO Complexidade dos dados Volumededados Chave/valor Colunas Documentos Grafos
  • 25. Dificuldades encontradas no NoSQL  Como não há um padrão de estrutura, a migração de um banco de dados pode gerar certas dores de cabeça.  Ausência de ferramentas de alto nível como as que encontramos no modelo relacional.  Curva de aprendizado. Cada banco de dados apresenta a sua própria linguagem de consulta e manipulação.  Pouco material para referência, bem como conteúdos “duplicados”.
  • 26. Conclusão  As bases de dados NoSQL são um excelente complemento para o modelo relacional, evitando que o apliquemos em situações para as quais não foi desenvolvido.  A escolha por um modelo não relacional não deve ser baseada apenas pelo fato de ganho de performance, é necessário analisar a modelagem de forma coerente e saber onde esse modelo pode ser aplicado.
  • 27. Referências bibliográficas  Ramez Elmasri, Shamkant B. Navathe Fundamentals of database systems – 6ª edição. Addison-Wesley, 2011.  C. J. Date. Introdução a Sistemas de Bancos de Dados. Tradução da 8ª edição americana. Rio de Janeiro: Elsevier Brasil, 2003.  VERAS, M. Arquitetura de Nuvem: Amazon Web Services. Rio de Janeiro: Brasport, 2013.  Thalles Ramon P. de Sousa, André Luiz de S. Silva Rocha, NoSQL: Princípios e Características. Faculdade de Tecnologia da Paraíba (FATECPB), João Pessoa - PB, 2010.  Renato Molina Toth, Abordagem NoSQL – uma real alternativa. Universidade Federal de São Carlos, Campus Sorocaba, São Paulo.  Pollyanna Gonçalves, Web 2.0 e os Bancos de Dados Não Relacionais. Universidade Federal de Ouro Preto, Minas Gerais.  https://www.ibm.com/developerworks/br/library/os-apache-cassandra/  http://blog.boo-box.com/br/2010/usando-banco-de-dados-nosql-redis/