Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador

Tamanho: px
Começar a partir da página:

Download "Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador"

Transcrição

1 ISSN: Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador Wendel Góes Pedrozo 1, Maria Salete Marcom Gomes Vaz 1,2 1 Departamento de Informática Universidade Federal do Paraná (UFPR) Caixa Postal Curitiba PR Brazil 2 Departamento de Informática Universidade Estadual de Ponta Grossa (UEPG) Caixa Postal Ponta Grossa PR Brazil Abstract. This paper presents a architheture for solution of the problem of selection of indices in relational data base. The system offer a tool that analyzes commands SQL submitted to the SGBD and recommends the indices to increase the performance of this command. The efficiency of the approach based on costs of Otimizer for solution of the problem as well as the extensions necessary is shown to be carried through in the SGBD PostgreSQL for implementation of the work. Resumo. Este artigo apresenta uma arquitetura para solução do problema de seleção de índices em banco de dados relacionais. O sistema propõe uma ferramenta que analisa comandos SQL submetidos ao SGBD e recomenda os índices para aumentar o desempenho deste comando. É mostrada a eficiência da abordagem baseada em custos do Otimizador para solução do problema bem como as extensões necessárias a serem realizadas no SGBD PostgreSQL para implementação do trabalho. 1. Introdução Uma atividade comumente realizada por administradores de sistemas de bancos de dados para acelerar o desempenho de consultas submetidas a um SGBD relacional é a seleção de índices sobre as tabelas presentes na base de dados. Essa atividade é complexa e envolve diversos fatores como, por exemplo: obtenção da carga de trabalho e a escolha de quais tabelas e colunas devem ser indexadas. Neste artigo será apresentada a proposta de arquitetura para prover a seleção e criação de índices em um sistema de bancos de dados. Serão discutidas todas as etapas para prover a seleção e criação dos índices, bem como questões de implementação no SGBD objeto relacional PostgreSQL. O restante deste artigo está organizado conforme descrito a seguir. A Seção 2 faz um estudo sobre Índices em banco de dados. Na seção 3 é mostrada uma visão geral do problema de seleção de índices e discutida a metodologia empregada em algumas ferramentas já existentes para resolver este problema. Na Seção 4 é apresentada a infra-estrutura necessária para implementação da proposta no SGBD PostgreSQL. As características da Arquitetura, bem como tecnologias utilizadas são abordadas na seção 5. Na Seção 6 é feito um estudo comparativo dos trabalhos correlatos, discutindo suas vantagens e desvantagens em relação à arquitetura proposta. Por fim, na Seção 7 são apresentadas as conclusões e perspectivas de trabalhos futuros. 2. Índices em Banco de dados Um índice é uma organização de dados que permite acelerar o processamento de consultas. Uma chave de um índice é uma seqüência de atributos e são feitos mapeamentos entre os valores desta seqüência e seus registros correspondentes. A estrutura mais comumente utilizada para representar índices são as arvores B+ 1, como ilustrado na figura

2 3. Descrição do Problema Figura 1. Exemplo de arvore B+ Como o problema da seleção de índices sobre as tabelas presentes na base de dados envolve muitas questões, vamos iniciar com um exemplo. Consideremos uma carga de trabalho que envolva os seguintes comandos SQL sobre uma tabela denominada Venda: (1) insert into Venda (idproduto, data, qtd, valor) values (4, current_timestamp, 20, 348); (2) select idproduto, data, sum(valor) as total From Venda where valor > and data between and group by idproduto, data; Suponha, inicialmente, que os comandos são submetidos ao SGBD de forma concorrente e que temos uma freqüência de comandos do tipo (2) muito maior do que a de comandos do tipo (1). Neste tipo de cenário, um índice sobre as colunas de valor e data da tabela Venda pode trazer benefícios de desempenho no processamento das transações em que estes comandos estão inseridos. Como os comandos do tipo (1) são menos freqüentes, espera-se um pequeno custo decorrente da atualização do índice sobre a tabela de vendas, compensando a criação do mesmo. De outra forma, se tivermos a freqüência de comandos do tipo (1) muito superior do que a freqüência de comandos do tipo (2), a criação de índices não é recomendável, devido ao custo de atualização dos índices presentes sobre a tabela. 3.1 Metodologias empregadas na Seleção de Índices Uma das tarefas que DBA s precisam realizar é a escolha de índices que possam melhorar o desempenho das consultas submetidas ao SGBD. Os trabalhos existentes que tratam da seleção de índices, procuram construir ferramentas de apoio ao DBA na escolha dos índices para uma determinada carga de trabalho W = {(Q i, f i ), i = 1,..., n}. Onde Q i representa um comando SQL 2 e f i sua freqüência de submissão. Estas ferramentas implementam algoritmos que objetivam minimizar o custo total de processamento de W pelo sistema respeitando um limite de espaço S disponível para a criação de índices. O custo total de processamento é a soma dos custos de acesso e atualização dos dados e dos custos de manutenção dos índices. Já foi demonstrado que uma versão restrita do problema de seleção de índices é NP-complexo [Comer 1978]. 1 - Uma árvore B+ é uma árvore balanceada cujas folhas contêm uma seqüência de pares chaves-ponteiro. As chaves são ordenadas pelo seu valor. 2 - Structured Query Language, ou Linguagem de Consulta Estruturada, é uma Linguagem de pesquisa declarativa projetada para ser utilizada em sistemas gerenciadores de banco de dados relacionais. Muitas das características originais do SQL foram inspiradas na álgebra relacional. 101

3 Nos trabalhos realizados sobre este assunto, pode-se perceber que existe uma metodologia comum para a escolha de índices que se adequam a uma carga de trabalho, como mostra a figura 2. Figura 2. Metodologia para seleção de Índices O primeiro passo para a seleção de índices é obter a carga de trabalho W sobre a qual a ferramenta irá operar. Normalmente, as ferramentas possuem duas formas de aquisição dos comandos SQL e suas freqüências de execução: a entrada manual e a utilização de arquivos de trace. Na entrada manual, o DBA insere na ferramenta uma lista de comandos SQL e suas freqüências estimadas. Já na coleta de trace, o DBA usa um utilitário do sistema que permite o registro, em um arquivo de estatísticas sobre todos os comandos SQL submetidos pelos usuários. Esse arquivo é processado pela ferramenta para detectar quantas vezes os comandos SQL foram executados durante o período de coleta. Em alguns sistemas também é possível obter os comandos recentemente executados no sistema através da varredura do cachê reservado para operações SQL [Oracle], [Lohman et Al 2000]. Em seguida, para cada comando da carga de trabalho, é aplicada uma heurística de escolha de índices candidatos, que irá determinar os melhores índices para cada comando SQL da carga de trabalho. Na literatura existem diversas abordagens para a construção de heurística de escolha de candidatos. Podemos citar as estratégias baseadas em regras [Rozen and Shasha 1991], [Choenni et al 1993] e as estratégias baseadas em custos do Otimizador [Finkelstein et Al 1988], [Chaudhuri and Narasayya 1997] e [Lohman et Al 2000]. No primeiro tipo de abordagem, a escolha de quais índices é interessante para um comando SQL é baseada no uso de regras derivadas a partir do conhecimento de especialistas. Um exemplo de regra seria sempre criar um índice para consultar uma tabela com mais de 50 blocos e filtrada por um predicado que obtém menos de 5% das tuplas. Já na segunda abordagem, o próprio Otimizador de consultas do sistema é utilizado para classificar quais índices poderão trazer maior benefício para o comando. Esta abordagem apresenta como principal vantagem a característica de evitar que a ferramenta crie um modelo de custos separado do que é utilizado pelo Otimizador. Isto permite garantir que os índices criados serão realmente considerados pelo sistema. Conforme veremos na próxima sessão, nosso trabalho está mais relacionado às técnicas baseadas em custos do Otimizador. Por fim, após a escolha dos índices candidatos, é aplicada uma heurística final de seleção de índices que procura determinar quais índices oferecem a melhor relação custo-benefício para 102

4 a carga de trabalho como um todo. Este tipo de heurística pode levar em conta o compromisso existente entre os custos de manutenção dos índices e as melhorias trazidas por estes em consultas. Após a aplicação da heurística final de seleção de índices, as ferramentas recomendam criações ou remoções de índices para o DBA, que irá decidir se, e quando, estas recomendações deverão ser efetivadas. 4 Infra-estrutura do SGBD PostgreSQL Um dos recursos muito utilizado por DBAs, para analisar o comportamento do Otimizador de consultas do SGBD é o comando explain. A utilização deste comando retorna informações importantes sobre o plano de execução para um determinado comando SQL, bem como suas métricas de tempo e custo. Para ilustrar o comportamento desse recurso, vejamos a seguir. Supondo, inicialmente que estamos escrevendo uma consulta sobre uma base de dados simples de vendas. Utilizando o comando explain é possível ver o plano que o SGBD escolhe para a consulta: simple=# explain simple-# select idproduto, data, sum(valor) as total simple-# from venda simple-# where valor > and simple-# data between and simple-# group by idproduto, data; QUERY PLAN HashAggregate (cost= rows=12 width=21) -> Seq Scan on venda (cost= rows=2906 width=21) Filter: ((valor > ::numeric) AND (data >= ::date) AND (data <= ::date)) (3 rows) No plano, podemos perceber que o SGBD fará uma varredura seqüencial sobre a tabela de vendas e aplicará os predicados sobre as colunas de valor e de data. A quantidade de linhas esperada como resultado é de 2906 e o custo de processamento da varredura será de Após a varredura, um operador de agregação será aplicado para processar a cláusula group by do comando. O custo total esperado é de Como a arquitetura proposta utiliza a abordagem baseada em custos do Otimizador, será necessário estender alguns comandos, como é o caso do explain, para ser possível tratar simulações de configurações hipotéticas, como será visto a seguir. 4.1 Simulação de Índices Hipotéticos A possibilidade de simulação de configurações hipotéticas de índice no schema do banco de dados, é um pré-requisito para a arquitetura proposta. O sistema deve possuir mecanismos necessários para estimar através do próprio Otimizador do sistema o quanto um índice pode trazer benefícios para uma determinada consulta. Também será necessário estender a interface do SGBD, de modo que seja possível simular a presença de índice na base de dados, sem que seja necessário materializar fisicamente este índice. Para isto, será preciso implementar um mecanismo para registro dos índices hipotéticos no catálogo do SGBD. Outra alteração que se faz necessária é estender o Otimizador de consultas para reconhecer as configurações hipotéticas registradas, possibilitando ao Otimizador a produção de planos de execução e seus custos levando em conta a existência das estruturas hipotéticas. Esta 103

5 última capacidade é importante porque aproveita o próprio Otimizador para avaliar os custos, evitando assim a construção de um modelo de custo especializado na ferramenta de seleção de índices. 4.2 Criação de Índices On-line Um outro mecanismo importante para a tarefa de seleção e criação de índices é o de permitir que esta operação seja feita on-line, ou seja, enquanto atualizações e consultas são concorrentemente processadas sobre a tabela base. Este tipo de técnica é de grande utilidade para aplicações que precisam ficar permanentemente disponível, como por exemplo aplicações de e- commerce. Este tipo de técnica se revela bastante importante também para situações onde a atualização dos dados se concentra em períodos de baixo uso do SGBD. Neste cenário, pode ser interessante remover os índices da tabela, antes das atualizações e voltar a criá-los depois. Alguns sistemas comerciais já possuem facilidades para criar índices sem impedir a realização de transações concorrentes. É o caso dos SGBDs Oracle [Oracle] e IBM DB2 [IBM], por exemplo. O SGBD PostgreSQL na versão mais recente, já possui a facilidade de criação de índices on-line também. 5. Arquitetura Proposta A proposta de arquitetura e ferramenta, está direcionada para implementação no SGBD objeto relacional PostgreSQL, devido a ser um SGBD Open Source (código aberto), o que facilita a realização de alterações no seu código fonte. Outro ponto é a carência de ferramentas de auxilio ao DBA para esta plataforma, e o fato do PostgreSQL estar se consolidando como um dos grandes SGBD corporativos para aplicações OLTP 3. A figura 3 traz a descrição dos módulos da ferramenta de recomendação de índices. Figura 3. Módulos da ferramenta de recomendação de índices 3 - Online Transaction Processing ou Processamento de transações em tempo-real. São sistemas que se encarregam de registrar todas as transações contidas em uma determinada operação organizacional. Por exemplo: um sistema de transações bancárias que registra todas as operações efetuadas em um banco. Interface de linha de comando: módulo de interface com o usuário que permite a entrada de comandos de linha, utilizada para recomendação de índices. 104

6 Interface Gráfica: módulo de interface gráfica com o usuário, que disponibiliza vários recursos que facilitam a entrada e a saída de dados na ferramenta de recomendação de índices. Tabelas Auxiliares: essas tabelas tem o propósito de guardar diversas informações úteis para a ferramenta de recomendação de índices, e são utilizadas como veículo de comunicação entre a ferramenta de recomendação e o Otimizador do PostgreSQL. Para utilizar a ferramenta de recomendação, os usuários poderão optar pela interface gráfica ou pela interface de linha de comando. Tanto no modo gráfico como por linha de comando, é necessário informar uma carga de trabalho (W). Na interface gráfica, para entrada da carga de trabalho (W) é possível usar o recurso chamado HISTÓRICO SQL, que procura automaticamente recentes declarações SQL e suas freqüências de execuções, essas informações são previamente gravadas na tabela RECENT_SQL no módulo de Tabelas Auxiliares. Após escolher a carga de trabalho de entrada, a ferramenta gera índices candidatos utilizando a Heurística adaptada de [Lohman et Al 2000], depois disso é chamado o Otimizador do PostgreSQL para executar o processo de otimização para a carga de trabalho (W), considerando os índices hipotéticos. Por fim, os índices hipotéticos constantes no plano de execução gerado pelo Otimizador são apresentados ao usuário como solução, bem como métricas de desempenho com sua utilização. Outro recurso disponível na interface gráfica da ferramenta é a possibilidade de entrada manual de declarações SQL ou através dos recursos de copiar e colar. 5.1 Heurística de seleção de índices Para que o processo seja eficiente, o importante é limitar de forma inteligente a enumeração de índices hipotéticos realizados antes da otimização. Segue a descrição da heurística utilizada neste trabalho, a qual leva em conta os principais usos de acessos indexados aos dados e suas combinações para criar índices hipotéticos com múltiplas colunas: Ao receber uma carga de trabalho (W) a ferramenta utiliza uma heurística para escolha de índices candidatos adaptada de Lohman et al (2000). Na literatura existem várias heurísticas para seleção de índices, entre elas destacam-se os trabalho de Finkelstein et Al (1988), Frank et Al (1992), Chaudhuri and Narasayya (1998) e Lohman et al (2000) utilizada neste trabalho, por sua simplicidade e eficiência. Ela foi implementada no SGBD IBM DB2 UDB [IBM] e permite que a seleção de índices para recomendação seja realizada para um dado comando SQL com a execução de apenas uma chamada ao Otimizador do SGBD. Diferente de outras abordagens, as quais utilizam o Otimizador apenas para avaliar possíveis conjuntos de índices, esta propõe uma integração muito mais próxima entre o Otimizador de consulta e a ferramenta de seleção de índices. É sugerido que o próprio Otimizador do SGBD tenha a capacidade de enumerar os melhores índices para uma dada consulta SQL. Para isto, todos os índices hipotéticos relevantes são enumerados antes do processo de otimização e fica totalmente a cargo do Otimizador selecionar quais índices serão efetivamente selecionados. Para a enumeração dos índices candidatos, a heurística analisa predicados e cláusulas presentes no comando SQL submetido para encontrar colunas que poderiam ser indexadas. Os usos interessantes de colunas são classificados e combinados para formar índices hipotéticos. Todos os índices hipotéticos enumerados são criados no sistema, e então, uma chamada é feita ao Otimizador. 105

7 Por fim, os índices hipotéticos escolhidos pelo Otimizador no plano de execução gerado durante o processo de otimização são indicados como os índices recomendados para o comando Método de Classificação e algoritmo A heurística procura encontrar no comando SQL cinco tipos de usos interessantes de colunas: EQ: colunas envolvidas em predicados de igualdade, O: colunas envolvidas em cláusulas ORDER BY, GROUP BY e predicados de junção; RANGE: colunas que aparecem em restrições de intervalos, SARG: colunas que aparecem em outros predicados indexáveis (por exemplo, like). Este uso de colunas remete ao conceito de predicados de busca (sargable predicates) discutido em Selinger (1979), REF: demais colunas referenciadas no comando SQL. A heurística combina os grupos de colunas das seguintes formas para formar índices hipotéticos com múltiplas colunas, em ordem, eliminando colunas duplicadas: 1. EQ + O 2. EQ + O + RANGE 3. EQ + O + RANGE + SARG 4. EQ + O + RANGE + REF 5. O + EQ 6. O + EQ + RANGE 7. O + EQ + RANGE + SARG 8. O + EQ + RANGE + REF Outro grupo de uso interessante de colunas proposto por Salles (2004) é denominado BAD. Este grupo é formado por colunas afetadas por comandos de atualização como insert e delete. Este grupo é interessante para determinarmos posteriormente, quais índices são prejudicados pelo comando. Estas combinações procuram refletir usos típicos de índices para acelerar consultas [Lohman et Al 2000]. Segue abaixo o algoritmo em pseudocódigo utilizado em nosso trabalho. Recomenda Índices (carga de trabalho W) 1. Geração de Índices utilizando Heurística adaptada de Lohman et Al (2000); 2. Inserção dos índices candidatos no Schema; 3. Chamada ao Otimizador; 4. Verifica plano ótimo gerado, identifica índices hipotéticos presentes no plano; 5. Apresentação ao usuário dos índices recomendados, suas métricas de desempenho e comando para materialização dos índices. O Algoritmo acima, mostra a simplicidade e eficiência da abordagem baseada em custos do Otimizador. A essência deste algoritmo é que a recomendação de novos índices e o cálculo de seu desempenho, ambos ocorrem em apenas uma chamada ao Otimizador do PostgreSQL. Esta abordagem tem muitas vantagens, uma delas é que o próprio Otimizador faz a enumeração dos melhores índices para uma dada consulta, isto garante que índices recomendados serão realmente considerados pelos SGBDs, quando materializados fisicamente. Outra vantagem é que não é necessário manter uma ferramenta externa ou secundária, para recomendar índices ou para avaliar seus custos. Outra importante vantagem, é que o Otimizador do PostgreSQL, não necessita significantemente ser modificado. É necessário apenas permitir que o Otimizador reconheça índices hipotéticos inseridos no Schema durante o processo de otimização. Com isso, o Otimizador continua trabalhando normalmente, fazendo os planos de execução, ordenando junções, métodos de acesso, etc. 6. Comparação com Trabalhos Correlatos 106

8 Muitos artigos tem sido escritos sobre este assunto. A Ferramenta proposta neste artigo, é um dos poucos trabalhos que para recomendar índices para uma declaração SQL, simplesmente faz uma chamada ao SGBD, e utiliza o próprio Otimizador do SGBD para prover a recomendação de índices. Os primeiros projetos de recomendação de índices foram iniciados em meados dos anos 80 [Maggie et al 1983], [Barucci et al 1990], [Frank et al 1992], [Capara et al 1995], [Gupta et al 1997] e [Choenni et al 1993]. Estes artigos iniciais tem várias deficiências. Primeiro, eles são restritos a determinados SGBDs. Outra deficiência é que nenhum destes trabalhos utilizam o Otimizador para estimar os seus custos. Um exemplo disso pode ser visto em Choenni et al (1993), onde são desenvolvidos modelos de custos detalhados para a ferramenta de seleção de índices. Estes modelos não estão em sincronia com o modelo utilizado pelo Otimizador de consultas do sistema. Isto não é desejável, uma vez que o Otimizador não pode realizar as mesmas suposições sobre custos que a ferramenta e esta discrepância pode causar, até mesmo, a escolha de métodos de acesso distintos dos previstos pela ferramenta para o processamento das consultas. O trabalho de Filkestein et. al (1998), propõe que ao realizar a seleção de índices para um determinado banco de dados, sejam criadas réplicas, no catálogo do SGBD, das tabelas envolvidas. Estas réplicas não possuem extensão física, mas recebem todas às informações estatísticas das tabelas originais. A ferramenta então cria índices sobre as réplicas e faz estimativas de custos. Filkestein et. al (1998) propõem, ainda, que o SGBD possua um comando para obtenção do custo e do plano de execução que o Otimizador gera para uma determinada consulta. Este comando chamado de explain, é um recurso atualmente disponível em muitos SGBD comerciais. Para obter uma estimativa de custos de execução de uma consulta sob uma configuração hipotética, a ferramenta de seleção de índices troca as referências às tabelas na consulta pelas suas respectivas réplicas e utiliza o comando explain para estimar métricas de desempenho sobre os índices recomendados. Uma desvantagem desta abordagem é o fato de que a ferramenta de seleção de índices precisa ter privilégios de acesso suficientes às informações críticas presentes no catálogo sobre estatísticas de otimização e as altere diretamente. Em nosso trabalho é adicionado o conceito de índices hipotéticos ao sistema, que permite que uma ferramenta de seleção de índices faça simulações de configurações no SGBD de forma mais elegante do que através da criação de réplicas de tabelas no catálogo. O trabalho de Frank et al. (1992) propõe que o Otimizador de consultas do SGBD seja estendido para permitir a obtenção de um plano de execução sob a suposição de que um dado conjunto de índices hipotéticos existe na base. Porém, o trabalho de Frank et al (1992) não explora quais alterações seriam necessárias no SGBD para dar suporte à noção de índices hipotéticos. Outras soluções, como encontradas em [Chaudhuri and Narasayya 1998] e [Zilio 1998], utilizam o Otimizador do SGBD para avaliar os custos dos índices recomendados, mas nunca para recomendar índices. O processo de recomendação sempre ocorre em um módulo externo ao SGBD. O trabalho de Chaudhuri and Narasayya (1998) que foi implementado no SGBD Microsoft SQL Server oferece uma importante contribuição. Foram combinadas as vantagens dos algoritmos de recomendação de única coluna com os algoritmos de otimização de múltiplascolunas. Considerando índices candidatos com um pequeno número de colunas, há mais possibilidade para otimizar várias queries usando os mesmos índices candidatos e ainda compactá-los dentro de pequenas restrições de disco. 107

9 Levando isso em conta, seu projeto começa considerando índices de simples colunas primeiro, e trabalha sobre os índices de múltiplas colunas se o tempo permitir. Essa estratégia procura diminuir o número de chamadas ao Otimizador. Entretanto, as mesmas vantagens de reduzir o número de chamada ao Otimizador pode ser obtida se for inserido o algoritmo de seleção de índices sobre o Otimizador, como é implementado em nosso trabalho, o qual acreditamos ser a melhor técnica para solução deste problema. A diferença de performance entre ambas é muito grande, considerando por exemplo uma simples consulta SQL, nosso algoritmo recomenda índices, fazendo apenas um chamado ao Otimizador. Outras vantagens de nossa abordagem comparada ao trabalho em Chaudhuri and Narasayya (1998) é a recomendação em larga escala de índices, intrínseco na Heurística de seleção de índices adaptada de Lohman et al. (2000). A heurística de seleção de índices, considera os 3 mais prováveis usos de índices e procura combinar a ocorrência de cada tipo. Em Lohman et al. (2000), tem-se a proposta de uma ferramenta para seleção de índices para o IBM DB2. Este trabalho utiliza o próprio Otimizador do SGBD para enumerar os melhores índices para uma carga de trabalho (W) e disponibiliza também recursos de restrições de disco. Dentre todos os trabalhos relacionados acima, nossa pesquisa está mais relacionada ao trabalho de Lohman et al. (2000).Este trabalho foi o primeiro que utilizou o próprio Otimizador para recomendar e avaliar os índices. 7. Conclusões e trabalhos futuros A atividade realizada por DBAs, em escolher quais índices devem ser criados em uma base de dados para acelerar o desempenho, como foi visto é uma atividade complexa e que envolve diversos fatores. Já existem ferramentas de auxilio ao DBA nesta tarefa em SGBDs comerciais, mas iniciativas para SGBDs Open Source ainda são escassas. O objetivo deste trabalho foi apresentar uma arquitetura que provê a seleção e criação de índices para o SGBD PostgreSQL. Foram abordados também características das extensões necessárias a serem realizadas no SGBD para a implementação da proposta. Foram apresentadas as características da abordagem baseada em custos do Otimizador, bem como um estudo comparativo com outras abordagens presentes na literatura sobre este assunto, demonstrando as vantagens da arquitetura proposta. A implementação da arquitetura proposta neste trabalho é promissora, devido à comprovada eficiência e simplicidade da abordagem baseada em custos do Otimizador para o problema de seleção de índices, já demonstrada no trabalho de Lohman et al. (2000) e implementado no SGBD IBM DB2. Outro ponto é a facilidade de implementação em qualquer SGBD, devido à reduzida necessidade de alterações no mesmo. Como trabalhos futuros, uma das direções para este projeto, seria estender o algoritmo para recomendação de visões materializadas e índices sobre essas visões. Atualmente no PostgreSQL a decisão de se criar uma visão materializada parte do administrador do sistema, neste caso pode ser utilizado o Otimizador do SGBD para avaliar as várias alternativas, considerando inclusive estimativas de custo e restrições de armazenamento. Outro ponto que este trabalho poderia ser estendido é a investigação de diferentes heurísticas de decisão para o problema. 8. Referências Barucci, Elena, Pinzani, Renzo and Sprugnoli, Renzo (January 1990) Optimal Selection of Secondary Indexes, IEEE Trans. on Software Engineering, 16(1) p

10 Capara, A., Fischetti, M., and Maio, D. (1995). Exact and Approximate Algoritms for the Index Selection Problem in Physical Database Design. IEEE Transactions on Knowledge and Data Engeineering, 7 (6), p Chaudhuri, S. and Narasayya, V. (1997) An Effcient, Cost-driven Index Selection Tool for Microsoft SQLServer. Proceedings of the International Conference on very large Databases (VLDB), p Chaudhuri, S. and Narasayya, V.(1998) Microsoft Index Tuning Wizard for Sql Server 7.0. Proceedings of the ACM Sigmod International Conference Management of data, p Choenni, S., Blanken, H. and Chang, T. (1993). On the Selection of Secondary Indices in Relational Databases. IEEE Data and Knowledge Engineering, 11(3), p Comer, D.(1978) The Difficulty of Optimum Index Selection. ACM Transactions on Database Systems (TODS). 3 (4): Comer, D. (1979) The ubiquitous b-tree. ACM Computing Surveys (CSUR), 11(2), p , Finkelstein, S., Schkolnick, M. and Tiberio, P. (1988) Physical Data-Base Design for relational databases. ACM Transactions on Data-base Systems (TODS), p Frank, Martin R., Omiecinski, Edward R. and Navathe, Shamkant B.(March 1992) Adaptive and Automated Index Selection in RDBMS, International Conference on Extendig Database Technology (EDBT), Vienna, Austria, p Gupta, H., Rajaraman, A., and Ullman, J. D. (1997). Index Selection for Olap. In Proceedings of the IEEE International Conference on Data Engineering (ICDE), p IBM, DB2 Universal Database (2007). April. Lohman, G. and Valentin, G. and Zilio, D.and Zuliani, M.and Skelley, A. (2000) DB2 advisor: An optimizer smart enough to recommend its own indexes. In: Proceedings of the IEEE International Conference on Data Engineering (ICDE). p Maggie, Y. L. Ip, Saxton, L.V., and Vijay, V.Raghavan. (March, 1983) On the Selection of an Optimal Set of Indexes, IEEE Transactions on Software Engineering, 9(2) p M. Salles. (2004) Criação Autônoma de Índices em Banco de dados. Dissertação de Mestrado, Depto de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Oracle Corporation (2007). April. Rozen, S. Shasha, D. (1991) A framework for automating physical database design. In: Proceedings of the International Conference on Very Large Databases (VLDB) p Selinger, P. G., Astrahan, M. M., Chamberlin, D. D., Lorie,R. A. and Price, T. G..(1979) Access Path Selection in a Relational Database Management System. Proceedings of the ACM Sigmod International Conference on Management of Data, p Zilio, Daniel C. (1998) Physical Database Design Decision Algorithms and Concurrent Reorganization for Parallel Database Systems, PhD Thesis, University of Toronto. 109

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

ARQUITETURA PARA SELEÇÃO DE ÍNDICES EM BANCO DE DADOS RELACIONAIS, UTILIZANDO ABORDAGEM BASEADA EM CUSTOS DO OTIMIZADOR

ARQUITETURA PARA SELEÇÃO DE ÍNDICES EM BANCO DE DADOS RELACIONAIS, UTILIZANDO ABORDAGEM BASEADA EM CUSTOS DO OTIMIZADOR WENDEL GÓES PEDROZO ARQUITETURA PARA SELEÇÃO DE ÍNDICES EM BANCO DE DADOS RELACIONAIS, UTILIZANDO ABORDAGEM BASEADA EM CUSTOS DO OTIMIZADOR Dissertação apresentada como requisito à obtenção do grau de

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

4 Implementação e Resultados Experimentais

4 Implementação e Resultados Experimentais 4 Implementação e Resultados Experimentais Com o objetivo de fazer a criação automática de visões materializadas, ou seja, prover uma solução on-the-fly para o problema de seleção de visões materializadas,

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

Marcos Antonio Vaz Salles. em Bancos de Dados. Mestrado em Informática DEPARTAMENTO DE INFORMÁTICA

Marcos Antonio Vaz Salles. em Bancos de Dados. Mestrado em Informática DEPARTAMENTO DE INFORMÁTICA Marcos Antonio Vaz Salles Criação Autônoma de Índices em Bancos de Dados DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Mestrado em Informática Rio de Janeiro Julho de

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Disciplina: Tecnologias de Banco de Dados para SI s

Disciplina: Tecnologias de Banco de Dados para SI s Curso de Gestão em SI Disciplina: Tecnologias de Banco de Dados para SI s Rodrigo da Silva Gomes (Extraído do material do prof. Ronaldo Melo - UFSC) Banco de Dados (BD) BD fazem parte do nosso dia-a-dia!

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Processamento e Otimização de Consultas

Processamento e Otimização de Consultas Introdução Processamento e Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Processamento

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Diferenças entre Sistemas Gerenciadores de Banco de Dados para GIS - SGBDs

Diferenças entre Sistemas Gerenciadores de Banco de Dados para GIS - SGBDs Diferenças entre Sistemas Gerenciadores de Banco de Dados para GIS - SGBDs O objetivo deste documento é fazer uma revisão bibliográfica para elucidar as principais diferenças entre os SGBDs, apontando

Leia mais

Reindexação Automática em SGBDs Relacionais

Reindexação Automática em SGBDs Relacionais Reindexação Automática em SGBDs Relacionais Eduardo Morelli, José Maria Monteiro, Ana Carolina Almeida, Sérgio Lifschitz Departamento de Informática PUC Rio {emorelli,monteiro,abrito,sergio}@inf.puc rio.br

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);

Leia mais

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO Rua Dom Manoel de Medeiros, s/n Dois Irmãos 52171-900 Recife-PE Fone: 0xx-81-332060-40 proreitor@preg.ufrpe.br PLANO DE ENSINO

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro professor.liojes@gmail.com www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Comparativo de Desempenho entre Bancos de Dados de Código Aberto

Comparativo de Desempenho entre Bancos de Dados de Código Aberto Comparativo de Desempenho entre Bancos de Dados de Código Aberto Carlos E. S. Pires, Rilson O. Nascimento, Ana C. Salgado Centro de Informática Universidade Federal de Pernambuco (UFPE) Caixa Postal 7851

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com Banco de Dados, Integração e Qualidade de Dados Ceça Moraes cecafac@gmail.com Sobre a professora CeçaMoraes Doutora em Computação (UFPE) Áreas de atuação Desenvolvimento de Software e Banco de Dados Experiência

Leia mais

PostgreSQL Performance

PostgreSQL Performance PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

P L A N I F I C A Ç Ã O A N U A L

P L A N I F I C A Ç Ã O A N U A L P L A N I F I C A Ç Ã O A N U A L DEPARTAMENTO: MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS ÁREA DISCIPLINAR: 550 - INFORMÁTICA DISCIPLINA: PSI CURSO: Profissional DE: Téc. de Gestão e Programação de Sist. Informáticos

Leia mais

Tuning e Self-Tuning de Bancos de Dados

Tuning e Self-Tuning de Bancos de Dados Tuning e Self-Tuning de Bancos de Dados Dr. José Maria Monteiro Universidade de Fortaleza (UNIFOR) monteiro@unifor.br Secretaria da Fazenda do Estado do Ceará Sefaz-CE monteiro@sefaz.ce.gov.br 1 Self-Tuning

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI

Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI Curso Superior de Tecnologia em BD Curso Superior de Tecnologia em DAI Fundamentos de Banco de Dados Aula 01 Introdução aos Sistemas de Bancos de Dados Introdução aos Sistemas de BD Objetivo Apresentar

Leia mais

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Banco de Dados. Prof. Dr. Rogério Galante Negri

Banco de Dados. Prof. Dr. Rogério Galante Negri Banco de Dados Prof Dr Rogério Galante Negri Tradicionalmente O armazenamento dos dados utilizava arquivos individuais, sem nenhum relacionamento Cada programa utilizava seu próprio sistema de arquivo

Leia mais

TEMPTOOL UMA FERRAMENTA PARA A MODELAGEM TEMPORAL DOS DADOS

TEMPTOOL UMA FERRAMENTA PARA A MODELAGEM TEMPORAL DOS DADOS TEMPTOOL UMA FERRAMENTA PARA A MODELAGEM TEMPORAL DOS DADOS Eugênio de O. Simonetto 1, Cristiano R. Moreira, Duncan D. A. Ruiz 2, Luciano C. Ost 1, Glauco B.V.Santos 1 RESUMO O trabalho apresenta uma ferramenta

Leia mais

Arquitetura de SGBD Relacionais Previsão de Seletividade

Arquitetura de SGBD Relacionais Previsão de Seletividade Arquitetura de SGBD Relacionais Previsão de Seletividade Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.usp.br

Leia mais

Introdução a Sistemas de Bancos de Dados

Introdução a Sistemas de Bancos de Dados Introdução a Sistemas de Bancos de Dados Prof. UFES - Universidade Federal do Espírito Santo rapchan@inf.ufes.br http://www.inf.ufes.br/~rapchan Roteiro da Apresentação Introdução Características de um

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 04 SGBD Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva edilms@yahoo.com Conceitos Básicos DADOS: são fatos em sua forma primária. Ex: nome do funcionário,

Leia mais

CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇÃO ENGENHARIA DE SOFTWARE

CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇÃO ENGENHARIA DE SOFTWARE CENTRO UNIVERSITÁRIO UNA DIRETORIA DE EDUCAÇÃO CONTINUADA, PESQUISA E EXTENSÃO CURSO DE PÓS GRADUAÇÃO ENGENHARIA DE SOFTWARE NoSQL Banco de Dados Não Relacional ALUNO: Heitor Oliveira Silva PROFESSOR ORIENTADOR:

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Treinamento PostgreSQL - Aula 01

Treinamento PostgreSQL - Aula 01 Treinamento PostgreSQL - Aula 01 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 27 de Maio de 2013 Eduardo Ferreira dos Santos

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Tuning em queries em Banco de Dados

Tuning em queries em Banco de Dados Tuning em queries em Banco de Dados Alison K. L. Leite 1, Izabella C. A. M. S. Bosco 1, Juliana M. Massoni 1, Patrícia B. Ribeiro 1 1 Curso de Tecnologia em Banco de Dados - Faculdade de Tecnologia de

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

5 Trabalhos Relacionados

5 Trabalhos Relacionados 5 Trabalhos Relacionados Existem ferramentas (por exemplo, (Morelli et al, 2012), (Bruno et al, 2011), (Rangaswamy et al, 2011), (Monteiro et al, 2012), (Elghandour, 2010) e (Goasdoué et al, 2011)) e abordagens

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados O modelo relacional Marta Mattoso Sumário Introdução Motivação Serviços de um SGBD O Modelo Relacional As aplicações não convencionais O Modelo Orientado a Objetos Considerações

Leia mais

Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL

Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL Arlino H. Magalhães de Araújo 1, José Maria Monteiro 1, José Antônio F. de Macêdo 1 1 Departamento de Computação Universidade Federal

Leia mais

Programação SQL. Manipulação de Dados. DML Data Manipulation Language

Programação SQL. Manipulação de Dados. DML Data Manipulation Language Programação SQL Manipulação de Dados DML Data Manipulation Language Manipulação de Dados (DML) Os comandos INSERT, UPDATE, DELETE, são normalmente classificados como pertencendo a uma sublinguagem da linguagem

Leia mais

4.6. SQL - Structured Query Language

4.6. SQL - Structured Query Language 4.6. SQL - Structured Query Language SQL é um conjunto de declarações que é utilizado para acessar os dados utilizando gerenciadores de banco de dados. Nem todos os gerenciadores utilizam SQL. SQL não

Leia mais

Sumário. Introdução... 1. 1 O Problema... 3

Sumário. Introdução... 1. 1 O Problema... 3 Sumário Introdução... 1 1 O Problema... 3 1.1 Definição do Problema... 3 1.2 A Solução... 3 1.2.1 Projeto Conceitual...4 1.2.2 Projeto Lógico... 5 1.2.3 Projeto Físico... 6 2 Criação de Bancos de Dados...

Leia mais

INF220 - Banco de Dados I

INF220 - Banco de Dados I Banco de Dados - Introdução Bibliografia INF220 - Banco de Dados I Prof. Jugurta Lisboa Filho Departamento de Informática - UFV Notas de Aula (jugurta@dpi.ufv.br) ELMASRI, R; NAVATHE, S. Fundamentals of

Leia mais

Sintonia fina baseada em ontologia: o caso de visões materializadas

Sintonia fina baseada em ontologia: o caso de visões materializadas paper:11 Sintonia fina baseada em ontologia: o caso de visões materializadas Aluno - Rafael Pereira de Oliveira 1 Orientador - Sérgio Lifschitz 1 1 Departamento de Informática Programa de Pós-graduação

Leia mais

Reindexação Automática em SGBDs Relacionais

Reindexação Automática em SGBDs Relacionais Reindexação Automática em SGBDs Relacionais Eduardo Morelli, José Maria Monteiro, Ana Carolina Almeida, Sérgio Lifschitz Departamento de Informática PUC-Rio {emorelli,monteiro,abrito,sergio}@inf.puc-rio.br

Leia mais

Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo

Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo Extensão do SGBD PostgreSQL para suportar recuperação de imagens por conteúdo Ernani Viriato de Melo V Jornada Científica 24/10/2006 Tópicos Abordados Motivação Imagens e Características PostgreSQL-IE:

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Dicas de Projeto Lógico Relacional

Dicas de Projeto Lógico Relacional Dicas de Projeto Lógico Relacional O que deve ser especificado? mapeamento do esquema conceitual definição das tabelas e chaves justificativas de mapeamento (se necessário) restrições de integridade (RIs)

Leia mais

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis.

UNISA Universidade de Santo Amaro. http://www.unisa.br. Material de Estudo. Módulo I: Básico Banco de dados SQL Server. http://www.unisa-sis. UNISA Universidade de Santo Amaro http://www.unisa.br Material de Estudo Módulo I: Básico Banco de dados SQL Server http://www.unisa-sis.info Junho/2010 Objetivo do Workshop Compartilhar e apresentar

Leia mais

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

Leia mais

Ao conjunto total de tabelas, chamamos de Base de Dados.

Ao conjunto total de tabelas, chamamos de Base de Dados. O QUE É O ACCESS? É um sistema gestor de base de dados relacional. É um programa que permite a criação de Sistemas Gestores de Informação sofisticados sem conhecer linguagem de programação. SISTEMA DE

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I

Roteiro. Conceitos e Arquitetura de Sistemas de Banco de Dados. Conceitos e Arquiteturas de Sistemas de Banco de Dados. BCC321 - Banco de Dados I Roteiro Conceitos e Arquitetura de Sistemas de Banco de Dados Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz

Leia mais

Banco de Dados. Professor: Rômulo César. romulodandrade@gmail.com www.romulocesar.com.br

Banco de Dados. Professor: Rômulo César. romulodandrade@gmail.com www.romulocesar.com.br Banco de Dados Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos)

Leia mais

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Fundamentos dos Sistemas de Informação Organização de Dados e Informações Fundamentos dos Sistemas de Informação Organização de Dados e Informações http://professor.fimes.edu.br/milena milenaresende@fimes.edu.br Sistema de Gerenciamento de Bases de Dados (DBMS) A implementação

Leia mais

Banco de Dados I 2007. Módulo I: Introdução a Sistemas de Banco de Dados. (Aula 1) Clodis Boscarioli

Banco de Dados I 2007. Módulo I: Introdução a Sistemas de Banco de Dados. (Aula 1) Clodis Boscarioli Banco de Dados I 2007 Módulo I: Introdução a Sistemas de Banco de Dados (Aula 1) Clodis Boscarioli Agenda: Apresentação do Plano de Ensino; Aspectos Históricos; Estrutura Geral de um SGBD; Profissionais

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 1, 2 e 3) Clodis Boscarioli Agenda: Estruturas de Índices; Conceitos; Tipos de Índices: Primários; Secundários; Clustering; Multiníveis;

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

Construção de Comandos SQL com boa performance

Construção de Comandos SQL com boa performance Construção de Comandos SQL com boa performance Em bancos de dados relacionais as informações são guardadas em tabelas. Para recuperar uma informação necessaria ao usuário, deve-se buscá-la em várias tabelas

Leia mais

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language

SQL Structured Query Language. SQL Linguagem de Definição de Dados. SQL Structured Query Language. SQL Structured Query Language Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados SQL Linguagem de Definição de Dados Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo everson@por.com.br Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

Criação e uso da Inteligência e Governança do BI

Criação e uso da Inteligência e Governança do BI Criação e uso da Inteligência e Governança do BI Criação e uso da Inteligência e Governança do BI Governança do BI O processo geral de criação de inteligência começa pela identificação e priorização de

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS)

SQL. Histórico BANCO DE DADOS. Conceito. Padrões de SQL (1) Componentes do SQL (1) Padrões de SQL (2) (DDL: CREATE TABLE, CONSTRAINTS) BANCO DE DADOS SQL (DDL: CREATE TABLE, CONSTRAINTS) Prof. Edson Thizon Histórico Entre 1974 e 1979, o San José Research Laboratory da IBM desenvolveu um SGDB relacional que ficou conhecido como Sistema

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG Bases de Dados O que é uma Base de Dados? Dados Pode-se começar por tentar dar uma definição do que são Dados. Os dados são factos em bruto, que não são necessáriamente relevantes para qualquer coisa que

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

Leia mais

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo

CONCORRÊNCIA. 1. Introdução. Recursos exclusivos. Não necessita controle. Abundância de recursos compartilhados. Controle necessário mas mínimo CONCORRÊNCIA 1. Introdução Recursos exclusivos Não necessita controle Abundância de recursos compartilhados Controle necessário mas mínimo Harmonia, provavelmente não haverá conflito Recursos disputados

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Introdução Conceitos do Modelo Relacional Restrições de Integridade Básicas Esquema do BD Relacional Restrições

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais

FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS. Bancos de Dados Conceitos Fundamentais FACULDADE INTEGRADAS DE PARANAÍBA ADMINISTRAÇÃO DE EMPRESAS Bancos de Dados Conceitos Fundamentais Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos

Leia mais

Persistência e Banco de Dados em Jogos Digitais

Persistência e Banco de Dados em Jogos Digitais Persistência e Banco de Dados em Jogos Digitais Prof. Marcos Francisco Pereira da Silva Especialista em Engenharia de Software Jogos Digitais - Computação Gráfica 1 Agenda Vantagens de usar a abordagem

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais