Upload
lamkhanh
View
212
Download
0
Embed Size (px)
Citation preview
Universidade Federal de Mato GrossoInstituto de ComputaçãoPós Graduação Lato Sensu em Banco de Dados
Fundamentos de Banco de Dadose
Modelagem de Dados
Prof. Dr. Josiel Maimone de [email protected]
Março - 2015
Conteúdo ProgramáticoAula 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áticoAula 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áticoAula 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 DadosDisciplina: 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 [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
➔ Incluem dados➔ Fazem consultas
➔ Programadores➔ 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
➔ Sist. de Suporte
a DecisãoSist. de Suporte
a Decisão
Outras áreasOutras áreasLinguagens deProgramação
Linguagens deProgramação
InteligênciaArtificial
InteligênciaArtificial
Sistemas Distribuídos
& Internet
Sistemas Distribuídos
& Internet
Sistemas de Bancos de Dados
Sistemas de Bancos de Dados
Temporal TemporalEspacialEspacial
Espaço TemporalEspaço Temporal
BD MultimídiaBD Multimídia
BD DimensionalBD Dimensional
DW DW
BD DistribuídosBD Distribuídos
BDOOBDOO
BDDOOBDDOO
BD AtivoBD AtivoBDDBDD
BDD AtivoBDD Ativo BDOO Ativo
BDOO Ativo
BD deRestrições
BD deRestrições
BD OO EspacialBD OO Espacial
Histórico
Visão RepositórioDispositivos de armazenamento
Visão GlobalArquitetura de Banco de Dados
Visão DadoEvolução dos Dados
Visão ConceitualModelo de Dados
Visão
Repositório: cartãoVisã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: fitaVisã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: discoVisã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: SSDVisã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 RepositórioDispositivos de armazenamento
Visão GlobalArquitetura de Banco de Dados
Visão DadoEvolução dos Dados
Visão ConceitualModelo
Visão
Arquitetura de um Sistema de Banco de Dados
Componentes
➔ Usuário
➔ Software
➔ manipulação
➔ Hardware
➔ armazenamento
VisãoGlobal
Arquitetura de um Sistema de Banco de Dados
Evolução
➔ 1ª geração:
➔ Software único➔ controla: interface, manipulação, acesso, armazenamento e gerenciamento dos dados.
VisãoGlobal
Armazenamento
Software
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Aplicação
Sistema Gerenciador de Banco de Dados
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.
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Aplicação
SGBD1
Evolução
➔ 3ª geração:
➔ Software Distribuído➔ Cliente (Aplicação)➔ Servidor (SGBD)
➔ vários locais➔ vários produtos
SGBD3SGBD1 SGBD2
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Navegador Web
Evolução
➔ 4ª geração:
➔ Software 3 camadas➔ Cliente (Aplicação)
➔ Navegador Web ➔ Servidor Web➔ SGBD
Servidor Web
SGBD
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Cliente
Evolução
➔ 5ª geração:
➔ Software Multi camadas➔ Cliente: vários dispositivos➔ Servidor de Aplicações
➔ componentes➔ SGBD
Servidor de Aplicações
SGBD
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Cliente
Evolução
➔ Nª geração:
➔ SGBD Paralelo➔ Processamento paralelo
Servidor de Aplicações
SGBD
SGBD
SGBD
SGBD
Software
Arquitetura de um Sistema de Banco de Dados VisãoGlobal
Cliente
Evolução
➔ Nª geração:
➔ SGBD Cluster➔ Servidor
➔ Vários nós com memória e disco compartilhados
no1
no2
no3
SGBD
Arquitetura de um SGBDVisãoGlobal
Cliente
Evolução
➔ Nª geração:
➔ Software Universal Server➔ Servidor
➔ Acessa várias fontes
SGBDSGBD
2
Arquitetura de um SGBDVisãoGlobal
Evolução
➔ Nª geração:
➔ SGBD Distribuído➔ Distribuição transparente
Arquitetura de um SGBDVisãoGlobal
Evolução
➔ Nª geração:
➔ Software Nuvem➔ Cliente: vários dispositivos➔ Servidor
➔ Elasticidade horizontal➔ Multitenant
Histórico
Visão RepositórioDispositivos de armazenamento
Visão GlobalArquitetura de Banco de DadosComponentes
Visão DadoEvolução dos Dados
Visão ConceitualModelo
Visão
Conceitos Básicos
Informação X Dado
Visão Dados
Gravação em código de uma observação, de um objeto, de um fenômeno
Fatos registrados, e que têm um significado implícito, sobre acontecimentos
Informação X Dado
Informações(significado para organização)
Dados(qualitativos / quantitativos)
Conhecimento(compreensão / teoria)
Ação(projetos / valores)
Abs
traç
ão /
Val
or
Conceitos BásicosVisão Dados
Dados
Para definir um tipo de dado é preciso ter
➔ Propriedades:
➔ representação➔ domínio
➔ Operações
➔ manipulação
Em outras palavras:
➔ Operandos + Operadores
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úmeroVisã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éricoVisão Dados
Propriedades:
➔ Representação: ➔ codificação de caracter
➔ UNICODE, ASCII, ISO 5960, etcDomínio:
➔ 16 bits para UNICODE (65535 caracteres)
Operações
➔ Manipulação: concatenação, etc➔ Comparações: ordem alfabética, etc
DadosVisã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 estruturadoVisã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 longoVisã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: imagemVisão Dados
imagem
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: imagemVisão Dados
imagem
➔ Armazenamento
➔ Em formato binário
➔ Operações (não embutidas no SGBD)
➔ Manipulação: adição, subtração,etc➔ Buscas de partes das imagens➔ 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!!
➔ Comparação➔ Não possui relação de ordem total➔ Não existe ”origem” dos dados➔ Ordenação dos dados:
< <
Dados: complexoVisão Dados
➔ Comparação➔ Não possui relação de ordem total➔ Não existe ”origem” dos dados➔ Ordenação dos dados:
< <
Dados: complexoVisão Dados
➔ Comparação:➔ Similaridade entre objetos
➔ Criação de um Método de acesso:➔ Domínio de dados complexo➔ Permita buscas por similaridade
5
45
49
Valor de Similaridade
Dados: complexoVisã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) simétrica,➔ (p3) x S, d(x, x) = 0 reflexiva,➔ e, em alguns casos,
➔ (p4) x, y S, x y d(x, y) > 0 estritamente positiva.➔ (p5) x, y, z S, d(x, y) d(x, z) + d(z, y) Desigualdade Triangular
➔ Indexação feita considerando a similaridade entre os objetos
Dados: complexoVisã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: complexoVisão Dados
➔ Exemplo de MA: Slim-Tree:
K L GH M N Q O PIJE A D F CB
E A D F CB
CB
D
E FG
HI
J
KL
MN
OP
QA
CB A
Dados: complexoVisã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➔ ...
Visão Dados
Dados: complexo
➔ 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
Visão Dados
Dados: complexo
➔Range Query➔ Recupera todos os objetos que estão até
uma distância rq ao objeto de consulta oq
rqoq
Visão Dados
Dados: complexo
➔ k-Nearest Neighbor Query➔ Recupera os k elementos mais similares
ao objeto de consulta oq
oq
Visão Dados
Dados: complexo
Dado: áudioVisã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ídeoVisã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ômicoVisão Dados
genômico
➔ Propriedades:
➔ Representação: sequência de caracteres➔ Domínio: combinação de nucleotídeos
➔ Operações
➔ Manipulação: regras de composição➔ Comparações: faixas semelhantes, formas
semelhantes
➔ 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: espacialVisão Dados
espacial
➔ Consultas espaciais
Dado: espacial
Seleção por ponto Seleção por região Seleção por janela
Fonte: Karine Ferreira (2006)
Visão Dados
➔ Junção espacial Para cada rodovia selecione as escolas que estão a menos de
1000 metros.
Dado: espacial
Fonte: Karine Ferreira (2006)
Visão Dados
Dado: espacial
BA
AAA-
B B B-
disjoint
BA
meet contains
equal
BA
overlap
A B
inside
B A
covers
A B
covered by
AAA-
B B B-
AAA-
B B B-
AAA-
B B B-
B A
AAA-
B B B-
AAA-
B B B-
AAA-
B B B-
AAA-
B B B-
BA B
Fonte: Adaptado de Egenhofer e Herring (1991)
➔ Predicados topológicosVisão Dados
Dado:espacial
➔ Métodos de Acesso Multidimensionais: ➔ k-d Trees
Fonte: Gilberto Ribeiro (2006)
Visão Dados
Dado: espacial
➔ Métodos de Acesso Multidimensionais➔ Fixed-Grid
Fonte: Gilberto Ribeiro (2006)
Visão Dados
Dado: espacial
➔ Métodos de Acesso Multidimensionais➔ Quadtree
Fonte: Gilberto Ribeiro (2006)
Visão Dados
Dado: composiçãoVisã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
Histórico
Visão RepositórioDispositivos de armazenamento
Visão GlobalArquitetura de Banco de Dados
Visão DadoEvolução dos Dados
Visão ConceitualModelo de Dados
Visão
70
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
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
Nome: Joana Rua: Av. Dom,123 Cidade: PoconéFone: 455-0897
Data: Fev 14, 1955Hora: 2:00 p.m.Paciente:Joana , 455-0897CID: 123456789
Modelo: arquivos
Nome: Joana Rua: Av. Dom,123 Cidade: PoconéFone: 455-0897
Data: Fev 14, 1955Hora: 2:00 p.m.Paciente:Joana , 455-0897CID: 123456789
➔ 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.
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ão-
planejadas (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árquicoVisão
➔ Modelo Hierárquico
➔ Uma hierarquia define a organização e o acesso aos dados
➔ Cada nó pode ter diversos filhos
Modelo: HierárquicoVisã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: RedesVisão
➔ Cada registro pode ter diversos pais
➔ Composto de conjuntos
➔ Cada conjunto tem registro dono e registro membro
➔ Membro pode ter diversos donos
Modelo: RedesVisã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: RelacionalVisã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: RelacionalVisã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: RelacionalVisã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: MERVisão
➔ Modelo Entidade Relacionamento
➔ Modelo conceitual
➔ Representa informações com
➔ Entidades ➔ representam entes do mundo real.
➔ Relacionamento ➔ representam interações entre as entidades.
Companhia
Subsidiária
Pessoa
Empregado
nome_comp
localização#companhia
nome_sub rua localização
qualificação
salário
nome idade
domicílioVeículo
produz é-um
modelo fabricantecor
possui
administra
trabalha
rua
gerencia
possui_frota #pessoa
1 1
1
1
n
1
1
n
n 1
n
1
1
1
1
Modelo: MERVisão
Modelo: OOVisão Modelo
➔ Paradigma Orientado a Objetos
➔ Classe e Objeto➔ Encapsulamento➔ Relacionamento
➔ Herança➔ Associação
➔ Polimorfismo
Modelo: OOVisã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
Fusion
Operation descriptions,Message numbering
Meyer
Before and after conditions
Harel
State charts
Wirfs-Brock
Responsibilities
Embley
Singleton classes, High-level view
Odell
Classification
Shlaer - Mellor
Object Lifecycles
Gamma, et.al
Frameworks, patterns,notes
Booch
JacobsonRumbaugh
Modelo: OOVisão Modelo
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}]
classe1:
Companhia: [
nome: String,
matriz: Endereço;
Subsidiarias: {Subsidiaria},
Presidente: Empregado]
classe2:
Subsidiaria: [
nome: String,
escritório: Endereço;
Gerente: Empregado,
Empregados: {Empregado}]
BD x Aplicações
Modelo: OO
Modelo: objeto-relacionalVisã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
CREATE TYPE Endereço ( RuaNoVARCHAR(60), Cidade VARCHAR(40),);
CREATE TYPE Fornecedor ( CodFornec CHAR(4) NomeFornec VARCHAR(40) EndFornec endereço,);
CREATE TYPE empregado( nome CHAR(20), salário DECIMAL(10,2),);
CREATE TABLE Fornecedor OF Fornecedor
CREATE TABLE empregados OF Empregado
CREATE TYPE Companhia( NomeComp String,
Matriz endereço,Subsidiarias SET(REF(Subsidiaria)),Presidente REF(Empregado),
);
CREATE TYPE Subsidiaria(
NomeSub String,Escritório endereço,Empregados SET(REF(Empregado)),
);
Criação de Tipos:
Criação de Tabelas:
BD x Aplicações
Modelo: objeto-relacional
Modelo: multidimensionalVisã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
Tem
po
5 1 68
Produto
P1 P2 P3 P4
Jan./13
Fev./13
FORTALEZASOBRAL
NORDESTE
CEARÁ
SUDESTE
RIO DE JANEIRO
PERNAMBUCO
SÃO PAULO
...
➔ 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
Modelo: multidimensionalVisão Modelo
➔ Operações sobre o cubo
P r o d u t o
L o c a l
T e m p o
V e n d a s
L o c a l
T e m p o
P r o d u t o
V e n d a s
L o c a l
T e m p o
P r o d u t o
V e n d a s
Evolução dos SGBDVisã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
➔ uso de MemCache
➔ Evolução na transmissão dos dados
➔ redes de alta velocidade
➔ Evolução no armazenamento dos dados
➔ dispositivos SSD, alta velocidade
Evolução dos SGBD: DesafiosVisão Modelo
➔ dados na ordem de dezenas ou centenas de TB
➔ abordagem de cluster é cara
➔ 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
➔ 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
OldSQL → Tradicionais Relacionais (SQL)
NoSQL
Novos modelos de dados Novos controles transacionais
NewSQL
Novas tecnologias nos OldSQL
Visão
Modelo: NoSQLVisão Modelo
➔ Tipos NoSQL
Key/valuestores
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}
Documentdatabase
A
Columnfamily
Graphdatabase
1
1 2
1
9
3
1
1
8
6
1 9
3
2
2 8
1
1
Key-value StoreVisã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:
➔ Riak, Redis, Voldemort, Dynamo, Berkeley DB, MemcacheDB, …
Key/valuestores
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}
Column FamilyVisão Modelo
➔ Google's "Bigtable: A Distributed Storage System for Structured Data"[2006]
➔ Data Model:
➔ grande tabela, com familia de colunas➔ map-reduce para consultas e processamento➔ modelo compacto e flexível
➔ Produtos:
➔ HBase, HyperTable, Cassandra, SimpleDB, Cloudata, Cloudera, SciDB, …
Columnfamily
1
1
1
1
1
1
Document FamilyVisão Modelo
➔ Modelo de Dados:
➔ Coleção de Documentos
➔ Um documento é uma coleção de key-value
➔ Centrado a índice, vários map-reduce
➔ Produtos:
➔ MongoDB, CouchDB, RavenDB, …A
Graph FamilyVisão Modelo
➔ Modelo de Dados
➔ Nós com propriedades➔ Relacionamentos com propriedades➔ Hipergrafos
➔ Produtos
➔ Neo4, SonesGraphDB, OrientDB, Sones, HyperGraphDB, Virtuoso, VertexDB, …
Graphdatabase
Modelo: não convencionaisVisão Modelo
➔ Tipos
➔ Transações Longas➔ Controle de Versões➔ Espaço-Temporais➔ Baseado em Restrições
Big Data Visão
http://www.economist.com/specialreports/displaystory.cfm?story_id=15557443
Big DataVisão
➔ Grande volume de dados na ordem de dezenas/centenas de TB
➔ e.g., projeto Square Kilometre Array (SKA) envolve a construção do maior radio telescópio que irá gerar até 1500 PBytes diariamente
➔ requer alto poder computacional para processamento, manipulação e armazenamento de dados
➔ tipos de dados variados, complexos e/ou semiestruturados
➔ Modelo flexível para armazenamento de dados complexos
➔ armazenados em clusters de processadores de baixo custo
➔ 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)Visão
● Volume
● Ordem de TB diários
● Velocidade
● 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!
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 → VolumeLSSTLarge Synoptic Survey Telescope
http://www.lsst.org/
8.4meter diameterprimary mirror =10 square degrees!
Hello !
– 100-200 Petabyte image archive– 20-40 Petabyte database catalog
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
Big Data → Volume
Large Hadron Collider
700MB por seg,60TB/dia, 20PB/ano
IlluminaHiSeq 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 x VolumeVisã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 x SGBD x UsuáriosVisão
➔ Cientista de Dados
http://www.oralytics.com/2012/06/data-science-is-multidisciplinary.html
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 = 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 SGBDVisã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 SGBDVisã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 SGBDVisã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.