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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Nível 3 Sistema Operacional

Nível 3 Sistema Operacional Nível 3 Sistema Operacional Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET Tecnologia de Análise e Desenvolvimento de Sistemas Organização de Computadores Prof. André Luiz 1 Nível

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

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

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

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

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

Leia mais

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

Treinamento sobre SQL

Treinamento sobre SQL Treinamento sobre SQL Como Usar o SQL Os dois programas que você mais utilizara no SQL Server são: Enterprise Manager e Query Analyzer. No Enterprise Manager, você pode visualizar e fazer alterações na

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

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

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

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

O Valor do Licenciamento do SQL Server 2012 Versus Oracle Database

O Valor do Licenciamento do SQL Server 2012 Versus Oracle Database White Paper Publicado em: Janeiro de 2012 Aplica-se ao: SQL Server 2012 O Valor do Licenciamento do SQL Server 2012 Versus Oracle Database Resumo: As mudanças no produto e no licenciamento da Microsoft

Leia mais

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior Arquitetura de SGBD Prof. Antonio Almeida de Barros Junior Agenda Caracterização de SGBDs SGBDs Centralizados SGBDs Cliente-Servidor SGBDs Distribuídos Homogêneos Multi-SGBDs Heterogêneos SGBDs Paralelos

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

Banco de Dados I. Introdução Conceitos

Banco de Dados I. Introdução Conceitos Banco de Dados I Introdução Conceitos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Conceitos Fundamentais de Banco de Dados; Características

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

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

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

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

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

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

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ESPECIALIZAÇÃO EM ADMINISTRAÇÃO DE BANCO DE DADOS PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO

Leia mais

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Tarefa Orientada 12 Junção Externa, Auto-Junção e União Tarefa Orientada 12 Junção Externa, Auto-Junção e União Objectivos: Junção externa (Outer JOIN) Junção externa à esquerda (LEFT Outer JOIN) Junção externa à direita (RIGHT Outer JOIN) Junção externa completa

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

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

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

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

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

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

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

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

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

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento

CPU - Significado CPU. Central Processing Unit. Unidade Central de Processamento CPU - Significado CPU Central Processing Unit Unidade Central de Processamento CPU - Função Na CPU são executadas as instruções Instrução: comando que define integralmente uma operação a ser executada

Leia mais

1 - Processamento de dados

1 - Processamento de dados Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

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

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção

CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico. Edital de seleção CURSO DE EXTENSÃO ON-LINE EM Oracle 10g Express Edition XE nível básico Edital de seleção Nome: Oracle 10g Express Edition XE nível básico Coordenador Geral: Profº Mestre Luis Naito Mendes Bezerra Área

Leia mais

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto

CPU Fundamentos de Arquitetura de Computadores. Prof. Pedro Neto Fundamentos de Arquitetura de Computadores Prof. Pedro Neto Aracaju Sergipe - 2011 Conteúdo 4. i. Introdução ii. O Trabalho de um Processador iii. Barramentos iv. Clock Interno e Externo v. Bits do Processador

Leia mais

Modelo Entidade-Relacionamento. Prof. Antonio Almeida de Barros Jr.

Modelo Entidade-Relacionamento. Prof. Antonio Almeida de Barros Jr. Modelo Entidade-Relacionamento Prof. Antonio Almeida de Barros Jr. Conteúdo Contexto Histórico A Importância da Modelagem de Dados Projeto de Banco de Dados Modelagem Conceitual Projeto Lógico Projeto

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

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

AVALIAÇÃO DE DESEMPENHO DE FERRAMENTAS PARA TUNING EM BANCO DE DADOS 1 EVALUATION OF TOOL PERFORMANCE FOR TUNING IN DATABASE

AVALIAÇÃO DE DESEMPENHO DE FERRAMENTAS PARA TUNING EM BANCO DE DADOS 1 EVALUATION OF TOOL PERFORMANCE FOR TUNING IN DATABASE Disciplinarum Scientia. Série: Ciências Naturais e Tecnológicas, Santa Maria, v. 13, n. 2, p. 201-211, 2012. Recebido em: 06.08.2013. Aprovado em: 26.09.2013. ISSN 2176-462X AVALIAÇÃO DE DESEMPENHO DE

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

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

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

Leia mais

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos:

Sistemas Operacionais Cap 3 Estruturas de Sistemas Operacionais. Podemos analisar um sistema operacional sob diversos aspectos: Estruturas de Sistemas Operacionais Podemos analisar um sistema operacional sob diversos aspectos: Os serviços que o sistema operacional oferece. A interface que o sistema operacional torna disponível

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

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

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

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

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada Desvendando Estatísticas do SQL Server Parte 1 Nesta série de artigos vamos dar um mergulho profundo nas Teorias Probabilísticas (mais conhecido como estatísticas) do SQL Server. Introdução Estatísticas

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

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

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

CA Nimsoft Monitor para servidores

CA Nimsoft Monitor para servidores DOCUMENTAÇÃO TÉCNICA Setembro de 2012 CA Nimsoft Monitor para servidores agility made possible CA Nimsoft para monitoramento de servidores sumário CA Nimsoft Monitor para servidores 3 visão geral da solução

Leia mais

António Rocha Nuno Melo e Castro

António Rocha Nuno Melo e Castro António Rocha Nuno Melo e Castro SQL- Strutured Query Language é a linguagem mais usada nas bases dados relacionais. Originalmente desenvolvida pela IBM Actualmente é um standard, o mais recente é o SQL:2003

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

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE

ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações

Leia mais

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS REVISTA DE CIÊNCIAS EXATAS E TECNOLOGIA AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS Eder Pazinatto Faculdade Anhanguera de Passo Fundo RESUMO: A busca por mecanismos que implementam segurança

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

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

SQL Structured Query Language

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

Leia mais

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

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

Introdução a Sistemas de Bancos de Dados

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

Leia mais

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

Bases de Dados 2007/2008. Aula 1. Referências

Bases de Dados 2007/2008. Aula 1. Referências Bases de Dados 2007/2008 Aula 1 Sumário 1. SQL Server 2000: configuração do acesso ao servidor. 1.1. SQL Server Service Manager. 1.2. SQL Server Enterprise Manager. 1.3. SQL Query Analyzer. 2. A base de

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 4 SUPORTE AO SISTEMA OPERACIONAL Prof. Luiz Gustavo A. Martins Sistema Operacional (S.O.) Programa responsável por: Gerenciar os recursos do computador. Controlar a execução

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

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

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas de Entrada/Saída Princípios de Hardware Sistema de Entrada/Saída Visão Geral Princípios de Hardware Dispositivos de E/S Estrutura Típica do Barramento de um PC Interrupções

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

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 3 ARQUITETURA DE VON NEUMANN E DESEMPENHO DE COMPUTADORES Prof. Luiz Gustavo A. Martins Tipos de Arquitetura Arquitetura de von Neumann: Conceito de programa armazenado; Dados

Leia mais

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

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

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais