Banco de dados
´ Prof. Dr. Vladimir Costa de Alencar
´ bit.ly/valencar
´ twitter: @valencar
´ v
ladimir.uepb@gmail.com
Histórico
- A necessidade de registrar informações
- O uso de Inscrições rupestres, barro, etc.
Histórico
- O uso de Pinturas, esculturas, etc.
Histórico
- Nos últimos séculos, o papel tem sido o tipo de registro mais comum
Gutemberg – Criador do livro impresso em escala (1430)
Histórico
- Recentemente uma boa parte do papel está sendo substituída por armazenamento em mídias (HD, fitas, CD, etc)
- Os Leitores de livros digitais (e-Readers) têm
estimulado também ao uso das mídias ao invés
de utilizar o papel.
Histórico
- Os programas de banco de dados foram os programas pioneiros na computação (1950-60) - Surgiram para atender para atender
equipamentos de grande porte
Histórico (Década de 50 e início de 60)
Fitas magnéticas foram desenvolvidas para o armazenamento de dados.
-
Tarefas de processamento de dados, como folha de pagamento, eram automatizadas com dados armazenados em fitas.
-
As fitas podiam ser lidas apenas sequencialmente
-
O processamento consistia em ler os dados e armazenar
em uma nova fita (Fita Mestre).
Histórico – Arquitetura nos primórdios
-Não havia controle de acesso concorrente
-Não era possível executar mais de um processo ao mesmo tempo num arquivo de dados
-A estrutura do arquivo estava inserida no próprio código do aplicativo
Ruim para manutenção
-O programas controlavam o acesso ao banco de dados
-Inconsistência, redundância, dificuldade de acesso, isolamento dos dados
-Problemas com Segurança
Histórico – Arquitetura nos primórdios
Definição de estrutura
Rotinas gerais do aplicativo
Arquivo de dados
Histórico – Arquitetura nos primórdios
Arquivo de Dados
O acesso ao Arquivo era feito de forma direta
• Cenário mudou drasticamente com o uso dos discos rígidos
• Acesso direto ao dados em qualquer lugar do disco
• Os bancos de dados poderiam armazenar estruturas de dados mais complexas (como listas e árvores)
• Um documento revolucionário de Codd [1970] definiu o
modelo relacional e os métodos procedurais para consultar os
dados è Origem os Bancos de Dados Relacionais
• Os bancos de dados Relacionais não podiam se igualar aos banco de dados de Rede e Hierárquico, devido as suas
desvantagens de desempenho.
• Um projeto inovador da IBM (System R), levou ao primeiro produto de banco de dados relacional da IBM, o SQL/DS.
• Os primeiros SGBD´s relacionais comerciais, como o System R, Oracle, Ingres e DEC RDB, desempenharam papéis
fundamentais no melhoramento da performance.
• O SGBD´s relacionais, por sua facilidade de manipular,
começaram a reinar.
Arquivo de dados
• Os aplicativos não tem conhecimento sobre os métodos de Gravação e Leitura física dos dados
• Eles recuperam ou armazenam registro
Sistema Gerenciador De Banco de
Dados (SGBD)
• A linguagem SQL foi projetada para aplicações de suporte à decisão (concentradas na consulta)
• Os bancos de dados da década de 1980 tinham foco nas aplicações de processamento de transação (atualização de dados)
• As ferramentas para analisar grandes quantidades de dados tiveram um elevado crescimento de uso
• Os fornecedores acrescentarem suporte relacional de objeto
a seus banco de dados
• Com a explosão de Web, os SGBD´s foram mais exigidos:
1. Propiciar altas taxas de processamento de transação 2. Alta confiabilidade
3. Disponibilidade 24x7 (24 horas, 7 dias por semana)
• Também precisavam aceitar interfaces da Web para Dados
• A amazon.com foi uma das primeiras empresas que
começou a usar comércio eletrônico para vender livros na
internet (1998) à usando SGBD´s 24x7
Utiliza técnicas de “Data mining”
• Surgimento da XML
• Crescimento do “Data Mining”
• Crescimento dos “Data Warehouse”
• Big Data
• Machine Learning – Predictive Analytics
• O XML é um formato para a criação de documentos com dados organizados de forma hierárquica
• Ex. Documentos de texto formatados, imagens vetoriais (ex. Mapas) ou bancos de dados.
• Pela sua portabilidade, já que é um formato que não depende das plataformas de hardware ou de software
• Um banco de dados pode, através de uma aplicação,
escrever em um arquivo XML, e um outro banco distinto
pode ler então estes mesmos dados.
<?xml version="1.0" standalone="yes" ?>
<DBMODEL Version="4.0">
<SETTINGS>
<GLOBALSETTINGS ModelName="Agencia-Cliente"
IDModel="0" IDVersion="0" VersionStr="1.0.0.0" Comments=""
UseVersionHistroy="1" AutoIncVersion="1"
DatabaseType="MySQL"
<DATATYPEGROUPS>
<TABLES>
<TABLE ID="2441" Tablename="Cliente" ...
<COLUMNS>
<COLUMN ID="2447" ColName="Cod_Cliente" PrevColName=""
Pos="0" idDatatype="5" DatatypeParams="" Width="-1" Prec="- 1" PrimaryKey="1" NotNull="1" AutoInc="1" IsForeignKey="0"
DefaultValue="" Comments="">
....
• É o processo de analisar de forma semi-automática grandes bancos de dados para encontrar padrões úteis.
• Usando a Inteligência artificial e a Estatística, são utilizados os dados do BD para descobrir regras e padrões.
• É a “descoberta de conhecimento de Banco de dados”
• Alguns tipos de conhecimento podem ser representados por um conjunto de regras.
• Outros tipos de conhecimento são representados por equações relacionando diferentes variáveis entre si.
• Ou por outros mecanismos de prever resultados
• Ex. Rede Walmart
• Foi descoberta a regra que “ às sextas-feiras, as vendas
de cervejas cresciam na mesma proporção que as de fraldas”
• Motivo: ao comprar fraldas para seus bebês, os pais
aproveitavam para abastecer as reservas de cerveja para o
final de semana.
• É o processo de reunir de forma organizada e eficiente dados de diferentes fontes
• O desenho da base de dados favorece os relatórios, a análise de grandes volumes de dados e a obtenção de informações estratégicas que podem facilitar a tomada de decisão
• Atualmente, por sua capacidade de sumarizar (“limpar”) e
analisar grandes volumes de dados, o data warehouse é o
núcleo dos sistemas de informações gerenciais e apoio à
decisão das principais soluções de business intelligence do
mercado.
• Ex. Usando técnicas de “data mining”
num “data warehouse, é possível:
• Uma companhia de cartões de crédito pode analisar seu data warehouse de transações ao consumidor para identificar os consumidores que têm maior probabilidade de estarem
interessados em um novo produto de crédito (Ex. IPAD).
• Utilizando uma pequena correspondência de teste, os
atributos dos consumidores com afinidade com o produto podem ser identificados.
• Projetos recentes indicam que há uma redução de cerca de 20% nos custos em campanhas direcionadas sobre as
campanhas tradicionais.
• Surgimento da XML
• Crescimento do “Data Mining”
• Crescimento dos “Data Warehouse”
• Big Data
• Machine Learning – Predictive Analytics
Big Data
Todos os dispositivos conectados
Em 2008 foram produzidos cerca de 2,5 quintilhões de bytes todos os dia
90% dos dados no mundo foram criados nos últimos dois anos
Adesão das grandes empresas à internet
Redes sociais, dados dos GPS, dispositivos embutidos e móveis
Utiliza também posts do facebook, vídeos, geolocalização e comportamento de clientes
Agregar, analisar e tirar conclusões a partir dos dados
Big Data – Empresa SkyBox
SkyBox
Tira fotos de satélite vende a seus clientes em tempo real Sobre a disponibilidade de vagas em
estacionamento
Big Data – Projeto Global Pulse - ONU
Análise de mensagens e posts para prever:
Desemprego
Esfriamento econômico
Epidemias de doenças
Big Data – Varejista Dollar General
Monitora as combinações de produtos que seus clientes põem nos carrinhos
Ganhou eficácia
Descobriu curiosidades: Quem bebe Gatorade
compra laxante
Big Data –Sprint Nextel
Saltou da última para a primeira posição do ranking de satisfação dos usuários de celular nos EUA
Integrou os dados de todos os seus canais de relacionamento
De quebra, cortou pela metade os gastos com call
center
Big Data – Terremoto do Haiti
Pesquisadores americanos perceberam antes do todo mundo a diáspora de Porto Príncipe
Usou meio os dados de geolocalização de 2 milhões de chips Sim de celulares
Facilitou a atuação da ajuda humanitária
Big Data – Hospital do Canadá
Monitoramento em tempo real de dezenas de indicadores de saúde de bebes prematuros.
O cruzamento permitiu aos médicos antecipar
ameaças às vidas das crianças
Big Data – Vestas Wind
Para instalar turbinas eólicas, a empresa analisou petabytes de dados climáticos, de nível de marés, mapas de desmatamento, etc
O que costumava durar semanas, durou algumas
horas
Big Data – Biologia Molecular
O EMBL (Laboratório Europeu de Biologia Molecular), mantem acervos de dados com dezenas de petabytes que dobram de tamanho a cada ano
.
Um micro-array de subtipos de cancer de mama, para pesquisas de novas drogas
Dispositivos Vestíveis
Monitoramento de sinais vitais Fotos a partir de comandos de voz,
enviar mensagens instantâneas e realizar vídeoconferências
Monitoramento de sinais vitais
M-Health (saúde com dispositivos móveis)
Os SGBD Relacionais
• Possui versões para vários sistemas operacionais (Windows, Unix, Linux, FreeBSD)
• É Gratuito
• É usado em muitas aplicações Web.
Ex. Como servidor de dados para comércio eletrônico
• É usado em muitos web sites como: nokia.com, google,
facebook, youtube, Wikipédia, FotoLog, etc.
Modo Texto
Ferramenta Gráfica
(DbDesigner)
Ferramenta Gráfica
(mysql Workbench)
• Um SGBD bastante antigo (1979) e muito poderoso
• Multiplataforma/multiusuário
• Seguro
• É o principal SGBD em banco de dados corporativos (cliente/servidor)
• Variedade de distribuições, abrangendo:
Macintosh;
PC (Windows, Unix, Linux, FreeBSD);
Computadores de grande porte
• SGBD padrão SQL
-Produzido pela microsoft -Multiplataforma/multiusuário
-Roda exclusivamente em Windows
-É um SGBD bastante interativo, uma ótima interface
-Um SGBD gratuito de bastante aceitação
-Inicialmente concebido para o sistema operacional Linux
-Muito utilizado em aplicações web (comércio eletrônico, utilizando a linguagem PHP)
-Multiplataforma/multiusuário
-Em 2008 foi agraciado como o melhor produto de BD (Developer.com) -Clientes:
Yahoo!, MySpace, Sony, Basf, Skype, Sun
- Seu sucesso vêm da inclusão do SGBD nas ferramentas de desenvolvimento da Borland (Delphi, C++ Builder,
Jbuilder, ...)
-Outro fator para sua maior aceitação foi a liberação de uma
Versão open source (código fonte aberto)
- Produzido pela IBM, nasceu dos ambientes de grande porte
-Foi posteriormente portado outras plataformas (microcomputadores)
- Um dos primeiros SGBD a usar a linguagem SQL
- O Firebird é um SGBD relacional de código aberto
-Roda em Linux, Windows, MacOS e uma gama de SO Unix-Like
- Baseado no código do Interbase (2000), mas a partir da versão 1.5 o código foi reescrito
-É amplamente utilizado em todo o mundo, com a maior
base de usuários no Brasil, Rússia e Europa.
• SQLite é uma biblioteca em linguagem C que implementa um banco de dados SQL embutido.
• Programas que usam a biblioteca SQLite podem ter acesso a banco de dados SQL sem executar um processo SGBD separado.
• o SQLite funciona como um “mini-SGBD”, capaz de criar um arquivo em disco e ler e escrever diretamente sobre este
arquivo.
• Usado em dispositivos móveis (celulares, tablets) e sistemas embarcados (Equipamentos médicos, Automotivos,
Aviônicos, etc)
Banco de Dados Relacionais
´ Armazena dados em tabelas
´ Possuem atributo tipo chave
´ implementam funcionalidades simples do tipo CRUD (do inglês Create, Read, Update e Delete)
´ controla o armazenamento, recuperação, exclusão, segurança e integridade dos dados
Tabela Empregado
Banco de Dados Não-Relacionais (NoSQL) Escalabilidade
Volume de dados crescente
Disponiblidade dos dados (tempo real)
Escalabilidade
Característica de Aumentar a capacidade do sistema (seja processamento, armazenamento, E/S)
Há um Aumento da Performance depois da adição de
Hardware ou Serviço.
Escalabilidade Vertical
Adicionar novos componentes na máquina.
É quando você coloca mais memória, mais disco, mais CPU no seu servidor.
Geralmente requer desligar a máquina, adicionar
recursos e ligar novamente.
Escalabilidade Horizontal
Adicionar máquinas em Paralelo
Coloca mais servidores para atender a demanda Carga é balanceada entre os servidores
(ex. Cluster)
NoSQL - Escalabilidade
NoSQL – Não Relacionais
São Facilmente escaláveis Horizontalmente
Trabalham com quantidades maciças de dados Não utilizam o modelo relacional para suas
estruturas de dados
NoSql – Not Only Sql
Banco de Dados Não-Relacionais (NoSQL)
Gerenciar os grandes volumes de dados
Buscar alto desempenho e disponibilidade
Permitem uma escalabilidade mais barata e menos trabalhosa
Características de poder trabalhar com dados semi-estruturados ou crus vindos de diversas origens
(arquivos de log, web-sites, arquivos multimídia, etc...).
´ Modelos Baseados em Documentos, Chave-Valor, Grafos, etc.
Banco de Dados Não-Relacionais (NoSQL)
q Nível de petabytes (em 2011)
q Este volume de dados ultrapassou 30 petabytes
q Sendo que menos de um ano antes o volume era de 20 petabytes
Chave/Valor (Key/Value) Orientados a Documentos Orientados a colunas
Grafos
Tipos (NoSQL)
O modelo chave-valor é o mais simples e fácil de implementar
Usa uma tabela hash na qual há uma chave única e um indicador de um dado ou de um item em particular
NoSQL – Chave/Valor
Cache de conteúdo
(grande quantidade de dados, carregamento massivo)
Pesquisas rápidas Logging
(registro de eventos relevantes)
NoSQL – Chave/Valor - Aplicações:
NoSQL – Chave/Valor - uso:
Armazenar e para processar grandes quantidades de dados distribuídos em muitas máquinas.
É um pouco mais complexo que o modelo chave-valor Muda-se o paradigma de orientação a registros ou
tuplas (como no modelo relacional) para orientação a atributos ou colunas (modelo NoSQL).
NoSQL – Orientados a Colunas
Ainda existem chaves, mas elas apontam para colunas múltiplas.
As colunas são organizadas por família da coluna
NoSQL – Orientados a Colunas
Aplicações distribuídas com uso intensivo de dados
Ex. Facebook
NoSQL – Orientados a Colunas -
Aplicação
NoSQL – Orientados a Colunas - Uso
Um documento é:
-um objeto
-tem um identificador único
- tem um conjunto de campos, que podem ser strings, listas ou documentos aninhados
Em cada documento temos um conjunto de campos (chaves) e o valor deste campo
NoSQL – Orientados a Documentos
{“screen name”: “@infomagazine”
"text": “The 8 most stressful jobs in tech. Is yours one of them?”
"url": "https://t.co/qOfPJJrfcw",
“screen name”: @infomagazine
"lang": “En",
"created_at": "Fri Feb 05 02:31:38 +0000 2016",
"place": “United States“,...
}
NoSQL – Orientados a Documentos
Documento: arquivo .JSON
Aplicações Web
(Similar ao armazenamento chave-valor) Tolerante a dados incompletos
NoSQL – Orientados a Documentos –
Aplicação
NoSQL – Orientados a Documentos - Uso
Possuem:
os nós (são os vértices do grafo)
os relacionamentos (são as arestas)
e as propriedades (ou atributos) dos nós e relacionamentos
NoSQL – Grafos
“Quais cidades foram visitadas anteriormente por pessoas que viajaram para o Rio de Janeiro?”
NoSQL – Grafos
Manipulação de dados estatísticos, frequentemente escritos mas raramente lidos
(como um contador de hits na Web)
Aplicações que exigem alto desempenho em consultas com muitas junções (Tabelas)
Redes Sociais, Recomendações (Foco em modelar a estrutura dos dados – interconectividade)
NoSQL – Grafos - Aplicação
NoSQL – Grafos - Uso
SGBD’s NoSQL
50 GB de dados para armazenar
Mysql (Relacional)
´ 300 ms – Write
´ 350 ms – Read
Cassandra (NoSQL)
´ 0.12 ms – Write
´ 15 ms – Read
´ Diferença:
´ Write – 2.500 vezes mais rápido o NoSQL
´ Read – 23 vezes mais rápido o NoSQL
Quando Usar?
SGDB-Relacional NoSQL
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ê prefere performancea uma
estrutura de dados sofisticada Você quer um
armazenamento que seja escalável horizontalmente Você precisa de uma linguagem
SQL query poderosa Simplicidade é bom, como em
uma linguagem query bem simples (sem joins)
Panorama de uso - SGBD
Fonte: THE REAL WORLD OF THE DATABASE ADMINISTRATOR.
Unisphere Research and sponsored by Dell Software. 2015.
Fonte: THE REAL WORLD OF THE DATABASE ADMINISTRATOR.
Unisphere Research and sponsored by Dell Software. 2015.
Fonte: THE REAL WORLD OF THE DATABASE ADMINISTRATOR.
Unisphere Research and sponsored by Dell Software. 2015.