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 wendel@inf.ufpr.br, salete@uepg.br 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

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

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

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

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

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

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

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

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

BDII SQL Junção Revisão 8

BDII SQL Junção Revisão 8 exatasfepi.com.br BDII SQL Junção Revisão 8 André Luís Duarte Leais são as feridas feitas pelo amigo, mas os beijos do inimigo são enganosos. Provérbios 27:6 SQL Introdução Produto cartesiano Nomes alternativos

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

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

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

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

4 Segmentação. 4.1. Algoritmo proposto

4 Segmentação. 4.1. Algoritmo proposto 4 Segmentação Este capítulo apresenta primeiramente o algoritmo proposto para a segmentação do áudio em detalhes. Em seguida, são analisadas as inovações apresentadas. É importante mencionar que as mudanças

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

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

Tarefa Orientada 15 Manipulação de dados

Tarefa Orientada 15 Manipulação de dados Tarefa Orientada 15 Manipulação de dados Objectivos: Criação de tabelas teste Comando INSERT INTO Inserção de dados Comando INSERT Actualização de dados Comando UPDATE Eliminação de dados Comando DELETE

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

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

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 3 Linguagem SQL Linguagem de manipulação de dados (DML) DISCIPLINA: Banco de

Leia mais

VISÃO GERAL DE BANCO DE DADOS

VISÃO GERAL DE BANCO DE DADOS Banco de Dados BD_A007 Visão Geral de Banco de Dados 02 de março de 2005 VISÃO GERAL DE BANCO DE DADOS Relação de siglas utilizadas neste trabalho: ABD: Administrador de Banco de Dados. BD: Banco de Dados.

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

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

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

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

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

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

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

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

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

Introdução à Banco de Dados. Definição

Introdução à Banco de Dados. Definição Universidade Federal da Bahia Departamento de Ciência da Computação (DCC) Disciplina: Banco de Dados Profª. Daniela Barreiro Claro Introdução à Banco de Dados Definição Um banco de dados é uma coleção

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Disciplina de Banco de Dados Introdução

Disciplina de Banco de Dados Introdução Disciplina de Banco de Dados Introdução Prof. Elisa Maria Pivetta CAFW - UFSM Banco de Dados: Conceitos A empresa JJ. Gomes tem uma lista com mais ou menos 4.000 nomes de clientes bem como seus dados pessoais.

Leia mais

Módulo 15 Resumo. Módulo I Cultura da Informação

Módulo 15 Resumo. Módulo I Cultura da Informação Módulo 15 Resumo Neste módulo vamos dar uma explanação geral sobre os pontos que foram trabalhados ao longo desta disciplina. Os pontos abordados nesta disciplina foram: Fundamentos teóricos de sistemas

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

LINGUAGEM DE BANCO DE DADOS

LINGUAGEM DE BANCO DE DADOS LINGUAGEM DE BANCO DE DADOS Gabriela Trevisan Bacharel em Sistemas de Informação Universidade Federal do Rio Grande Pós-Graduanda Formação Pedagógica de Professores (FAQI) Conceito de BD Um banco de dados

Leia mais

Sistemas ERP. Profa. Reane Franco Goulart

Sistemas ERP. Profa. Reane Franco Goulart Sistemas ERP Profa. Reane Franco Goulart Tópicos O que é um Sistema ERP? Como um sistema ERP pode ajudar nos meus negócios? Os benefícios de um Sistema ERP. Vantagens e desvantagens O que é um ERP? ERP

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

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

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

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

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

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02

ArpPrintServer. Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 ArpPrintServer Sistema de Gerenciamento de Impressão By Netsource www.netsource.com.br Rev: 02 1 Sumário INTRODUÇÃO... 3 CARACTERÍSTICAS PRINCIPAIS DO SISTEMA... 3 REQUISITOS DE SISTEMA... 4 INSTALAÇÃ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

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

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior

Universidade Federal de Goiás UFG Campus Catalão CAC Departamento de Engenharia de Produção. Sistemas ERP. PCP 3 - Professor Muris Lage Junior Sistemas ERP Introdução Sucesso para algumas empresas: acessar informações de forma rápida e confiável responder eficientemente ao mercado consumidor Conseguir não é tarefa simples Isso se deve ao fato

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

Data Warehouse. Compras. Caroline B. Perlin

Data Warehouse. Compras. Caroline B. Perlin Data Warehouse Compras Caroline B. Perlin Agenda O processo de compra Requisitos de compras Transações de compra Tabela de fatos Slowly Changing Dimensions (SCD) Técnicas para lidar com SCD Abordagens

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados Ricardo Henrique Tassi - Departamento de Replicação Índice 1- Introdução... 03 2- Quais são os bancos de dados mais conhecidos hoje em dia...04 3- Quais são os tipos de banco...05

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1 Banco de Dados Fundamentos de SQL Structured Query Language Aula2 Apresentado por: Robson do Nascimento Fidalgo rdnf@cin.ufpe.br IF685

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. 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 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

Planejamento Estratégico de TI. Prof.: Fernando Ascani

Planejamento Estratégico de TI. Prof.: Fernando Ascani Planejamento Estratégico de TI Prof.: Fernando Ascani BI Business Intelligence A inteligência Empresarial, ou Business Intelligence, é um termo do Gartner Group. O conceito surgiu na década de 80 e descreve

Leia mais

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Aprender sobre a modelagem lógica dos dados. Conhecer os

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função

15/03/2010. Análise por pontos de função. Análise por Pontos de Função. Componentes dos Pontos de Função. Componentes dos Pontos de Função Análise por pontos de função Análise por Pontos de Função Referência: Manual de práticas de contagem IFPUG Versão 4.2.1 Técnica que permite medir a funcionalidade de um software ou aplicativo, sob a visão

Leia mais

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos Microsoft Access: Criar consultas para um novo banco de Vitor Valerio de Souza Campos Conteúdo do curso Visão geral: consultas são essenciais Lição: inclui sete seções Tarefas práticas sugeridas Teste.

Leia mais

Automação de Locais Distantes

Automação de Locais Distantes Automação de Locais Distantes Adaptação do texto Improving Automation at Remote Sites da GE Fanuc/ Water por Peter Sowmy e Márcia Campos, Gerentes de Contas da. Nova tecnologia reduz custos no tratamento

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

Semântica para Sharepoint. Busca semântica utilizando ontologias

Semântica para Sharepoint. Busca semântica utilizando ontologias Semântica para Sharepoint Busca semântica utilizando ontologias Índice 1 Introdução... 2 2 Arquitetura... 3 3 Componentes do Produto... 4 3.1 OntoBroker... 4 3.2 OntoStudio... 4 3.3 SemanticCore para SharePoint...

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Feature-Driven Development

Feature-Driven Development FDD Feature-Driven Development Descrição dos Processos Requisitos Concepção e Planejamento Mais forma que conteúdo Desenvolver um Modelo Abrangente Construir a Lista de Features Planejar por

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

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

Leia mais

Módulo 4: Gerenciamento de Dados

Módulo 4: Gerenciamento de Dados Módulo 4: Gerenciamento de Dados 1 1. CONCEITOS Os dados são um recurso organizacional decisivo que precisa ser administrado como outros importantes ativos das empresas. A maioria das organizações não

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