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