banco de dados nas nuvens - aula 2

28
Banco de Dados em Nuvem Aula 2 - Modelagem de dados Luiz Henrique Zambom Santana Prof. Dr. Ronaldo dos Santos Mello

Upload: luiz-henrique-zambom-santana

Post on 28-Jan-2018

31 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Banco de dados nas nuvens - aula 2

Banco de Dados em NuvemAula 2 - Modelagem de dados

Luiz Henrique Zambom SantanaProf. Dr. Ronaldo dos Santos Mello

Page 2: Banco de dados nas nuvens - aula 2

Agenda

● NoSQL nas nuvens

● Modelagem NoSQL

● Persistência poliglota

● Problemas de modelagem

● Ferramentas para desenvolvimento

● Arquiteturas de nuvem

● Exercício

● Conclusões

2

Page 3: Banco de dados nas nuvens - aula 2

Modelagem NoSQL

● Tópico recente

● Pouca (ou nenhuma) definição

formal

3

Page 4: Banco de dados nas nuvens - aula 2

Persistência poliglota

4

Page 5: Banco de dados nas nuvens - aula 2

“Sem tamanho único”

• “a panoply of data models,

and they typically operate on

flexible storage formats such

as JSON”

• “Increasingly, we see

applications that deploy

multiple engines, resulting in

a need to join data across

systems.”

Page 6: Banco de dados nas nuvens - aula 2

Vantagens e desvantagens

(em relação ao SQL)

Vantagens Desvantagens

Maior desempenho Transações limitadas

Maior escalabilidade Limitação nas consultas*

Modelos de dados mais ricos Consistência relaxada

Schema-less “Dados não relacionados”

Page 7: Banco de dados nas nuvens - aula 2

Problemas

• Escolha do modelo

• Modelagem

• Falta de esquema

• Sincronização

• Controle de transação

• Evolução de modelo

• Diferenças de implementação

• Diferenças de desempenho

• Falta de capacidade técnica

Page 8: Banco de dados nas nuvens - aula 2

Como escolher o modelo NoSQL?

Modelo Bom Ruim

Chave-valor Informações de sessão, perfis de

usuário, preferências, carrinho de

compras

Quando é necessário fazer consultas

nos dados, quando há

relacionamento entre as informações,

ou necessitamos acessar as

informações através de múltiplas

chave

Documentos Sistemas de gerenciamento de

conteúdo, blogs, web analytics,

análise em tempo real, e aplicações

de comércio

Transações complexas que

abrangem várias operações ou

consultas em diversas estruturas

agregadas

Page 9: Banco de dados nas nuvens - aula 2

Como escolher o modelo NoSQL?

Modelo Bom Ruim

Colunar Sistemas de gerenciamento de

conteúdo, plataformas de blogs,

contadores, aplicações que

possuem um volume de escrita

muito grande

Sistemas que estão no início do

desenvolvimento ou que possuam

mudanças frequentes nos seus

padrões de consulta

Grafos Dados conectados, tais como redes

sociais, dados espaciais,

informações de roteamento para

bens e dinheiro, mecanismos de

recomendação

Modelo de dados simples

Page 10: Banco de dados nas nuvens - aula 2

Modelagem

• Desafios•Pouco conhecimento

•Múltiplos fornecedores

• Múltiplos modelos

• Muitas opções

Page 11: Banco de dados nas nuvens - aula 2

Modelagem unificada?Conceito RDBMS NoSQL

Entity Table Collection / Column Family

Entity instance Row Document / Row

Property Column Key / Column

Property of an entity

instance

Cell Value Field Value

Domain Data type Data type (Some NoSQL database no data type, all of value

is plain text.)

Relationship Constraint Reference, Embedded, Additional table, row across

multiple column families.

Key Index Index, Additional

table, Reference

Unique identification Primary Key Row Key

Page 12: Banco de dados nas nuvens - aula 2

Modelagem unificada?

Page 13: Banco de dados nas nuvens - aula 2

Desnormalização

• Desculpa Codd!

Page 14: Banco de dados nas nuvens - aula 2

Agregação

• Aplicável a Chave-valor,

Documentos e Colunar

• Cuidado especial durante

as atualizações

Page 15: Banco de dados nas nuvens - aula 2

Joins na aplicação

• Aplicável em Chave-valor, Documentos, Colunar e Grafos

• As vezes é inevitável

• Entidade aninhada é atualizada de forma frequente

• Many-to-many

Page 16: Banco de dados nas nuvens - aula 2

Agregações atômicas

• Aplicável em Chave-valor, Documentos, Colunar e Grafos

• As vezes é inevitável

• Desnormalizar às vezes facilita o controle de

transações

Page 17: Banco de dados nas nuvens - aula 2

Inverted Search – Direct

Aggregation

• Aplicável em Chave-valor, Documentos

e Colunar

• Armazenar os dados agregados de

diversas formas para facilitar

agregações posteriores

Page 18: Banco de dados nas nuvens - aula 2

Tree Aggregation

• Aplicável em Chave-valor

e Documentos

• Facilita o acesso quando

os dados devem ser

apresentados em

conjunto

• Busca e atualizações

podem ser complicadas e

ineficientes

Page 19: Banco de dados nas nuvens - aula 2

Materialized Paths• Aplicável em Chave-valor e Documentos

• Uma maneira de tornar planos os modelos hierárquicos

Page 20: Banco de dados nas nuvens - aula 2

Ferramentas para desenvolvimento

Page 21: Banco de dados nas nuvens - aula 2

Desenvolvimento• Dificuldades:

•Não existe uma linguagem única

•Não existe um padrão (como o JDBC)

•Muitas vezes as aplicações também falam SQL

• Algumas frameworks estão surgindo para facilitar o

desenvolvimento com NoSQL• Java

•Spring Data suporta muitos de bancos de dados NoSQL

• GemFire, Redis, MongoDB, Neo4j, Solr, Elasticsearch,

Couchbase, FuzzyDB

• PHP

•Doctrine está começando a suportar NoSQL

• MongoDB, Elasticsearch, Cassandra, CouchDB

Page 22: Banco de dados nas nuvens - aula 2

Spring Data

Page 23: Banco de dados nas nuvens - aula 2

Arquiteturas comuns

Page 24: Banco de dados nas nuvens - aula 2

Arquiteturas comuns

• Arquitetura Lambda

Page 25: Banco de dados nas nuvens - aula 2

Arquitetura avançada

Page 26: Banco de dados nas nuvens - aula 2

Bancos de dados poliglotas

● ArangoDB (https://www.arangodb.com/azure/)

26

Page 27: Banco de dados nas nuvens - aula 2

Exercício - Modelar considerando múltiplos modelos

27

Page 28: Banco de dados nas nuvens - aula 2

Referências

● https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/

● https://www.databaselabs.io/database-as-a-service/hidden-costs-of-databases

28