29
Evandro Deliberal [email protected] https://www.linkedin.com/in/evandrodeliberal http://www.deljoe.com.br/professor Aula 01

Apresentação do PowerPoint - deljoe.com.brdeljoe.com.br/professor/bdEstrag/bdEstrategia_Aula05.pdf · Tradução: NoSql –Not Only SQL Iniciou-se em 1998 como projeto acadêmico,

  • Upload
    vunhi

  • View
    227

  • Download
    0

Embed Size (px)

Citation preview

Evandro [email protected]://www.linkedin.com/in/evandrodeliberal http://www.deljoe.com.br/professor

Aula 01

Agenda▪ Bancos Não Relacionais

ÍndicesO que é um índice?

Uma forma de ordenar, de organizar, ...

Para que serve?

Busca eficiente, mais rápida, acelerar ....

Quais tipos:

Único, Primário e Secundário

Denso, único

Chave estrangeira

Clustered

Índices

Estrutura de índicesBaseado Hash

Hash – Transformação de caracteres em tamanhos fixos

Os registros de um arquivo são agrupados em buckets, onde um bucket consiste em uma pagina primária e, possivelmente, páginas adicionais conectadas a uma cadeia

Estrutura de índicesBaseado em Arvore

As entradas de dados são organizadas de maneira ordenada pelo valor chave de pesquisa e uma estrutura de dados de pesquisa hierárquica é mantida direcionando as pesquisas às páginas corretas das entradas de dados.

O que envolve índices?Tamanho?

Tipo de Dado?

Transação?

Normalização?

Cardinalidade?

Replicação?

O que mais ...... ?

Integridade é atributo ou resultado?

TEOREMA de CAPTeorema CAP (Consistency, Availability e Partition tolerance)

Também conhecido como Brewer’s theorem

Resumidamente, afirma que existem três propriedades que são úteis em SGBD:

C = Consistência (Permitir diversas transações)

A = Disponibilidade (mesmo ocorrendo falha)

P = Tolerância a Partições (manter o sistema operando mesmo no caso de falhas de rede)

Banco de Dados NoSQLTradução: NoSql – Not Only SQL

Iniciou-se em 1998 como projeto acadêmico, porém nesta época não sofríamos do mau da “ganancia dos dados”, quanto mais tenho, mais armazeno. Quanto mais tenho, mais eu transformo e multiplico.

Seu propósito e criação é para um grande volume de dados

Escalabilidade

Vertical – recursos (processador, memória, armazenamento ...)

Horizontal – Numero de maquinas

Banco de Dados NoSQLImpulsionado por:

Google – BigTable

Amazon – Dynamo

Yahoo

Facebook

O que é? São Banco de dados não relacionais de alto desempenho

Escalavem

Schemma Free ou Ausência de Schemma

Desnormalizado

Consistência eventual (ACID não é aplicada simultaneamente)

NoSql - IMPORTANTEEm um sistema distribuído entende-se “normal” enfraquecer o requisito de consistência de dados, para aumentar a disponibilidade e a tolerância a criar mais partições.

A partir desta idéia nasceu o conceito de BASE (BasicallyAvailable, Soft state, Eventual consistency) com propriedades e filosofia oposta.

Este cenário provê transações distribuídas, tolerância a falhas de consistência, e replicação otimista em um sistema distribuído.

NoSqlTipos:

Chave/Valor (key/value)

Baseado em documento (document-store)

Grafo (Graph)

Tipos NoSqlChave / Valor

permite a persistência de dados totalmente livre de definições de estrutura para esquema

uma abordagem parecida com uma tabela hash

caracterizado pela sua facilidade ao ser implementado

Permite que os dados sejam acessados rapidamente através da chave

Aumenta também a disponibilidade do acesso aos dados

A informação do conteúdo é armazenada e um índice em forma de um tipo primitivo de dado é usado para mapeá-lo

Tipos NoSqlChave / Valor

Muita redundância e repetição

Tipos NoSqlBaseado em Documento

Parecido com o modelo Chave / Valor

requisita que os dados armazenados sigam um formato que o banco possa interpretar

Podem ser arquivos xml, json, json-blob

Armazena coleções e documentos

Há um agrupamento de documentos onde cada um destes documentos tem-se um conjunto de campos

Tipos NoSqlBaseado em Documento

Tipo NoSqlChave X Documento

Tipos NoSqlGrafos:

Este modelo possui três componentes básicos

Nós (vértices do grafo), relacionamentos(arestas) e as propriedades

Visto como um multibraço rotulado e direcionado

Muito útil para consultas demasiadamente complexas

Possui bom desempenho

Tipos NoSqlGrafos:

Tipos NoSql – Outros Exemplos

FuncionalidadesMVCC – Multiversion concurrency control

Oferece suporte as transações paralelas

Não faz uso de locks para controle de concorrência

Transações de escrita e leitura são feitas simultaneamente

Escalabilidade

Vertical – Relacionada aos núcleos de Processamento CPU

Horizontal – Relacionada a funcionalidade de distribuição de dados e de carga por diversos servidores

FuncionalidadesMap/Reduce

Permite a manipulação de enormes volumes de dados ao longo de nós de uma rede

Fase map – problemas são particionados em pequenos problemas distribuídos ao longo da rede

Fase Reduce – problemas são resolvidos em cada nó filho e o resultado é passado para o pai até chegar a raiz do problema.

Hadoop é uma implementação do MAP/Reduce open source

Map / ReduceExemplo de um processo para contar palavras

E quais opções eu tenho?Baseado em Coluna (Column Stores): Hbase, Cassandra, Hypertable, Accumulo, Amazon SimpleDB, Cloudata, Cloudera, SciDB, HPCC, Stratosphere;

Baseado em Documentos (Document Stores): MongoDB, CouchDB, BigCouch,RavenDB, Clusterpoint Server, ThruDB, TerraStore, RaptorDB, JasDB, SisoDB, SDB, SchemaFreeDB, djondb;

Baseado em Grafos (Graph-Based Stores): Neo4J, InfiniteGraph, Sones, InfoGrid, HyperGraphDB, DEX, Trinity, AllegroGraph, BrightStarDB, BigData, Meronymy, OpenLinkVirtuoso, VertexDB, FlockDB;

E quais opções eu tenho?Baseado em Chave-Valor (Key-Value Stores): Dynamo, Azure Table Storage, Couchbase Server, Riak, Redis, LevelDB, Chordless, GenieDB, Scalaris, Tokyo Cabinet/Tyrant, GT.M, Scalien, Berkeley DB, Voldemort, Dynomite, KAI, MemcacheDB, Faircom C-Tree, HamsterDB, STSdb, Tarantool/Box, Maxtable, Pin-caster, RaptorDB, TIBCO Active Spaces, allegro-C, nessDB, HyperDex, Mnesia,LightCloud, Hibari, BangDB

Hadoopprojeto envolve um conjunto de ferramentas voltadas para o processamento de dados de forma escalável, confiável e distribuída

NoSqlPrincipais desafios:

Continuar evoluindo

Segurança

Melhor balanceamento do ACID

Difundir o conhecimento

Presença em ferramentas corporativas

......

Duvidas ?

Obrigado

Evandro [email protected]