Aula 1 - Histórico de Banco de Dados

Transcrição

Aula 1 - Histórico de Banco de Dados
Universidade Federal de Mato Grosso
Instituto de Computação
Pós Graduação Lato Sensu em Banco de Dados
Fundamentos de Banco de Dados
e
Modelagem de Dados
Prof. Dr. Josiel Maimone de Figueiredo
[email protected]
Março - 2015
Conteúdo Programático
Aula 1.Introdução – Histórico e evolução
 Arquitetura
de SBD
Aula 2.Modelagem de Dados
 Modelo
Entidade Relacionamento
Aula 3.Modelagem de Dados
 MER-Estendido
Conteúdo Programático
Aula 4.Modelagem de Dados
 Modelo
Orientado a Objetos
Aula 5.Modelagem Lógica
 Modelo
Relacional
Aula 6.Mapeamento
 Modelagem
Lógica x Conceitual
Conteúdo Programático
Aula 7.Normalização e Desnormalização
Aula 8.Padrão SQL
➔
Evolução
➔
Especificações
Aula 9.Banco de Dados Não/Semi Estruturados
Aula 10. Projetos / Prova
Pós Graduação Lato Sensu em Banco de Dados
Disciplina: Fundamentos de Banco de Dados e
Modelagem de Dados
Aula 1
Histórico e Evolução de
Banco de Dados
Prof. Dr. Josiel Maimone de Figueiredo
[email protected]
Março – 2015
Conceitos básicos
➔
O que é um Banco de Dados?
➔
O que é um Sistema de Banco de Dados
➔
Quais os tipos de usuários?
➔
Onde está dentro do contexto de Engenharia de
Software?
Conceitos básicos
➔
O que é um Banco de Dados?
➔
Conjunto de dados
estruturados
➔ confiáveis,
➔ coerentes e
➔ compartilhados
➔
Conceitos básicos
➔
O que é um Sistema de Banco de Dados?
➔
um ambiente
➔
➔
eficiente para recuperar e armazenar informações de Bancos de
Dados
Eliminar ou Reduzir
Redundância
➔ Inconsistência de Dados
➔
➔
Permitir
Rapidez no acesso aos Dados
➔ Concorrência
➔ Segurança
➔
Conceitos básicos
➔
O que é um Banco de Dados?
➔
O que é um Sistema de Banco de Dados?
➔
Quais os tipos de usuários?
➔
Onde está dentro do contexto de Engenharia de
Software?
Tipos de Usuários
➔
Usuários
➔
➔
➔
Programadores
➔
➔
➔
Incluem dados
Fazem consultas
Definem dados
Criam programas que acessam os dados
Administradores de BD (DBA)
➔
Responsável por manter o sistema funcionando
Conceitos básicos
➔
O que é um Banco de Dados?
➔
O que é um Sistema de Banco de Dados?
➔
Quais os tipos de usuários?
➔
Onde está dentro do contexto de Engenharia de
Software?
Engenharia de Software
➔
IC - UFMT
[Amber2001]
Engenharia de Software
➔
IC - UFMT
[Amber2001]
Engenharia de Software
BD Distribuídos
➔
Sistemas
Distribuídos
& Internet
Sist. de Suporte
a Decisão
BD Multimídia
BD Dimensional
Sistemas de
Bancos de Dados
DW
Inteligência
Artificial
Outras áreas
Linguagens de
Programação
BDD
Espacial
BD Ativo
BDD Ativo
Temporal
BDOO
BDOO
Ativo
BDDOO
BD OO
Espacial
Espaço Temporal
BD de
Restrições
Histórico
Visão
Visão Repositório
Dispositivos de armazenamento
 Visão Global
Arquitetura de Banco de Dados
 Visão Dado
Evolução dos Dados
 Visão Conceitual
Modelo de Dados

Repositório: cartão
Visão Modelo
➔
Sistema de cartão perfurado
➔
Muito lento e tedioso para usar
➔
Erros de operação comumente realizados
➔
Correções de difícil execução
Repositório: fita
Visão Modelo
➔
Fita magnética
➔
Em 1950 construída primeira fital comercial
Armazenava 1 milhão de bits
➔ Recuperava uma palavra em 5 ms
Propriedades
➔
➔
➔
Acesso sequencial
Repositório: disco
Visão Modelo
➔
Em setembro de 1956
➔
IBM apresenta RAMAC™ (Random Access
Method of Accounting and Control),
O primeiro sistema de disco de computador
para armazenamento
➔ Mesmo princípio utilizado até os dias de
hoje
➔ Disco(s)
➔ Cabeça(s) de leitura
➔
Repositório: SSD
Visão Modelo
➔
Solid State Drive
➔
Primeiro criado em 1976
➔
Velocidade
555 MB/s de leitura e 520 MB/s de escrita
Organizado em páginas e blocos
➔
➔
Histórico
Visão
Visão Repositório
Dispositivos de armazenamento
 Visão Global
Arquitetura de Banco de Dados
 Visão Dado
Evolução dos Dados
 Visão Conceitual
Modelo

Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Componentes
➔
Usuário
➔
Software
➔
➔
manipulação
Hardware
➔
armazenamento
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
1ª geração:
➔
Software único
➔
controla: interface,
manipulação, acesso,
armazenamento e
gerenciamento dos
dados.
Software
Armazenamento
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
2ª geração:
➔
Software 2 camadas
Aplicação (Cliente )
➔ controla: manipulação,
interface
➔ SGBD (Servidor)
➔ controla o acesso,
armazenamento e
gerenciamento dos
dados.
➔
Aplicação
Sistema Gerenciador de
Banco de Dados
Software
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
3ª geração:
➔
Software Distribuído
Cliente (Aplicação)
➔ Servidor (SGBD)
➔ vários locais
➔ vários produtos
Aplicação
➔
SGBD1
SGBD2
SGBD1
SGBD3
Software
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
4ª geração:
➔
Software 3 camadas
Cliente (Aplicação)
➔ Navegador Web
➔ Servidor Web
➔ SGBD
➔
SGBD
Servidor Web
Navegador Web
Software
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
5ª geração:
➔
Software Multi camadas
Cliente: vários dispositivos
➔ Servidor de Aplicações
➔ componentes
➔ SGBD
➔
SGBD
Cliente
Servidor de
Aplicações
Software
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
Nª geração:
➔
SGBD Paralelo
➔
Processamento paralelo
SGBD
SGBD
Cliente
Servidor de
Aplicações
SGBD
SGBD
Software
Arquitetura de um Sistema de Banco
de Dados
VisãoGlobal
Evolução
➔
Nª geração:
➔
SGBD Cluster
➔
Servidor
➔ Vários nós com memória e disco
compartilhados
no1
SGBD no2
Cliente
no3
Software
Arquitetura de um SGBD
VisãoGlobal
Evolução
➔
Nª geração:
➔
Software Universal Server
➔
Servidor
➔ Acessa várias fontes
SGBD
Cliente
SGBD
2
Arquitetura de um SGBD
VisãoGlobal
Evolução
➔
Nª geração:
➔
SGBD Distribuído
➔
Distribuição transparente
Arquitetura de um SGBD
VisãoGlobal
Evolução
➔
Nª geração:
➔
Software Nuvem
Cliente: vários dispositivos
➔ Servidor
➔ Elasticidade horizontal
➔ Multitenant
➔
Arquitetura de um SGBD
VisãoGlobal
Evolução
➔
Nª geração:
➔
SGBD InMemory
➔
Dados em memória
Arquitetura de um SGBD
VisãoGlobal
Evolução
➔
Nª geração:
➔
BigData
➔
Ambiente Poliglota
Histórico
Visão
Visão Repositório
Dispositivos de armazenamento
 Visão Global
Arquitetura de Banco de Dados
Componentes
 Visão Dado
Evolução dos Dados
 Visão Conceitual
Modelo

Conceitos Básicos
Visão Dados
Informação X Dado
Fatos registrados, e que têm
um significado implícito,
sobre acontecimentos
Gravação em código de uma
observação,
de um objeto, de um
fenômeno
Conceitos Básicos
Visão Dados
Informação X Dado
Conhecimento
(compreensão / teoria)
Informações
(significado para organização)
Dados
(qualitativos / quantitativos)
Abstração / Valor
Ação
(projetos / valores)
Dados
Visão Dados
Para definir um tipo de dado é preciso ter
➔
➔
Propriedades:
➔
representação
➔
domínio
Operações
➔
manipulação
Em outras palavras:
➔
Operandos + Operadores
Dados: número
Visão Dados
Para definir um tipo de dado é preciso ter
➔
➔
Propriedades:
➔
Representação: BCD, little endian, big endian
➔
Domínio: 64 bits
➔
Ordem total
Operações
➔
Manipulação: soma, adição, etc
➔
Comparações: <, >, etc
➔
Padrão para arredondamento em contas
Dados: alfanumérico
Visão Dados
Propriedades:
➔
Representação:
codificação de caracter
➔ UNICODE, ASCII, ISO 5960, etc
Domínio:
➔
➔
16 bits para UNICODE (65535 caracteres)
Operações
➔
Manipulação: concatenação, etc
➔
Comparações: ordem alfabética, etc
Dados
Visão Dados
Além da definição de Operandos + Operadores
em Banco de Dados é preciso definir
Método de Acesso (MA)
➔
Árvores
➔
➔
Usam a propriedade de ordem total para
dividir o domínio e diminuir o número de
comparações
Bitmap, etc
Dados: texto estruturado
Visão Dados
Propriedades:
➔
Representação:
Convergindo para padrão XML
(Extensible Markup Language)
➔ Estrutura hierárquica
➔ Diversos padrões: XHTML, SMIL, etc
Domínio:
➔
➔
Texto estruturado com marcações
➔ <xml> </xml>
Dados: texto longo
Visão Dados
Propriedades:
➔
Representação:
Uso de método de acesso específico
➔ Padrão Full Text
➔ Formato do arquivo: ODF, DOC, PDF, etc
Domínio:
➔
➔
Texto com mais de 64Kb
Dados: imagem
Visão Dados
Propriedades:
➔
Representação:
Resolução definida pela matriz de
pixels (raster)
➔ Modelo de cores: RGB(aditivo),
CMYK(subtrativo), HSB.
➔ Formato do arquivo: JPG, PNG,
TIFF, etc
Domínio:
➔
➔
O tamanho da matriz pode
ultrapassar Gigabytes
Dados: imagem
Visão Dados
➔
Armazenamento
➔
➔
Operações (não embutidas no SGBD)
➔
Manipulação: adição, subtração,etc
➔
Buscas de partes das imagens
➔
➔
➔
Em formato binário
Métodos estatísticos e da área de
reconhecimento de padrões podem
normalmente não são escaláveis
Comparações: ????????
Imagem é um dado complexo!!
Dados: complexo
Visão Dados
➔
Comparação
➔
➔
➔
Não possui relação de ordem total
Não existe ”origem” dos dados
Ordenação dos dados:
<
<
Dados: complexo
Visão Dados
➔
Comparação
➔
➔
➔
Não possui relação de ordem total
Não existe ”origem” dos dados
Ordenação dos dados:
<
<
Dados: complexo
Visão Dados
➔
Comparação
➔
Qual o parâmetro usar para comparação?
Dados: complexo
Visão Dados
➔
Comparação:
➔ Similaridade entre objetos
45
49
Valor de Similaridade
➔
Criação de um Método de acesso:
➔
Domínio de dados complexo
➔
Permita buscas por similaridade
5
Dados: complexo
Visão Dados
➔
Imagem é um dado complexo
➔
Pertence a um espaço métrico
➔
Exige a definição de uma métrica
➔
(p1)
 x, y  S, d(x, y)  0 positiva,
➔
(p2)
 x, y  S, d(x, y) = d(y, x)
➔
➔
➔
(p3)
 x  S, d(x, x) = 0
e, em alguns casos,
simétrica,
reflexiva,
➔
(p4)
 x, y  S, x  y  d(x, y) > 0
➔
(p5)
 x, y, z  S, d(x, y)  d(x, z) + d(z, y) Desigualdade Triangular
estritamente positiva.
Indexação feita considerando a similaridade entre os
objetos
Dados: complexo
Visão Dados
➔
Método de Acesso Métrico
➔
➔
Seleciona um ou mais objetos representativos
Inserção de um novo objeto
➔
➔
Distância aos representativos são calculados e
armazenados
Durante as consultas
➔
Usa a propriedade de desigualdade triangular para
descartar os objetos
Dados: complexo
Visão Dados
➔
Exemplo de MA: Slim-Tree:
J B
K
E L
I
MD
N
O
C P
AG
F Q
H
B
E
K E L
C
A
B
J B I
A
D
F
C
H A G M D N F Q O C P
Dados: complexo
Visão Dados
➔
Estaticas:
➔
➔
➔
➔
➔
➔
➔
GH-tree (Generalized Hyperplane Decomposition tree)
VP-tree (Vantage Point tree)
FQ-tree (Fixed Queries tree)
GNAT (Geometric Near-Neighbor Access Tree)
MVP-tree (Multi-Vantage Point tree)
...
Dinâmicas:
➔
➔
➔
M-tree
Slim-tree
...
Dados: complexo
Visão Dados
➔
➔
Buscas por similaridade
➔ Retorna o(s) objeto(s) mais similares ao
objeto de consulta (referência)
Principais tipos:
➔
➔
Range Query - RQ
k-Nearest Neighbor Query - kNNQ
Dados: complexo
Visão Dados
➔
Range Query
➔
Recupera todos os objetos que estão até
uma distância rq ao objeto de consulta oq
oq
rq
Dados: complexo
Visão Dados
➔
k-Nearest Neighbor Query
➔ Recupera os k elementos mais similares
ao objeto de consulta oq
oq
Dado: áudio
Visão Dados
➔
Propriedades:
➔
Representação: freqüência e altura
➔
Domínio: 64 bits
➔
Possui dimensão tempo
Influencia nas comparações
Formato de arquivos: Wav, Ogg Vorbis, MP3
➔
➔
➔
Operações
➔
Manipulação: freqüência
➔
Comparações: intervalos
Dado: vídeo
Visão Dados
➔
Propriedades:
➔
Representação:
➔
Domínio:
➔
Possui dimensão tempo
Influencia nas comparações
Imagem + som = sincronização
➔
➔
➔
Formato de arquivo: RM, SWF, MPEG,
Dado: genômico
➔
➔
Propriedades:
➔
Representação: sequência de caracteres
➔
Domínio: combinação de nucleotídeos
Visão Dados
Operações
➔
➔
Manipulação: regras de composição
Comparações: faixas semelhantes, formas
semelhantes
Dado: espacial
Visão Dados
➔
➔
Propriedades:
➔
Representação: coordenadas
➔
Domínio: espaço N-dimensional
Operações
➔
➔
Manipulação: pontos e regiões
Comparações: métodos de acesso
multidimensionais
Dado: espacial
Visão Dados
➔
Consultas espaciais
Seleção por ponto
Seleção por região
Seleção por janela
Fonte: Karine Ferreira (2006)
Dado: espacial
Visão Dados
➔
Junção espacial

Para cada rodovia selecione as escolas que estão a menos de
1000 metros.
Fonte: Karine Ferreira (2006)
Dado: espacial
Visão Dados
➔
Predicados topológicos
A
B
B B
B-
A   
A   
A-   
disjoint
B-
A  

A  

A  
equal
B
B B
B B
A
B
B-
overlap
B-
A   
A   
A  
contains
B
A   
A   
A-   
A
B
B B
B-
A   
A   
A-   
meet
A
ABB
B B
A
A
A
A-
B B
B-
 

 

  
inside
Fonte: Adaptado de Egenhofer e Herring (1991)
B-
A   
A   
A  
covers
B
A
B B
B
B B
A
B-
A  

A  

A-   
covered by
Dado:espacial
Visão Dados
➔
Métodos de Acesso Multidimensionais:
➔
k-d Trees
Fonte: Gilberto Ribeiro (2006)
Dado: espacial
Visão Dados
➔
Métodos de Acesso Multidimensionais
➔
Fixed-Grid
Fonte: Gilberto Ribeiro (2006)
Dado: espacial
Visão Dados
➔
Métodos de Acesso Multidimensionais
➔
Quadtree
Dado: espacial
Visão Dados
➔
Métodos de Acesso Multidimensionais
➔
R-Trees
Dado: composição
Visão Dados
➔
Sistemas de Informação Geográfica
➔
➔
Imagens georreferenciadas
Sensores orbitais captam bandas do espectro
eletromagnético
➔
Imagens podem atingir 200MB cada
➔
Todos os sensores captam TB de dados diariamente
Dado: composição
Visão Dados
fonte: NASA
Histórico
Visão
Visão Repositório
Dispositivos de armazenamento
 Visão Global
Arquitetura de Banco de Dados
 Visão Dado
Evolução dos Dados
 Visão Conceitual
Modelo de Dados

Modelo de Dados
➔
➔
➔
Coleção de construções lógicas usadas para representar
estrutura de dados estruturados e seus relacionamentos
em um banco de dados
Modelos conceituais:
➔
natureza lógica de representação dos dados
➔
distante de tecnologia
Modelos lógicos
➔
➔
ênfase na forma como os dados são
representados pelo banco de dados
próximo de tecnologia
70
Modelo: arquivos
➔
Dados armazenados diretamente em arquivos
➔
Cada arquivo organizado pelo tipo de uso
➔
Dados redundantes
➔
Sem escalabilidade
➔
Dependência entre aplicação e estrutura dos dados
➔
Cada manipulação dependia de um programa (ou
método) específico
➔
Baixa segurança
➔
Dados difíceis de serem representados
Data:
Fev 14, 1955
Hora:
2:00 p.m.
Paciente:Joana , 455-0897
CID:
123456789
Nome:
Rua:
Cidade:
Fone:
Joana
Av. Dom,123
Poconé
455-0897
Modelo: arquivos
➔
Limitações
➔
Separação e Isolamento de Dados
➔
➔
Dificuldade no acesso aos dados porque eles são
isolados em arquivos separados.
Exemplo:Listar todos os pacientes que foram
atendidos em fevereiro
Criar um arquivo temporário dos pacientes
➔ Identificar os atendimentos de fevereiro
➔ Testar e sincronizar o processamento dos dois
arquivos para garantir a extração correta dos
dados.
➔
Data:
Fev 14, 1955
Hora:
2:00 p.m.
Paciente:Joana , 455-0897
CID:
123456789
Nome:
Rua:
Cidade:
Fone:
Joana
Av. Dom,123
Poconé
455-0897
Modelo: arquivos
➔
Limitações
➔
Dependência entre Dados e Programas
➔
➔
Dificuldade em mudar as definições das estruturas
de arquivo existentes.
Exemplo:Aumentar o tamanho do campo de
endereço do paciente
Criar um programa de conversão para:
➔ Abrir o arquivo original para leitura
➔ Abrir um arquivo temporário representando a
nova estrutura
➔ Ler um registro do arquivo original, converter o
dado e gravá-lo no arquivo temporário. Repetir
isto p/ todos os registros.
➔ Remover o arquivo original.
➔ Renomear o arquivo temporário.
➔
Modelo: arquivos
➔
Limitações
➔
Incompatibilidade de Formatos de Arquivos
➔
➔
➔
➔
Como a definição dos arquivos são embutidas nos
programas de aplicação, os formatos destes
arquivos dependem da linguagem de programação
escolhida.
Pode haver a necessidade de escrita de um
software para converter os arquivos para um
formato comum e facilitar o processamento.
Isto acarreta em consumo de tempo e dinheiro.
Exemplo: O setor de diagnóstico pode desejar obter
o nome e o endereço de todos os pacientes cujos
diagnósticos envolvem dengue.
Modelo: arquivos
➔
Limitações
➔
Consultas Pré-determinadas
➔ Impossibilidade de realização de consultas nãoplanejadas (i.e. consultas ad-hoc).
➔ Aumento da carga de trabalho do Programador,
resultando em:
➔ Programas
➔ inadequados ou ineficientes na satisfação dos
requisitos dos usuários.
➔ Com documentação reduzida.
➔ De manutenção difícil.
➔ Omissão/Redução de funcionalidades
importantes (e.g. recuperação, segurança, ...)
Modelo: Hierárquico
Visão
➔
Modelo Hierárquico
➔
➔
Uma hierarquia define a organização e o
acesso aos dados
Cada nó pode ter diversos filhos
Modelo: Hierárquico
Visão
➔
➔
Vantagens
➔
Simplicidade conceitual
➔
Integridade da base de dados
➔
Independência de Dados
➔
Eficiência
Desvantagens
➔
Implementação complexa
➔
Falta de padrão
➔
Dependência estrutural
➔
Limitação de implementação
Modelo: Redes
Visão
➔
Cada registro pode ter diversos pais
➔
Composto de conjuntos
➔
➔
Cada conjunto tem registro dono e registro
membro
Membro pode ter diversos donos
Modelo: Redes
Visão
➔
➔
Vantagens
➔
Simplicidade conceitual
➔
Manipula diversos tipos de relacionamento
➔
Flexibilidade no acesso aos dados
➔
Permite manter integridade
➔
Independência de dados
➔
Padronizado
Desvantagens
➔
Complexidade das ligações (ponteiros)
➔
Falta de independência estrutural
Modelo: Relacional
Visão
➔
Edgar Codd
➔
➔
➔
➔
Pai do Modelo Relacional
IBM San Jose
Em 1970, Codd publicou:“A Relational Model
of Data for Large Shared Data Banks.”
Modelo Relacional consiste de:
➔
➔
➔
Independência de Dados com implementação
e armazenamento em hardware.
Navegação automática (alto nível)
Linguagem não-procedural
Modelo: Relacional
Visão
➔
➔
A adoção do modelo relacional enfrentou
dificuldades
➔
IBM investiu muito no sistema IMS
➔
Padrão CODASYL
Primeiras implementações
➔
System R – IBM
Criou linguagem SEQUEL
Ingres – Berkeley
➔
➔
Michael Stonebraker
➔ Eugene Wong
➔
Modelo: Relacional
Visão
➔
Modelo lógico
➔
➔
➔
Usuário considera que trabalha com uma
coleção de tabelas que armazenam os dados
Tabelas são uma série de intersecções de
linhas/colunas
Tabelas possui características parecidas com
de entidades
Modelo: MER
Visão
➔
Modelo Entidade Relacionamento
➔
Modelo conceitual
➔
Representa informações com
➔
Entidades
representam entes do mundo real.
Relacionamento
➔
➔
➔
representam interações entre as entidades.
Modelo: MER
cor fabricante
modelo
1
Veículo
n
1
idade
possui_frota
1
produz
é-um
1
1
1
Companhia
nome_comp
domicílio
#pessoa
Pessoa
n
rua
localização
#companhia
nome
Visão
1
Empregado
administra
1
1
possui
trabalha
1
Subsidiária
nome_sub
rua
localização
qualificação
n
gerencia
n
salário
1
Modelo: OO
Visão Modelo
➔
Paradigma Orientado a Objetos
➔
Classe e Objeto
➔
Encapsulamento
➔
Relacionamento
Herança
➔ Associação
Polimorfismo
➔
➔
Modelo: OO
Visão Modelo
➔
Sistemas Orientados a Objetos
➔
Conceito mais especializado de detalhamento
da realidade (herança)
➔
Conceito de reutilização: maior produtividade
➔
Melhor ligação: analista X usuário
➔
Suportam com mais flexibilidade alterações e
evolução
Modelo: OO
Visão Modelo
Booch
Rumbaugh
Jacobson
Fusion
Meyer
Operation descriptions,
Message numbering
Before and after
conditions
Embley
Harel
Singleton classes,
High-level view
State charts
Gamma, et.al
Wirfs-Brock
Frameworks, patterns,
notes
Shlaer - Mellor
Object Lifecycles
Odell
Classification
Responsibilities
Modelo: OO
Visão Modelo
Modelo: OO
Visão Modelo
➔
Diagrama de Classes
BD x Aplicações
Modelo: OO
classe1:
Companhia: [
nome: String,
matriz: Endereço;
Subsidiarias: {Subsidiaria},
Presidente: Empregado]
classe2:
Subsidiaria: [
nome: String,
escritório: Endereço;
Gerente: Empregado,
Empregados: {Empregado}]
classe3:
Endereço: [
rua: String,
localização: String]
classe4:
Pessoa: [
nome: String,
idade: Integer;
domicilio: Endereço,
Frota: {Veiculos}]
classe5:
Empregado is-a Pessoa: [
qualificações: {String},
salário: Integer;
Familiares: {Pessoa}]
Modelo: objeto-relacional
Visão Modelo
➔
Sistema Objeto-relacional
➔
Extensão de Tipo Básico em Contexto SQL
➔
Objetos Complexos em Contexto SQL
➔
Herança em Contexto SQL
➔
Suporte para Regras de Produção
➔
➔
➔
permite estender o banco de dados com tipos e
funções específicas da aplicação
A linguagem de consulta OR (SQL3) é uma extensão
da linguagem SQL para suportar o modelo de objetos
As extensões incluem consultas envolvendo objetos,
atributos multivalorados, TADs, métodos e funções
como predicados de busca em uma consulta
BD x Aplicações
Modelo: objeto-relacional
Criação de Tipos:
CREATE TYPE Endereço
(
RuaNoVARCHAR(60),
Cidade
VARCHAR(40),
);
CREATE TYPE Companhia
(
NomeComp
String,
Matriz
endereço,
Subsidiarias SET(REF(Subsidiaria)),
Presidente
REF(Empregado),
);
CREATE TYPE Fornecedor
(
CodFornec
CHAR(4)
NomeFornec
VARCHAR(40)
EndFornec
endereço,
);
CREATE TYPE Subsidiaria
(
NomeSub String,
Escritório endereço,
Empregados SET(REF(Empregado)),
);
CREATE TYPE empregado
(
nome CHAR(20),
salário DECIMAL(10,2),
);
Criação de Tabelas:
CREATE TABLE Fornecedor OF Fornecedor
CREATE TABLE empregados OF Empregado
Modelo: multidimensional
Visão Modelo
➔
➔
Armazena os dados em arrays multidimensionais
com um número fixo de dimensões
Permite uma visualização multidimensional e
multigranular dos dados
Dimensões: diferentes
perspectivas de visualização
dos dados (podem ser
compostas por múltiplos
níveis)
➔
Elementos (ou
membros): posições
segundo uma dimensão
➔
Medidas: conteúdo de
uma célula
Te
m
po
➔
Fev./13
Jan./13
NORDESTE
5
1
8
6
P1
P2
P3
P4
PERNAMBUCO
CEARÁ
FORTALEZA
... SOBRAL
SUDESTE
RIO DE JANEIRO
SÃO PAULO
Produto
Modelo: multidimensional
➔
Visão Modelo
Operações sobre o cubo
P ro d u to
Local
Tem po
P ro d u to
Vendas
Vendas
Local
Tem po
Tem po
Local
Vendas
P ro d u to
Modelo: multidimensional
➔
Operações sobre o cubo
Visão Modelo
Classificação de SGBD
Visão
Classificação de SGBD
Visão
Evolução dos SGBD
Visão Modelo
➔
➔
Evolução nos tipos de dados
➔
adicionar novos tipos de dados nativos
➔
permitir tipos definidos pelo usuário (UDT)
Evolução na produção dos dados
➔
➔
Evolução na transmissão dos dados
➔
➔
uso de MemCache
redes de alta velocidade
Evolução no armazenamento dos dados
➔
dispositivos SSD, alta velocidade
Evolução dos SGBD: Desafios
Visão Modelo
➔
dados na ordem de dezenas ou centenas de TB
➔
➔
poder de crescimento elástico horizontal
➔
➔
controle de transação ACID torna inviável a elasticidade
fácil distribuição dos dados e/ou processamento
➔
➔
abordagem de cluster é cara
SGBD paralelos são caros
tipos de dados variados, complexos e/ou
semiestruturados
➔
modelo de dados objeto-relacional não resolve todos os
requisitos
Classificação de SGBD
Visão
OldSQL → Tradicionais
 Relacionais (SQL)
 NoSQL

Novos modelos de dados
 Novos controles transacionais
 NewSQL


Novas tecnologias nos OldSQL
Modelo: NoSQL
Visão Modelo
➔
Tipos NoSQL
234
1
{wiki:
abc}
432
4
{test
asdf}
423
4
{url:
com}
527
3
{url:
123}
745
6
{qa:
dfsdfd}
642
1
{234:
2342}
524
8
{id:
5248}
234
2
{e: as,
r:eq}
Key/value
stores
Graph
database
A
1
2
1
9
3
8
1
1
2
12
9
1
8
6
3
1
Document
database
Column
family
1
Key-value Store
Visão Modelo
➔
➔
"Dynamo: Amazon's Highly Available Key-Value
Store"[2007]
Modelo de Dados:
➔
➔
➔
mapeamento global key-value
altamente tolerante a falha
Armazenamento de dados distribuído
➔
Altamente disponível
➔
Produtos:
➔
2341
{wiki:
abc}
4324
{test
asdf}
4234
{url: com}
5273
{url: 123}
7456
{qa:
dfsdfd}
6421
{234:
2342}
5248
{id: 5248}
2342
{e: as,
r:eq}
Key/value
stores
Riak, Redis, Voldemort, Dynamo, Berkeley DB,
MemcacheDB, …
Column Family
➔
➔
Google's "Bigtable: A Distributed Storage
System for Structured Data"[2006]
Visão Modelo
Data Model:
➔
grande tabela, com familia de colunas
➔
map-reduce para consultas e processamento
➔
modelo compacto e flexível
1
➔
1
Produtos:
➔
HBase, HyperTable, Cassandra, SimpleDB,
Cloudata, Cloudera, SciDB, …
1
1
1
1
Column
family
Document Family
➔
Modelo de Dados:
➔
Coleção de Documentos
➔
Um documento é uma coleção de key-value
➔
Centrado a índice, vários map-reduce
➔
Produtos:
➔
Visão Modelo
MongoDB, CouchDB, RavenDB, …
A
Graph Family
➔
➔
Modelo de Dados
➔
Nós com propriedades
➔
Relacionamentos com propriedades
➔
Hipergrafos
Produtos
➔
Neo4, SonesGraphDB, OrientDB, Sones,
HyperGraphDB, Virtuoso, VertexDB, …
Visão Modelo
Graph
database
Modelo: não convencionais
Visão Modelo
➔
Tipos
➔
Transações Longas
➔
Controle de Versões
➔
Espaço-Temporais
➔
Baseado em Restrições
Ecossistema dos SGBD
Visão
➔
T
Ecossistema dos SGBD
Visão
Big Data x SGBD
Visão
Big Data
Visão
http://www.economist.com/specialreports/displaystory.cfm?story_id=15557443
Big Data
Visão
➔
Grande volume de dados na ordem de dezenas/centenas de
TB
➔
➔
➔
Modelo flexível para armazenamento de dados complexos
armazenados em clusters de processadores de baixo custo
➔
➔
requer alto poder computacional para processamento, manipulação e
armazenamento de dados
tipos de dados variados, complexos e/ou semiestruturados
➔
➔
e.g., projeto Square Kilometre Array (SKA) envolve a construção do maior
radio telescópio que irá gerar até 1500 PBytes diariamente
e.g., Facebook tem 2700 nós em seu cluster com 60PB de armazenamento
(2011)
poder de crescimento elástico horizontal
➔
Alocação/desalocação de recursos de hardware/software sob demanda da
aplicação
Big Data (3V → 4V → 5V)
●
Volume
●
●
Velocidade
●
●
Ordem de TB diários
Alta taxa de geração e Transmissão de dados
Variedade
●
Estruturado (logs, transações de negócios)
●
Semi-estruturado e não estruturado
●
Maldição da dimensionalidade!
Visão
Big Data(3V → 4V → 5V)
Visão

Big Data (3V)
Big Data(3V → 4V → 5V)
➔
Big Data → 4 V
➔
Veracidade (ou Valor)
➔ Respostas rápidas x resultados confiáveis
Visão
Big Data
➔
Big Data → 5 V
➔
Variabilidade
➔ Interpretação diferente
➔ Mineração de padrões, tendências e
relacionamentos
➔ Visualização diferente
Visão
Big Data → Volume
LSST
Large Synoptic Survey Telescope
http://www.lsst.org/ Dados gerais:
●20 Terabytes de imagens astronômicas todas
as noites
●100-200 Petabytes após 10 anos
●20-40 Petabytes (Banco de Dados)
●2-10 milhões de novos eventos no céu toda
noite para serem classificados
8.4­meter diameter
primary mirror =
10 square degrees!
Hello !
– 100-200 Petabyte image archive
– 20-40 Petabyte database catalog
Big Data → Volume
Large Hadron Collider
700MB por seg,
60TB/dia, 20PB/ano
Illumina
HiSeq 2000
Sequencer
~1TB/dia
Maioria dos
laboratórios
possuem 25-100
dessas
máquinas
Big Data → Volume
A World Wide Web tem 20+ bilhões páginas x 20KB = 400+TB
Um computador pode ler 30-35 MB/seg do disco => 4 meses para ler a Web
Big Data → Velocidade
http://practicalanalytics.files.wordpress.com/2012/10/60seconds.jpg
Big Data → Velocidade
http://practicalanalytics.files.wordpress.com/2012/10/newstyleofit.jpg
Big Data → Velocidade x Volume
Visão
➔
Quantidade de dados no Mundo
➔
Até 2003
➔
5 bilhões de gigabytes (exabytes)
➔
Em 2011 a mesma quantidade era gerada a cada 2 dias.
➔
Em 2013, a mesma quantidade era gerada a cada 10 minutos
➔
Previsão de crescimento de 1000x em 10 anos e 1,000,000x em 20 anos.
(http://money.cnn.com/gallery/technology/2012/09/10/big-data.fortune/index.html)
Big Data → Variedade
➔
Internet das coisas (ubiquidade)
Visão
Big Data x SGBD
Visão
➔
Duas abordagens principais:
➔
SGBDR Paralelos
➔
Ferramentas NoSQL
123
/132
Big Data x SGBD x Usuários
Visão
➔
Cientista de Dados
http://www.oralytics.com/2012/06/data-science-is-multidisciplinary.html
Big Data x SGBD x Usuários
➔
Visão
Cientista de Dados
Data scientist
jobs Indeed.com
Big Data x SGBD x Usuários
➔
Cientista de Dados
http://becomingadatascientist.wordpress.com/2013/04/28/ideal-data-scientist/
Big Data x SGBD x Usuários
➔
Cientista de Dados
http://www.edureka.co/blog/who-is-a-data-scientist/
Big Data x SGBD x Usuários
➔
Cientista de Dados = X-informata
➔
Domínio de Informática
➔
Domínio do contexto de negócio
➔
Ex:
Físico-informata
➔ Médico-informata
➔ Bio-informata
➔ Genético-informata
➔ Informata-informata!
➔
Ambiente dos SGBD
Visão
➔
➔
➔
Ambiente Poliglota
Demandas do contexto Big Data está alterando
paradigmas
Postura “early adoption”
➔
➔
Protótipo/produto
Aproximação Mercado x Ciência
➔
Os dois contextos têm o mesmo problema
➔
Influência das redes sociais
Ambiente dos SGBD
Visão
➔
Ambiente Poliglota
➔
várias linguagens de programação
➔
vários produtos de armazenamento
➔
vários modelos de dados
➔
Várias ferramentas de análise
Ambiente dos SGBD
Visão
➔
Maior intersecção entre papéis do
Programador
➔ DBA
➔ Gerente de Dados
➔ Estatístico
➔ X-informata
➔
Referências
➔
[Ambler2001] Ambler, S.W.; ”The Object Primer: Introduction to techniques for Agile Modeling”; Ronin International; 2001.
➔
http://www.databasecolumn.com
➔
http://www.dbms2.com
➔
http://www.wintercorp.com/
➔
Brayner, A.;”Aplicações Avançadas de Banco de Dados”; UNIFOR; 2005.
➔
Salgado, A. C.;Banco de Dados; UPFE; 2005.
➔
Lóscio, B. F.;Banco de Dados Pós-Relacionais; DI-UFPe;
➔
Ferreira, K. R.; ”Introdução a Geoprocessamento”; INPE;2009.

Documentos relacionados

Bancos de Dados de Imagens

Bancos de Dados de Imagens Camada de disponibilização (offline)

Leia mais