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

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

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

Transcrição

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

2 Marcos Antonio Vaz Salles Criação Autônoma de Índices em Bancos de Dados Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Mestrado em Informática do Departamento de Informática da PUC Rio Orientador: Prof. Sérgio Lifschitz Rio de Janeiro Julho de 2004

3 Marcos Antonio Vaz Salles Criação Autônoma de Índices em Bancos de Dados Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Mestrado em Informática do Departamento de Informática do Centro Técnico Científico da PUC Rio.Aprovada pela Comissão Examinadora abaixo assinada. Prof. Sérgio Lifschitz Orientador Departamento de Informática PUC Rio Prof. Arndt von Staa Departamento de Informática PUC-Rio Prof. Ana Carolina Brandão Salgado Centro de Informática UFPE Prof. Ângelo Roncalli Alencar Brayner Departamento de Informática UNIFOR Prof. José Eugenio Leal Coordenador Setorial do Centro Técnico Científico PUC Rio Rio de Janeiro, 15 de Julho de 2004

4 Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Marcos Antonio Vaz Salles Formou-se em Ciência da Computação pela Universidade Estadual de Campinas (UNICAMP). Trabalhou durante diversos anos com o desenvolvimento e a sintonia de aplicações de bancos de dados para o mercado financeiro. Desenvolveu durante o Mestrado, junto com o Prof. Sérgio Lifschitz e seu grupo de pesquisa, estudos sobre o uso de agentes de software para auto-sintonia de índices em SGBDs relacionais. Salles, Marcos Ficha Catalográfica Criação Autônoma de Índices em Bancos de Dados/ Marcos Antonio Vaz Salles; orientador: Sérgio Lifschitz. Rio de Janeiro : PUC Rio, Departamento de Informática, v., 104 f: il. ; 29,7 cm 1. Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática. Inclui referências bibliográficas. 1. Informática Teses. 2. Auto-sintonia. 3. SGBD. 4. Agentes de software. 5. Índices. 6. PostgreSQL. I. Lifschitz, Sérgio. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 510

5 Resumo Salles, Marcos; Lifschitz, Sérgio. Criação Autônoma de Índices em Bancos de Dados. Rio de Janeiro, p. Dissertação de Mestrado Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. A escolha e materialização de índices é uma atividade comumente realizada por administradores de bancos de dados (DBAs) para acelerar o processamento de aplicações de bancos de dados. Devido à complexidade da tarefa de seleção de índices e à pressão por maior produtividade sobre os profissionais que realizam sintonia, diversos trabalhos na literatura e em sistemas comerciais procuram obter ferramentas que possam apoiar o DBA na escolha dos melhores índices para uma dada carga de trabalho. Classificamos estes trabalhos como sendo de auto-sintonia local, uma vez que se focam em um problema de sintonia específico, em oposição a trabalhos de auto-sintonia global, que almejam obter um desempenho aceitável para o sistema como um todo. Esta dissertação propõe duas arquiteturas que permitem automatizar completamente a sintonia de índices. A indepedência de intervenção humana é obtida através do uso de agentes de software. A combinação de agentes com SGBDs torna os sistemas mais autônomos e capazes de auto-sintonia. Implementamos uma das arquiteturas propostas no SGBD de código fonte aberto PostgreSQL e obtivemos resultados experimentais com uma carga transacional que mostram a viabilidade de nossa abordagem. Palavras chave Auto-sintonia; SGBD; Agentes de software; Índices; PostgreSQL.

6 Abstract Salles, Marcos; Lifschitz, Sérgio. Autonomic Index Creation in Databases. Rio de Janeiro, p. MSc. Dissertation Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. The choice and materialization of indexes is an activity commonly done by database administrators to speed up database application processing. Due to the complexity of the index selection task and to the pressure for productivity increase put on tuning professionals, many works on the literature and on commercial systems seek for tools that can help the DBA choose the best indexes for a given workload. We classify these works as local self-tuning, once they are interested in a specific tuning problem, in opposition to global self-tuning work, which is targeted at obtaining acceptable performance for the system as a whole. This dissertation proposes two architectures that allow the complete automation of the index tuning task. Human intervention independence is achieved through the use of software agents. The combination of agents and DBMS makes systems more autonomous and self-tuning. We have implemented one of the proposed architectures in the open source DBMS PostgreSQL and obtained experimental results with a transactional workload that show the feasibility of our approach. Keywords Self-tuning; DBMS; Software Agents; Indexes; PostgreSQL.

7 Conteúdo 1 Introdução 9 2 Auto-sintonia de Bancos de Dados e Agentes de Software Auto-sintonia de Bancos de Dados Agentes Comentários Finais 23 3 Auto-sintonia de Índices através de Agentes Infra-estrutura no SGBD Arquitetura com um Único Agente Arquitetura com Múltiplos Agentes Comentários Finais 52 4 Implementação e Resultados Experimentais Arquitetura do PostgreSQL Cargas de Trabalho e Bases de Dados de Teste Ambiente de Implementação Implementação de Índices Hipotéticos Implementação da Arquitetura com um Único Agente Comentários Finais 93 5 Conclusões e Trabalhos Futuros 95 Referências Bibliográficas 98

8 Lista de Figuras 2.1 Metodologia para seleção de índices Integração de Agentes com SGBDs Framework de construção de agentes de [28] Modelo local para auto-sintonia usando agentes Modelo global para auto-sintonia usando agentes Estratégia de avaliação de consultas Estratégia de avaliação de atualizações Instanciação do framework de construção de agentes para autosintonia de índices Arquitetura com múltiplos agentes Instanciação do framework para construção do Agente de Coleta de Comandos Instanciação do framework para construção do Agente de Seleção de Índices Instanciação do framework para construção do Agente de Execução de Sintonia Processos e módulos do PostgreSQL Esquema do banco de dados simples de vendas Arquitetura do toolkit DBT Tempo de Criação de Índices Reais e Hipotéticos Integração entre o agente e o PostgreSQL Diagrama de classes envolvidas na configuração das camadas Diagrama de classes da camada Sensor Uma interação típica na camada Sensor Diagrama de classes da camada Crença Uma interação típica na camada Crença Diagrama de classes da camada Raciocínio Uma interação típica na camada Raciocínio Diagrama de classes da camada Ação Uma interação típica na camada Ação Vazão observada com testes de 30 minutos Vazão observada com testes de 60 minutos Vazão observada com testes de 90 minutos Custos ponderados da carga de trabalho Comandos vistos pelo agente nos testes 92

9 Lista de Tabelas 4.1 Algumas consultas utilizadas para avaliação de estatísticas para índices hipotéticos Qualidade de índice hipotético em consulta por intervalo e agregação Qualidade de índice hipotético em consulta pontual Qualidade de índice hipotético em consulta de ordenação Valores dos parâmetros de inicialização do PostgreSQL Índices sempre criados pelo agente e pelo toolkit 89

10 1 Introdução Esta dissertação estuda como podemos prover mecanismos automáticos para a sintonia de índices em sistemas de bancos de dados relacionais. Nosso trabalho de pesquisa faz parte de um conjunto de iniciativas para auto-sintonia de sistemas de bancos de dados [29]. A seguir, iremos comentar brevemente os objetivos e o contexto de desenvolvimento de pesquisa em auto-sintonia de sistemas gerenciadores de bancos de dados (SGBDs), descrever o problema endereçado por esta dissertação, e explicitar como o restante do texto está organizado. Contexto A sintonia de bancos de dados (database tuning) é a atividade de tornar a execução de uma aplicação de bancos de dados mais rápida [43]. Por mais rápida podemos entender que a aplicação terá maior vazão (throughput) em termos das transações que executa ou que algumas de suas transações terão menores tempos de resposta. Durante a atividade de sintonia, o administrador do banco de dados (DBA) ou o especialista em desempenho podem ter que modificar parâmetros do SGBD e do sistema operacional, criar novas estruturas de dados na base de dados, ou alterar a forma como a aplicação foi escrita. Em nossa visão, o objetivo da sintonia deve ser o de obter o melhor desempenho possível para a aplicação sem realizar melhorias nos recursos de hardware disponíveis [29] 1. O profissional que realiza a sintonia deve possuir conhecimento não só sobre o SGBD, mas também sobre como este interage com o seu ambiente. Por ter que reunir diversos conhecimentos e experiência prática, a curva de aprendizado deste tipo de profissional tende, em geral, a ser longa. 1 Em alguns outros trabalhos, como por exemplo [43], prega-se que o objetivo da sintonia é o de obter um desempenho aceitável para a aplicação, conforme percebido pelos seus usuários, mesmo que isto implique a adição de novo hardware.

11 Criação Autônoma de Índices em Bancos de Dados 10 Por outro lado, estimativas para o número de profissionais de tecnologia de informação necessários globalmente para dar suporte a um bilhão de usuários e milhões de organizações conectadas através da Internet - uma situação a que pode se chegar na próxima década - chegam a impressionantes 200 milhões [26]. Os avanços no hardware e o desenvolvimento da Web levaram pesquisadores da área de bancos de dados a crer que ocorrerá um crescimento de ordens de magnitude na quantidade de sistemas de bancos de dados instalados e no volume de dados gerenciado [2]. As arquiteturas utilizadas para os atuais SGBDs demandam um trabalho de sintonia que tende a se tornar impraticável no longo prazo. O custo relativo dos recursos computacionais e da atenção humana se inverteu, sendo agora a atenção humana o recurso mais precioso [2]. Nos últimos anos, diversos trabalhos de pesquisa (por exemplo, [5, 9, 30, 35]) se focaram em automatizar aspectos da sintonia de bancos de dados, procurando tornar os sistemas capazes de auto-sintonia. Um estudo de trabalhos sobre auto-sintonia de sistemas de bancos de dados relacionais foi conduzido no contexto desta dissertação e documentado em [29]. Referimos o leitor a este estudo para uma visão aprofundada de trabalhos correlacionados ao nosso. Nesta dissertação, iremos focar nossa atenção na busca de soluções para o problema específico de auto-sintonia de índices em SGBDs relacionais. Descrição do Problema 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. Para compreendermos melhor as questões envolvidas na escolha de índices, vamos iniciar nossa apresentação com um exemplo. Tomemos uma carga de trabalho que envolva os seguintes comandos SQL sobre uma tabela de Venda: (1) insert into venda (prodnum, data, qtd, valor) values (4, current_timestamp, 20, 348); (2) select prodnum, data, sum(valor) as total from venda where valor > and data between and

12 Criação Autônoma de Índices em Bancos de Dados 11 group by prodnum, 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. Este custo de atualização pode ser amplamente compensado pelas vantagens de desempenho trazidas nas consultas, uma vez que o índice pode trazer grandes benefícios ao processarmos a restrição sobre valor e data. Se o DBA decidir criar o índice, será necessário determinar o momento apropriado para esta atividade. Em sistemas como [39], a criação de um novo índice obtém bloqueios que impedem o processamento de transações concorrentes que desejam fazer escritas sobre a tabela base. Se tivermos a situação inversa, com uma freqüência de comandos do tipo (1) muito superior do que a freqüência de comandos do tipo (2), a criação de índices sobre a tabela de vendas pode não ser recomendável. Neste cenário, podemos ter um custo significativo associado à atualização dos índices presentes sobre a tabela. A atualização dos índices é decorrente de comandos que realizam modificações sobre os dados da tabela, como inserções, remoções e atualizações que envolvem as colunas indexadas. Numa situação intensiva em atualizações, os benefícios trazidos pelos índices nas consultas podem não compensar os custos de manutenção envolvidos. Podemos ter ainda uma situação em que as transações envolvendo os comandos dos tipos (1) e (2) estão particionadas no tempo. Os comandos do tipo (1) podem ocorrer em uma carga noturna, enquanto as consultas do tipo (2) ocorrem durante o dia. Neste cenário, pode ser interessante remover os índices da tabela Venda antes da carga noturna e voltar a criá-los antes do período diurno de consultas. Estes exemplos ilustram alguns pontos importantes que devem ser considerados quando escolhemos os índices a criar ou remover de uma base de dados. São eles: 1. Freqüência e tipos de comandos executados. O processamento de cargas de trabalho que misturam atualizações e consultas, como é comum em sistemas de processamento on-line de transações (OLTP), dificulta a decisão de criação de novos índices. Para um melhor uso

13 Criação Autônoma de Índices em Bancos de Dados 12 dos recursos computacionais disponíveis, devemos considerar se o custo de manutenção de cada índice será realmente compensado pelos benefícios que este traz em consultas. 2. Escolha de quais tabelas e colunas devem ser indexadas. Antes mesmo de conseguirmos determinar se criar um índice é benéfico, precisamos saber quais índices podem ser criados. O número de índices possíveis sobre uma base de dados tende a crescer rapidamente à medida que mais colunas e tabelas estão presentes [30]. Conforme veremos no Capítulo 2, este é um dos aspectos mais estudados na literatura sobre o problema de sintonia de índices. 3. Periodicidade e perfis da carga de trabalho. Algumas cargas de trabalho tendem a possuir variações sazonais em seus comandos. Isto pode trazer a necessidade de criar diferentes índices para atender aos distintos perfis e sazonalidades da carga de trabalho. 4. Obtenção da carga de trabalho. Apesar de a carga de trabalho ser um insumo básico para determinarmos se estamos indexando bem uma dada base de dados, raramente é uma tarefa simples obtê-la. Em outras propostas da literatura [29], esta atividade é deixada nas mãos do administrador do sistema de bancos de dados (DBA). 5. Determinação do momento para criação ou remoção dos índices. Como a criação ou remoção de índices pode implicar em bloqueios, devemos ser cautelosos para que transações importantes não sejam impedidas por estas atividades. Os trabalhos hoje presentes na literatura, como [9, 30], abordam fundamentalmente os primeiros dois pontos acima. Há um esforço para a criação de ferramentas que apoiem o DBA na tarefa de seleção de índices, mas os trabalhos não propõem arquiteturas que possam eliminar completamente a intervenção humana da tarefa de sintonia de índices. Em estudos anteriores do nosso grupo de pesquisa [33, 8, 35], aplicamos a abstração de agentes de software para aumentar a autonomia de SGBDs e implementar mecanismos para auto-sintonia. Esta dissertação estuda a construção de arquiteturas de agentes de software que permitam a completa automatização das atividades relacionadas à sintonia de índices em SGBDs relacionais. Apresentamos duas arquiteturas que lidam com diferentes graus de complexidade envolvidos no problema. Para ilustrar a utilidade de nossa proposta, implementamos uma dessas arquiteturas embutindo agentes em um SGBD de código fonte aberto, o PostgreSQL [39].

14 Criação Autônoma de Índices em Bancos de Dados 13 Na discussão acima sobre o problema de sintonia de índices, existe uma suposição básica importante. Em princípio, consideramos todas as transações envolvidas igualmente importantes para os usuários do sistema. Isto não é sempre verdadeiro na prática. Por exemplo, poderíamos ter uma restrição de tempo máximo de resposta para os comandos do tipo (2). Se este fosse o caso, a criação do índice que acelera a consulta pode ser obrigatória, mesmo que não traga um benefício para a vazão (throughput) do sistema como um todo. Esta dissertação não levará em conta este tipo de restrição sobre as transações processadas pelo sistema. Iremos supor que o objetivo da sintonia de índices é diminuir o consumo de recursos do sistema e, assim, aumentar a sua vazão. Alguns exemplos de trabalhos na área de auto-sintonia que levam em conta restrições de objetivos de desempenho por classes de transações são [32, 5]. Estrutura da Dissertação O restante desta dissertação está organizado nos seguintes capítulos: O Capítulo 2 revisa trabalhos da literatura que estudam a autosintonia de SGBDs, em especial a seleção de índices, ou que abordam como agentes de software podem ser usados em conjunto com sistemas de bancos de dados. O Capítulo 3 apresenta nossa proposta de arquiteturas de agentes de software para auto-sintonia de índices em SGBDs relacionais. Discutimos a infra-estrutura que os SGBDs devem prover para a implementação das arquiteturas e mostramos como construir os agentes envolvidos. O Capítulo 4 discute a implementação realizada para uma das arquiteturas de agentes de software propostas. Apresenta, ainda, resultados experimentais obtidos com a execução da arquitetura no SGBD PostgreSQL. O Capítulo 5, por fim, apresenta as conclusões de nosso estudo e indica algumas direções em que o mesmo pode ser estendido.

15 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, capazes de agir sem a intervenção de humanos ou de outros sistemas [55]. A propriedade de autonomia é o ponto-chave para a construção de sistemas de bancos de dados capazes de auto-sintonia e auto-administração. Investigamos, em nosso grupo de pesquisa, como agentes podem ser utilizados no contexto de SGBDs para tornar os sistemas menos necessitados da intervenção de profissionais especializados. Neste capítulo, iremos revisar alguns trabalhos existentes sobre autosintonia de bancos de dados na seção 2.1 e, em seguida, sobre agentes na seção 2.2. Apresentamos alguns comentários sobre estes trabalhos na seção 2.3. Nosso objetivo é apresentar os conceitos necessários para contextualizar nossa proposta, desenvolvida no Capítulo 3, de uso de agentes para automatizar a escolha de índices em sistemas de bancos de dados relacionais. 2.1 Auto-sintonia de Bancos de Dados A necessidade de SGBDs capazes de auto-sintonia vêm se tornando mais presente, uma vez que novas aplicações demandam a adoção em maior escala deste tipo de sistema [26, 2]. Idealmente, deveríamos conseguir colher os benefícios do uso de SGBDs incorrendo na menor medida possível nos custos relativos à sua administração e ao gerenciamento de seu desempenho. Diversos trabalhos procuram encontrar soluções automáticas para aspectos envolvidos na sintonia de SGBDs. Um estudo detalhado de trabalhos de auto-sintonia de bancos de dados presentes na literatura e em sistemas comerciais foi realizado dentro do contexto desta dissertação e documentado em [29]. Basicamente, é possível separar os trabalhos anteriores de pesquisa 1 Nesta dissertação, iremos tratar agentes de software simplesmente pelo nome de agentes.

16 Criação Autônoma de Índices em Bancos de Dados 15 em auto-sintonia em dois grandes grupos, de acordo com o foco dado na abordagem do problema. No primeiro grupo estão os trabalhos de auto-sintonia local, que procuram estudar problemas específicos de sintonia existentes nos sistemas atuais. Destes problemas podemos citar o projeto físico de bancos de dados (em especial, a seleção de índices para o sistema), a alocação de dados entre diferentes elementos de armazenamento, o controle de carga, o refino de estatísticas utilizadas pelo otimizador, a substituição de páginas e o ajustes de áreas de memória. Cada trabalho de auto-sintonia local enfoca um destes problemas, analisando vantagens e desvantagens de uma solução que reduz ou elimina a intervenção humana. No segundo grupo estão os trabalhos de auto-sintonia global, que procuram estudar como é possível tomar ações de sintonia que tragam benefícios de desempenho para o sistema como um todo. Este tipo de abordagem procura encontrar um equilíbrio entre as diversas considerações locais de sintonia de forma a alcançar um desempenho global que seja melhor do que o que seria alcançado caso cada componente do sistema tomasse decisões de sintonia isoladamente. Ainda há poucos trabalhos nesta linha de pesquisa e, de fato, bem poucos trazem algum resultado experimental, mesmo quando consideramos trabalhos que lidam com sistemas que não são SGBDs. Isto pode estar relacionado ao fato das inter-relações entre os diversos componentes de um SGBD não serem bem conhecidas [53]. O trabalho de [35], de nosso grupo de pesquisa, procura explorar o uso de agentes para realizar auto-sintonia global. Esta dissertação desenvolve pesquisa referente ao primeiro grupo. Apresentamos um trabalho de auto-sintonia local que procura investigar como agentes podem ser utilizados para automatizar a escolha de índices em um sistema de banco de dados. A seguir, abordaremos a metodologia empregada por outras propostas da literatura para implementar ferramentas de seleção de índices, uma vez que este é o foco de estudo de nosso trabalho. Referimos o leitor a [29] para uma melhor visão de outros trabalhos correlatos que procuram tornar a sintonia de SGBDs um processo mais independente de intervenção humana. Metodologia para Seleção de Índices Os vários trabalhos da literatura que tratam de seleção de índices [29] 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}.

17 Criação Autônoma de Índices em Bancos de Dados 16 Q i representa um comando SQL 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 é definido pela 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-difícil [14] 2. Nesses mesmos trabalhos podemos perceber uma metodologia comum para a escolha de índices que se adequam a uma carga de trabalho. Esta metodologia é mostrada na Figura 2.1. Entrada manual, Arquivo de trace Obtenção da Carga de Trabalho Carga de Trabalho (W) Heurística de Escolha de Candidatos Índices Candidatos por comando, Carga de trabalho (W) Heurística de Seleção Final de Índices Sugestões de índices a criar e remover Figura 2.1: 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 SQLs e suas freqüências estimadas. Já na coleta de trace, o DBA usa um utilitário do 2 Considera-se apenas uma relação e o problema de encontrar um índice único com o menor número possível de colunas.

18 Criação Autônoma de Índices em Bancos de Dados 17 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 quais e 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 cache reservado para operações SQL [38, 30]. É importante notar que, seja qual for o método empregado, há uma suposição de que a obtenção da carga de trabalho depende fundamentalmente de uma interação humana com a ferramenta, uma vez que essa é uma entrada do problema de seleção de índices. Em seguida, para cada comando da carga de trabalho, é aplicada uma heurística de escolha de índices candidatos. Esta heurística irá determinar os melhores índices para cada comando SQL da carga de trabalho. Na literatura existem diversas abordagens para a construção de heurísticas de escolha de candidatos. Podemos citar as estratégias baseadas em conhecimento (ou regras) [7, 41] e as estratégias baseadas em custos do otimizador [20, 9, 30]. No primeiro tipo de abordagem, a escolha de quais índices são interessantes para um comando SQL é baseada no uso regras derivadas a partir do conhecimento de especialistas. 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 segunda abordagem apresenta como principal vantagem a característica de evitar que a ferramenta crie um modelo de custos separado do modelo usado pelo otimizador. Isto permite garantir que os índices criados serão realmente considerados pelo sistema. Também auxilia na manutenção da ferramenta de seleção, uma vez que não é necessário realizar a evolução de um modelo separado. Por outro lado, o conhecimento de especialistas, em algumas situações, pode ser superior ao embutido no otimizador, como é comprovado pela existência de mecanismos de dicas (hints) em sistemas comerciais [34, 38]. Estes mecanismos poderiam ser utilizados em conjunto com a ferramenta de seleção de índices para forçar o uso de índices que não fossem escolhidos pelo otimizador. Conforme veremos no Capítulo 3, nosso trabalho está mais relacionado às técnicas baseadas em custos do otimizador, tanto pelas vantagens apresentadas acima como pelo fato de já serem aplicadas em SGBDs existentes (por exemplo, [9] no Microsoft SQL Server e [30] no IBM DB2 UDB). Outra característica relevante é que estas técnicas tendem a exigir menor intervenção humana para uso dos índices escolhidos, uma vez que estes foram determinados utilizando o próprio otimizador do sistema.

19 Criação Autônoma de Índices em Bancos de Dados 18 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 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 pelos mesmos em consultas. Em diversos trabalhos, como é o caso de [30], também é considerada a restrição de espaço máximo disponível para a criação de índices (S). Nestes trabalhos, o problema de escolher quais índices candidatos, com benefício positivo para a carga de trabalho, devem ser criados dado um espaço máximo é comumente modelado como uma variante do clássico Problema da Mochila [22]. 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 devem ser efetivadas. É importante reparar que, nas ferramentas de seleção de índices existentes, nem todas as etapas necessárias para a auto-sintonia de índices são automatizadas, como é o caso da obtenção da carga de trabalho e da efetiva criação ou remoção dos índices escolhidos. 2.2 Agentes Em princípio, SGBDs são sistemas passivos, que somente executam ações em resposta às requisições de seus usuários. O conceito de SGBD Ativo foi desenvolvido como uma opção para aumentar o grau de reatividade dos sistemas. Os SGBDs Ativos utilizam o paradigma de processamento de regras do tipo evento, condição e ação. Estas regras são compiladas e mantidas como objetos do SGBD. Em [3] são discutidas as semelhanças e diferenças entre SGBDs Ativos e agentes. As regras ativas provêem um mecanismo para que aplicações reajam a eventos ocorridos no SGBD. Elas não permitem, entretanto, que componentes internos do SGBD, como o gerente de buffers, sejam acessados e reconfigurados. Assim, não podem ser em geral utilizadas para a auto-sintonia do sistema. O paradigma de agentes traz a característica de reatividade associada à possibilidade de ação sobre componentes que estão fora do contexto oferecido pelo SGBD a seus usuários. Para os propósitos do nosso trabalho, consideramos que um agente é um elemento autônomo, adaptativo e interativo do domínio, cujas instâncias são representadas através de conceitos mentais como crenças, metas, planos

20 Criação Autônoma de Índices em Bancos de Dados 19 e ações [46]. Um agente atua como um processador de planos de ações que são executados utilizando suas crenças de modo a alcançar uma meta. Uma meta é um objetivo que o sistema deve alcançar; uma crença é algum conhecimento sobre o sistema. Os agentes são bastante usados em domínios de aplicação em que é necessário que os sistemas possuam um alto grau de reatividade. Como exemplos, podemos citar controle de tráfego aéreo, controle de processos industriais e simuladores [55]. O uso de agentes permite que tais sistemas percebam o ambiente em que estão inseridos e tomem ações de acordo com as mudanças ocorridas neste ambiente, sem intervenção humana. Para a auto-sintonia de sistemas de bancos de dados, os fatores de autonomia e reatividade são de grande importância, uma vez que o sistema deve se adaptar de forma automática e dinâmica à carga de trabalho que lhe é submetida. Assim, o uso de agentes pode se revelar interessante neste contexto. Nas próximas subseções, descrevemos alguns trabalhos correlatos que procuram explorar este relacionamento e mostramos arquiteturas que permitem o uso de agentes em SGBDs. Uso de Agentes para Realizar Auto-sintonia Agentes foram utilizados para a auto-sintonia de sistemas computacionais em geral em [4, 16]. São estudadas a sintonia do servidor de Lotus Notes e a do servidor web Apache, respectivamente. Nestes trabalhos, é utilizado o framework de agentes AutoTune, que permite controlar a alocação de recursos dos sistemas objetivo através da alteração de parâmetros de sintonia pautada por políticas definidas pelo administrador do sistema. No AutoTune, não é necessário o conhecimento prévio do sistema objetivo. O modelo do sistema é explicitamente adicionado ao framework através de um agente de modelagem. Nas implementações realizadas, este agente de modelagem foi construído pelo treinamento de uma rede neural com respostas geradas pelos sistemas objetivo quando são feitas alterações nos seus parâmetros de sintonia. No presente momento, estudos da aplicação deste framework a SGBDs, que são sistemas de maior grau de complexidade do que servidores web e de , estão sendo conduzidos [15]. Quando tratamos de auto-sintonia de sistemas de bancos de dados, nosso objetivo central é construir sistemas mais autônomos, capazes de tomar decisões de sintonia de forma pró-ativa e automática. Em nosso grupo de pesquisa, investigamos como aplicar a abordagem de agentes a SGBDs de forma a torná-los mais extensíveis e capazes de auto-configuração e de

21 Criação Autônoma de Índices em Bancos de Dados 20 auto-sintonia. Os trabalhos anteriores de [8], [35] e [33] seguem esta linha de pesquisa. Nosso trabalho é um desenvolvimento das idéias lançadas em [8], onde se discute como agentes poderiam ser utilizados para incluir a propriedade de auto-sintonia em sistemas de bancos de dados. São apresentados modelos para uso de agentes na construção de componentes de auto-sintonia local e global. Em especial, discute-se uma heurística interessante para inclusão em um agente para sintonia de índices. O trabalho de [35] propõe arquiteturas de agentes para auto-sintonia global de sistemas de bancos de dados. Agentes com escopo local são utilizados para realizar a sintonia de componentes individuais, como o gerente de bloqueios ou o de memória. Além destes, é definido um agente coordenador e um agente de histórico. O agente coordenador recebe informações de todos os agentes de escopo local e interage com o agente de histórico para consultar uma base de decisões de sintonia anteriormente tomadas. As ações de sintonia locais somente são executadas quando ocorre a aprovação do agente coordenador, o que visa garantir que ações conflitantes, redutoras do desempenho global, não sejam executadas. Os agentes voltados para a sintonia de índices, propostos no Capítulo 3, podem ser incorporados na arquitetura global discutida em [35]. Já em [33] são estudadas arquiteturas para integrar agentes em SGBDs. É realizada a implementação de um agente para balanceamento de carga de junções paralelas utilizando uma das arquiteturas de integração propostas. Iremos descrever em mais detalhe estas arquiteturas de integração a seguir. Integração de SGBDs com Agentes O trabalho de [33] discute como a abordagem de agentes pode ser aplicada ao contexto de sistemas de bancos de dados. Em especial, são apresentadas três arquiteturas para a integração de agentes e SGBDs. Estas arquiteturas são mostradas na Figura 2.2. A arquitetura em camadas permite a implementação de agentes sobre SGBDs já existentes com pouca ou nenhuma necessidade de modificação do código do sistema. Apesar desta relativa facilidade de integração, a capacidade de implementação de componentes de auto-sintonia utilizando agentes desta forma é limitada pelas interfaces oferecidas pelo SGBD para modificação de seus parâmetros de sintonia e para acesso a informações de seus componentes internos. A profundidade dos ajustes possíveis e

22 Criação Autônoma de Índices em Bancos de Dados 21 Em Camadas Integrada Embutida Sistema de Agentes SGBD SGBD SGBD Sistema de Agentes Componentes do SGBD Sistema de Agentes Figura 2.2: Integração de Agentes com SGBDs a qualidade das informações que são expostas variam entre diferentes SGBDs. Alguns fornecedores de sistemas comerciais para monitoramento de desempenho de bancos de dados utilizam a abstração de agente em uma arquitetura em camadas para construir seus monitores [29]. As ações de sintonia, caso necessárias, normalmente precisam ser tomadas por um DBA. Assim, estes sistemas não podem ser caracterizados realmente como sistemas que oferecem auto-sintonia. A arquitetura integrada preconiza que o SGBD seja construído como um sistema multi-agentes [54]. Os componentes do SGBD todos ou em sua maioria são substituídos por agentes, que se tornam responsáveis por todas as tarefas de gerência dos dados e de auto-sintonia. Este tipo de arquitetura segue a noção de construir um sistema que possui autosintonia global por projeto [29]. Até o momento, esta abordagem não foi implementada, justamente pela complexidade de construir um novo SGBD. Por fim, a arquitetura embutida representa um ponto médio entre os dois estilos de arquitetura descritos anteriormente. Nesta abordagem, o sistema de agentes possui acesso direto aos componentes do SGBD e pode interferir no seu comportamento dinamicamente. Esta capacidade é fundamental para a construção de componentes de auto-sintonia. Por outro lado, a implementação deste tipo de arquitetura exige que o código do SGBD esteja disponível e que o desenvolvedor obtenha o conhecimento sobre o funcionamento interno dos componentes com que o sistema de agentes irá interagir. Este estilo de integração foi utilizado na implementação de [33] com o SGBD Minibase [42] e é o utilizado em nossa implementação com o SGBD de código aberto PostgreSQL (veja o Capítulo 4). Implementação de Agentes Existem várias arquiteturas possíveis para a implementação de agentes: baseada em lógica, reativa, crença-desejo-intenção e em camadas de software [55]. Além disto, é comum que o desenvolvedor de um sistema de

23 Criação Autônoma de Índices em Bancos de Dados 22 agentes se utilize de algum framework, concreto ou abstrato, para agilizar a tarefa de construção [33]. Em nosso trabalho, seguiremos a abordagem de implementação de [33], que utiliza uma arquitetura em camadas de software baseada no framework abstrato proposto por [28]. A arquitetura empregada em [33] já foi utilizada para construir agentes integrados com SGBDs. Apresentamos a sua estrutura na Figura 2.3. Agente Funcionalidades da Camada Mobilidade Realiza a comunicação com agentes em diferentes sociedades Tradução Colaboração Traduz as mensagens para outras linguagens ou semânticas. Só é necessária na ausência de uma ontologia comum para os agentes Determina como deve ocorrer a colaboração com outros agentes, incluindo aceitar ou rejeitar requisições Ação Realiza as intenções provenientes da camada de Raciocínio Raciocínio Crença Sensor Determina a próxima ação a ser tomada. Isto pode incluir mudanças no ambiente ou colaboração com outros agentes Modela as informações que o agente tem sobre o ambiente e sobre si mesmo Recupera informações sobre o ambiente Figura 2.3: Framework de construção de agentes de [28] As camadas são estruturadas de acordo com as funcionalidades necessárias para a operação do agente. O estilo de implementação em camadas tem como vantagem o fato de cada camada depender apenas de suas camadas vizinhas, o que facilita o desenvolvimento e a depuração. Existem dois fluxos de informação no agente: um bottom-up e um top-down. No fluxo bottom-up, o agente obtém informações do ambiente a partir de seus sensores e atualiza as suas crenças. Com base nos novos valores das crenças, o agente avalia qual será o seu plano de ações. As ações escolhidas podem envolver uma atuação sobre o ambiente, implementada por efetuadores, ou a colaboração com outros agentes. No caso de uma colaboração, mensagens são criadas, codificadas e enviadas. O fluxo top-down pode ser ativado quando o agente recebe uma mensagem de outro agente ou quando obtém um retorno direto de alguma

24 Criação Autônoma de Índices em Bancos de Dados 23 ação. No caso de uma mensagem, esta será decodificada. Em ambos os casos, o agente irá considerar se alguma atitude atualização de crenças, obtenção de informações do ambiente, ou instanciação de uma intenção deve ocorrer. O uso do framework originalmente proposto em [28] na implementação de agentes para auto-sintonia de índices será descrito nos Capítulos 3 e Comentários Finais Este capítulo revisou alguns trabalhos nas áreas de auto-sintonia de SGBDs e de agentes diretamente relacionados com a dissertação. As propostas de auto-sintonia presentes na literatura podem ser classificadas como de auto-sintonia local ou global. Iremos focar nossa atenção na autosintonia local, mais especificamente no problema de determinar e construir automaticamente os índices que melhor se adequam à carga de trabalho submetida ao SGBD. Para a seleção de índices, os trabalhos anteriormente realizados propõem ferramentas que seguem três grandes etapas: a obtenção da carga de trabalho, a aplicação de uma heurística de escolha de índices candidatos e a aplicação de uma heurística de seleção final de índices. Essas ferramentas supõem que algumas atividades do processo de auto-sintonia de índices serão executadas manualmente pelo DBA, como é o caso da obtenção da carga de trabalho e a criação (ou destruição) final dos índices. Acreditamos que o uso de agentes pode trazer mais autonomia e reatividade a SGBDs. No próximo capítulo, iremos apresentar nossa proposta de uso de agentes para auto-sintonia de índices em SGBDs relacionais. Iremos utilizar a arquitetura embutida de integração discutida neste capítulo, bem como o framework de [28] para a construção de agentes. Apresentaremos duas arquiteturas em que agentes obtêm informações de execução de comandos SQL do SGBD, interagem com o otimizador do sistema para avaliar índices interessantes para a carga de trabalho e realizam a criação ou remoção de índices automaticamente.

25 3 Auto-sintonia de Índices através de Agentes Neste capítulo apresentamos nossa proposta de arquiteturas de agentes para auto-sintonia de índices em sistemas de bancos de dados relacionais. Iniciamos nossa discussão na seção 3.1 abordando mecanismos que o SGBD deve implementar para permitir a escolha automática de índices. Em seguida, apresentamos uma arquitetura com um único agente embutido no SGBD na seção 3.2. Uma arquitetura mais complexa, que envolve múltiplos agentes, é então mostrada na seção 3.3. Concluímos o capítulo na seção 3.4 apresentando alguns comentários sobre as arquiteturas propostas. 3.1 Infra-estrutura no SGBD A implementação de agentes de auto-sintonia exige a existência de mecanismos no sistema que permitam a avaliação e a realização de ajustes. Nesta seção iremos descrever dois mecanismos que são interessantes para a implementação de agentes que escolhem índices automaticamente. O primeiro mecanismo é a possibilidade de simular configurações hipotéticas de índices no sistema. Como usamos nesta dissertação heurísticas de escolha de índices candidatos baseadas em custos do otimizador, este mecanismo é um pré-requisito. Em [29] são descritos vários trabalhos da literatura de seleção de índices que se utilizam deste tipo de recurso para estimar, através do próprio otimizador do sistema, o quanto um índice pode trazer de benefício para uma determinada consulta. Já o segundo mecanismo é a capacidade de criar índices on-line, sem comprometer o processamento de transações sobre as tabelas que precisam ser indexadas. Apesar de não ser absolutamente indispensável para a escolha automática de índices, este mecanismo permite que criações de índices não prejudiquem o processamento de transações de escrita sobre as tabelas subjacentes. Sem este mecanismo, as criações de índices podem fazer com que transações de escrita passem por esperas substanciais. Isto pode

26 Criação Autônoma de Índices em Bancos de Dados 25 significar, por sua vez, a violação de requisitos de tempo de resposta para essas classes de transações. Simulação de Configurações Hipotéticas de Índices Conforme descrito na seção 2.1, a seleção do projeto físico de um banco de dados pode ser automatizada através de ferramentas baseadas em regras ou através de ferramentas que simulam configurações físicas hipotéticas e as custeiam com o otimizador. Na abordagem baseada em simulação de configurações, precisamos estender a interface do SGBD para permitir que estruturas físicas hipotéticas sejam definidas. É necessário que o servidor dê suporte a algum mecanismo que permita simular a presença de um índice na base de dados sem que seja necessário materializar fisicamente este índice. Precisamos ainda permitir que o otimizador do sistema produza planos de execução e seus custos levando em conta a existência de estruturas hipotéticas. Esta última capacidade é importante para que possamos reaproveitar o modelo de custos presente no otimizador e evitar a construção de um modelo de custo especializado na ferramenta de seleção de índices. Em [20], quando é realizada a seleção de índices para um determinado banco de dados, são criadas réplicas, no catálogo do SGBD, das tabelas envolvidas. Estas réplicas não possuem extensão física, mas recebem todas as informações estatísticas das tabelas originais. Para simular uma configuração de índices, índices reais são criados sobre as réplicas (que são tabelas vazias) e as estatísticas sobre os índices são artificialmente corrigidas pela ferramenta de seleção de índices. Uma desvantagem desta abordagem é o fato de que a ferramenta de seleção de índices precisa ter privilégios suficientes para modificar diretamente as informações presentes no catálogo. À medida que o sistema evolui, é necessário garantir que as manipulações realizadas pela ferramenta não possuem impactos sobre outros módulos do SGBD. O trabalho de [20] recomenda que a ferramenta de seleção de índices seja escrita pelos mesmos profissionais responsáveis pelo desenvolvimento do SGBD. O trabalho de [20] propõe, 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. 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

27 Criação Autônoma de Índices em Bancos de Dados 26 referências a tabelas na consulta pelas suas respectivas réplicas e utiliza o comando EXPLAIN. Em [19], é proposto 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. Um índice hipotético é um índice que não está materializado no sistema mas que pode ser reconhecido como um índice válido pelo SGBD para a estimativa de custos e planos de acesso. O trabalho de [19] não explora, entretanto, quais alterações seriam necessárias no SGBD para dar suporte à noção de índices hipotéticos. A adição da noção de índices hipotéticos ao sistema permite que uma ferramenta de seleção de índices faça simulações de configurações de forma mais elegante do que através da criação de réplicas de tabelas no catálogo. A segunda política exige que uma ferramenta externa tenha acesso a informações críticas do catálogo sobre estatísticas de otimização e as altere diretamente. Na abordagem com índices hipotéticos, as estimativas de estatísticas para as estruturas simuladas são feitas pelo próprio código (estendido) do SGBD, evitando manipulações externas da metabase. O trabalho de [10] explora em detalhe que tipo de alterações seriam necessárias para possibilitar a simulação de configurações físicas hipotéticas no sistema. De fato, as alterações propostas foram implementadas no SGBD Microsoft SQL Server [34]. É proposta uma infra-estrutura para análise de configurações hipotéticas que considera não somente índices hipotéticos como também fatores de escala sobre as tabelas. Assim, é possível simular quais índices seriam utilizados caso as tabelas do banco de dados fossem maiores do que são atualmente. Mais do que isto, é possível simular até mesmo como seria a escolha de índices caso a tabela possuísse um índice primário 1 diferente do atualmente definido. Este tipo de simulação exige que diversas estatísticas do catálogo sobre tabelas, índices e ordenação dos dados sejam afetadas. Desta forma, os autores de [10] recomendam criar um conjunto de tabelas separadas do catálogo para registrar as informações sobre índices hipotéticos, fatores de escala e estatísticas estimadas sobre índices e tabelas. Isto é feito para que, no otimizador de consultas, seja configurável a escolha de quais tabelas serão usadas para recuperar informações sobre estatísticas, organização física e 1 Um índice primário é um índice cujas chaves no nível folha estão dispostas fisicamente na mesma ordem que os registros correspondentes na tabela. Em muitos sistemas, o nível folha do índice primário já possui as informações dos registros da tabela, não sendo necessária um estrutura adicional para a mesma. Para uma discussão sobre o uso de índices primários e secundários, ver [43].

28 Criação Autônoma de Índices em Bancos de Dados 27 índices definidos. Estas podem ser as tabelas do próprio catálogo (no uso da configuração real) ou as tabelas criadas para registro de informações hipotéticas (no uso da configuração hipotética). Em [10] foi criado um modo específico por conexão que determina como será a operação do otimizador. Cada conexão de usuário deve determinar se seus comandos serão otimizados enxergando as configurações hipotéticas (e quais delas) ou enxergando as configurações reais do sistema. A vantagem deste tipo de implementação é a de que diferentes usuários podem simular, ao mesmo tempo, distintas configurações hipotéticas para o sistema. O comando para exibição do plano de execução (EXPLAIN ) não sofre nenhuma extensão sintática, mas se torna sensível ao modo determinado para a conexão estabelecida pelo usuário. A idéia de criar um índice, ainda que hipotético, que só seja visto por uma determinada conexão ao banco de dados não se adequa exatamente ao paradigma hoje existente para a criação de índices em sistemas relacionais. Quando um índice real é criado, sua existência se torna manifesta para todos os usuários do sistema. Assim, pode haver uma dificuldade de compreensão de como utilizar o mecanismo de criação de índices hipotéticos quando o DBA for fazer uma simulação de forma iterativa no sistema. Para contornar esta desvantagem, em [10] é sugerido que a funcionalidade de criação de configurações hipotéticas seja utilizada por ferramentas de análise e seleção de índices que ofereçam uma interface mais facilmente compreensível para o DBA. Como as possibilidades de simulações propostas em [10] são diversas, separar as informações sobre estruturas hipotéticas das informações do catálogo torna o impacto das mudanças sobre o sistema mais gerenciável. Esta, entretanto, não é a única abordagem possível de implementação. Em [30], é sugerido que o esquema do sistema de banco de dados seja temporariamente populado com definições hipotéticas de índices. Esta abordagem foi implementada no SGBD IBM DB2 UDB [27]. O trabalho propõe que a escolha de índices para uma determinada consulta seja realizada pelo próprio otimizador do sistema. Para isto, quando a consulta é submetida para otimização, é utilizada uma heurística para enumerar índices hipotéticos e estes são injetados no esquema do sistema 2. O processo de otimização da consulta prossegue, então, normalmente. O otimizador poderá escolher um plano que utiliza um ou vários dos índices hipotéticos registrados no catálogo. Ao final da otimização os índices hipotéticos são removidos do esquema. 2 Como o trabalho de [30] foi feito sobre um sistema comercial, não foi possível

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

Marcos Antonio Vaz Salles. em Bancos de Dados DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Mestrado em Informática

Marcos Antonio Vaz Salles. em Bancos de Dados DISSERTAÇÃO DE MESTRADO. Programa de Pós graduação em Mestrado em 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

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

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

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

METODOLOGIA PARA ANÁLISE DE DESEMPENHO

METODOLOGIA PARA ANÁLISE DE DESEMPENHO UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA METODOLOGIA PARA ANÁLISE DE DESEMPENHO DE SISTEMAS DE TRANSFERÊNCIA ELETRÔNICA DE FUNDOS PROPOSTA DE TRABALHO

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

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

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

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Bem-vindo à apresentação do SAP Business One.

Bem-vindo à apresentação do SAP Business One. Bem-vindo à apresentação do SAP Business One. Neste tópico, responderemos à pergunta: O que é o Business One? Definiremos o SAP Business One e discutiremos as opções e as plataformas disponíveis para executar

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

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

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Unidade 2.2 1 2 Material usado na montagem dos Slides Bibliografia

Leia mais

Fundamentos de Banco de Dados

Fundamentos de Banco de Dados Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

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

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

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

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

Rafael Jessen Werneck de Almeida Martins. Recomendação de pessoas em redes sociais com base em conexões entre usuários

Rafael Jessen Werneck de Almeida Martins. Recomendação de pessoas em redes sociais com base em conexões entre usuários Rafael Jessen Werneck de Almeida Martins Recomendação de pessoas em redes sociais com base em conexões entre usuários Dissertação de Mestrado Dissertação apresentada como requisito parcial para a obtenção

Leia mais

Projeto de Arquitetura

Projeto de Arquitetura Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto

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

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

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

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião

INTRODUÇÃO BANCO DE DADOS. Prof. Msc. Hélio Esperidião INTRODUÇÃO BANCO DE DADOS Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas a um determinado

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc.

Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. Sistemas de Informação Geográfica Prof. Tiago Eugenio de Melo, MSc. SUMÁRIO Apresentação da ementa Introdução Conceitos Básicos de Geoinformação Arquitetura de SIGs Referências Bibliográficas APRESENTAÇÃO

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

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

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

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

8 Considerações finais

8 Considerações finais 8 Considerações finais Neste trabalho, propusemo-nos a elaborar uma ferramenta epistêmica de apoio ao design de SiCo s, fundamentada na EngSem, que ajude o designer a elaborar seu projeto da comunicação

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

Um Modelo de Componentes de Software com Suporte a Múltiplas Versões

Um Modelo de Componentes de Software com Suporte a Múltiplas Versões Hugo Roenick Um Modelo de Componentes de Software com Suporte a Múltiplas Versões Dissertação de Mestrado Dissertação apresentada ao Programa de Pós graduação em Informática do Departamento de Informática

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

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

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

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

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

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

Introdução ao OpenUP (Open Unified Process)

Introdução ao OpenUP (Open Unified Process) Introdução ao OpenUP (Open Unified Process) Diferentes projetos têm diferentes necessidades de processos. Fatores típicos ditam as necessidades de um processo mais formal ou ágil, como o tamanho da equipe

Leia mais

Estratégias de Pesquisa

Estratégias de Pesquisa Estratégias de Pesquisa Ricardo de Almeida Falbo Metodologia de Pesquisa Departamento de Informática Universidade Federal do Espírito Santo Agenda Survey Design e Criação Estudo de Caso Pesquisa Ação Experimento

Leia mais

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO

SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO SISTEMA DE GESTÃO DE PESSOAS SEBRAE/TO UNIDADE: GESTÃO ESTRATÉGICA PROCESSO: TECNOLOGIA DA INFORMAÇÃO Competências Analista 1. Administração de recursos de infra-estrutura de tecnologia da informação 2.

Leia mais

MSF- MICROSOFT SOLUTIONS FRAMEWORK. Cesar Eduardo Freitas Italo Alves

MSF- MICROSOFT SOLUTIONS FRAMEWORK. Cesar Eduardo Freitas Italo Alves MSF- MICROSOFT SOLUTIONS FRAMEWORK Cesar Eduardo Freitas Italo Alves A ORIGEM DO MSF (MICROSOFT SOLUTIONS FRAMEWORK) Baseado na experiência da empresa na construção de softwares como Office e Windows e

Leia mais

Luiz Fernando Fernandes de Albuquerque. Avaliação de algoritmos online para seleção de links patrocinados. Dissertação de Mestrado

Luiz Fernando Fernandes de Albuquerque. Avaliação de algoritmos online para seleção de links patrocinados. Dissertação de Mestrado Luiz Fernando Fernandes de Albuquerque Avaliação de algoritmos online para seleção de links patrocinados Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de

Leia mais

SISTEMA DA GESTÃO AMBIENTAL SGA MANUAL CESBE S.A. ENGENHARIA E EMPREENDIMENTOS

SISTEMA DA GESTÃO AMBIENTAL SGA MANUAL CESBE S.A. ENGENHARIA E EMPREENDIMENTOS CESBE S.A. ENGENHARIA E EMPREENDIMENTOS SISTEMA DA GESTÃO AMBIENTAL MANUAL Elaborado por Comitê de Gestão de Aprovado por Paulo Fernando G.Habitzreuter Código: MA..01 Pag.: 2/12 Sumário Pag. 1. Objetivo...

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo desde a

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

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 10 PROFª BRUNO CALEGARO Santa Maria, 10 de Outubro de 2013. Revisão aula anterior Documento de Requisitos Estrutura Padrões Template Descoberta

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

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

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)?

Roteiro. BCC321 - Banco de Dados I. Conceitos Básicos. Conceitos Básicos. O que é um banco de dados (BD)? Roteiro BCC321 - Banco de Dados I Luiz Henrique de Campos Merschmann Departamento de Computação Universidade Federal de Ouro Preto luizhenrique@iceb.ufop.br www.decom.ufop.br/luiz Conceitos Básicos Banco

Leia mais

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini

Banco de Dados. Conceitos e Arquitetura de Sistemas de Banco de Dados. Profa. Flávia Cristina Bernardini Banco de Dados Conceitos e Arquitetura de Sistemas de Banco de Dados Profa. Flávia Cristina Bernardini Relembrando... Vantagens da Utilização de SGBD Redundância controlada Consistência dos dados armazenados

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

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Banco de Dados I. Introdução. Fabricio Breve

Banco de Dados I. Introdução. Fabricio Breve Banco de Dados I Introdução Fabricio Breve Introdução SGBD (Sistema Gerenciador de Banco de Dados): coleção de dados interrelacionados e um conjunto de programas para acessar esses dados Coleção de dados

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

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 27 http://www.ic.uff.br/~bianca/engsoft2/ Aula 27-26/07/2006 1 Ementa Processos de desenvolvimento de software Estratégias e técnicas de teste de software Métricas para software

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

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt INTRODUÇÃO E CONCEITOS BÁSICOS Prof. Ronaldo R. Goldschmidt Hierarquia Dado - Informação - Conhecimento: Dados são fatos com significado implícito. Podem ser armazenados. Dados Processamento Informação

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

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

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

!! Conrado Carneiro Bicalho!!!!!

!! Conrado Carneiro Bicalho!!!!! Universidade Federal de Ouro Preto - UFOP Instituto de Ciências Exatas e Biológicas - ICEB Departamento de Computação - DECOM Conrado Carneiro Bicalho Bancos de Dados em Dispositivos Móveis Ouro Preto

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

GOVERNO DO ESTADO DO PARÁ MINISTÉRIO PÚBLICO DE CONTAS DOS MUNICÍPIOS DO ESTADO DO PARÁ MPCM CONCURSO PÚBLICO N.º 01/2015

GOVERNO DO ESTADO DO PARÁ MINISTÉRIO PÚBLICO DE CONTAS DOS MUNICÍPIOS DO ESTADO DO PARÁ MPCM CONCURSO PÚBLICO N.º 01/2015 DO MINISTÉRIO PÚBLICO DE CONTAS DOS MUNICÍPIOS DO ESTADO 1 / 5 ANEXO 03 INFORMAÇÕES DOS CARGOS 1. CARGOS DE NÍVEL MÉDIO Cargo 01 Técnico em Administração Realizar atividades que envolvam a aplicação das

Leia mais

Marcelo Novaes Coutinho. Um Processo de Gerência de Estratégia de Rastreabilidade: Um Caso em Ambiente Oracle. Dissertação de Mestrado

Marcelo Novaes Coutinho. Um Processo de Gerência de Estratégia de Rastreabilidade: Um Caso em Ambiente Oracle. Dissertação de Mestrado Marcelo Novaes Coutinho Um Processo de Gerência de Estratégia de Rastreabilidade: Um Caso em Ambiente Oracle Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau

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

Gerenciamento de Projeto

Gerenciamento de Projeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Gerenciamento de Projeto Engenharia de Software 2o. Semestre/ 2005

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

SAM GERENCIAMENTO DE ATIVOS DE SOFTWARE

SAM GERENCIAMENTO DE ATIVOS DE SOFTWARE SAM GERENCIAMENTO DE ATIVOS DE SOFTWARE Modelo de Otimização de SAM Controle, otimize, cresça Em um mercado internacional em constante mudança, as empresas buscam oportunidades de ganhar vantagem competitiva

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

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico Banco de Dados // 1 Banco de Dados // 2 Conceitos BásicosB Engenharia da Computação UNIVASF BANCO DE DADOS Aula 1 Introdução a Banco de Dados Campo representação informatizada de um dado real / menor unidade

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

Importância do GED. Implantação de um Sistema de GED

Importância do GED. Implantação de um Sistema de GED Implantação de um Sistema de GED Gerenciamento Eletrônico de Documentos Importância do GED O GED tem uma importante contribuição na tarefa da gestão eficiente da informação; É a chave para a melhoria da

Leia mais

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. - DSI DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho. Preocupação: Problema técnicos Mudança na natureza e conteúdo do trabalho

Leia mais

Elbio Renato Torres Abib. Escalonamento de Tarefas Divisíveis em Redes Estrela MESTRADO. Informática DEPARTAMENTO DE INFORMÁTICA

Elbio Renato Torres Abib. Escalonamento de Tarefas Divisíveis em Redes Estrela MESTRADO. Informática DEPARTAMENTO DE INFORMÁTICA Elbio Renato Torres Abib Escalonamento de Tarefas Divisíveis em Redes Estrela DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Informática Rio de Janeiro Junho de 2004 Elbio

Leia mais

Antônio Carlos Theóphilo Costa Júnior. Soluções para a Travessia de Firewalls/NAT usando CORBA DISSERTAÇÃO DE MESTRADO

Antônio Carlos Theóphilo Costa Júnior. Soluções para a Travessia de Firewalls/NAT usando CORBA DISSERTAÇÃO DE MESTRADO Antônio Carlos Theóphilo Costa Júnior Soluções para a Travessia de Firewalls/NAT usando CORBA DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Informática Rio de Janeiro

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

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

11 Conclusão. 11.1 Descobertas

11 Conclusão. 11.1 Descobertas 97 11 Conclusão 11.1 Descobertas Nesse trabalho apresentamos o McCloud Service Framework, um arcabouço para implementação de serviços baseados na Simulação de Monte Carlo na nuvem, disponibilizamos duas

Leia mais

Pontifícia Universidade Católica DO RIO DE JANEIRO

Pontifícia Universidade Católica DO RIO DE JANEIRO Pontifícia Universidade Católica DO RIO DE JANEIRO Eduardo Maria Terra Morelli Recriação Automática de Índices em um SGBD Relacional Dissertação de Mestrado Dissertação apresentada ao Programa de Pósgraduação

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

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

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software Análise e Projeto de Sistemas Análise e Projeto de Sistemas Contextualização ENGENHARIA DE SOFTWARE ANÁLISE E PROJETO DE SISTEMAS ENGENHARIA DA INFORMAÇÃO Perspectiva Histórica Engenharia de Software 1940:

Leia mais

Introdução. Motivação. Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Sistema de Banco de Dados (SBD)

Introdução. Motivação. Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Sistema de Banco de Dados (SBD) Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Introdução Profa. Maria Camila Nardini Barioni camila.barioni@ufabc.edu.br Bloco B - sala 937 2 quadrimestre de 2011 Motivação

Leia mais

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015

BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 BANCO DE DADOS AULA 02 INTRODUÇÃO AOS BANCOS DE DADOS PROF. FELIPE TÚLIO DE CASTRO 2015 NA AULA PASSADA... 1. Apresentamos a proposta de ementa para a disciplina; 2. Discutimos quais as ferramentas computacionais

Leia mais

ARQUITETURA TRADICIONAL

ARQUITETURA TRADICIONAL INTRODUÇÃO Atualmente no universo corporativo, a necessidade constante de gestores de tomar decisões cruciais para os bons negócios das empresas, faz da informação seu bem mais precioso. Nos dias de hoje,

Leia mais

Sistemas Gerenciadores de Bancos de Dados

Sistemas Gerenciadores de Bancos de Dados Sistemas Gerenciadores de Bancos de Dados Fernando Castor A partir de slides elaborados por Fernando Fonseca & Robson Fidalgo 1 Sistemas de Arquivos Sistemas de arquivos Principal característica é a replicação

Leia mais