Firebird & MySQL - Parceiros Ou Concorrentes

  • Published on
    23-Jun-2015

  • View
    199

  • Download
    1

Embed Size (px)

Transcript

<p>Firebird &amp; MySQL - Parceiros ou Concorrentes?Muito se tem falado sobre a rivalidade entre os SGBDs, particularmente entre os open-source. Afinal, se so gratuitos, o fator "custo" no mais um componente da escolha. Sobre o qu deve recair ento a escolha? E afinal, quem o melhor entre o Firebird e o MySQL? Eles so realmente concorrentes? Um pouco de histria Antes de entrarmos na discusso tcnica, importante conhecer um pouco da histria destes dois SGBDs. Isto pode nos ajudar a entender as diferenas atuais nos estgios dos projetos. O Firebird oriundo do cdigo do Interbase 6 open-source. Portanto, quando falarmos no Firebird, temos de lembrar da histria de mais de 15 anos de desenvolvimento do Interbase. O Firebird o sucessor do Interbase open-source, uma vez que a empresa fabricante do Interbase, a Borland, decidiu fechar o cdigo nas verses seguintes. O Firebird conta com um cdigo aperfeioado, livre dos bugs do IB 6 e com recursos adicionais na verso 1.0. Atualmente encontra-se em testes a verso 1.5 Alfa do Firebird, que trar importantes avanos tcnicos. O Firebird mantido por uma comunidade internacional de desenvolvedores, sem vnculo entre si, ou nenhuma empresa patrocinadora. Ele realmente depende do esforo voluntrio da comunidade para continuar a crescer. O MySQL nasceu h menos tempo, inicialmente como um produto proprietrio, logo em seguida apenas com restries na licena para uso comercial, mas que com o tempo adotou a GPL (General Public Licence). Neste intervalo de tempo, com os recursos captados, foi viabilizado o investimento no desenvolvimento do produto. Ele em seguida tornou-se popular por ser distribudo juntamente com as compilaes mais populares do Linux, como Red Hat, Mandrake, Suse e Slackware. A repercusso foi enorme, tornando a empresa original por trs do MySQL bastante slida, que atualmente oferece o MySQL livremente junto com uma verso paga, mais poderosa que a verso free. Portanto h uma empresa com recursos financeiros suficientes para garantir o flego por trs do MySQL, alm do apoio explcito de muitas outras. Considerando-se este fator, podemos at afirmar que o grau de evoluo do MySQL deveria ser maior. Neste artigo estaremos estabelecendo as conparaes entre o Fierbird e a verso free do MySQL, para evitar colocar nesta discusso o Firebird contra produtos pagos, que renderia mais umas dzias de pginas. Rumos e objetivos distintos Comparar as duas solues desconsiderando-se as necessidades do usurio, seria uma injustia com qualquer um dos projetos. Ambos tem virtudes e limitaes que podem ser interessantes para uns e desfavorveis para outros. quase como religio, poltica ou futebol: cada um tem suas crenas, e as defende com muita disposio. O Firebird conhecido por qualidades notveis, com caractersticas de um SGBD estvel, seguro e robusto. O MySQL se notabilizou pela grande velocidade e especializao em ambiente WEB. Portanto dependendo dos objetivos a serem alcanados voc pode preferir um ao outro.</p> <p>Tamanho documento? As diferenas entre os dois comeam no tamanho da soluo: a instalao do MySQL ocupa em torno de 12Mb, enquanto o Firebird no passa de 2,5 Mb. O suporte multiplas plataformas ponto comum entre as duas solues, levando o Firebird uma ligeira vantagem. Ferramentas O MySQL tem um nmero mais limitado de ferramentas de acesso e manuteno s bases de dados, ao passo que o Firebird, por ter o mesmo "bero" do Delphi e C++, conta com um nmero maior de ferramentas, propiciada pelo alto grau de afinidade com estas linguagens, bastante populares. As opes mais conhecidas e confivies de ambiente grfico do MySQL so o MySQLAdm o MySQLGUI enquanto no Firebird temos o IBExpert, IBOConsole, Firebird Workbench e muitas outras. Interface com Linguagens Neste aspecto, fica muito evidenciado a tendncia do MySQL no suporte Web e do Firebird aplicaes desktop. O Firebird contemplado nativamente em diversas linguagens, particularmente Borland, embora atravs do ODBC possa-se lig-lo virtualmente a qualquer "coisa". O MySQL tem uma "simpatia" maior pelas linguagens da comunidade opensource como Perl, Phyton e PHP, embora estas barreiras no existam mais com o Firebird. Armazenamento O modo como as informaes so armazenadas difere bastante. Isto tem um impacto direto em questes como backup, integridade dos dados e segurana. O Firebird armazena todo o conjunto de de dados, alm dos procedimentos ligados ao banco de dados, gatilhos disparados automaticamente e vises em um nico arquivo. O MySQL por padro guarda as tabelas em diversos arquivos, usando-se um esquema de 3 arquivos para cada tabela e todos os aquivos do banco de dados ficam dentro de um diretrio. Digamos que voc trabalhe numa empresa que tem 4 filiais e diariamente voc precisa atualizar a tabela de produtos para as filiais. Com o MySQL basta copiar os arquivos da tabela de produtos, que seriam: PRODUTOS.FRM, PRODUTOS.MYD, PRODUTOS.MYI. H quem diga (e eu concordo) que isto uma coisa que jamais se deve fazer. Com o Firebird, a nica sada ser voc criar um programa para fazer isso. Para se fazer uma cpia de tabela voc obrigado a usar as ferramentas do banco, backup e restore, para o SGBD garantir a integridade dos dados. Para quem foi Clippeiro ou desenvolvedor Paradox isto representa ter que repensar o modo operantis de suas aplicaes. O impacto um pouco menor para quem usa MSAccess, pois conceitualmente so parecidos. Os puristas do mundo SGBDs chegam a afirmar que o MySQL ainda no se tornou um SGBD de verdade, pois no tem nas suas caractersticas nativas este e outros recursos importantes.</p> <p>Padro ANSI SQL 92 Por ser totalmente compatvel com o padro ANSI SQL 92 o Firebird implementa uma srie de funcionalidades nativas, que no caso do MySQL no esto disponvies, algumas podendo ser alcanadas com ferramentas de terceiros: - Integridade Referencial e outras constraints. - Subselects - Unions - Views - Triggers - Stored Procedures - UDF (User Defined Functions) - Suporte transaes H previso de alguns destes itens serem implementados em verses futuras do MySQL, alguns inclusive em beta teste, e outras como j dito, com o auxlio de ferramentas, que permitem modificar a maneira como o MySQL armazena os dados, como o InnoDB, que assegura um modelo transacional no MySQL. Na configurao padro o MySQL apenas um gerenciador de arquivos com suporte SQL. Estas diferentes possibilidades de configurao do formato das bases de dados com o MySQL apesar de parecerem interessantes, podem representar dificuldades na hora de integrar bases de dados com padres diferentes, ou transportar os dados de um servidor para outro. No Firebird, por haver um padro nico, independente dos recursos utilizados, o transporte entre diferentes servidores no um problema. Vamos dar uma olhada no custo-benefcio de cada uma destas caractersticas: Integridade Referencial, bom para quem? Manter os dados que se relacionam ntegros pode ser crucial para o seu negcio. Por exemplo, imagine uma empresa que guarda todos os pedidos de um cliente, e este cliente "some" do banco de dados. Isto deve ser evitado, mas pode ser feito de vrias maneiras, no necessariamente pelo banco de dados, embora o custo disto seja maior em termos de trfego e processamento pela aplicao. No Firebird este um conceito natural, no MySQL depende do sistema de arquivos utilizado. Para quebrar a integridade referencial do MySQL, basta copiar uma verso antiga de uma das tabelas sobre a atual, e est feito o estrago. Mas digamos que voc v utilizar o banco de dados apenas para disponibilizar uma lista de preos ou um cadastro de pessoas simples. Para que integridade referencial? No necessrio. Subselects Um recurso interessante do Firebird, que demanda menos programao para extrair-se dados mais complexos. Unions Montar consultas com Unions d ao programador um poder maior de composio dos dados, coisa que deve ser contornada no MySQL com a criao de tabelas temporrias, em disco ou memria.</p> <p>Views Muito mais que maneiras de visualizar dados, as views so uma poderosa maneira de implementar segurana, performance e recursos de consultas avanadas, pois sobre uma view pode ser aplicado um Select de alta complexidade. O MySQL fica devendo este recurso aos desenvolvedores, fragilizando a base de dados por torn-la totalmente exposta. Triggers Ao descobrir o quanto se pode poupar de cdigo com o uso de Triggers, o seu uso torna-se altamente justificvel. Atravs de gatilhos disparados automaticamente quando os dados so manipulados (inseridos, alterados ou apagados). Por exemplo, voc pode criar triggers que atualizem automaticamente o saldo de uma conta contbil, ou o saldo de estoque quando feita uma movimentao. No MySQL isto precisa ser feito nas aplicaes, e imagine o "custo" disto se voc tiver 30 diferentes mdulos que fazem este movimento: sero trinta locais diferentes onde ser preciso dar manuteno no cdigo. Stored Procedures Ainda em fase de testes na ltima verso beta MySQL, um recurso nativo do Firebird. Atravs do uso de Stored Procedures, pode-se criar processamentos complexos sobre os dados, com passagem e retorno de parmetros. Assim como no caso das Triggers, com o uso de Stored Procedures, voc transfere cdigo da aplicao para o banco de dados, poupando trfego e processamento pela aplicao no lado cliente. UDF (User Defined Functions) Imagine tudo aquilo que voc gostaria que o Firebird fizesse, mas no faz. Sem problema. Basta voc criar uma biblioteca de funes que podero ser usadas pelo seu banco de dados para extender as funcionalidades do Firebird. O MySQL depende totalmente da aplicao para agregar recursos, no sendo possvel ampliar sua funcionalidade seno por meio dos back-ends disponveis. Suporte transaes O MySQL pode dispensar o uso de transaes para manipulao de dados. No Firebird isto impossvel. Mesmo uma simples consulta ocorre dentro do contexto de uma transao. por isto que dependendo da atividade isto pode tornar o Firebird um pouco mais lento. Afinal, sempre haver a abertura de uma transao e o encerramento, para qualquer coisa feita. Isto gera um GAP muitas vezes indesejvel, mas o benefcio disto a segurana oferecida. Firebird, MySQL e a corrupo de dados Nenhum SGBD totalmente prova de corrupo, at porque dependem muito da plataforma utilizada, da confiabilidade do Hardware, da qualidade da energia eltrica e at da boa vontade dos administradores do banco de dados. Parece que por oferecer uma gama de recursos menor, fazendo portanto menos controles, o MySQL tende a ser menos suscetvel corrupo. Mas isto muito discutvel, e h vrios casos relatados de corrupo em ambos, todos oriundos de</p> <p>plataformas deficitrias. O fato que nenhum dos dois tem deteco automtica de corrupo de dados. Performance x Recursos x Segurana Esta a grande chave para a sua escolha. Nenhum dos dois perfeito nos trs itens. Em certos momentos pesar mais um fator do que outro. Identificar isto fundamental, alm claro de ter a noo do trabalho para implementar cada projeto, isto , lembre-se que tudo aquilo que o SGBD no puder fazer por voc voc ter de criar se precisar. O MySql muito conhecido pela sua performance em aplicaes Web. De fato, de um modo geral, fora do mundo Web, ningum leva o MySQL muito a srio, preferindo outras solues. O Firebird oferece maiores recursos e segurana, sendo o preferido em aplicaes Desktop e onde a segurana e integridade so cruciais. Este o cenrio atual, mas ambos esto caminhando na direo das virtudes um do outro, buscando suprir solues para estas questes. Por exemplo, existem muitas aplicaes para construo de Web Sites em PHP que oferecem suporte ao MySQL, e dificilmente ao Firebird (PostNuke, PHPNuke, PHPBB, SlashCode, PHPMyAdmin). No entanto isto est aos poucos mudando, pois a necessidade de mais segurana em aplicaes Web est levando o MySQL a um limite, ento veremos logo uma mudana a favor do Firebird neste sentido. Mas afinal, porque o MySQL mais popular que o Firebird? Este um fato inegvel. O MySQL tornou-se a grande "vedete" do confuso e imprevisvel mundo open-source. Mas no difcil descobrir o porqu disto: O MySQL veio praticamente agregado todas as distribuies Linux importantes. Como o Linux teve seu "boom" justamente 3 anos atrs, ele veio na "carona". Nesta poca o antessor do Firebird ainda era um produto comercial. A nfase dada produo WEB no MySQL foi muito ampla, a maioria dos web sites que um visitante comum acessa, tem um logo com algo assim: "Powered by PHP &amp; MySQL". Isto criou um interesse particular nestas ferramentas. O MySQL oferece uma migrao mais amigvel para quem vem da arquitetura desktop, pois ele no precisa trabalhar necessariamente com o modelo clientserver, o que um paradigma a ser quebrado para quem vem destes bancos de dados. O antecessor do Firebird sempre foi um produto secundrio para o fabricante, que sempre concentrou-se em divulgar seus compiladores. O marketing foi portanto pssimo, despeito de sua irrefutvel qualidade. Ao nascer o Firebird no ficou vinculado nenhuma empresa com recursos para investir em marketing, promoo ou ferramentas, sendo mantida por uma comunidade bastante ativa, porm extremamente voltada parte tcnica, e pouco direcionada aes de marketing. Isto no torna o Firebird invivel? De maneira nenhuma! Em primeiro lugar, aos poucos este cenrio est mudando, pois com a adeso de mais e mais desenvolvedores de grandes e pequenos projetos, o Firebird est ganhando mais visibilidade. Toda a comunidade de usurios</p> <p>do Interbase est optando pelo Firebird, apostando no seu futuro. Isto d ao Firebird um lastro muito interessante no que diz respeito aos seus clientes. O Firebird est evoluindo muito rapidamente, aps um incio turbulento, muitos afirmando que era um projeto fadado ao declnio, em poucos meses surgiu a verso 1.0 e logo teremos a verso 1.5. O Time de desenvolvedores Firebird, est ganhando a adeso de comunidades organizadas ao redor do mundo, como por exemplo, a CFLP (Comunidade Firebird de Lngua Portuguesa) que esto fomentando a divulgao do Firebird, no s em carter tcnico, mas concedendo uma oportunidade de pessoas e empresas conhecerem melhor as vantagens de utiliz-lo em seus projetos, e tornar conhecidos profissionais e projetos "powered by Firebird. Esta mesma comunidade est fazendo um esforo para quebrar as barreiras da imprensa especializada, trilhando um longo caminho para mostrar-lhes a grande valia do Firebird, um verdadeiro processo de "doutrina" e persistncia. H negociaes tambm no sentido de disponibilizar o Firebird junto distribuies Linux. Concluses H dezenas de motivos para adotar o MySQL. H centenas de motivos para utilizar o Firebird. Dependendo do que voc espera do banco de dados, a sua escolha recair sobre um ou outro. Quem gosta de um banco "seco", enxuto, fazendo tudo "no brao" talvez ter mais sucesso com o MySQL. J quem gosta de ter mais poder em um SGBD relacional, preferir o Firebird. Uma coisa certa: O Time de Desenvolvedores do Firebird quer torn-lo mais popular e o pessoal do MySQL reconhece que faltam recursos da pesada a serem desenvolvidos. No entanto se compar...</p>