apresentação do powerpoint -...
TRANSCRIPT
Evandro [email protected]://www.linkedin.com/in/evandrodeliberal http://www.deljoe.com.br/professor
Aula 01
Í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
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
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.
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 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 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
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
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
......