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 josiel@ic.ufmt.br 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 josiel@ic.ufmt.br 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.