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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: 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

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

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

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

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

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

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

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos

O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos Prof. Herondino O Termo SIG é aplicado para sistemas que realizam o tratamento computacional de dados geográficos Inserir e integrar, numa única base de dados informações espaciais provenientes de: meio

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

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

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

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

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

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

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

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

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

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

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

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

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I 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 Dados

Leia mais

Modelo de dados do Data Warehouse

Modelo de dados do Data Warehouse Modelo de dados do Data Warehouse Ricardo Andreatto O modelo de dados tem um papel fundamental para o desenvolvimento interativo do data warehouse. Quando os esforços de desenvolvimentos são baseados em

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

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

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

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

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

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

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

Tópicos Avançados em Banco de Dados Espaços de Tabelas, Arquivos de Dados e Arquivos de Controle. Prof. Hugo Souza

Tópicos Avançados em Banco de Dados Espaços de Tabelas, Arquivos de Dados e Arquivos de Controle. Prof. Hugo Souza Tópicos Avançados em Banco de Dados Espaços de Tabelas, Arquivos de Dados e Arquivos de Controle Prof. Hugo Souza Após abordarmos os componentes lógicos, em uma síntese de dependências gradativas, vamos

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

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006 Banco de Dados Otimização de consultas Última atualização: 15 de maio de 2006 Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai Introdução Consulta em linguagem de alto nível Análise e validação Forma

Leia mais

Banco de Dados I Introdução

Banco de Dados I Introdução Banco de Dados I Introdução Prof. Moser Fagundes Curso Técnico em Informática (Modalidade Integrada) IFSul Campus Charqueadas Sumário da aula Avaliações Visão geral da disciplina Introdução Histórico Porque

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

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

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante Banco de Dados 1 Programação sucinta do curso:. Conceitos fundamentais de Banco de Dados.. Arquitetura dos Sistemas Gerenciadores de Banco de Dados (SGBD ou DBMS).. Características típicas de um SGBD..

Leia mais

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

ADMINISTRAÇÃO DOS RECURSOS DE DADOS Capítulo 7 ADMINISTRAÇÃO DOS RECURSOS DE DADOS 7.1 2003 by Prentice Hall OBJETIVOS Por que as empresas sentem dificuldades para descobrir que tipo de informação precisam ter em seus sistemas de informação?

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

Módulo 4. Visão geral dos controles do COBIT aplicáveis para implantação da Sarbanes, o papel de TI, a importância dos softwares e exercícios

Módulo 4. Visão geral dos controles do COBIT aplicáveis para implantação da Sarbanes, o papel de TI, a importância dos softwares e exercícios Módulo 4 Visão geral dos controles do COBIT aplicáveis para implantação da Sarbanes, o papel de TI, a importância dos softwares e exercícios Estruturas e Metodologias de controle adotadas na Sarbanes COBIT

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

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

PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de 2012.

PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de 2012. PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de. ACRESCENTA A ARQUITETURA DE PADRÕES TECNOLÓGICOS DE INTEROPERABILIDADE -, NO SEGMENTO RECURSOS TECNOLÓGICOS, O PADRÃO TECNOLÓGICO SISTEMAS DE GERENCIAMENTO

Leia mais

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Principal: construir uma base de dados para produção de informações sobre internações hospitalares; Específicos: - criar um banco de dados para armazenar registros sobre internações hospitalares; - produzir

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

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

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

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

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

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Processamento de Consultas Ambiente com SGBD Distribuído Processamento

Leia mais

Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS

Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS Criação de Consultas e Relatórios no Access CRIAÇÃO DE CONSULTAS E RELATÓRIOS NO ACCESS Sumário Conceitos / Autores chave... 3 1. Introdução... 4 2. Consultas... 5 3. Relatórios... 8 4. Conclusões... 11

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

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

PRÁTICAS E FERRAMENTAS PARA OTIMIZAÇÃO DO DESEMPENHO DE BANCO DE DADOS SQL SERVER

PRÁTICAS E FERRAMENTAS PARA OTIMIZAÇÃO DO DESEMPENHO DE BANCO DE DADOS SQL SERVER PRÁTICAS E FERRAMENTAS PARA OTIMIZAÇÃO DO DESEMPENHO DE BANCO DE DADOS SQL SERVER Renan Gonçalves JAYME1 Ana Paula Ambrosio ZANELATO2 RESUMO: O presente artigo tem como objetivo descrever algumas práticas

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

Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow

Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow Um Simulador para Avaliação da Antecipação de Tarefas em Sistemas Gerenciadores de Workflow Resumo. A fim de flexibilizar o fluxo de controle e o fluxo de dados em Sistemas Gerenciadores de Workflow (SGWf),

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

Análise de Desempenho de um SGBD para Aglomerado de Computadores

Análise de Desempenho de um SGBD para Aglomerado de Computadores Análise de Desempenho de um SGBD para Aglomerado de Computadores Diego Luís Kreutz, Gabriela Jacques da Silva, Hélio Antônio Miranda da Silva, João Carlos Damasceno Lima Curso de Ciência da Computação

Leia mais