Prévia do material em texto
Tema: Sistemas de Gerenciamento de Banco de Dados JOÃO PAULO SILVA DOS REIS Araguaína/TO 1 uniao Rectangle SGBDs relacionais mais usados Trabalho apresentado como requisito para obtenção de nota parcial da disciplina de Banco de dados I, pelo curso de Tecnólogo em Análise e Desenvolvimento de Sistemas do Instituto Federal do Tocantins. Professor: Paulo Ricardo da Silva Pontes Araguaína/TO 2 uniao Rectangle SUMÁRIO 1 INTRODUÇÃO…………………………………………………….…..4 2 DESENVOLVIMENTO……………………………………….…….….5 2.1 POSTGRESQL…………………………………………………..…..5 2.2 MYSQL………………………………………………………………..6 2.3 ORACLE………………………………………………………….…..8 2.4 MICROSOFT SQL SERVER………………………………………9 2.5 FIREBIRD…………………………………………………………….11 3 CONCLUSÃO………………………………………………………….13 4 REFERÊNCIAS………………………………………………………..14 3 1 INTRODUÇÃO Neste trabalho será abordado sobre os principais sistemas de gerenciamento de banco de dados relacionais e suas funcionalidades, características, recursos, histórico e arquiteturas. Os SGBDs são aglomerados de programas de armazenamento, gerenciamento e acesso aos dados, com finalidade de tornar eficiente e rápida a manipulação dos mesmos. Os principais disponíveis no mercado são: PostgreSQL, MySQL, Oracle, Microsoft SQL Server e Firebird. No desenvolvimento será exposto sobre cada um deles separadamente. E ao fim, será discorrida uma conclusão sobre o uso dos mesmos. 4 2 DESENVOLVIMENTO 2.1 POSTGRESQL O PostgreSQL é um Sistema Gerenciador de Bancos de Dados com código aberto muito avançado, o mesmo tem recursos como consultas complexas, chaves estrangeiras, integridade transacional, controle de concorrência multi-versão, suporte ao modelo híbrido objeto-relacional, facilidade de acesso, gatilhos, visões, linguagem procedural em várias linguagens (PL/pgSQL, PL/Python, PL/Java, PL/Perl) para procedimentos armazenados, indexação por texto dentre outros recursos. Ele suporta grande parte do SQL ANSI como também o SQL 2003. O Postgresql foi iniciado a partir da evolução do projeto Ingres e foi lançado por na década de 1990. Um dos líderes do projeto e pioneiro dos bancos de dados relacionais foi Michael Stonebraker, o mesmo colaborou no projeto na Universidade de Berkeley. Atualmente é desenvolvido via Internet por um grupo de desenvolvedores espalhados pelo globo. É uma alternativa de código fonte-aberta para SGBDs comerciais como Oracle e Informix. Em 1996, um grupo começou o desenvolvimento do mesmo na Internet. Eles usam e-mail para compartilhar idéias e servidores de arquivos para compartilhar código. Postgresql é agora comparável à SGBDs comerciais em termos de características, desempenho e confiança. Hoje tem transações, views, procedimentos armazenados, e constranints de integridade referencial. Apóia um número grande de interfaces de programação, como ODBC, Java (JDBC), TCL/TK, PHP, Perl e Python, entre outros. Ele continua avançando a um tremendo passo, graças a um grupo talentoso de desenvolvedores via Internet. Esse SGBD é formado por bancos de dados, tablespaces, usuários e alguns programas auxiliares. Sua licença é BSD, portanto pode ser utilizado, modificado e distribuído por qualquer pessoa ou empresa para qualquer finalidade, sem encargo, em quaisquer dos sistemas operacionais suportados. 5 A principal linguagem de programação utilizada no desenvolvimento do PostgreSQL 8.3.0 é o ANSI C. Entretanto, também são utilizadas em menor quantidade outras linguagens. Uma das maiores implantações de PostgreSQL no Brasil é na Atrium Telecom, empresa de telefonia corporativa de São Paulo. Ele é utilizado como banco de dados do sistema de billing e tem uma base de dados de mais de 100GB e efetua 1 milhão de transações diárias. As maiores tabelas do sistema contam com mais de 70 milhões de linhas. 2.2 MYSQL Esse SGBD de bancos de dados SQL (Structured Query Language - Linguagem Estruturada para Pesquisas) é muito rápido, multitarefa e multiusuário. Pode ser utilizado em sistemas de produção com alta quantidade de dados e missão crítica como também pode ser embutido em programa de uso em massa. Ele foi criado na Suécia por David Axmark, Allan Larsson e Michael "Monty" Widenius, os mesmos desenvolvem juntos desde a década de 1980. Hoje seu desenvolvimento e manutenção utilizam mais ou menos 400 profissionais em todo mundo e mais de mil contribuem testando o software, integrando-o a outros produtos, e escrevendo a dando feedback dele. Ele surgiu a partir da necessidade da equipe de utilizar mecanismos que permitissem a conexão de tabelas criadas na linguagem SQL para um determinado fim. A princípio, o grupo iria utilizar o mSQL, mas logo perceberam que esta ferramenta não era rápida o suficiente para atender às necessidades do projeto. O jeito foi criar uma solução própria. Então surgia o MySQL. Em relação a sua engines são tipos de tabelas que fazem parte do MySQL. Para usar esse recurso, nada se faz necessário na instalação, que já contempla diversos tipos diferentes a serem configurados. Sua vantagem são as diferentes características de cada uma, o que afeta a velocidade de leitura, escrita, transações, integridade, forma de armazenamento e escrita no log. Portanto, fica claro ver que a escolha de qual engine usar afeta diretamente o desempenho das 6 consultas realizadas, por exemplo. As engines podem ser divididas em dois grupos: transacionais e não transacionais. Uma transação, o banco de dados precisa respeitar o acrônimo ACID, que significa: ● Atomicidade: toda transação executada por um banco deve ser atômica. Ou todas as operações funcionam ou nenhuma delas é realizada. Tecnicamente falando, caso haja alguma falha em qualquer ponto da transação, é efetuado um ROLLBACK e nada é alterado; ● Consistência: a execução de uma transação deve permitir um estado consistente do banco de dados; ● Isolamento: uma transação não pode interromper outra transação em curso; ● Durabilidade: após a execução de uma transação, os dados devem ser salvos e mantidos no banco de dados, mesmo que haja qualquer tipo de falha posterior. Tecnicamente falando, após a execução de todas as operações, a transação será concluída com um COMMIT e os dados serão salvos no banco de dados. Em relação às características do MYSQL vemos: ● Portabilidade (suporta praticamente qualquer plataforma atual); ● Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, C#, Visual Basic, Python, Perl, PHP, ASP e Ruby) ● Excelente desempenho e estabilidade; ● Pouco exigente quanto a recursos de novos hardware; ● Facilidade no manuseio; ● É um Software Livre com base na GPL (entretanto, se o programa que acessar o Mysql não for GPL, uma licença comercialdeverá ser adquirida). ● Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid. ● Suporta controle transacional; ● Suporta Triggers; ● Suporta Cursors (Non-Scrollable e Non-Updatable); ● Suporta Stored Procedures e Functions; 7 ● Replicação facilmente configurável; ● Interfaces gráficas (MySQL Toolkit) de fácil utilização cedidos pela MySQL Inc. Entre os usuários do banco de dados MySQL estão: NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S. Army, U.S. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems, Google, entre outros. 2.3 ORACLE Esse SGBD surgiu no fim dos anos 70, quando Larry Ellison viu uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia. Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo. O Oracle se divide em duas versões: Oracle Server Standard (Padrão), uma versão que compreende as ferramentas mais comuns da solução Oracle, e Oracle Server Enterprise Edition. O Oracle é um SGBD ou seja, um sistema de gestão de banco de dados, que garante a definição e a manipulação dos dados, a coerência dos dados, a confidencialidade dos dados, a integralidade dos dados, o backup e a restauração dos dados e o acesso aos dados. Possui várias ferramentas que permitem simplificar a administração do banco de dados. As mais conhecidas são o Oracle Manager (SQL*DBA), o NetWork Manager, o Oracle Enterprise Manager e o Import/Export, uma ferramenta para trocar dados entre dois bancos de dados Oracle. O Oracle dispõe de um grande número de interfaces (API) que permitem aos programas escritos em diversas línguas se comunicarem com o banco de dados (chamados de pré-compiladores), que formam 8 uma família cujo nome começa por PRO*: Pro*C, Pro*Cobol, Pro*Fortran, Pro*Pascal e Pro*PLI. A arquitetura é subdividida em duas estruturas: a física, que abrange os arquivos físicos armazenados no disco; a lógica, que abrange memória, armazenamento lógico e estruturas lógicas do banco de dados. Os dois componentes que o compõem são: a Instância e o Banco de dados. Em outras arquiteturas concorrentes, como o Microsoft SQL Server e o IBM DB2, estes termos são utilizados sem qualquer distinção por seus respectivos usuários. Isto se dá porque nelas, uma coleção de bancos de dados que compartilham recursos de memória comuns são referenciados como instância. 2.4 MICROSOFT SQL SERVER Em 1988 a Microsoft lançou sua primeira versão do SQL Server. Essa foi desenvolvida para a plataforma OS/2 juntamente com a Microsoft e a Sybase. Durante os anos 90 a Microsoft iniciou o desenvolvimento de uma versão para a plataforma NT. Enquanto o SQL Server estava sendo desenvolvido a Microsoft decidiu que ele deveria ser uma camada encapsulada sobre o sistema operacional NT. Em 1992 a Microsoft assumiu a responsabilidade maior sobre o futuro do SQL Server para o NT. Em 1993 o Windows NT 3.1 e o SQL Server 4.2 para NT foram lançados. A filosofia da Microsoft em combinar um banco de alta performance com uma interface fácil de usar mostrou-se um sucesso. A Microsoft de forma rápida, tornou-se o segundo mais popular vendedor de softwares de bancos de dados relacionais. Atualmente, temos várias edições diferentes do Microsoft SQL Server original, que são destinadas a diferentes públicos e se direcionam a diversas cargas de trabalho. Sua preparação específica investe em variáveis aplicações, que são capazes de armazenar e recuperar dados do mesmo computador mesmo com um grande número de acessos de dados ao mesmo tempo. O sistema usa como linguagens de consulta primárias as formas T-SQL e ANSI SQL, mas seus serviços variados contam com funções específicas e diferentes formas de execução. 9 Para citar alguns serviços, contamos com o Database Engine (responsável por armazenar dados OLTP), Reporting Services (capaz de fazer relatório de dados), Analysis Services (faz análise de dados OLAP), Integration Services (obtém os fluxos de dados), Data Quality Services (realiza a limpeza de dados), Master Data Services (hábil para trabalhar com repositório único de dados) e Replicação (realiza replicação de dados entre servidores). As funções do MS-SQL Server ainda variam entre o Trigger, Stored Procedure, SQL User Function e Extended Stored Procedure. Ele possui instâncias que é uma instalação de um serviço ou um mecanismo do banco de dados SQL Server, podemos ter até cinquenta instâncias diferentes no mesmo computador, atuando de forma independente uma da outra, contanto que apenas pode existir uma instância padrão, outra informação importante e até óbvia, é que se existir mais de uma instância instalada, os recursos de hardware serão compartilhados entre as mesmas. Abaixo está listado componentes do SQL Server que suportam o recurso de instância: ● Database Engine; ● Analisys Services; ● Reporting Services. Agora os componentes que não suportam o recurso de instância: ● Integration Services; ● Books Online; ● Ferramentas de Gerenciamento É padrão quando os componentes do SQL Server não possuem nome associado. Para se conectar basta fornecer o nome do computador ou endereço IP. Para se conectar tem que informar o nome do computador ou o IP mais o nome da instância. Abaixo está listado para quer serve cada banco de dados do sistema no SQL Server. Master: É o banco de dados “mestre”, nele é armazenado informações de metadados de toda a instância, configuração do servidor, informações sobre todos os bancos da instância e informações de inicialização, muito cuidado com este banco, é sempre bom ter uma 10 cópia deste banco guardada. Resource: Esse banco é apenas de leitura, ele foi adicionado desde o SQL Server 2005 e armazena objetos do sistema. Model: Ele é um modelo para todos os bancos de dados que serão criados, é como se a cada banco criado fosse uma cópia do banco model. Tempdb: É onde fica armazenado dados temporários, ex: tabelas temporárias. Msdb: É o banco onde fica um serviço chamado de SQL Agent e onde são armazenados seus dados, o SQL Agent é o responsável pela automação de alguns serviços. 2.5 FIREBIRD O Firebird é derivado do código do Borland InterBase 6.0. Ele tem código aberto e não possui qualquer outro licenciamento, permite a sua utilização em qualquer tipo de aplicação, sendo comercial ou não, sem quaisquer cobrança. A tecnologia usada no Firebird tem mais de 20 anos, gerando com que este seja um produto deveras maduro e estável. Foi originalmente criado por um grupo de engenheiros de sistemas, funcionáriosda DEC (Digital Equipment Corporation), que queriam produzir um SGBDR - sistema gerenciador de banco de dados relacional, inovador e que substancialmente oferecesse maiores benefícios que os outros sistemas até então já usados. Na época de sua concepção, muita tecnologia já era usada como proposta de inovação, mas nenhuma oferecia como recurso ou característica disponível. Tendo iniciado em 1985 como Groton Database System, logo mudou de nome para Interbase. Inicialmente comercializado pela Ashton Tate (Dbase) e em 1992 foi entregue à Borland como parte de uma negociação de produtos. Ao longo de seu desenvolvimento, foram consistentemente introduzidas um número de tecnologias de qualidade. Muitas dessas são : Arquitetura Multi-geradora, Commit automático em duas fases, sombreamento do Banco de Dados (replicação), admissão e tratamento de Blobs, Índices em mapa de bits disperso, Colunas Vetoriais 11 Multidimensionais, Subsistema de Eventos de alertas e o primeiro a disponibilizar acesso nativo a driver de JDBC. O FireBird é desenvolvido e mantido por uma comunidade de desenvolvedores (algumas do projeto original) e pela Fundação FireBird. É completo e poderoso, pode gerenciar bancos de dados de alguns Kbytes até dezenas de Gigabytes com boa performance e praticamente sem necessidade de manutenção. Abaixo segue uma lista dos principais recursos do Firebird: Suporte total a Stored Procedures e Triggers, Transações compatíveis com ACID, Integridade Referencial, Multi Generational Architecture, Consome poucos recursos de processamento, Linguagem nativa para Stored, Procedures e Triggers (PSQL), Suporte para Funções Externas (UDFs), praticamente não necessita de DBAs especializados. Diversas formas de acesso ao banco de dados: nativo/API, dbExpress, ODBC, OLEDB, .Net provider, JDBC nativo tipo 4, Python module, PHP, Perl, etc. Suporte nativo para os maiores sistemas operacionais, incluindo o Windows, Linux, Solaris, MacOS. Backups incrementais, Builds de 64 bits disponíveis, total controle de cursores em PSQL, tabelas de Monitoramento, triggers de conexão e transação, tabelas temporárias, traceAPI. 12 3 CONCLUSÃO Foi visto que os SGBDs são aplicativos responsáveis pela administração e gerenciamento de uma ou mais base de dados. O objetivo principal é gerenciar o acesso, manipulação e organização dos dados. Eles oferecem uma interface para que os seus usuários possam inserir, editar, excluir ou pesquisar dados sendo assim muito importantes para um bom funcionamento. Este trabalho buscou informar brevemente sobre o histórico, características, funcionalidades e alguns recursos de SGBDS relacionais de maior uso atualmente. E através desta explanação foi apresentado esses softwares de forma inicial para aprofundamento e uso do que for de melhor opção para a atividade desenvolvida pelo analista de sistemas. 13 4 REFERÊNCIAS Site: http://pt.wikipedia.org Site: http://www.devmedia.com.br Site: http://dev.mysql.com Livro: ELMASRI, Ramez e NAVATHE, Shamkant B. Sistemas de Banco de Dados. Pearson Addison Wesley. 6a Edição, 2011. 14