Curso de Engenharia de Computação DIFERENÇAS ENTRE OS OTIMIZADORES DE CONSULTA DO BANCO DE DADOS ORACLE BASEADO EM REGRAS E BASEADO EM CUSTO

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

Download "Curso de Engenharia de Computação DIFERENÇAS ENTRE OS OTIMIZADORES DE CONSULTA DO BANCO DE DADOS ORACLE BASEADO EM REGRAS E BASEADO EM CUSTO"

Transcrição

1 Curso de Engenharia de Computação DIFERENÇAS ENTRE OS OTIMIZADORES DE CONSULTA DO BANCO DE DADOS ORACLE BASEADO EM REGRAS E BASEADO EM CUSTO João Paulo Geraldini Nunes Itatiba São Paulo Brasil Dezembro de 2009

2 ii Curso de Engenharia de Computação DIFERENÇAS ENTRE OS OTIMIZADORES DE CONSULTA DO BANCO DE DADOS ORACLE BASEADO EM REGRAS E BASEADO EM CUSTO João Paulo Geraldini Nunes Monografia apresentada à disciplina, Projetos em engenharia de computação II, do Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação do Prof. Ms. José Aparecido Carrilho, como exigência parcial para conclusão do curso de graduação. Orientador: Prof. Ms. José Aparecido Carrilho Itatiba São Paulo Brasil Dezembro de 2009

3 iii DIFERENÇAS ENTRE OS OTIMIZADORES DE CONSULTA DO BANCO DE DADOS ORACLE BASEADO EM REGRAS E BASEADO EM CUSTO João Paulo Geraldini Nunes Monografia defendida e aprovada em Dezembro de 2009 pela Banca Examinadora assim constituída: Prof. Ms. José Aparecido Carrilho (Orientador) USF Universidade São Francisco Itatiba SP. Prof. Ms. Claudio Maximiliano Zaina USF Universidade São Francisco Itatiba SP. Prof. Bel. Angelo Amaral USF Universidade São Francisco Itatiba SP. O registro de arguição e defesa consta de ATA DE ARGUIÇÃO FINAL DE MONOGRAFIA, devidamente assinada e arquivada na Coordenação do curso.

4 iv "A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original." (Albert Einstein)

5 v Aos meus familiares e amigos que tanto contribuíram para a minha formação.

6 vi Agradecimentos Agradeço a meu orientador José Aparecido Carrilho, aos supervisores das matérias de Trabalho de conclusão de curso I e Projetos em engenharia de computação II, Alencar de Melo Júnior e André Leon Sampaio Gradvohl respectivamente, a todos meus amigos e familiares que colaboram para a elaboração dessa monografia.

7 vii Sumário Lista de Siglas... viii Lista de Figuras... ix Lista de Tabelas... x Resumo... xi Abstract... xii 1 Introdução Objetivos Objetivo geral Objetivo específico Estrutura do trabalho Ambiente de Desenvolvimento dos Testes Planejamento de Desempenho Escalabilidade Componentes de Hardware Componentes de Software Princípios de Projeto de Aplicações Plano de Execução Otimizadores Vantagens da otimização Otimizadores baseados em regras (RBO) Porque entender o RBO Regras Internas Otimizadores baseados em custo (CBO) Estatísticas Recolhendo estatísticas Sugestões Comparação dos otimizadores Configuração das bases de dados Metodologia de comparação Consultas realizadas Conclusão Trabalhos futuros Referências Bibliográficas... 24

8 viii Lista de Siglas CBO CPU E/S RBO SEQUEL SQL Cost-Based Optimizer Central Processing Unit Entrada e saída Rule-Based Optimizer Structure Query Language Structure Query Language

9 ix Lista de Figuras Figura Visualização de uma consulta e seu plano de execução no Oracle Figura 3.2 Redução no consumo de CPU na realização de uma consulta repetidas vezes Figura 4.1 Processamento de consulta SQL. Fonte: Oracle9i Database Performance Tuning Guide and Reference. Release 2 (9.2)... 8 Figura Exemplo de uso de HINT Figura Comando SQL para alterar o método de otimização Figura Consultando o otimizador da base de dados CBO Figura Consulta 1 realizada para testes de desempenho Figura Resposta obtida na primeira vez que a consulta 1 foi realizada na base RBO Figura Resposta obtida na vigésima vez que a consulta 1 foi realizada na base RBO Figura Resposta obtida na primeira vez que a consulta 1 foi realizada na base CBO Figura Resposta obtida na vigésima vez que a consulta 1 foi realizada na base CBO Figura Consulta 2 realizada para testes de desempenho Figura Resposta obtida na primeira vez que a consulta 2 foi realizada na base RBO Figura Resposta obtida na vigésima vez que a consulta 2 foi realizada na base RBO.. 16 Figura Resposta obtida na primeira vez que a consulta 2 foi realizada na base CBO Figura Resposta obtida na vigésima vez que a consulta 2 foi realizada na base CBO.. 17 Figura 4.15 Gráfico referente à consulta A Figura 4.16 Gráfico referente à consulta B Figura 4.17 Gráfico referente à consulta C Figura 4.18 Consulta realizada na base RBO Figura Gráfico referente às consulta para testes do uso de hints Figura 4.20 Plano de execução da consulta na base CBO Figura 4.21 Plano de execução da consulta na base RBO com o uso de hints Figura 4.22 Plano de execução da consulta na base RBO sem o uso de hints

10 x Lista de Tabelas Tabela Tempos de resposta para consulta Tabela 4.2 Consultas realizadas Tabela Tempos de resposta para as consultas A, B e C nos 2 otimizadores Tabela 4.4 Tempos de respostas para a consulta no RBO com o uso de hints e no CBO

11 xi Resumo Esse trabalho aborda as diferenças entre os otimizadores de consulta disponíveis no banco de dados Oracle 11g. O trabalho descreve o planejamento de desempenho da Oracle, mostrando alguns dos principais pontos a serem observados para que seja possível o entendimento do ajustamento (tuning) por parte do usuário. O trabalho explica o funcionamento dos otimizadores de consultas, mostrando os dois tipos de otimizadores disponíveis: o otimizador baseado em regra e o otimizador baseado em custo, mostrando as vantagens da otimização, as funcionalidades de cada otimizador e algumas formas para melhorar o desempenho, tais como o uso de sugestões (hints). Após configurar duas bases de dados idênticas, cada uma com um otimizador, foi iniciada a fase de testes. Para esses testes foram realizadas algumas consultas repetidas vezes em cada base, visando observar a melhora do desempenho a cada consulta e com isso analisar os otimizadores mostrando possíveis formas de utilização. A partir dessas analises, foi possível tirar as conclusões sobre cada um dos otimizadores e do uso de sugestões para o melhoramento do desempenho. PALAVRAS-CHAVE: Banco de dados Oracle, Desempenho, Otimizador baseado em Regra, Otimizador baseado em Custo, SQL.

12 xii Abstract This work focuses on the differences between the query optimizers available on the Oracle Database 11g. The work refers to the planning performance of Oracle, showing some of the main points to be observed for possible understanding of the tuning by the User. The work explains how the query optimizer work, showing the two types of available optimizers: the rule based optimizer and the cost-based optimizer, showing the benefits of optimization, the features of each optimizer, and some ways to improve performance, such as the use of hints. After setting up two identical databases, each one with an optimizer type, begun the testing phase. For these tests were carried out some repeated queries in each base in order to observe the performance improvement at each visit and with that analyzing the optimizers showing some possible ways of use. Based on this analysis it was possible to draw conclusions about each one of the optimizers and the use of hints for improving the performance. KEY WORDS: Oracle Database, Performance, Rule Based Optimizer, Cost-Based Optimizer, SQL, Hints.

13 1 1 INTRODUÇÃO Os sistemas de banco de dados relacionais necessitam de uma linguagem que seja fácil para os usuários obterem as informações neles armazenadas e a SQL (Structured Query Language) é a linguagem comercial mais utilizada no mercado[1]. A SQL oferece diversos recursos além da consulta aos dados, como instruções de manipulação e definição de dados. Inicialmente chamada de SEQUEL foi criada pela IBM no laboratório de pesquisa de San Jose nos anos 70 [2], desde então a SQL tem evoluído e com o mercado cada vez mais competitivo o desempenho dos softwares precisa ser cada vez maior. Para melhorar o desempenho nas consultas a Oracle criou os otimizadores de consulta que determinam o caminho mais eficiente para a execução de uma instrução SQL depois de considerar vários fatores relacionados aos objetos referenciados e as condições especificadas na consulta [3]. Otimizadores de consulta são essenciais para realização de tuning de aplicações em Oracle. Tuning consiste em realizar as tarefas no menor tempo possível, com o menor processamento e com maior qualidade. Para isso é necessário a construção de um Planejamento de Desempenho (Performance Planning) e, na maioria das vezes, as aplicações possuem vários pontos relevantes, tais como, tipo de máquina para ser o servidor, se a aplicação é duas camadas ou três camadas, onde acontecerá o processamento, cliente ou servidor, quais são as regras de negócio, qual a latência na rede, se essa latência é relevante, entre outros vários pontos a serem tratados. Conhecer o funcionamento dos otimizadores, apesar de ser apenas uma parte do tuning, é de grande importância e deve ser tratado com atenção para obter a otimização esperada nas consultas. No Oracle existem dois tipos de otimizadores, o otimizador baseado em regras de negocio (Rule Based Optimizer - RBO) e o otimizador baseado em custo (Cost-Based Optimizer - CBO). O CBO surgiu no Oracle 7 e a partir do Oracle 10g passou a ser o único otimizador a ter suporte, porém a Oracle manteve as funcionalidades do RBO para que não perdesse a compatibilidade com as implementações anteriores. 1.1 Objetivos Objetivo geral Esse trabalho analisa as diferenças entre os otimizadores de consultas implementados pelo banco de dados da Oracle, com o objetivo de mostrar as funcionalidades de cada um e a

14 2 importância deles no tuning de aplicação, isso para que os usuários entendam o funcionamento dos mesmos de maneira que facilite uma possível migração ou implementação desses otimizadores Objetivo específico Comparar os dois otimizadores, mostrando as qualidades e os problemas de cada um, chegando a uma conclusão de qual o melhor otimizador para cada tipo de aplicação. 1.2 Estrutura do trabalho No Capítulo 2 é descrito o ambiente no qual foram realizados os testes dos otimizadores de consulta, bem como as tabelas que foram utilizadas. O Capítulo 3 contém uma introdução ao Planejamento de Desempenho e seus principais pontos para a implementação do tuning. No Capítulo 4 são analisados os otimizadores de consulta, descrevendo suas funcionalidades, o uso sugestões (hints) e realizando comparações entre eles. As conclusões deste trabalho são apresentadas no Capítulo 5.

15 3 2 AMBIENTE DE DESENVOLVIMENTO DOS TESTES Nesse trabalho foram estudados dois otimizadores implementados pela Oracle, comparando o funcionamento dos mesmos através de consultas realizadas em uma base de dados com os CEP(s), mostrando alguns pontos fortes e fracos de cada um deles. Para o desenvolvimento do trabalho, será utilizado um computador portátil da marca DELL modelo LATITUDE 131L com a seguinte configuração: Processador AMD Turion 64 X2 Mobile 1.6GHz 2 GB de RAM Disco Rígido de 80 GB Windows XP Home Edition SP2 Oracle Database 11g Enterprise Edition Release As bases de dados utilizadas tanto para o RBO quanto para o CBO são exatamente iguais, mudando apenas o otimizador utilizado nas consultas. Contendo um total de registros referentes aos CEPs do Brasil, as bases são descriminadas em 4 (quatro) tabelas: ENDERECO, registros; BAIRRO, registros; CIDADE, registros; UF, 27 registros.

16 4 3 PLANEJAMENTO DE DESEMPENHO Com a evolução da Internet, os bancos de dados desempenham um papel mais importante nos negócios em aplicações e com isso a importância no aumento do desempenho do sistema tem crescido cada vez mais. O desempenho deve ser projetado junto com o sistema. Quando isso não ocorre, geralmente, tem-se como resultado problemas de contensão ou esgotamento de um ou mais recursos do sistema[4]. Para isso é necessário observar alguns pontos importantes como, escalabilidade, componentes de hardware, componentes de software e os princípios de design de aplicações. 3.1 Escalabilidade Escalabilidade é a capacidade de aumentar o trabalho dos processos com um aumento proporcional do uso de recurso; basicamente, é a capacidade de atender ou estar preparado para atender uma demanda crescente de trabalho. Uma escalabilidade ruim aumenta o número de lógicas de E/S (entrada e saída) para um mesmo resultado final. 3.2 Componentes de Hardware Os componentes de hardware podem ser divididos em quatro grupos[3]. Processador: pode haver um ou mais processadores, desde os sistemas mais simples, tais como, computadores de mão e celulares, por exemplo, até servidores de alta potência; Memória: as aplicações exigem uma quantidade considerável de memória cache e memória principal. Como esse recurso é finito, o uso otimizado da mesma é um fator contribuinte para a otimização[5]; Subsistemas de E/S: o desempenho de muitas aplicações de banco de dados é, muitas vezes, limitado pelos sistemas de E/S. Os subsistemas podem variar desde os discos rígidos dos clientes até a alta performance dos storages dos servidores. Podem ser executados milhares de operações E/S; Rede: todos os computadores que usam o sistema devem estar conectados em uma rede e as principais preocupações são a largura de banda e a latência.

17 5 3.3 Componentes de Software Os componentes mais comuns são[3]: Interface de gerenciamento: componente mais visível pelos usuários que utilizam as aplicações; Implementação de lógica de negócios: esse componente implementa o núcleo das regras de negócio, qualquer erro pode ser muito custoso para o projeto; Gerenciamento de requisição e alocação de recursos pelo usuário: as requisições de recursos pelos usuários geralmente são tratadas pelo servidor de banco de dados ou pelo sistema operacional. Deve-se ter um cuidado especial com esse componente em sistemas onde o número de usuário é desconhecido ou cresce muito rapidamente; Gerenciamento de dados e transações: esse componente está em grande parte sob responsabilidade do banco de dados e do sistema operacional. 3.4 Princípios de Projeto de Aplicações Para um bom resultado final é necessário seguir alguns princípios no momento de fazer o projeto. Quanto mais simples e fácil de compreender, maior é a chance de estar correto. Estruturas, ferramentas e máquinas bem concebidas geralmente são mais viáveis e fáceis de usar e manter. A modelagem de dados deve ser feita cuidadosamente, de maneira que atenda as práticas comerciais. O uso de ferramentas de modelagem pode gerar rapidamente esquemas e definições, e é útil quando é necessário um rápido protótipo[4]. Tabelas e índices são componentes de grande responsabilidade pela flexibilidade e desempenho do núcleo das transações. Ao criar o projeto das tabelas e índices deve-se seguir a modelagem, além de normalizar as tabelas. As tabelas devem ser criadas observando alguns pontos essenciais, como organização das colunas na tabela, tipos de índices utilizados, custo do índice em uma consulta, uso de índices em série e adição de colunas em índices ou tabelas de índices organizados. Outra forma de simplificar o projeto de aplicação é a criação de visões. Elas podem facilitar as coletas e armazenagem de dados. Entretanto, nem sempre é aconselhado o uso de visões por dificultar o trabalho dos otimizadores. Outros pontos muito importantes ainda devem ser estudados, tais como, implementação da aplicação, as tendências no desenvolvimento da aplicação e a eficiência dos comandos SQL a serem executados.

18 6 3.5 Plano de Execução Uma forma de avaliar o planejamento de desempenho é executando um comando SQL e observando o plano de execução por ele gerado. A Figura 3.1 apresenta a visualização de uma consulta gerada nas tabelas de exemplo do Oracle relacionando o primeiro nome, departamento, função, data inicial e data final de trabalho para pessoas que trabalharam no período entre 01/01/90 e 31/12/99 inclusive e logo a seguir exibindo o plano de execução para realizar essa consulta. Figura Visualização de uma consulta e seu plano de execução no Oracle. O plano de execução mostrado na Figura 3.1 é um recurso disponibilizado pela Oracle para auxiliar o administrador a melhorar o desempenho das consultas criadas. Para visualizar o plano de execução deve-se habilitar o recurso autotrace, além do plano de execução esse recurso exibe para o usuário outros detalhes sobre a consulta realizada, como as estatísticas sobre a consulta e o predicado da informação. Na primeira linha do programa é mostrado o comando para se habilitar esse recurso. No plano de execução é possível observar o uso de CPU gerado pela consulta, o tempo de execução, as etapas da consulta entre outras informações sobre a execução do comando SQL. Como essa consulta foi gerada usando o

19 7 Oracle 10g utilizando otimizadores na base de custo, é possível observar na Figura 3.2 que a mesma consulta após ser realizada algumas vezes possui um consumo de CPU bem menor, pois o otimizador armazenou estatísticas sobre a consulta SQL. Figura 3.2 Redução no consumo de CPU na realização de uma consulta repetidas vezes.

20 8 4 OTIMIZADORES A Oracle utiliza dois tipos de otimizadores, o otimizador baseado em regras de negócio ( Rule-Based Optimizer RBO ) e o otimizador baseado em custo ( Cost-Based Optimizer CBO ). Nesse Capítulo são descritas algumas vantagens da otimização e detalhes de cada otimizador. 4.1 Vantagens da otimização À medida que novos aplicativos aparecem, as reclamações sobre o desempenho deficiente aumentam. O desempenho deve ser tratado com a mesma importância que a própria programação, para que isso não ocorra ao escrever os aplicativos. As vantagens de uma otimização bem sucedida podem ser a curto e longo prazo.[5] O Oracle implementa a otimização examinando tabelas e selecionando o caminho que custará menos para o CBO ou determina a eficiência de acordo com um conjunto de regras internas para o RBO como mostra a Figura 4.1. Figura 4.1 Processamento de consulta SQL. Fonte: Oracle9i Database Performance Tuning Guide and Reference. Release 2 (9.2)

21 9 Os otimizadores determinam uma maior eficiência na execução de uma consulta SQL após considerar vários fatores relativos aos objetos referenciados e a condições especificas na consulta [3]. 4.2 Otimizadores baseados em regras (RBO) O RBO deixou de ter suporte desde o Oracle 10g, que passou a dar suporte apenas para o CBO. Entretanto a Oracle manteve as funcionalidades do RBO para não perder a compatibilidade com bases de dados antigas. O RBO faz a recuperação de dados com base nas regras internas. Ao encontrar a primeira forma aplicável, ele a utiliza e abandona o processo sem verificar se existem outros mecanismos que podem ser aplicados de forma mais eficiente Porque entender o RBO Apesar de a Oracle ter deixado de dar suporte ao RBO, muitas empresas ainda mantém suas bases de dados com esse otimizador e é necessário entende-lo para poder realizar a manutenção ou até mesmo uma possível migração Regras Internas Com as regras do RBO, o Oracle realiza as consultas de acordo com alguns fatores. O Oracle classifica os caminhos de acesso com peso de 1 a 15, sendo que os melhores recebem 1 e os piores 15[5]. Uma breve explicação sobre algumas classificações[3]: Classificação 1: Palavra-chave where iguala o rowid a um único valor; Classificação 4: Quando todas as colunas pertencentes a uma chave exclusiva ou primaria são referenciados pela instrução SQL em condição de igualdade; Classificação 8: Se a cláusula where da instrução mencionar todas as colunas em um índice composto, realizando comparações de igualdade; Classificação 9: Quando a parte where/and usa um ou mais índices. Se houver mais que um deve-se conectá-los com and; Classificação 15: Não satisfaz nenhum dos critérios mencionados acima. Todos os registros são lidos, passando apenas os que satisfaçam a cláusula where.

22 Otimizadores baseados em custo (CBO) O CBO utiliza estatísticas e histogramas para conseguir executar a consulta de uma maneira que utilize o mínimo possível de processamento. O servidor de banco de dados escreve o mesmo comando de diversas formas diferentes para que o comando a ser executado seja sempre o melhor possível, consumindo o mínimo de processamento. A grande diferença entre o RBO e o CBO é que, enquanto o RBO utiliza a primeira forma aplicável, o CBO verifica todas as formas possíveis até encontrar a melhor. O CBO realiza um trabalho maior antes da execução do comando, entretanto todo esse trabalho é compensado no final com a execução que apresentará um melhor desempenho Estatísticas É possível coletar estatísticas no Oracle sobre tabelas, colunas, índices e sistema. Seletividade é o número de linhas que uma consulta SQL retorna satisfazendo a cláusula WHERE do predicado[6]. A otimização baseada em custo utiliza essas informações para fazer a seletividade dos predicados e gerar uma estimativa do custo de cada consulta SQL. Essas estatísticas incluem os seguintes pontos: Tabelas o Número de linhas; o Número de blocos; o Média de comprimento da fila. Colunas o Número de valores distintos; o Número de valores nulos; o Distribuição de dados (histograma); o Estatísticas de extensão. Índices o Número de blocos folha; o Níveis; o Fator de clusterização. Sistema o Consumo de E/S; o Consumo de CPU.

23 11 As estatísticas são armazenadas em dicionários e histogramas. Essas estatísticas podem ser atualizadas regularmente mantendo as consultas com maior precisão na otimização Recolhendo estatísticas A Oracle mantém as estatísticas automaticamente, mas é possível também, manter esses dados manualmente. Mesmo no processo automático podem-se realizar customizações para que a recolha seja a mais adequada para cada aplicação. As estatísticas podem ser geradas de diversas maneiras. Por exemplo, podem ser criadas em cada consulta SQL, através de procedures criadas pelo administrador ou até mesmo manualmente com comandos passados diretamente no console. 4.4 Sugestões Uma possibilidade de melhoria é o uso de sugestões. Nos livros e documentos da Oracle é possível encontrar como hints. Hints são sugestões embutidas nas instruções SQL que modificam o caminho de acesso apenas para a instrução na qual foram declaradas [7]. Com as sugestões é possível determinar para o banco o caminho de acesso a ser usado, como mostra o exemplo da Figura 4.2. A Hint ALL_ROWS, por exemplo, otimiza a consulta para minimizar o tempo que leva para todas as linha serem devolvidas. Figura Exemplo de uso de HINT. Em alguns casos pode-se ter algumas informações que o otimizador não possui, por exemplo, que um índice é mais seletivo que outro em uma determinada consulta e com o uso de hints pode-se forçar o otimizador a escolher o caminho mais adequado[3]. Existem diversas hints, podendo ser utilizada a mais adequada a cada situação. Através de hints é possível determinar, forma que serão retornados os dados, forma de acesso, paralelização, etc. 4.5 Comparação dos otimizadores Foi necessária a criação de duas bases de dados para a comparação dos otimizadores, uma delas configurada com o CBO e a outra com o RBO. Ambas contendo exatamente os mesmos registros, garantindo assim que a comparação seja válida.

24 Configuração das bases de dados No Oracle 11g, utilizado para a realização dos testes, o CBO é configurado como padrão, por isso, para a base de teste do otimizador por custo não foi necessária nenhuma mudança na configuração. Já no caso do otimizador por regra - RBO, foi preciso mudar o método de otimização como mostra a Figura 4.3 a seguir. Figura Comando SQL para alterar o método de otimização. Como é possivel observar na Figura 4.3, também foi executado um comando select logo após o comando alter para confirmar a mudança no modo de otimização. Observe na Figura 4.4 o mesmo select realizado na base CBO, onde o otimizador não foi alterado. Figura Consultando o otimizador da base de dados CBO Metodologia de comparação O primeiro método de comparação será a realização de consultas. Cada consulta será realizada vinte vezes. Com a ajuda do autotrace espera-se observar uma melhora de desempenho a cada consulta realizada na base CBO enquanto a base RBO deverá continuar sempre com o mesmo desempenho Consultas realizadas Na primeira consulta foram requisitados dados sobre endereços pertencentes à cidade de Itatiba, como mostra a Figura 4.5.

25 13 Figura Consulta 1 realizada para testes de desempenho. As Figuras 4.6 a 4.9 apresentam os resultados obtidos pelo autotrace na primeira e na vigésima consulta pelo CBO e pelo RBO. Figura Resposta obtida na primeira vez que a consulta 1 foi realizada na base RBO.

26 14 Figura Resposta obtida na vigésima vez que a consulta 1 foi realizada na base RBO. Figura Resposta obtida na primeira vez que a consulta 1 foi realizada na base CBO. Figura Resposta obtida na vigésima vez que a consulta 1 foi realizada na base CBO. A consulta realizada retorna 1514 registros. Observe na Figura 4.6 e 4.7 que as consultas na base RBO foram praticamente iguais, na Figura 4.6 é possivel observar uma chamada

27 15 recursiva enquanto na outra não teve nenhuma. Essa pequena diferença ocorreu por ser a primeira consulta realizada; da segunda até a vigésima consulta os desempenhos foram exatamente iguais. Já na base otimizada pelo CBO, a Figura 4.8 mostra que o desempenho da primeira consulta é muito pior que o desempenho da vigésima mostrada na Figura 4.9. Isso porque, na primeira consulta, o CBO captura todas as informações e estatisticas sobre a consulta e para isso faz a chamada da função de todas as formas possiveis. Esse comportamento também é observado em outras consultas realizadas. Uma outra consulta buscando informações sobre endereços das cidades de Jundiaí e de Valinhos ordenadas pelo nome da cidade, do bairro e endereço também foi realizada vinte vezes em cada base de dados. Como pode ser visto nas Figuras 4.10 a Figura Consulta 2 realizada para testes de desempenho. Figura Resposta obtida na primeira vez que a consulta 2 foi realizada na base RBO.

28 16 Figura Resposta obtida na vigésima vez que a consulta 2 foi realizada na base RBO. Figura Resposta obtida na primeira vez que a consulta 2 foi realizada na base CBO.

29 17 Figura Resposta obtida na vigésima vez que a consulta 2 foi realizada na base CBO. Para a consulta 2, os resultados são os mesmos da consulta 1. O CBO armazenou as estatisticas para as próximas consultas, fazendo com que elas obtivessem um desempenho melhor. Uma terceira consulta foi realizada com as mesmas caracteristicas da primeira, desta vez para a cidade de Ribeirão Preto, também sendo realizada vinte vezes. Veja abaixo a tabela com os tempos de cada vez que a consulta foi realizada. Tabela Tempos de resposta para consulta 3. Número da consulta Tempo RBO (s) Tempo CBO (s) 1 6,013 4, ,011 4, ,010 4, ,509 4, ,082 3, ,539 3, ,177 3, ,222 3, ,536 3, ,008 4, ,221 3, ,523 3, ,011 4, ,034 4, ,012 3, ,512 4, ,011 4, ,288 4, ,511 3, ,090 3,514

30 18 Observe na Tabela 4.1 que o tempo para as consultas na base CBO variam entre 3,514 segundos e 4,820 segundos enquanto a base RBO variou entre 5,509 segundos e 6,512 segundos. Taxa de variação de aproximadamente 1 segundo só não é maior para a base CBO porque a base de dados já havia armazenado dados para esse padrão de consulta com a primeira consulta realizada nos testes. Analisando os planos de execução e os tempos, é possível observar que essa diferença de tempo entre as bases é causada pelos otimizadores, isso porque melhorias causadas por cache por exemplo, são eliminadas uma vez que o número de chamadas recursivas também diminui a cada consulta. Novas consultas com utilização da cláusula INNER JOIN e sub-consultas, observando a Tabela 4.2 veremos as três consultas realizadas e a Tabela 4.3 mostra os tempos para processar estas consultas utilizando cada otimizador. Tabela 4.2 Consultas realizadas. A SELECT b.bairro_descricao, e.endereco_logradouro, e.endereco_cep FROM BAIRRO b INNER JOIN ENDERECO e ON e.bairro_codigo = b.bairro_codigo WHERE b.cidade_codigo IN (SELECT c.cidade_codigo FROM UF u INNER JOIN CIDADE c ON c.uf_codigo = u.uf_codigo WHERE u.uf_sigla='sp' AND c.cidade_descricao='guarulhos') B SELECT b.bairro_descricao, e.endereco_logradouro, e.endereco_cep FROM ENDERECO e, BAIRRO b, CIDADE c, UF u WHERE e.bairro_codigo = b.bairro_codigo AND b.cidade_codigo = c.cidade_codigo AND c.uf_codigo = u.uf_codigo AND u.uf_sigla='sp' AND c.cidade_descricao='guarulhos' C SELECT b.bairro_descricao, e.endereco_logradouro, e.endereco_cep FROM ENDERECO e INNER JOIN (BAIRRO b INNER JOIN (CIDADE c INNER JOIN UF u ON c.uf_codigo = u.uf_codigo) ON b.cidade_codigo = c.cidade_codigo) ON e.bairro_codigo = b.bairro_codigo WHERE u.uf_sigla='sp' AND c.cidade_descricao='guarulhos' Tabela Tempos de resposta para as consultas A, B e C nos 2 otimizadores. Nº A B C Consulta RBO CBO RBO CBO RBO CBO 1 5,512 3,512 4,507 2,997 4,509 3, ,184 3,120 4,500 3,252 4,507 3, ,004 3,117 5,010 3,266 4,513 2, ,009 3,088 4,499 3,212 4,753 3, ,205 3,016 4,538 3,209 4,503 3, ,003 3,037 4,525 2,999 4,598 3, ,000 3,106 4,494 2,530 4,510 3, ,227 3,182 4,720 3,002 4,499 3, ,007 3,024 5,002 2,995 4,635 3, ,002 3,149 4,496 3,213 4,502 3,014

31 19 Note na Tabela 4.3 a diferença de tempo nas consultas entre os otimizadores RBO e CBO. Lembrando que no caso do CBO ele já havia armazenado informações das consultas anteriores, por isso a diferença entre a primeira e a decima consulta é menor do que na Tabela 4.1. Observando os três gráficos a seguir, é mais fácil visualizar a diferença entre os otimizadores. Figura 4.15 Gráfico referente à consulta A Figura 4.16 Gráfico referente à consulta B

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

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

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

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

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

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

Tuning em queries em Banco de Dados

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

Leia mais

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

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

Leia mais

Banco de Dados I. 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

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

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados

SISTEMA DE BANCO DE DADOS. Banco e Modelagem de dados SISTEMA DE BANCO DE DADOS Banco e Modelagem de dados Sumário Conceitos/Autores chave... 3 1. Introdução... 4 2. Arquiteturas de um Sistema Gerenciador... 5 3. Componentes de um Sistema... 8 4. Vantagens

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

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

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

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

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

Leia mais

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

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

RYLY - Query Analizer: Ferramenta de Visualização e de Análise do Plano de Execução de Consultas ORACLE

RYLY - Query Analizer: Ferramenta de Visualização e de Análise do Plano de Execução de Consultas ORACLE RYLY - Query Analizer: Ferramenta de Visualização e de Análise do Plano de Execução de Consultas ORACLE Luzia A. Mendes 1, Rodrigo C. Barros 2, Bruno Visioli 1, Leandro Pompermaier 1 1 Faculdade de Informática

Leia mais

FAT32 ou NTFS, qual o melhor?

FAT32 ou NTFS, qual o melhor? FAT32 ou NTFS, qual o melhor? Entenda quais as principais diferenças entre eles e qual a melhor escolha O que é um sistema de arquivos? O conceito mais importante sobre este assunto, sem sombra de dúvidas,

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

MODELO RELACIONAL - UFMA

MODELO RELACIONAL - UFMA MODELO RELACIONAL Universidade Federal do Maranhão - UFMA Departamento de Informática Projeto de Banco de Dados Profª.MSc Simara Rocha simararocha@gmail.com/simara@deinf.ufma.br www.deinf.ufma.br/~simara

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

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

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

Leia mais

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

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

Leia mais

Banco de Dados. 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

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante

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

Leia mais

Bases de Dados aplicadas a Inteligência de Negócios

Bases de Dados aplicadas a Inteligência de Negócios Agenda Bases de Dados aplicadas a Inteligência de Negócios Professor Sérgio Rodrigues professor@sergiorodrigues.net Sistemas de Gerenciamento de Bancos de Dados (SGBD) Tipos de Banco de Dados Noções de

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

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

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

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

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

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

Leia mais

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

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

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

Leia mais

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

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

Leia mais

XDR. Solução para Big Data.

XDR. Solução para Big Data. XDR Solução para Big Data. ObJetivo Principal O volume de informações com os quais as empresas de telecomunicações/internet têm que lidar é muito grande, e está em constante crescimento devido à franca

Leia mais

OTIMIZAÇÃO E PERFORMANCE DE BANCO DE DADOS UTILIZANDO SQL TUNING

OTIMIZAÇÃO E PERFORMANCE DE BANCO DE DADOS UTILIZANDO SQL TUNING OTIMIZAÇÃO E PERFORMANCE DE BANCO DE DADOS UTILIZANDO SQL TUNING Jéssica Correa dos Santos¹, Alexandre Paulino Sierra da Silva¹ ¹Universidade Paranaense (Unipar) Paranavai-PR-Brasil jessica_07correa@hotmail.com,

Leia mais

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

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

Leia mais

Unidade IV ADMINISTRAÇÃO DE BANCO DE DADOS. Software livre se refere à liberdade dos usuários com relação ao software, mais precisamente:

Unidade IV ADMINISTRAÇÃO DE BANCO DE DADOS. Software livre se refere à liberdade dos usuários com relação ao software, mais precisamente: ADMINISTRAÇÃO DE BANCO DE DADOS Unidade IV DEFINIR A MELHOR SOLUÇÃO DE BANCO DE DADOS PARA AS NECESSIDADES DA EMPRESA.1 O uso das tecnologias.1.1 O software livre 1 A tecnologia de banco de dados, assim

Leia mais

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende:

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende: ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD Desempenho do BD ÙSatisfação do usuário USUÁRIO A performance do sistema depende: da eficiência das estruturas de dados utilizadas; como o sistema opera

Leia mais

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1

UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 UM PROTÓTIPO DO SISTEMA PARA CONTROLE DE BIBLIOTECAS POR MEIO DE PÁGINAS WEB DINÂMICAS 1 Daniel de Faveri HONORATO 2, Renato Bobsin MACHADO 3, Huei Diana LEE 4, Feng Chung WU 5 Escrito para apresentação

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

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

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

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

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

Curso de Verão 2012 - Bioinformática

Curso de Verão 2012 - Bioinformática Curso de Verão 2012 - Bioinformática Bancos de Dados Biológicos Márcio K. Oikawa - UFABC marcio.oikawa@ufabc.edu.br Agenda Introdução: O que são bancos de dados? Por que são importantes? Bancos de dados

Leia mais

CAPÍTULO 5. Introdução ao Gerenciamento de Bancos de Dados.

CAPÍTULO 5. Introdução ao Gerenciamento de Bancos de Dados. CAPÍTULO 5. Introdução ao Gerenciamento de Bancos de Dados. VISÃO GERAL DO CAPÍTULO O objetivo do capítulo é enfatizar o gerenciamento dos recursos de dados de organizações que utilizam computadores. O

Leia mais

BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB)

BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB) BI: Um estudo de Oracle MÉLODY BALLOUARD (MAMB) Roteiro Introdução Motivação Objetivos Historico Conceitos Arquitetura Estado da arte Exemplos Referências Introdução Quantidade infinita de dados Ferramentas

Leia mais

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

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

Leia mais

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

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

Leia mais

Pró-Reitoria de Ensino de Graduação Núcleo de Apoio Pedagógico - NAPE P L A N O D E E N S I N O

Pró-Reitoria de Ensino de Graduação Núcleo de Apoio Pedagógico - NAPE P L A N O D E E N S I N O Pró-Reitoria de Ensino de Graduação Núcleo de Apoio Pedagógico - NAPE P L A N O D E E N S I N O Curso: CIÊNCIA DA COMPUTAÇÃO Componente Curricular: BANCO DE DADOS II Modalidade: Presencial ( X ) Semipresencial

Leia mais

Administração de Banco de Dados

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

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Treinamento. DBA Oracle 11g. Duração: 120 horas

Treinamento. DBA Oracle 11g. Duração: 120 horas Treinamento DBA Oracle 11g Duração: 120 horas Neste curso no primeiro módulo (Introdução ao Oracle 11g SQL e PL_SQL) é oferecido um curso introdutório à tecnologia do banco de dados Oracle 11g. Também

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

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

Sistemas Operacionais

Sistemas Operacionais 7 Sistemas Operacionais 7.1 Fundamentos da ciência da computação Cengage Learning Objetivos 7.2 Compreender o papel do sistema operacional. Compreender o processo de inicialização para carregar o sistema

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação

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

Conectando Bancos de Dados Microsoft Access no BrOffice.org Base. fornecido pelo Projeto de Documentação do BrOffice.org

Conectando Bancos de Dados Microsoft Access no BrOffice.org Base. fornecido pelo Projeto de Documentação do BrOffice.org Conectando Bancos de Dados Microsoft Access no BrOffice.org Base fornecido pelo Projeto de Documentação do BrOffice.org Índice 1 Introdução...2 1.1 Versão... 2 1.2 Licenciamento...2 1.3 Mensagem do Projeto

Leia mais

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

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

Leia mais

V O C Ê N O C O N T R O L E.

V O C Ê N O C O N T R O L E. VOCÊ NO CONTROLE. VOCÊ NO CONTROLE. O que é o Frota Fácil? A Iveco sempre coloca o desejo de seus clientes à frente quando oferece ao mercado novas soluções em transportes. Pensando nisso, foi desenvolvido

Leia mais

Junções e Índices em Tabelas

Junções e Índices em Tabelas Junções e Índices em Tabelas Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SGBD Considerados MySQL (http://www.mysql.org) SGBD gratuito e simples, sem muitos recursos avançados Fácil de instalar

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

Thiago Hernandes de Souza

Thiago Hernandes de Souza Thiago Hernandes de Souza SQL Avançado e Teoria Relacional Copyright Editora Ciência Moderna Ltda., 2013 Todos os direitos para a língua portuguesa reservados pela EDITORA CIÊNCIA MODERNA LTDA. De acordo

Leia mais

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9

DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 DESENVOLVENDO SOLUÇÕES COM VISUAL FOXPRO 8 E 9 Í N D I C E Capítulo 1 - O Início de Tudo 1 Reunindo todas as informações necessárias 2 Instalando o Visual FoxPro 2 Configurando o Visual FoxPro 7 Capítulo

Leia mais

Prova INSS RJ - 2007 cargo: Fiscal de Rendas

Prova INSS RJ - 2007 cargo: Fiscal de Rendas Prova INSS RJ - 2007 cargo: Fiscal de Rendas Material de Apoio de Informática - Prof(a) Ana Lucia 53. Uma rede de microcomputadores acessa os recursos da Internet e utiliza o endereço IP 138.159.0.0/16,

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

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

Leia mais

Capítulo 1 INTRODUÇÃO A BANCO DE DADOS

Capítulo 1 INTRODUÇÃO A BANCO DE DADOS Capítulo 1 INTRODUÇÃO A BANCO DE DADOS 1.1 - BANCO DE DADOS - INTRODUÇÃO...2 1.1.1- Dados...2 1.1.2- Hardware...3 1.1.3- Software...3 1.1.4- Usuários...4 1.2 - SISTEMAS DE ARQUIVOS CONVENCIONAIS...5 1.3

Leia mais

utilização da rede através da eliminação de dados duplicados integrada e tecnologia de archiving.

utilização da rede através da eliminação de dados duplicados integrada e tecnologia de archiving. Business Server Backup e recuperação abrangentes criados para a pequena empresa em crescimento Visão geral O Symantec Backup Exec 2010 for Windows Small Business Server é a solução de proteção de dados

Leia mais

RECURSOS E ATIVIDADES DE UM SISTEMA DE INFORMAÇÃO

RECURSOS E ATIVIDADES DE UM SISTEMA DE INFORMAÇÃO RECURSOS E ATIVIDADES DE UM SISTEMA DE INFORMAÇÃO COMPONENTES DOS SISTEMAS DE INFORMAÇÃO A figura abaixo ilustra os componentes de um Sistema de Informação. 2 Conceitos de Sistema de Informação (SI) vistos

Leia mais

UNIVERSIDADE LUTERANA DO BRASIL CURSO DE SISTEMAS DE INFORMAÇÃO CAMPUS SANTA MARIA. PostgreSQL ou MySQL. Quando utilizar um desses SGBDs.

UNIVERSIDADE LUTERANA DO BRASIL CURSO DE SISTEMAS DE INFORMAÇÃO CAMPUS SANTA MARIA. PostgreSQL ou MySQL. Quando utilizar um desses SGBDs. UNIVERSIDADE LUTERANA DO BRASIL CURSO DE SISTEMAS DE INFORMAÇÃO CAMPUS SANTA MARIA PostgreSQL ou MySQL Quando utilizar um desses SGBDs por Anderson Davi da Cunha Naidon, Daniel Flores Bastos, Gleizer Bierhalz

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

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

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

Leia mais

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

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

Sumário. Capítulo 2 Conceitos Importantes... 32 Tópicos Relevantes... 32 Instance... 33 Base de Dados... 36 Conclusão... 37

Sumário. Capítulo 2 Conceitos Importantes... 32 Tópicos Relevantes... 32 Instance... 33 Base de Dados... 36 Conclusão... 37 7 Sumário Agradecimentos... 6 Sobre o Autor... 6 Prefácio... 13 Capítulo 1 Instalação e Configuração... 15 Instalação em Linux... 15 Instalação e Customização do Red Hat Advanced Server 2.1... 16 Preparativos

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

Seu manual do usuário KASPERSKY LAB ADMINISTRATION KIT 8.0 http://pt.yourpdfguides.com/dref/3741343

Seu manual do usuário KASPERSKY LAB ADMINISTRATION KIT 8.0 http://pt.yourpdfguides.com/dref/3741343 Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para KASPERSKY LAB ADMINISTRATION KIT 8.0. Você vai encontrar as respostas a todas suas perguntas

Leia mais

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

Leia mais

NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia

NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia NEVA: Programa para aumento de performance de sites web usando o algoritmo de esteganografia MÁRCIO PANTOJA LOBATO 1, PEDRO VICTOR PONTES PINHEIRO 1, ROBERTO YURI DA SILVA FRANCO 1, ALESSANDRA NATASHA

Leia mais

Manual de Instalação e Configuração

Manual de Instalação e Configuração e Configuração MyABCM 4.0 Versão 4.00-1.00 2 Copyright MyABCM. Todos os direitos reservados Reprodução Proibida Índice Introdução... 5 Arquitetura, requisitos e cenários de uso do MyABCM... 7 Instalação

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.neteye.com.br NetEye Guia de Instalação www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

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

Performance Tuning. O que é, por onde começar e o que fazer? Fábio Prado. www.fabioprado.net

Performance Tuning. O que é, por onde começar e o que fazer? Fábio Prado. www.fabioprado.net Performance Tuning O que é, por onde começar e o que fazer? Fábio Prado Visão geral Nesta apresentação veremos: O que é Tuning? Objetivos do tuning Problemas mais comuns Onde e por que tunar? Atividades

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE Pág. 1 0. ÍNDICE 1. INTRODUÇÃO...2 2. OBJETIVOS....2 3. ESTIMATIVAS DO PROJETO....4 4. RISCOS DO PROJETO....5 4.1. Identificação e Análise dos Riscos....5 4.1.1. Riscos de Projeto...6 4.1.2. Riscos Técnicos....6

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

Uma comparação de algoritmos e estruturas de dados para armazenamento de dados em sistemas operacionais Palm OS *

Uma comparação de algoritmos e estruturas de dados para armazenamento de dados em sistemas operacionais Palm OS * Uma comparação de algoritmos e estruturas de dados para armazenamento de dados em sistemas operacionais Palm OS * Rogério Celestino dos Santos 1, Rodrigo Otavio Rodrigues Antunes 1* ¹Instituto de Informática

Leia mais

Plano de Trabalho Docente 2014. Ensino Técnico

Plano de Trabalho Docente 2014. Ensino Técnico Plano de Trabalho Docente 2014 Ensino Técnico Etec Etec: Rodrigues de Abreu Código: 135 Município: Bauru Eixo Tecnológico: Informação e Comunicação Habilitação Profissional: Técnica de nível médio de técnico

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

Leia mais

Software de monitoramento Módulo CONDOR CFTV V1 R1

Software de monitoramento Módulo CONDOR CFTV V1 R1 Software de monitoramento Módulo CONDOR CFTV V1 R1 Versão 30/06/2014 FOR Segurança Eletrônica Rua dos Lírios, 75 - Chácara Primavera Campinas, SP (19) 3256-0768 1 de 12 Conteúdo A cópia total ou parcial

Leia mais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais

1º Estudo Dirigido. Capítulo 1 Introdução aos Sistemas Operacionais 1º Estudo Dirigido Capítulo 1 Introdução aos Sistemas Operacionais 1. Defina um sistema operacional de uma forma conceitual correta, através de suas palavras. R: Sistemas Operacionais são programas de

Leia mais