FACULDADE DE AMERICANA CURSO DE CIÊNCIA DA COMPUTAÇÃO CAIO FELIPE GOMES GERMANO RODRIGO BRONSELLI BANCO DE DADOS ORACLE: Conceitos de SGBD e análise de desempenho AMERICANA, SP 2015 CAIO FELIPE GOMES GERMANO RODRIGO BRONSELLI BANCO DE DADOS ORACLE: Conceitos de SGBD e análise de desempenho Trabalho de Conclusão de Curso apresentado a Faculdade de Americana como requisito parcial para obtenção do Título de Bacharel em Ciência da Computação. Orientador: Prof. Gustavo Gomes AMERICANA, SP 2015 AGRADECIMENTOS Primeiramente a Deus que permitiu que tudo isso acontecesse, ao longo de nossas vidas, e não somente nestes anos como universitários, mas que em todos os momentos é o maior mestre que alguém pode conhecer. A FAM, seu corpo docente e direção, que nos proporcionaram vislumbrar esse horizonte superior. Aos nossos orientadores professores Alexandre Ferreira e Gustavo Gomes, pelo suporte no pouco tempo que lhes coube, pelas suas correções e incentivos. Aos nossos pais pelo amor, incentivo e apoio incondicional. E a todos que direta ou indiretamente, fizeram parte da nossa formação, o nosso muito obrigado. "Para se ter sucesso, é necessário amar de verdade o que se faz. Caso contrário, levando em conta apenas o lado racional, você simplesmente desiste. É o que acontece com a maioria das pessoas." (Steve Jobs) RESUMO O armazenamento de informações em bancos de dados se tornou ponto crucial de muitos sistemas e empresas. A informação pode ser considerada o recurso mais valioso da empresa, portanto, conhecer um sistema gerenciador de banco de dados, ou SGBD, é fundamental para empresas que necessitem esclarecer dúvidas pertinentes ao tema, juntamente com a importância de uma analise comparativa entre exemplos de sistemas conceituados presentes no mercado. Um SGBD possui varias funções como, por exemplo, garantir que as informações sejam armazenadas de forma segura e eficaz. Assim como a computação em geral, o SGBD evoluiu de uma arquitetura apenas centralizada para distribuída, explorando novos conceitos de arquitetura cliente/servidor, onde parte é executado no computador do usuário e parte é executado no servidor do banco de dados. Seguindo essa linha, surgiram vários sistemas no mercado, como o Oracle que, por sua vez, surgiu da empresa de mesmo nome fundada em 1977, suas características são de um sistema robusto e seguro que conta com diversos benefícios de quem o adquirir, mas o ponto fraco principal é o custo, que uma empresa pequena muitas vezes não poderá arcar de início. Um teste de benchmarking de desempenho de transações feito no programa Benchmark Factory, mostrou que mesmo processando cargas iguais, o PostgreSQL conseguiu resultados melhores que o Oracle, que por sua vez, obteve resultado satisfatório se igualando em muitos steps ao desempenho do PostgreSQL. Palavras-chave: Informação. Dados. Sistema. Oracle. PostgreSQL. ABSTRACT The storage of information in databases has become crucial point of many systems and businesses. Information can be considered the most valuable resource of the company, therefore, to know a database management system, or DBMS, it is critical for companies that need answer questions relevant to the subject, along with the help of a comparative analysis of examples of systems highly regarded in the market. A DBMS has various functions such as, for example, ensure that the information is stored securely and effectively. As general computing, the DBMS has evolved from a centralized to distributed architecture just by exploring new concepts of client / server architecture, where part runs on the user's computer and part runs on the database server. Following this line, there were several systems on the market, such as Oracle, which in turn came from the eponymous company founded in 1977, its features are a robust and secure system that has several benefits who acquire, but the main weakness is the cost, that a small business often cannot afford to start. A transaction performance benchmark test performed in the benchmark factory software, the same processing showed that equal loads, PostgreSQL achieved better results than Oracle, which in turn, obtained satisfactory result in many steps equaling the performance of the PostgreSQL. Key-words: Information. Data. System. Oracle. PostreSQL. LISTA DE FIGURAS Figura 1 - Diagrama Lógico do SGBD ....................................................................... 13 Figura 2 - Arquitetura Centralizada ........................................................................... 16 Figura 3 – Arquitetura Cliente/Servidor modelo lógico .............................................. 16 Figura 4 - Arquitetura Cliente/Servidor Duas Camadas ............................................ 17 Figura 5 - Arquitetura Cliente/Servidor de Três Camadas ......................................... 18 Figura 6 - Arquitetura do Banco de Dados ................................................................ 23 Figura 7 - Tablespaces e Arquivos de Dados............................................................ 24 Figura 8 - Diagrama do banco de dados TPC-C ....................................................... 30 Figura 9 - Configurações das máquinas virtuais ....................................................... 32 Figura 10 - Conexão do Benchmark Factory com SGBD .......................................... 34 Figura 11 - Resumo dos parâmetros e configurações do Job TPC-C ....................... 35 Figura 12 - Tamanho de objetos. .............................................................................. 36 Figura 13 - Dinâmica de execução. ........................................................................... 37 Figura 14 - Transações executadas pelo Job............................................................ 38 Figura 15 - Criação dos usuários. ............................................................................. 38 Figura 16 - Configuração dos usuários. .................................................................... 39 Figura 17 - Melhor desempenho de Throughput na carga de trabalho do Oracle ..... 42 Figura 18 - Melhor desempenho de Throughput na carga de trabalho do PostgreSQL .................................................................................................................................. 42 LISTA DE GRÁFICOS Gráfico 1 - Métricas da execução do Job no SGBD Oracle ...................................... 40 Gráfico 2 - Métricas da execução do Job no SGBD PostgreSQL.............................. 41 LISTA DE ABREVIATURAS E SIGLAS SGBD Sistema de Gerenciamento de Banco de Dados SQL Structured Query Language DBA Database Administrator ODBC Open Database Connectivity API Application Programming Interface SGA System Global Area OLTP Online Transaction Processing TPC Transaction Processing Performance Council RAM Random Acess Memory SUMÁRIO 1 INTRODUÇÃO ................................................................................................... 11 2 SGBD ................................................................................................................. 12 2.1 Conceitos básicos ...................................................................................................................... 12 2.1.1 Banco de Dados ................................................................................................................. 12 2.1.2 Sistema Gerenciador de banco de dados ....................................................................... 12 2.1.3 Principais recursos de um SGBD..................................................................................... 14 2.2 Arquitetura de um SGBD ........................................................................................................... 15 2.2.1 Arquitetura Centralizada ................................................................................................... 15 2.2.2 Arquitetura Cliente/Servidor ............................................................................................. 16 2.3 SGBDs mais conhecidos ........................................................................................................... 19 3 BANCO DE DADOS ORACLE .......................................................................... 22 3.1 A história da Oracle .................................................................................................................... 22 3.2 Arquitetura do Banco de Dados Oracle ................................................................................... 23 3.3 Principais Vantagens/Desvantagens ........................................................................................ 25 3.3.1 Vantagens do Oracle ......................................................................................................... 25 3.3.2 Desvantagens do Oracle ................................................................................................... 27 4 ESTUDO DE CASO: ANÁLISE DE DESEMPENHO DO ORACLE .................. 28 4.1 Descrição do estudo de caso .................................................................................................... 28 4.2 O Benchmarking ......................................................................................................................... 28 4.2.1 Conceito de ambiente OLTP ............................................................................................. 29 4.2.2 Carga de trabalho TPC-C .................................................................................................. 30 4.2.3 Configuração do SGBD e ambiente de execução .......................................................... 32 4.2.4 Configuração do Benchmark Factory .............................................................................. 33 4.3 Resultados obtidos Oracle x PostgreSQL ............................................................................... 39 CONCLUSÃO ........................................................................................................... 43 REFERÊNCIAS ......................................................................................................... 44 11 1 INTRODUÇÃO Entender o conceito de Sistemas de Gerenciamento de Bando de Dados (SGBD), conhecer sua importância e analisar quais vantagens e desvantagens de implantar esse tipo de sistema é fundamental para qualquer empresa que possua a necessidade de armazenar e buscar grandes volumes de dados, sejam eles cadastros de produtos, clientes ou demais informações imprescindíveis para o bom funcionamento da empresa e seu crescimento e organização. Quando se fala em um novo sistema, esse termo gera diversas dúvidas quanto a sua real importância e até mesmo se irá trazer benefícios notáveis após sua implantação e uso. Diante de inúmeros SGBDs disponíveis no mercado, tais dúvidas dificultam uma escolha e apenas uma análise mais precisa pode esclarecer as interrogações e auxiliar na escolha mais adequada. Dentre os SGBDs mais conhecidos podemos citar o Oracle que se encontra entre os mais usados do mercado atualmente, juntamente com o MySQL, SQLServer, PostreSQL, e outros. Esse trabalho tem como objetivo conhecer a arquitetura geral de um SGBD, conceituando como é seu funcionamento, além de abordar as vantagens e desvantagens desse tipo de sistema. Uma vez compreendido tais conceitos, iremos estudar um dos principais SGBDs disponíveis, o Oracle, descrevendo uma breve historia de seus desenvolvedores e mostrar como é composto seu sistema de banco de dados. Como o foco proposto está em torno de seu uso em empresas de pequeno ou médio porte, serão apontados quais pontos positivos e negativos nesse ambiente empresarial. Através de um estudo de caso, será realizada uma analise comparativa entre dois sistemas de banco de dados muito usados, o Oracle, que se trata de um sistema pago, e o PostgreSQL, considerado o melhor entre as soluções gratuitas. Uma comparação muito útil para qualquer empresa que esteja buscando uma solução para sua empresa, e se encontra na dúvida se opta por um SGBD pago ou gratuito. 12 2 SGBD 2.1 Conceitos básicos 2.1.1 Banco de Dados Armazenar informações em bancos de dados nas últimas décadas se tornou ponto crucial de muitos sistemas. A informação é muitas vezes considerada o recurso mais valioso da empresa, e possuir esse material e poder acessá-lo sempre que for necessário chega a ser primordial para a tomada de decisões importantes. Assim, ter controle de acesso a essas informações garante a segurança dos dados e confiabilidade naquilo que está sendo armazenado. Banco de Dados ou Base de Dados se trata de um conjunto de dados relacionados armazenados, de forma a permitir a manipulação de tais dados, como alterar, inserir, remover e realizar consultas. SIEBRA (2010). De acordo com SIEBRA (2010; p.8): “Os tipos de “coleções de dados” são ilimitados (ex: dados de um produto, de um estudante, mapas, dados sobre genes humanos, etc), ou seja, quaisquer aplicações do mundo real que possam ser representadas através de dados computáveis poderão ser armazenadas em um banco de dados”. DATE (2000), descreve: “Um Banco de Dados é uma coleção de dados operacionais armazenados, sendo usados pelos sistemas de aplicação de uma determinada organização”. 2.1.2 Sistema Gerenciador de banco de dados Segundo ELMASRI e NAVATHE (2011), um sistema gerenciador de banco de dados se trata de uma coleção de programas que tornam possível os usuários de criarem e manterem um banco de dados. Esse software facilita a construção, definição, manipulação e compartilhamento do banco através de diferentes aplicações. A definição de um banco de dados está relacionada à especificação dos tipos, estruturas e regras de restrições de dados que serão armazenadas, tais informações são guardadas pelo SGBD, gerando uma espécie de catálogo, denominado de 13 metadados. O acesso às informações contidas no banco de dados é feita por uma aplicação, que fica responsável pelo envio das consultas ou solicitações de dados ao SGBD. A figura a seguir representa um diagrama de ambiente simples de um SGBD: Figura 1 - Diagrama Lógico do SGBD Fonte: ELMASRI e NAVATHE (2011; p.4). Outras funções primordiais do SGBD são a proteção e manutenção do banco de dados. ELMASRI e NAVATHE (2011; p.4) descrevem: “A Proteção inclui proteção do sistema contra defeitos (ou falhas) de hardware e software e proteção de segurança contra acesso não autorizado ou malicioso. Um banco de dados grande pode ter um ciclo de vida de muitos anos, de modo que o SBGD precisa ser capaz de manter o sistema, permitindo que ele evolua à medida que os requisitos mudam com o tempo.” Como supracitado, um SGBD possui funções que vão além de apenas criação do banco e manipulação dos dados armazenados em uma base. O sistema garante que as informações sejam armazenadas de forma segura e eficaz e fica a cargo do administrador do banco de dados ou Database Administrator (DBA), criar e executar as regras e rotinas referentes às politicas de acesso e manutenções preventivas, como backup periódico da base. 14 2.1.3 Principais recursos de um SGBD ELMASRI e NAVATHE (2011) levantam os seguintes recursos que descrevem algumas das funções de um SBGD: Segurança lógica: proteger a base de dados contra acessos não autorizados conforme regras que definem quais os utilizadores do sistema podem acessar a base ou não. Também separa dentro dos usuários autorizados, as quais arquivos podem ter acesso e que tipos de operações podem executar (gravar, ler, modificar, apagar, etc.), assim como oferecer um subsistema que somente o DBA tem acesso a fim de criar restrições ou novas contas de usuário. Controle de redundância: prevenir que uma mesma informação seja gravada em dois locais diferentes, gerando assim inconsistência. Por exemplo, usuários distintos criando dois cadastros separados de um mesmo produto ou cliente. Processamento eficiente de consultas: oferecer estruturas de dados e técnicas de pesquisas para agilizar a busca de registros, normalmente utilizando índices para auxiliar no processo. Como o banco de dados é gravado em um disco no servidor, quando uma informação é retornada, necessariamente precisa ser copiada na memória principal do servidor. O SGBD conta com um módulo de buffering de dados, que mantem partes do banco de dados nos buffers de memoria principal, Em geral, o sistema operacional fica encarregado do buffering entre disco e memória, entretanto, a maioria dos SGBDs realizam essa tarefa visando melhor desempenho. Backup e Recuperação: ser capaz de se recuperar de falhas de software ou hardware. Por exemplo, se houver falha durante uma transação, garante que o banco de dados seja restaurado ao seu estado exatamente como era antes da transação ser realizada. Já o backup é essencial, pois se ocorrer problemas no disco, o SGBD fica encarregado de executar as rotinas de backup estabelecidas pela equipe de DBA. 15 Múltiplas interfaces de usuário: o sistema inclui diversas interfaces de usuário, para atender diferentes níveis de conhecimento técnico. Por exemplo, linguagens de consultas para usuários casuais, interfaces de linguagens de programação para programadores de aplicação, e menus de linguagem natural para usuários isolados. Integridade: grande parte das aplicações de banco de dados possuem regras que especificam, por exemplo, um tipo de dado para cada item em determinado registro, como gravar um dado numérico em um campo referente a um nome de indivíduo. Deste modo, o SGBD oferece a capacidade para definir e impor tais restrições de dados e tratamento de inserção de forma automática. 2.2 Arquitetura de um SGBD 2.2.1 Arquitetura Centralizada ELMASRI e NAVATHE (2011) relatam que antigamente o processamento de todas as funções dos programas de aplicação, interface com o usuário e as funcionalidades do SGBD, eram executadas por grandes computadores centrais, os mainframes, portanto, estabelecia uma arquitetura centralizada. O acesso ao banco era realizado por terminais que recebiam apenas as imagens sendo que todo o processo era executado no computador central. A figura 2 ilustra os componentes que fazer parte da arquitetura centralizada. 16 Figura 2 - Arquitetura Centralizada Fonte: ELMASRI e NAVATHE (2011; p.30). 2.2.2 Arquitetura Cliente/Servidor ELMASRI e NAVATHE (2011) descrevem que esse tipo de arquitetura foi desenvolvida em ambientes que necessitavam lidar com números expressivos de estações de trabalho, outros servidores como de e-mail, Web, servidores de arquivos e do próprio banco de dados, além de outros dispositivos conectados na rede. Cada servidor fica encarregado de funções específicas e o computador do usuário oferece interfaces para utilização dessas funções bem como passa executar o processamento local de aplicações locais. A figura 3 representa um modelo lógico desse tipo de arquitetura, destacando que é possível ligar n clientes acessando n servidores através da rede. Figura 3 – Arquitetura Cliente/Servidor modelo lógico Fonte: ELMASRI e NAVATHE (2011; p.30). 17 A arquitetura Cliente/Servidor possui dois tipos principais: duas camadas e três camadas. Arquitetura Cliente/Servidor de Duas Camadas: Segundo ELMASRI e NAVATHE (2011), os programas de interface de usuário e aplicações permanecem no lado cliente e funções de consultas e transações de dados ficam do lado servidor. Dessa forma, tais recursos do servidor podem ser acessados do cliente usando a linguagem SQL (Structured Query Language), comumente utilizada como padrão em SGBDs. Quando é necessário acessar o SGBD (lado servidor), o programa estabelece uma conexão virtual que oferece uma interface de programação de aplicações, também conhecida como Application Programming Interface (API), também permitindo aos programadores chamarem o SGBD através de máquinas cliente que possuam um driver instalado compatível para estabelecer a conexão com o banco. A figura 4 publicada em um artigo escrito por MERSCHMANN, demonstra um exemplo de arquitetura de duas camadas destacando como a conexão entre cliente e servidor é estabelecida por um software de comunicação de rede. Figura 4 - Arquitetura Cliente/Servidor Duas Camadas Fonte: <http://www.decom.ufop.br/luiz/site_media/uploads/arquivos/bcc321/slides02_bdi.pdf > 18 Arquiteturas Cliente/Servidor de Três Camadas: De acordo com ELMASRI e NAVATHE (2011), esse tipo de arquitetura conta com uma camada intermediária entre o cliente e o servidor de banco de dados, chamada Servidor de Aplicação ou Servidor Web. Essa camada adicional desempenha um papel de armazenar as restrições ou procedimentos de validação dos dados. Também auxilia na incrementação à segurança do banco de dados, verificando as credenciais do cliente antes de enviar uma solicitação ao servidor. O servidor de aplicação também pode atuar de forma que recupera os resultados do servidor do banco de dados, e realiza uma formatação das informações para páginas web dinâmicas, que por sua vez, estão sendo acessadas pelo cliente. A figura 5 representa um diagrama de SGBD em três camadas. Figura 5 - Arquitetura Cliente/Servidor de Três Camadas Fonte: ELMASRI e NAVATHE (2011; p.32). 19 2.3 SGBDs mais conhecidos SIEBRA (2010) descreve os principais Sistemas de Gerenciamento de Banco de Dados, de acordo com os sites oficiais dos sistemas. Segue abaixo uma breve descrição de cada SGBD. Oracle Sistema principalmente comercial, possuindo versões gratuitas para uso acadêmico. Foi o primeiro Banco de Dados Corporativo (cliente/servidor) que foi disponibilizado a grande variedade de sistemas (Macintosh, Windows, Linux, FreeBSD, Unix) além de claro, para computadores de grande porte, os mainframes. Foi um dos pioneiros a integrar o mercado web. A linguagem padrão usada é a SQL, entretanto faz uso de uma linguagem própria para desenvolvimento de aplicações, a PL/SQL4. A participação da Oracle no mercado de Banco de Dados é influente, principalmente em grandes empresas trabalhando em conjunto com sistemas de médio e grande porte, pois se trata de um SGBD robusto e seguro. Alguns exemplos de clientes Oracle no Brasil: CPFL Energia, Seguros Unimed, Claro Telefonia, Emissora Rede Globo e Caixa Econômica Federal. Microsoft SQL Server Banco de dados comercial da Microsoft, considerado um dos principais concorrentes do Oracle. Tem como uma das vantagens o fato de se integrar nativamente com produtos e linguagens da Microsoft. As versões atuais são independentes e operam exclusivamente sobre Windows. É um software pago, assim como a maioria dos produtos lançados pela empresa Microsoft. Alguns exemplos de empresas que usam o Microsoft SQL Server e são consideradas casos de sucesso no Brasil são a Hipercard, o Banco Itaú e a ANEEL (Agencia Nacional de Energia Elétrica). 20 MySQL Um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo, possuindo versões para Windows, Solaris, Unix, FreeBSD, Linux. E seu uso é gratuito para uso não-comercial. Algumas das empresas mais famosas que fazem uso deste banco podemos citar: NASA, Banco Bradesco, Dataprev, HP, Nokia e Sony. O MySQL é usado principalmente para desenvolvimento web como servidor de dados para comércio eletrônico. Tornou-se um SGBD com recursos de transações a partir da versão 5. PostgreSQL SGBD desenvolvido como projeto de código aberto pela PostgreSQL Global Development Group. Ele é considerado o sistema gerenciador de bancos de dados de código aberto mais avançado disponível, sendo que sua distribuição é gratuita e possui uma boa aceitação no mercado. Originalmente, foi criado para plataforma Linux, entretanto conta com versões para Windows atualmente. Seu o foco é, principalmente, para comércio eletrônico, trabalhando juntamente com a linguagem PHP. DB2 Sistema Gerenciador de Banco de Dados produzido pela IBM. Existem diferentes versões do DB2 que rodam desde num simples PDA (computador de mão) e nos potentes mainframes, e funcionam em servidores baseados em sistemas Unix, Windows ou Linux. DB2 é vendido em diversos tipos de edições ou licenças. A IBM evita que seus consumidores paguem por recursos que não iriam usar, oferecendo opções de versões com menos recursos, de acordo com aquilo que atende a demanda do cliente. 21 Interbase Sistema gerenciador de banco de dados relacionais da Borland. Foi incluído, pela Borland, nas suas ferramentas de desenvolvimento (Delphi, C++ Builder e JBuider). O Interbase possibilita instalação em sistemas operacionais Microsoft Windows, Linux, Mac OS X e Sun Solaris. Não é um sistema pesado e se apresenta desempenho relativamente rápido, suportando bancos de dados de tamanho considerável, acima que 2 Gigabytes. Em 2000 a Borland liberou o código da versão 6.0, entretanto posteriormente voltaram a ter licença proprietária do sistema. Desta versão 6.0 liberada, foi criado o Banco de Dados open source Firebird. Firebird Foi desenvolvido seguindo a proposta da Borland de liberar o código do InterBase 6.0. O Firebird, também conhecido como FirebirdSQL, tem distribuições para Linux, Windows, Mac OS e para uma série de plataformas Unix. A Fundação FirebirdSQL é responsável pelo desenvolvimento e manutenção do Firebird. O produto é bastante seguro e confiável, podendo suportar sistemas com centenas de usuários simultâneos, além de bases de dados com dezenas de gigabytes. O SGBD conta com suporte gratuito online através de sites colaboradores, uma vez que é seu código é aberto, o Firebird é amplamente utilizado em todo o mundo, com destaque para usuários no Brasil, Rússia e pela Europa. 22 3 BANCO DE DADOS ORACLE 3.1 A história da Oracle De acordo com informações divulgadas em um documento no site oficial da empresa, a companhia foi fundada em 1977 pelos americanos Larry Ellison, Robert Miner e Ed Oates. Anteriormente, Larry, Robert e Ed ficaram responsáveis por desenvolver um sistema para a CIA (agência de inteligência americana), que usaria como base a linguagem recentemente criada SQL nos computadores IBM. O projeto era denominado Oracle, ou “oráculo” em inglês, uma vez que seria um sistema que teria resposta pra tudo segundo a agência. O projeto acabou fracassando, contudo, os desenvolvedores seguiram o conceito adiante fundando em 1977 a Software Development Laboratories. Tratava-se de uma empresa especializada em sistema de gestão de banco de dados relacional como uma solução alternativa ao IBM System R. Em 1979 a companhia mudou o nome para Relational Software, Inc Anos depois, em 1982, passou a usar o nome Oracle System Corporation após uma conferência que reuniu os clientes da empresa, sendo um marco para a Oracle ficar conhecida mundialmente. No ano seguinte, por fim adotou o nome apenas de Oracle Corporation. Atualmente, no site oficial da Oracle é possível encontrar soluções que vão muito além de banco de dados, abrangendo produtos como, por exemplo, softwares de gerenciamento empresarial, comunicação corporativa, servidores, os sistemas operacionais Oracle Solaris e Oracle Linux, além de serviços como suporte 24 horas e também computação na nuvem. 23 3.2 Arquitetura do Banco de Dados Oracle De acordo com informações descritas no manual do banco de dados Oracle 10g, o sistema de banco de dados Oracle é composto de vários arquivos que são organizados de acordo como mostra a figura 6 a seguir: Figura 6 - Arquitetura do Banco de Dados Fonte: ORACLE 10G (2004; p.3-3) Arquivos de controle: informações sobre o banco de dados (metadados), fundamentais para acessar os dados armazenados. Arquivos de dados: contém os dados do banco de dados. Uma base de dados é dividida em unidades lógicas de armazenamento, chamadas tablespaces, usadas para agrupamento de arquivos de dados. Cada banco de dados é dividido logicamente em uma ou mais tablespaces, sendo que um ou mais arquivos de dados são criados para cada tablespace específica. A figura 7 a seguir, demonstra um exemplo da tablespace USERS contendo dois arquivos de dados. 24 Figura 7 - Tablespaces e Arquivos de Dados Fonte: ORACLE 10G (2004; p.3-7) Arquivos de parâmetros: Utilizado para definir o modo de configuração da instância do Oracle durante a inicialização. Uma instância Oracle é composta de um grande bloco de memória alocado em uma área chamada System Global Area (SGA), juntamente com alguns processos em segundo plano que interagem entre SGA e os arquivos de banco de dados no disco. Somente após iniciar uma instância e o banco de dados for aberto, será possível ter acesso às informações. Arquivo de senha: Ficam armazenadas as senhas de acesso para que seja possível conectar remotamente no banco e executar tarefas de nível administrativo. Arquivos de log arquivados: Fica armazenado um histórico contínuo do “redo” gerado pela instância. Esse arquivo permite a recuperação do banco de dados usando em conjunto com o backup da base. Arquivos de redo log on-line: São arquivos que registram as alterações no banco, como transações e outras ações no servidor. Sendo assim, sua tarefa consiste na proteção contra perda de integridade devido a falhas do sistema, como falta de energia, erros de disco, etc. Através do conteúdo desses arquivos o banco pode ser recuperado. 25 3.3 Principais Vantagens/Desvantagens Para se analisar quais pontos fortes e pontos fracos do SGBD Oracle, iremos considerar dois principais quesitos: a viabilidade de sua aquisição em uma empresa, levando em consideração seu porte (pequeno/médio), e mais adiante, seu desempenho diante de outro sistema do segmento. 3.3.1 Vantagens do Oracle CORRÊA e MARCONDES (2003) expõem uma análise desses pontos em um artigo científico, realizando uma pesquisa sobre quais aspectos importantes devem ser considerados referentes o uso do Oracle em empresas de pequeno e médio porte. Primeiramente, os autores destacam as principais vantagens do Oracle: Suporte aos usuários: por se tratar de uma ferramenta robusta e complexa, é necessário apoio técnico para tratar de dúvidas e até mesmo questões de desempenho e incidentes do sistema. A Oracle oferece um serviço de assistência 24 horas por dia e sete dias por semana sobre seus produtos, possuindo cobertura global e mais de 50 mil engenheiros e especialistas em suporte aos clientes. Mais opções para o cliente: A Oracle conta com várias opções de edições de seu banco de dados, a fim de atender as necessidades de cada empreendimento ou finalidade. A Express Edition é uma versão gratuita, porém limitada, voltada para estudos acadêmicos ou como forma de avaliação da qualidade do sistema. O Standard Edition One é otimizado para implementação em pequenas empresas, departamentos de linha de negócios e ambientes distribuídos de agências. De acordo com o site oficial de produtos Oracle, o valor inicial da licença gira em torno de 180 dólares por usuário (no máximo cinco usuários). 26 A versão Standard Edition, se trata de uma solução de gerenciamento de dados mais completa ideal para empresas de médio porte. Incluindo um banco de dados pronto para conexão com a nuvem, além de oferecer o serviço Oracle Real Application Clusters, possibilitando ser escalado facilmente à medida que a empresa cresce. A licença atual está em torno de 350 dólares por usuário (máximo cinco), segundo a página de produtos Oracle. Já a Enterprise Edition se mostra como carro chefe das distribuições de banco de dados Oracle. Oferece uma administração robusta, confiável e segura do banco de dados para qualquer tipo de aplicação: como datawarehouse e aplicações de alta demanda via web. Conta com todas as ferramentas e funcionalidades para atender os requisitos de disponibilidade e escalabilidade das aplicações críticas para as empresas de hoje. Segurança das informações: Segundo CORRÊA e MARCONDES (2003), o Oracle oferece segurança de forma unificada, reduzindo riscos e demais custos relacionados à manutenção e gerenciamento de sistemas heterogêneos. Por possuir pelo menos um arquivo de controle em sua composição, garante que antes mesmo que o banco de dados seja instanciado, todos os programas e serviços essenciais estejam sendo executados de acordo com os parâmetros necessários, evitando falhas em tempo de execução. Performance e escalabilidade: De acordo com CORRÊA e MARCONDES (2003), o SGBD Oracle é detentor de recordes mundiais de processamento de transações em benchmarks TPC, até mesmo com performance recorde em servidor único. O serviço Oracle Real Application Clusters incluso na versão Standard Edition, apresenta um sistema em nuvem de banco de dados, bem como uma infraestrutura compartilhada, o que garante alta disponibilidade, escalabilidade e agilidade para qualquer aplicação. Solidez da empresa Oracle: Como descrito anteriormente, a empresa Oracle está presente no mercado a mais de 30 anos, foi pioneira em desenvolver um SGBD para execução em computadores mainframes. Conta com serviços confiáveis de 27 proteção a informação, recuperação rápida por falhas e suporte técnico especializado, tudo para garantir que seus produtos estejam sempre disponíveis. 3.3.2 Desvantagens do Oracle Em seu artigo, CORRÊA e MARCONDES (2003) também descrevem as desvantagens de se obter um sistema robusto e complexo como o Banco de Dados Oracle, analisando três fatores primordiais que implicam diretamente na administração da empresa: Custo: A participação de custos de TI dentro das empresas é uma crescente. Cada vez mais é necessário investir em tecnologia e na informação. O valor para aquisição de uma licença Oracle para uso é alto se compararmos com outras opções disponíveis no mercado, até mesmo incluir soluções gratuitas, que apresentam recursos semelhantes, como é o caso do SGBD open source PostgreSQL. Nesse momento o administrador deverá avaliar os custos a serem gastos para a implantação da ferramenta em questão, comparar os benefícios que ela trará, considerando as aspirações futuras de crescimento do empreendimento. Disponibilidade de Recursos Humanos: Uma vez que o custo de aquisição do Oracle é elevado, consequentemente cursos de especialização e treinamento seguem o mesmo patamar. Sua robustez exige mão de obra capacitada, em outras palavras, essa exigência possibilita que profissionais com conhecimento em Oracle sejam mais valiosos que os demais, aumentando assim, os custos à empresa. Estrutura de hardware que suporte a ferramenta: Ferramentas complexas necessitam de infraestruturas robustas para sustentar os diversos serviços agregados. O Banco de Dados Oracle, portanto, necessita de equipamento com boa capacidade de processamento, e esse quesito deve ser considerado pelo administrador de acordo com seus aspectos econômicos, uma vez que terá que adquirir novos dispositivos computacionais. 28 4 ESTUDO DE CASO: ANÁLISE DE DESEMPENHO DO ORACLE 4.1 Descrição do estudo de caso Existem algumas peculiaridades e características que diferem os principais SGBDs existentes no mercado, principalmente no que diz respeito ao tamanho (espaço de utilização) dos dados que serão administrados. Por exemplo, banco de dados MySql é característico de aplicações web, pela facilidade em adquirir e instalar a ferramenta, além de sua boa performance para tamanhos reduzidos de base. Outro exemplo é o PostgreSQL, muito utilizado com aplicações nas empresas de pequeno e médio porte, que normalmente compreende o tamanho da base de dados entre 5 e 15 GB, segundo informações fornecidas pela NWSoftware, empresa especializada em sistemas de gestão empresarial, localizada em Americana. Sua instalação também é simples e gratuita, o sistema é performático e muito utilizado também por aplicações web. O banco de dados Oracle é muito utilizado em bases de dados de empresas de grande porte, pois nele, existem ferramentas que possibilitam funcionalidades para suportar um número alto de dados para gerenciamento. Porém, apesar de famoso por possibilitar o gerenciamento de bases enormes, ele também é uma opção para utilização em base de dados menores, nas empresas de pequeno e médio porte, sendo assim, foi realizado um estudo de caso através de benchmarking baseando-se na comparação de desempenho do Oracle com outro SGBD famoso, já citado, PostgreSQL, realizando execuções para simulação de cargas de trabalho nas empresas de pequeno e médio porte, com tamanho aproximado de 8GB. 4.2 O Benchmarking Para entender como foi estruturado e construído o Benchmarking de comparação entre dois grandes SGBD do mercado, primeiramente vamos entender o conceito dessa palavra. Segundo SOUZA (2003), o processo de comparação do desempenho entre dois ou mais sistemas é chamado de benchmarking, e as cargas usadas são chamadas de benchmark. De acordo com essa definição, podemos perceber no que consiste um 29 Benchmarking em TI, e seu objetivo, que se resume em comparar o desempenho entre sistemas (também entre hardwares), neste caso, SGBD Oracle e PostgreSQL. Para a prática das execuções de teste e gerenciamento de cargas, foi utilizado o programa Benchmark Factory em sua versão trial, desenvolvido pela empresa Dell Software. O Benchmark Factory permite a execução de diversos tipos de cargas, para efetuar transações reais existentes nos sistemas de muitas empresas. Para a demonstração e comparação de desempenho do Oracle e PostgreSQL, será utilizado o tipo de carga TPC-C (Transaction Processing Performance Council Benchmark C), que simula as atividades existentes em um ambiente OLTP (Online Transaction Processing) complexo. É necessário entender o conceito de ambiente OLTP para direcionar os estudos ao Benchmarking propriamente dito. 4.2.1 Conceito de ambiente OLTP Como seu próprio nome já diz, “Online Transaction Processing” ou “Processamento de transações on-line” é exatamente a definição de um sistema baseado em transações de usuários. De acordo com site da SYMANTEC CORPORATION: “Os sistemas OLTP são projetados para responder imediatamente às solicitações do usuário, e cada solicitação é considerada uma única transação. As solicitações podem envolver adicionar, recuperar, atualizar ou remover dados”. Para associar essa definição com o mundo real, pode-se exemplificar ambientes OLTP como: sistemas de reserva de passagem aérea, sistemas bancários, sistemas de acompanhamento de mercado de ações, etc. Os sistemas OLTP, comumente suportam uma grande quantidade de usuários logados e trabalhando, tem disponibilidade 24 horas por dia, 7 dias na semana e suas transações são basicamente compostas por leituras e escritas de dados. 30 4.2.2 Carga de trabalho TPC-C Criado pela organização independente e sem fins lucrativos TPC (Transaction Processing Performance Council), que tem como parceira empresas como: IBM, Microsoft, Oracle, dentre outros, a carga chamada TPC-C consiste na mistura de transações que simulam o trabalho de uma empresa atacadista, realizando transações para controlar a produção, venda e distribuição dos seus produtos. O sistema é utilizado para: Registrar solicitações de compras de clientes; Consultar a situação de pedidos feitos previamente; Registrar pagamentos dos clientes; Processar entregas de pedidos; Consultar o nível de estoque de produtos; Isso significa que cada uma dessas ações, representam as transações executadas pela carga quando executadas através de programas de Benchmarking. O banco de dados do sistema é constituído de nove tabelas relacionadas entre si, conforme mostra a figura 8. Figura 8 - Diagrama do banco de dados TPC-C Fonte: Própria Os números próximos às linhas de relacionamento representam a cardinalidade dos relacionamentos; A tabela de armazéns (Warehouses) e distritos (Districts) são as que 31 indicam geograficamente que as vendas da companhia estão divididas de acordo com os valores contidos nessas tabelas. A proporção existente entre essas duas tabelas são de 1 armazém para cada 10 distritos, desta forma, o restante das tabelas estão proporcionadas de acordo com essas duas entidades. Os itens abaixo descrevem as cinco transações existentes na carga de trabalho do TPC-C: New Order – Executa a operação de compra de um cliente. Essa atividade consiste em: Inserção de registros nas tabelas Order, New Order e Order_Line e consequentemente atualiza o nível de estoque (tabela Stock) para cada venda, além de fazer a consulta de informações nas tabelas Warehouse, District, Customer e Item. Payment – Esta transação realiza o registro de pagamento de uma compra. Para que isso ocorra, ela executa a atualização de informações de saldo do cliente (tabela Customer), do distrito (tabela District) e do armazém (tabela Warehouse). E como consequência de registrar o pagamento, insere um novo registro na tabela History. Delivery – Consiste em registrar uma entrega feita para um determinado pedido. Para cada distrito de um armazém ela realiza a busca e exclusão do registro mais antigo da tabela New Order que esteja associado ao distrito em questão e para manter a consistência, faz a atualização nas tabelas Order, Order_Line e Customer. Não é uma transação executada muitas vezes durante a carga. Order Status – Consiste em fazer a consulta da situação da última compra de um cliente. Sendo assim, seleciona informações do cliente na tabela Customer e a partir daí, busca informações de compra nas tabelas Order e Order_Line. 32 Stock Level – Determina a medida do estoque dentre os itens vendidos recentemente, ou seja, consulta as últimas vinte compras de um distrito (tabela District) e faz a contagem dos itens que se encontram abaixo do limite estabelecido (tabelas Stock e Order_Line). Essa transação tem como principal característica ser somente leitura, porém, impõe uma carga pesada ao sistema. 4.2.3 Configuração do SGBD e ambiente de execução Para que seja o mais consistente possível os testes realizados entre os dois bancos de dados, foram criadas e configuradas igualmente duas máquinas virtuais, destinadas cada uma a um SGBD. Essas máquinas foram criadas através do programa Oracle VM VirtualBox, fabricado pela Oracle. Nas duas máquinas, foram instalados a versão Enterprise do Windows 7 (32bits), e com as características exibidas de acordo com a figura 9: Figura 9 - Configurações das máquinas virtuais Fonte: Própria Podemos destacar na figura, que a memória principal ou memória RAM (Random Access Memory) está configurada em 2048 Mb ou 2 GB, habilitado para rodar com 2 processadores (considerando a instalação das maquinas em um computador com processador Intel Core i7) e espaço em disco de 25 Gb. Como já citado anteriormente, o sistema instalado para a execução da carga, foi o Benchmark Factory em sua versão trial (gratuita). Cada máquina além do software Benchmark Factory, recebeu a instalação do seu SGBD destinado ao teste, sendo: 33 PostgreSQL – Instalado a versão 9.3.10 32 bits do sistema, e configuração manteve-se a standard da instalação, ou seja, nenhuma alteração foi realizada para algum tipo de melhoria no desempenho. É valido considerar também, que o PostgreSQL é open source, isso significa que tem código aberto e qualquer um pode adquirir a ferramenta gratuitamente. Para se comunicar com o programa Benchmark Factory, foi necessária a instalação do driver ODBC do banco de dados PostgreSQL. Oracle – Instalado a versão 11g Express (gratuita para estudante 32 bits) sem nenhum tipo de alteração do padrão habilitado pela instalação inicial que possa influenciar no desempenho. O único ponto a ser destacado, é que foi estendido a tablespace SYSTEM.DBF (utilizada para carga), pois com o seu tamanho inicial, não era possível executar a carga TPC-C. Para a comunicação com o programa Benckmark Factory, foi instalado o Oracle client 11.2.0.1.0 for windows em sua versão 32 bits também. 4.2.4 Configuração do Benchmark Factory O programa Benchmark Factory, possibilita algumas funcionalidades, por exemplo, aumentar o volume de carga standard, aumentar ou diminuir a quantidade de usuários simultâneos, e até mesmo o agendamento da execução de um Job. Com isso, foi realizada a parametrização das execuções das cargas de acordo com os itens exibidos abaixo. Configuração de conexão entre o programa e a base de dados dos dois SGBD, figura 10: 34 Figura 10 - Conexão do Benchmark Factory com SGBD Fonte: Própria Resumo das configurações e preferências dos Jobs, exibindo as informações relevantes para a sua execução. Pode-se perceber principalmente a escala configurada (78) e a quantidade de usuários que utilizará o sistema durante a carga (10). A Figura 11 destaca a os detalhes dos dois Jobs. 35 Figura 11 - Resumo dos parâmetros e configurações do Job TPC-C Fonte: Própria Na figura 12 é exibido o detalhamento das informações de tamanho dos objetos. É ilustrado o tamanho das tabelas, respectivos índices e tamanho total da base de dados que será de 7,96 GB devido a escala aumentada 78 vezes ao seu tamanho tradicional. Como as duas execuções são iguais, na imagem, pode-se perceber que é 36 exibida somente uma configuração, neste caso, considerá-las para as duas execuções. Figura 12 - Tamanho de objetos. Fonte: Própria Na figura 13, é ilustradoo roteiro do Job. A opção selecionada logo abaixo, indica ao Job que ele deve recriar os objetos (tabelas e índices), recarregá-los (alimentando-os com dados) para qualquer execução que iniciar, e depois deste processo, iniciar as simulações de trabalho. 37 Figura 13 - Dinâmica de execução. Fonte: Própria Ao final das configurações, serão exibidas as transações do Job TPC-C que serão executadas são elas: New Order, Payment, Order-Status, Delivery e Stock Level (Figura 14), a quantidade de usuários habilitados para simular cargas no sistema, que neste caso serão 10 (Figura 15) e uma configuração importante, indicando que deve-se iniciar os usuários, o mais rápido possível após finalizar cada execução (Figura 16). A figura 14 mostra as transações a serem executadas pelo Job: 38 Figura 14 - Transações executadas pelo Job. Fonte: Própria Figura 15 - Criação dos usuários. Fonte: Própria 39 Figura 16 - Configuração dos usuários. Fonte: Própria 4.3 Resultados obtidos Oracle x PostgreSQL Após os testes de cargas nos SGBD Oracle e PostgreSQL, as execuções tiveram tempos parecidos, e os resultados podem ser avaliados de acordo com a análise do tempo de resposta e quantidade de transações em um espaço de tempo em cada caso. Para entender melhor estes parâmetros, eles serão definidos abaixo: Tempo de resposta – É o tempo que leva a partir de quando o SQL é enviado ao servidor, até o primeiro retorno do mesmo. Ou seja, se, por exemplo, um comando SELECT foi enviado ao servidor, o tempo de resposta está sendo calculado a partir daí até o momento que o banco de dados retorna a primeira linha. Transações por segundo (TPS) – Consiste na quantidade de transações processadas por segundo. É necessário destacar que uma transação, pode não ser somente um comando enviado ao banco de dados, mas um grupo de comandos enviados para alcançar o objetivo. Por exemplo, no caso da carga TPC-C transação New Order, é criado uma nova ordem através da inserção de um novo registro para a tabela New_Order e de alguns registros (dependendo da quantidade de itens da nova ordem de compra) na tabela Order_line. Definidos os parâmetros de avaliação utilizados para análise, pode-se analisar os gráficos obtidos após as duas execuções. O gráfico 1 mostra a execução da carga no Oracle: 40 Gráfico 1 - Métricas da execução do Job no SGBD Oracle Fonte: Própria E logo abaixo no gráfico 2, a mesma carga, porém agora executada no PostgreSQL: 41 Gráfico 2 - Métricas da execução do Job no SGBD PostgreSQL Fonte: Própria A média de tempo de resposta, mais à direita, está sendo medido por milissegundos e a média das transações, medidas por segundo. A tabela na parte inferior das duas imagens exibe o desempenho de cada usuário durante a avaliação das cargas. Visualizando as duas imagens, conclui-se que o primeiro usuário (User Load 1), nas duas execuções, tiveram a mesma média de transações por segundo, 0,07, ou seja, na maioria das vezes, aproximadamente 6.9% da transação foi executada em 1 segundo. Porém, a diferença está no tempo de resposta, pois a do Oracle foi muito maior, 600 milissegundos, contra a do PostgreSQL, que foi de 260, isso significa que para o usuário 1, o desempenho do PostgreSQL foi melhor que a do Oracle no que diz respeito ao tempo de resposta. Podemos observar com essa avaliação, que um resultado ótimo para uma carga, seria um valor alto para transações por segundo, e um valor baixo para tempo de resposta. No decorrer da execução, para os outros 9 usuários a diferença nas 42 transações por segundo se mantém baixa, e o Oracle desempenha muito bem e melhora gradativamente no tempo de resposta, sendo em sua maioria, valores parecidos e em alguns casos até melhores do que o PostgreSQL. Ao final do teste, o Benchmark Factory exibe um resultado que destaca qual usuário teve o melhor throughput durante a carga. Essa palavra significa, segundo IKEMATU: “Throughput define a capacidade do computador de processar os dados. Ele é uma composição de velocidade de I/O, velocidade da CPU, capacidades de paralelismo da máquina e a eficiência do sistema operacional e o software básico envolvido.”. Ou seja, em qual momento da carga, foi possível trafegar mais dados de transferência tendo mais agilidade dos recursos de hardware. Obteve-se o seguinte resultado para a execução da carga no Oracle (figura 17): Figura 17 - Melhor desempenho de Throughput na carga de trabalho do Oracle Fonte: Própria E para o PostgreSQL, conforme a figura 18: Figura 18 - Melhor desempenho de Throughput na carga de trabalho do PostgreSQL Fonte: Própria Nos dois casos, o melhor desempenho de throughput foi no usuário 10. Isso pode ser explicado pela ótima capacidade que os dois sistemas tem de “bufferizar” resultados de pesquisas anteriores em sua memória, pois, como eles são os últimos usuários e suas seleções são iguais os dos anteriores, a tendência é que o sistema grave os resultados na memória, para resgatar esses dados mais rapidamente de lá ao invés de ir até o disco buscá-las. 43 CONCLUSÃO Neste trabalho, foi abordado o assunto relacionado à importância do SGBD de modo geral nas empresas ou organizações, as arquiteturas existentes dentre os SGBDs mais conhecidos, tendo seu foco principal no SGBD Oracle, seu funcionamento e oportunidade de utilização por empresas de pequeno e médio porte. Com isso, foi possível concluir que cada SGBD tem suas próprias particularidades, por este motivo, existem vantagens e desvantagens na utilização de todos eles. Além disso, com o estudo aprofundado no Oracle, pode-se perceber que de fato é um SGBD robusto, com grandes funcionalidades e sua utilização não deve ser restrita a bases de dados maiores (como é mais conhecido), mas pode ser aproveitado também com bases menores. Os objetivos propostos no trabalho foram cumpridos, visto que na comparação de desempenho do Oracle com o PostgreSQL através de Benchmarking, os resultados foram satisfatórios em provar que o Oracle atende a boas expectativas quando utilizado em base de dados, entre 5 e 15 GB. A decisão pela comparação com o PostgreSQL se deve a comumente utilização deste por empresas de pequeno e médio porte, ao contrário do Oracle. O estudo do desempenho foi baseado nos tempos de resposta das transações do Benchmark TPC-C e quantidade de transações por segundo desta carga. Isso também possibilitou o aprofundamento no estudo e avaliação de ambientes de execução, e configuração da carga para chegar ao resultado esperado. O trabalho foi muito importante para o nosso conhecimento em SGBDs, principalmente no que diz respeito a arquitetura desses sistemas, pois foi feito um estudo mais aprofundado neste aspecto. Em relação ao Oracle, os conhecimentos adquiridos serão de grande proveito, pois é um banco de dados muito conhecido e importante, utilizado em muitas empresas conceituadas. 44 REFERÊNCIAS CORRÊA, Juliano Soares; MARCONDES Marcos Roberto. Vantagens e Desvantagens da Utilização do Banco de Dados Oracle 2003, Salvador - Artigo Científico (Escola de formação complementar do exército). DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro: Campus, 2000. ELMASRI, R. & NAVATHE, S. B. Sistemas de Banco de Dados. 6ª ed. São Paulo: Pearson Education do Brasil, 2011. HEUSER, Carlos Alberto. Projeto de Bancos de Dados. 4ª ed. Porto Alegre: Sagra Luzzatto, 2001. IKEMATU, Ricardo Shoiti. Realizando Tuning na Base de Aplicações. Disponível em: <http://www.batebyte.pr.gov.br/modules/conteudo/conteudo.php?conteudo=1592>. Acesso em: 30 out 2015. MERSCHMANN, Luiz Henrique. Conceitos e Arquitetura de Sistemas de Banco de Dados. Disponível em: < http://www.decom.ufop.br/luiz/site_media/uploads/arquivos/bcc321/slides02_bdi.pdf > Acesso em: 26 set 2015. NWSOFTARE. Disponível em: <http://www.nwsoftware.com.br/>. Acesso em: 1 nov 2015. ORACLE. Oracle's History: Innovation, Leadership, Results. Disponível em: <http://www.oracle.com/us/corporate/history/index.html>. Acesso 26 out 2015. ORACLE 10G. Manual Banco de Dados Oracle 10g: Workshop de Administração. Oracle University, 2004. 45 SIEBRA, Sandra de Albuquerque. Banco de Dados. Recife: Universidade Federal Rural de Pernambuco, 2010. SOUZA, Michel. Benchmark. Disponível em: <http://imasters.com.br/artigo/1590/gerencia-de-ti/benchmark/ >. Acesso em: 23 out 2015. SYMANTEC. OLTP (Online Transaction Processing). Disponível em: <https://www.symantec.com/pt/br/security_response/glossary/define.jsp?letter=o&wo rd=oltp-online-transaction-processing>. Acesso em 30 out 2015.