banco de dadosintrodução em outros tempos, os bancos de dados eram locais, acessados apenas por um...
TRANSCRIPT
Banco de Dados
MSc. MARCELO AIRES
▸ Criação de nova Activity▸ Evento de toque em botão/widget▸ Mudança de Activity sem informação▸ Mudança de Activity com informação
Relembrando
2
▸ Introdução▸ Tipos de Bancos de Dados
▹ OldSQL (Relacionais)▹ NoSQL (Not Only SQL)▹ New SQL
Agenda
3
Introdução▸ Em outros tempos, os bancos de dados eram locais, acessados apenas
por um computador e seus próprios recursos.▸ Com a Internet, as conexões foram ampliadas e os bancos de dados
passaram a fornecer dados a uma rede mundial.▸ A questão é como gerenciar, monitorar e armazenar essa quantidade
de dados?▹ Problemas como segurança, espaço, controle de acesso, etc, devem ser
levados em consideração.
4
Introdução▸ Conceito
▹ Banco de Dados (BD ou DB - Database) é um conjunto de dados com certa organização característica, com o objetivo de armazenar os dados persistentemente e dotado de mecanismos de manipulação para obtenção de informações e recuperação posterior, dentro de um sistema de informação (Medeiros, 2013).
5
Introdução▸ Para que um banco de dados seja eficiente, pelo menos 3
características devem ser consideradas (Medeiros, 2013):▹ Evitar redudância (duplicidade)▹ Evitar inconsistências (informações incorretas e despadronizadas)▹ Buscar integração (relacionamento entre bases)
▸ Para usar bancos de dados, a maioria dos sistemas de utilizando de um Sistema de Gerenciamento de Banco de Dados (SGBD).
6
Tipos de Banco de Dados
7
Tipos de Banco de Dados (SGBDs)▸ Basicamente, são 3 tipos mais difundidos:
▹ OldSQL (Relacionais tradicionais)▹ NoSQL (Not Only SQL)▹ NewSQL (Novos relacionais)
8
OldSQL -Relacionais Tradicionais
9
Modelo
OldSQL (Relacionais)▸ Vantagens
▹ integridade dos dados (ACID), “padronizado”, mais utilizado e consolidado
▸ Aplicações▹ bolsa de valores, bancos, e-commerce, criptomoedas…
▸ Desvantagens▹ Esquema rígido e “Não escalável”
11
NoSQL -Não relacionais e escaláveis
13
...com variadas estruturas
16
NoSQL (Not Only SQL)▸ Vantagens
▹ distribuído, alto desempenho e esquema flexível▸ Aplicações
▹ redes sociais, big data, cache, listas diversas, etc▸ Desvantagens
▹ consistência eventual, sem padrão e “não SQL”
17
Chave-Valor
Modelo
20
Chave-Valor▸ Vantagens
▹ baixa latência, simplicidade, escalabilidade, fácil programação▸ Aplicações
▹ cache, fila de processos, timeline (redes sociais)▸ Desvantagens
▹ pesquisa apenas pela chave, criação de chaves, falta de padronização
21
Grafo
Modelo
24
Grafo▸ Vantagens
▹ flexibilidade, uso semântico, interligação▸ Aplicações
▹ redes sociais▸ Desvantagens
▹ escalabilidade, busca direta por um nó, falta de padronização
25
Coluna
Modelo
28
Grafo▸ Vantagens
▹ flexível, escalabilidade, mais próximo do modelo relacional, alguns utilizam linguagem próximo ao SQL
▸ Aplicações▹ aplicações OldSQL flexíveis com menos consistência e consultas
com filtros▸ Desvantagens
▹ pesquisa e configuração mais complexa
29
Documento
Modelo
32
Documento▸ Vantagens
▹ flexibilidade, fácil programação, escalabilidade▸ Aplicações
▹ lista de produtos, geolocalização, sistemas simples▸ Desvantagens
▹ falta de padronização e consistência eventual
33
NoSQL é melhor que OldSQL?
Concorrência por Custo
NewSQL -Novos Relacionais
38
NewSQL
40
padrõesrelacionalACID
OldSQL
escalabilidadedistribuído
RAM
NoSQL
NewSQL▸ Características:
▹ SQL como interação entre o SGBD e aplicação▹ Suporte para ACID▹ Controle de concorrência (para conflitos de I/O)▹ Arquitetura escalável (funciona com um grande número de nós)▹ Memória distribuída
41
NewSQL▸ Vantagens
▹ SQL, escalabilidade, ACID, velocidade, particionamento▸ Aplicações
▹ todos os sistemas que necessitam de escalabilidade (Big Data com integridade)
▸ Desvantagens▹ Não atende todos os casos, esquema pouco flexível
42
43
Atenção na escolha44
Aplicativo <- SGBD
45