Baixe o app para aproveitar ainda mais
Prévia do material em texto
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 Setembro - 2013 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 Setembro – 2013 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ão Sist. de Suporte a Decisão Outras áreasOutras áreas Linguagens de Programação Linguagens de Programação Inteligência Artificial Inteligência Artificial 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 Ativo BDDBDD BDD AtivoBDD Ativo BDOO Ativo BDOO Ativo BD de Restrições BD de Restrições BD OO Espacial BD OO Espacial Histórico G Visão Repositório óDispositivos de armazenamento G Visão Global óArquitetura de Banco de Dados G Visão Dado óEvolução dos Dados G Visão Conceitual óModelo de Dados Visão 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 G Visão Repositório óDispositivos de armazenamento G Visão Global óArquitetura de Banco de Dados G Visão Dado óEvolução dos Dados G Visão Conceitual óModelo 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 SGBD VisãoGlobal Cliente Evolução ➔ Nª geração: ➔ Software Universal Server ➔Servidor ➔Acessa várias fontes SGBD SGBD2 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 ➔ 2ª 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 G Visão Repositório óDispositivos de armazenamento G Visão Global óArquitetura de Banco de Dados óComponentes G Visão Dado óEvolução dos Dados G Visão Conceitual óModelo 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) A bstra çã o / V al or Conceitos Básicos Visã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ú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 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: imagem Visã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: 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 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: 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) 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: 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: K L GH M N Q O PIJE A D F CB E A D F CB C B D E FG HI J K L M N O P QA CB A 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 ➔ ... 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: á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 Visã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: espacial Visã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 ∅ ∅ ¬∅ ∅ ∅ ¬∅ ¬∅ ¬∅ ¬∅ ∂A A° A- ∂B B° B- disjoint BA meet contains equal BA overlap A B inside B A covers A B covered by ¬∅ ∅ ¬∅ ∅ ∅ ¬∅ ¬∅ ¬∅ ¬∅ ∂A A° A- ∂B B° B- ∅ ∅ ¬∅ ¬∅ ¬∅ ¬∅ ∅ ∅ ¬∅ ∂A A° A- ∂B B° B- ¬∅ ∅ ¬∅ ¬∅ ¬∅ ¬∅ ∅ ∅ ¬∅ ∂A A° A- ∂B B° B- B A ¬∅ ∅ ∅ ∅ ¬∅ ∅ ∅ ∅ ¬∅ ∂A A° A- ∂B B° B- ¬∅ ¬∅ ¬∅ ¬∅ ¬∅ ¬∅ ¬∅ ¬∅ ¬∅ ∂A A° A- ∂B B° B- ∅ ¬∅ ∅ ∅ ¬∅ ∅ ¬∅ ¬∅ ¬∅ ∂A A° A- ∂B B° B- ¬∅ ¬∅ ∅ ∅ ¬∅ ∅ ¬∅ ¬∅ ¬∅ ∂A A° A- ∂B B° B- BA B Fonte: Adaptado de Egenhofer e Herring (1991) ➔ Predicados topológicos Visã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çã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óricoG Visão Repositório óDispositivos de armazenamento G Visão Global óArquitetura de Banco de Dados G Visão Dado óEvolução dos Dados G Visão Conceitual óModelo 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, 1955 Hora: 2:00 p.m. Paciente:Joana , 455-0897 CID: 123456789 Modelo: arquivos Nome: Joana Rua: Av. Dom,123 Cidade: Poconé Fone: 455-0897 Data: Fev 14, 1955 Hora: 2:00 p.m. Paciente:Joana , 455-0897 CID: 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 ➔ Duplicação de Dados ➔ dados e programas desenvolvidos de forma independente. ➔ Duplicação excessiva de dados é problemática: ➔ Custo adicional para ➔ operações de entrada de dados e atualização. ➔ de espaço de armazenamento. ➔ para detecção e correção de erros. 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á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. 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: MER Visão 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 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: OO Visão Modelo Modelo: OO Visão Modelo Modelo: OO Visã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-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 linguagemSQL 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: 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 Te mp o 5 1 68 Produto P1 P2 P3 P4 Jan./13 Fev./13 FORTALEZA SOBRAL 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: multidimensional Visã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: multidimensional Visão Modelo ➔ Operações sobre o cubo Modelo: multidimensional Visão Modelo Acesso à informação Acesso aos dados Data Warehouse Middleware ou transporte Gerenciador de Processos Acesso aos dados Bd Operacional Funções dos Dados Dicionário de Dados 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 ➔ 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: Desafios Visã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 G OldSQL → Tradicionais ó Relacionais (SQL) G NoSQL ó Novos modelos de dados ó Novos controles transacionais G NewSQL ó Novas tecnologias nos OldSQL Visão Modelo: NoSQL Visão Modelo ➔ Tipos NoSQL Key/value stores 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} Document database A Column family Graph database 1 1 2 1 9 3 1 1 8 6 1 9 3 2 2 8 1 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: ➔ Riak, Redis, Voldemort, Dynamo, Berkeley DB, MemcacheDB, … Key/value stores 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 Family Visã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, … Column family 1 1 1 1 1 1 Document Family Visã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 Family Visão Modelo ➔ Modelo de Dados ➔ Nós com propriedades ➔ Relacionamentos com propriedades ➔ Hipergrafos ➔ Produtos ➔ Neo4, SonesGraphDB, OrientDB, Sones, HyperGraphDB, Virtuoso, VertexDB, … 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 ➔ 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 G Big Data ó 3 V ãVolume ãVelocidade ãVariedade ó 5 V ã Variabilidade ã Veracidade Visão Big Data G Big Data (3V) Visão Big Data ➔ Big Data → 5 V ➔ Variabilidade ➔ Interpretação diferente ➔ Visualização diferente ➔ Veracidade ➔ Resultados confiáveis Visão Big Data Visão ➔ Duas abordagens principais: ➔ SGBDR Paralelos ➔ Ferramentas NoSQL 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 ➔ maior intersecção entre papéis do ➔Programador ➔DBA 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. Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Intro-4 Intro-5 Slide 49 MAM ideia Slide 51 Main MAMs Simil-Queries RQ kNNQ Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide69 Database Models In the beginning…(in the 1950s) Slide 72 Slide 73 Slide 74 Slide 75 Slide 76 Slide 77 Slide 78 Slide 79 Slide 80 Slide 81 Slide 82 Slide 83 Slide 84 Slide 85 Slide 86 Slide 87 Slide 88 Slide 89 Slide 90 Slide 91 Slide 92 Slide 93 Slide 94 Slide 95 Slide 96 Slide 97 Slide 98 Slide 99 Slide 100 Slide 101 Slide 102 Slide 103 Slide 104 Slide 105 Slide 106 Slide 107 Slide 108 Slide 109 Slide 110 Slide 111 Slide 112 Slide 113 Slide 114 Slide 115 Slide 116 Slide 117 Slide 118
Compartilhar