instituto de computação pós graduação lato sensu em banco ... 1 - historicobd.pdf ·...

132
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

Upload: lamkhanh

Post on 08-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

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

➔ IC - UFMT

[Amber2001]

Engenharia de Software

➔ IC - UFMT

[Amber2001]

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

Arquitetura de um SGBDVisãoGlobal

Evolução

➔ Nª geração:

➔ SGBD InMemory➔ Dados em memória

Arquitetura de um SGBDVisãoGlobal

Evolução

➔ Nª geração:

➔ BigData➔ Ambiente Poliglota

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

Dados: complexo

➔ Comparação➔ Qual o parâmetro usar para comparação?

Visã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: espacial

➔ Métodos de Acesso Multidimensionais➔ R-Trees

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

Dado: composiçãoVisão Dados

fonte: NASA

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

Modelo: OOVisão Modelo

Modelo: OOVisão Modelo

➔ Diagrama de Classes

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

Modelo: multidimensionalVisão Modelo

➔ Operações sobre o cubo

Classificação de SGBDVisão

Classificação de SGBDVisão

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

Ecossistema dos SGBDVisão

➔ T

Ecossistema dos SGBDVisão

Big Data x SGBDVisão

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 (3V)

Visão

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.4­meter 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

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 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 → VariedadeVisão

➔ Internet das coisas (ubiquidade)

Big Data x SGBDVisão

➔ Duas abordagens principais:

➔ SGBDR Paralelos

➔ Ferramentas NoSQL

123 132/

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áriosVisã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 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.