Upload
joao-helis-bernardo
View
154
Download
7
Embed Size (px)
DESCRIPTION
Slides da apresentação do seminário sobre Banco de Dados NoSQL, na disciplina de Sistemas Distribuídos - UFPB.
Citation preview
Banco de Dados NoSQL Distribuídos
João Helis BernardoSmith Ascari
● Uma visão geral sobre BDR● O que é NoSQL● Por que NoSQL?● Realidade das aplicações atuais● Características● Modelos
Agenda
Visão geral sobre BDRTodos os dados guardados em tabelas
● Tabelas (Entidades, Relações)● Registros (Tuplas)● Colunas (Atributos)● Chave
○ Primária○ Estrangeira
● Restrições de integridade
O que é NoSQL?● Um movimento que promove armazenamento de dados
não relacionais (Not Only SQL).
● Resolve problemas como:○ Tratamento de grande quantidade de dados○ Execução de consulta com baixa latência○ Modelos flexíveis de armazenamento de dados (e.g.
XML, JSON)
Por que NoSQL?● Mudança das aplicações interativas
● Três meta-tendências inter-relacionadas (Big Data, Big User, Cloud Computing)
● Aplicações precisam suportar o grande número de usuários simultâneos
Realidade das Aplicações Atuais
Fonte: http://www.couchbase.com/why-nosql/nosql-database
● Big Users
Realidade das Aplicações Atuais● Big Data
Realidade das Aplicações Atuais● Cloud Computing
● A maioria das aplicações utilizam a arquitetura web 3-tier
● Suportam um grande número de usuários
● BD NoSQL foram projetados pra serem distribuídos ○ Escalabilidade horizontal (scale out)
O uso do NoSQL pelos desenvolvedores
● Por que os desenvolvedores estão considerando o NoSQL?
○ Modelo mais flexível dos dados
■ Complexidade do modelo relacional■ Facilidade do modelo NoSQL (e.g. BD NoSQL
orientados a documentos, utilizando o formato JSON).
O uso do NoSQL pelos desenvolvedores
Modelo Relacional - Esquema Rígido x Modelo NoSQL - Sem Esquema
Fonte: http://www.couchbase.com/why-nosql/nosql-database
Características➔ Armazenamento
◆ objetivo - Disponibilidade◆ utiliza memória principal (alguns modelos 100%)◆ cache integrado (impacta sobre a latência)
Características➔ Escalabilidade
◆ modelos que trabalham na forma vertical e horizontal
◆ auto-sharding
Modelos de NOSQL➔ Existem vários modelos
➔ Abordaremos 4 destes◆ Chave-Valor◆ Tabular◆ Baseado em documentos◆ Baseado em grafos
Modelo Chave-Valor➔ utiliza uma tabela hash➔ implementação mais simples e fácil
➔ exemplos◆ Valdemort, Oracle BDB, Redis
➔ aplicações ◆ cache de conteúdo
Chave-Valor
Fonte: http://www.ingenioussql.com/wp-content/uploads/2013/02/KeyValueStore.gif
Modelo Tabular➔ o conceito de chave(key) ainda é presente, mas
apontam para um conjunto de colunas
➔ exemplos◆ Cassandra, HBase, Riak
➔ aplicações◆ sistemas de arquivos distribuídos
Modelo Tabular
Fonte: http://maxgrinev.files.wordpress.com/2010/07/twitterschema-tweets.png
Baseado em Documentos➔ similar ao modelo chave-valor➔ coleções de outras coleções (key-value)➔ considerado o próximo nível do chave-valor➔ suportam consultas eficientes➔ documentos (semi-estruturados) são armazenados em formato
JSON
➔ exemplos◆ CouchDB, MongoDB
➔ aplicações◆ apps Web
Baseado em Grafos➔ relacionamento entre nós➔ facilita a conexão entre nós➔ também é escalável
➔ exemplos ◆ Neo4J, InfoGrid, Infinite Graph
➔ aplicações◆ redes sociais
Baseado em Grafos
Fonte: http://blog.caelum.com.br/wp-content/uploads/2011/05/grafo.png
Modelos NOSQL
Fonte: http://conteudo.imasters.com.br/21781/39725.png
Quando usar NOSQL
Adaptado de: http://imasters.com.br/artigo/21781/banco-de-dados/escolhendo--a-ferramenta-certa-para-o-banco-de-dados-nosql/
NOSQL RDBs
O armazenamento deve ser capaz de lidar com carregamentos pesados Armazenamento é esperado para apresentar carregamento pesado também, mas consiste principalmente na leitura de operações
Você executa muitas operações de escrita no armazenamento Você precisa de uma linguagem SQL query poderosa
Você quer um armazenamento que seja escalável horizontalmente
Simplicidade é bom, como em uma linguagem query bem simples (sem joins)
Dúvidas?
Referências❏ http://www.couchbase.com/why-nosql/nosql-database❏ http://www.devmedia.com.br/conceito-nosql-cassandra-em-java/22863❏ http://www.devmedia.com.br/introducao-a-tecnologia-nosql/27682❏ http://imasters.com.br/artigo/21781/banco-de-dados/escolhendo--a-
ferramenta-certa-para-o-banco-de-dados-nosql/