Firebird SQL: por que tão impopular? (e como melhorar a situação)

Recentemente iniciei um novo projeto no qual  precisei responder a questão: qual SGBD usar? Até então, vinha usando o MySQL para basicamente tudo (fou fanático pelo MySQL), porém, devido ao seu esquema de licenciamento e algumas restrições do próprio projeto, tive de ignorá-lo desta vez.

Foi quando me lembrei de um velho conhecido: o Firebird! Devo confessar: depois do MySQL, o Firebird se encontra em segundo lugar (talvez empate com o PostgreSQL) para mim.

Porém algo no Firebird sempre me incomodou: basicamente ele só é popular entre programadores Delphi. Mais interessante ainda: provávelmente o Firebird é mais popular aqui no Brasil que no resto do mundo (temos uma comunidade excelente por sinal: http://www.firebase.com.br/fb/).  Isto é natural, visto ser derivado do Interbase da Borland, cujo Delphi dominou o mercado de desenvolvimento no Brasil por vários anos. Porém, ao observar as vantagens do Firebird, o mistério referente à sua baixa popularidade fora deste grupo só aumenta:

  • Licença realmente livre: ao contrário do MySQL que te prende no GPL se você o quiser utilizar gratuitamente, o Firebird é de fato 100% livre para uso em aplicações comerciais.
  • O básico dos SGBDs “grandes”: stored procedures, triggers, conformidade com A.C.I.D., backups online, generators, integridade referencial,  suporte a diversos tipos de caracteres… todas as buzzwords estão presentes no Firebird.
  • Footprint mínimo: o Firebird possui uma versão embutida (uma única DLL) que ocupa menos de 1 Mb e não corta básicamente NENHUM recurso da versão completa!
  • Baixos requisitos de hardware: o bichinho pode ser executado em práticamente qualquer computador!
  • Multi plataforma: Linux, Windows, Mac OS, Solaris e outras
  • Suporte a
  • Performance razoável: não é lá estas maravilhas, mas fica entre o PostgreSQL e o MySQL
  • O projeto é ativo (e muito): apesar de sua baixa popularidade, o projeto é bem ativo. Em abril deste ano, por exemplo, saiu o beta da versão 2.5 do projeto.
  • Banco de dados fácil de transportar: este ponto é polêmico, mas o fato do banco de dados estar contido em um único arquivo torna suas bases de dados muito fáceis de serem transportadas (é possível ter um banco de dados com mais de um arquivo).
  • BDs com tamanho ilimitado: a limitação do tamanho do BD é definida pelo sistema de arquivos utilizado pelo sistema operacional. Se o seu arquivo superar este limite, basta dividir o seu banco de dados em mais de um arquivo.
    (o maior banco de dados conhecido possui 960 Gb de tamanho link)
  • 100% compatível com o padrão SQL 92
  • Inúmeras formas de ser acessado: basicamente é possível acessar o Firebird a partir de qualquer linguagem de programação. Existem diversos drivers ODBC, JDBC, ADO, PHP, .net, etc.

Tenho utilizado o Flamerobin para administrar o banco de dados do projeto e está sendo uma experiência muito agradável. Mas é muito triste constatar que desde que escrevi o meu conversor de banco de dados no formato Microsoft Access para Firebird em 2006 (MDB2FDB http://www.firebase.com.br/fb/downloads.php?categ=8) a situação não mudou em nada: Firebird continua sendo popular apenas por desenvolvedores Delphi.

Dado que gosto do produto, e acho um absurdo o seu problema de popularidade, penso que seria interessante listar algumas formas de ajudar o projeto. Segue minha lista de sugestões:

  • Usar o Firebird. Sério: experimente o bichinho. Caso não o conheça, você ficará surpreso com o fato de uma imensidão de recursos caberem em um software tão pequeno.
  • Caso já use o Firebird, você pode também fazer doações ao projeto.
    Eis o link: http://www.firebirdsql.org/index.php?op=ffoundation&id=contributions
  • É também possível ser um patrocinador do mesmo.
    Eis o link: http://www.firebirdsql.org/index.php?op=ffoundation&id=sponsor_howto
  • Caso sinta falta de alguma ferramenta para trabalhar com o Firebird, você pode criar a sua e distribuir gratuitamente, como eu fiz com o MDB2FDB.
    Se não for para distribuir gratuitamente, o simples fato de produzir algo para o Firebird já ajuda a aumentar a sua popularidade.
  • Escrever a respeito, e participar de grupos de usuários.

Claro, eu não poderia deixar de imaginar quais as razões pelas quais o projeto não é tão popular quanto o MySQL ou PostgreSQL:

  • Não há uma empresa de peso como Sun/Oracle ou IBM apoiando o projeto. Ele é mantido basicamente por voluntários e alguns patrocinadores.
  • O site oficial (http://www.firebirdsql.org). Parece futilidade, porém a primeira impressão que o projeto passa é péssima!
    O maior patrocinador do projeto é a IBPhoenix: uma empresa cujo negócio é o Firebird. Porém, mesmo esta ainda possui um site com péssima aparência.
  • O fato de ter sido desde o início associado ao Delphi. Com a decadência da ferraemnta, a popularidade do banco também foi junto.
  • Documentação pobre: ao acessar a documentação pelo site, você encontra diversos links voltados para as versões anteriores à 2.0 do Firebird. Além de que, é bem desorganizada.

Porém, estas razões são apenas um chute. Gostaria de saber agora de vocês as suas opiniões a respeito deste SGBD.


Publicado

em

por

Tags:

Comentários

114 respostas para “Firebird SQL: por que tão impopular? (e como melhorar a situação)”

  1. Avatar de Evandro Blesa
    Evandro Blesa

    Olá galera… parabéns pela discursão sobre o firebird, gostaria de uma ajuda suas, trabalho com um sistema para emissão de cupom fiscal da Digisat o SG4, e o SGBD é Firebird 2.3, só que o sistema vive corrompendo do nada, não há queda de energia, não há nada instalado no computador somente o antivírus que o Avast versão free, e já não o que faço mais. Vocês poderiam me dá uma ajuda no que fazer para tentar achar o problema na máquina ou até mesmo no programa? Obrigado a todos…

    1. Avatar de Edemar
      Edemar

      Reveja as dependências do seu banco, já faz tempo, mas caso ainda tenha o problema, pode me encaminhar a estrutura do banco, que eu vejo o motivo.

  2. Avatar de Michael
    Michael

    Ele é impopular porque é ruim.

    Confiabilidade zero (tem mais corrupção que o Congresso Nacional), impossibilidade de backup quente, incapacidade de gerenciar tabelas com mais de 5 milhões de registros (performance pífia), existência de bugs tenebrosos na aplicação de constraints…

    1. Avatar de Bernardo Martins
      Bernardo Martins

      Se não sabe o que fala, o melhor é ficar calado.

    2. Avatar de Edemar
      Edemar

      Programador de Excel, acha que sabe programar, não faz um vinculo no banco de dados, nem sabe o que é uma FK, e diz que o banco que é ruim, vergonhoso.

      1. Avatar de Bruno Bueno
        Bruno Bueno

        Edemar, você não sabe do que tá falando, o Firebird tem todas essas tristes características que o Michael falou. Seu putinho que faz cocô com cheiro de lágrimas de pônei com câimbra!
        Só te digo uma coisa: Bicicreta!!

  3. Avatar de Joel
    Joel

    Utilizo o Firebird ( 1.0 e 2.1 ) ha 12 anos com sucesso.
    Tenho por volta de 500 base de dados instaladas.
    Servidores variam entre WIN XP, WIN 7, WINServer 2003, WINServer 2008 e várias distruições linux ( Debian, Fedora, CentOS, Red Hat, Ubuntu ).
    A menor base gira em torno de 100MB e a maior em torno de 8GB.
    Desempenho, para o meu tipo de aplicativo que é contábil, está ótimo.
    Utilizo Delphi 6 e 2010 com IBO.
    Corrupção zero.
    Agora, infelizmente, tenho que concordar com o artigo. Tenho tentando desenvolver alguns aplicativos em python e mono e neste mundo o Firebird não tem vez. Mesmo com as opções de acesso citadas acima. Já testei fdb python e este não é tão prático quanto o psycopg2. Neste momento estamos testando o mono e percebemos que o driver para firebird, também, é menos prático que o driver para Firebird. Estou sou um dos patrocinadores do Firebird, gosto muito dele, mas tenho tido dificuldades em mantê-los em meus novos projetos, fora do mundo delphi.

  4. Avatar de Alexandre
    Alexandre

    MySQL e Delphi XE7 trabalhando em nuvem, nada supera isso.

  5. Avatar de Mariana
    Mariana

    Meu primeiro contato com bancos de dados foi através do Firebird e logo em seguida o utilizei no meu primeiro emprego por 3 anos até que a empresa resolveu substituí-lo pelo SQL Server. Também nunca entendi porque ele não é utilizado fora de aplicações em Delphi, é um ótimo bd e extremamente simples de ser utilizado, como dito no artigo, especialmente pelo fato do bd ser um único arquivo. Hoje em dia se você menciona Firebird, sofre inclusive bullyng nas empresas por ser “arcaico”, injustamente na minha opinião.

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Exatamente. E se tem algo que ele NÃO é, é arcaico.

  6. Avatar de Mauricio Zaccaro
    Mauricio Zaccaro

    Bom Dia, gente lendo aqui entre prós e contras do Firebird já há alguns dias, resolvi então utilizá-lo, No entanto, estou enfrentando um problema MUITO MUITO chato. A lentidão do Firebird!!! Não sei se é normal mais vejam. Eu estava a fazer diversos testes e todas me retornavam resultados pouco interessantes, então resolvi testar uma “corrida” entre Firebird VS Access, fiz o seguinte:

    OBS.: Ambos com Drive ODBC, conexão ADO e instruções SQL ( tudo igual, mudando apenas de banco pra banco )

    Fiz um Banco em Access(.MDB) e um em Firebird ( .FDB ) com a tabela CIDADES, onde cadastrei todas as cidades do Brasil, cerca de 10.200 ( Dez mil e duzentos ) registros. Criei um formulário simples com 2 botões ( um pra carregar o Access e um para carregar o Firebird) e uma ListView, onde carregava as 10.200 cidades.

    Com o Access ao clicar no botão, o Listview carregou em aproximadamente 1 (um) segundo, o que eu achei um bom resultado. Já com o Firebird, para se carregar todos os Dez mil e duzentos registros de cidades cadastradas no mesmo na Listview, o programa demorou aproximadamente 15 minutos. Isso mesmo que vocês leram, 15 minutos para se carregar meros 10 mil registros. Absurdo, sem nexo algum essa demora, visto que os drives são os mesmos, o computador , S.O, linguagem ( vb6 ), tipo de conexão, tudo, tudo e tudo são iguais. Fiz e refiz os testes com outros tipos de conexões diversas e diversas vezes, ainda assim os resultados foram sempre os mesmos, o Access em 1 segundo e o Firebird em 15 minutos ( de média ).

    É isso gente, minha primeira impressão sobre o Firebird foi péssima. Gostaria que vocês me falassem ai, se é normal essa lentidão, se existe algo sobre ele que eu não saíba e que pode melhorar consideravelmente seu desempenho, porque, eu até gostei da facilidade de ingressar ele no setup, utilizando o IBExpert ficou fácil manusear o Banco e tudo mais, só que, é essa velocidade de “lesma” que é o problema. Se tiverem alguma luz, por favor, sou todo ouvido ( olhos ). No mas, Obrigado!

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Oi Maurício, tem alguma coisa bem errada no seu teste, por que esta velocidade tornaria inviável a adoção do Firebird em qualquer projeto, o que não é o caso.

      1. Avatar de Mauricio Zaccaro
        Mauricio Zaccaro

        Pois é, eu até compilei o projeto pensando que mudaria algo, mais continua a mesma lerdeza. Não sei o que é, pois até mesmo simples consultas ( ex.: retornar um cliente qualquer em um registro de 1000 “mil” clientes), que o Access faz em “um piscar de olhos” o Firebird me retorna o mesmo resultado em 3 a 4 segundos, isto com o BD já aberto, se for abrir/fechar a cada nova instrução leva quase 8 segundos. Sinceramente, ainda não entendi o que está acontecendo, em uma outra pagina, me disseram para não usar o ODBC mais, baixar o Provider .NET ( esse “ponto” me deixa confuso se irá funcionar com VB6 ), enfim, vou fazer os testes amanha. Não vou desistir do Firebird tão rápido. De toda forma, obrigado por responder.

        1. Avatar de Kico (Henrique Lobo Weissmann)
          Kico (Henrique Lobo Weissmann)

          É no mínimo curioso.

          Trabalhei com o Firebird quase uns dez anos atrás migrando um aplicação baseada em MS Access para ele.

          Um dos motivadores foi justamente o ganho de desempenho. É o tal negócio: o Firebird não é nem de longe um dos mais rápidos, mas também não é tãaaaaao lento assim. :)

          1. Avatar de Marco
            Marco

            olha o plano de execução do SQL, é o tipico caso de falta de índice. O Access coloca automaticamente os indices e o Firebird por ser SQL puro nao.

  7. Avatar de Cezar
    Cezar

    Firebirds 3 tá demorando muito

  8. Avatar de gabriel
    gabriel

    Gosto muito do firebird, a compatibilidade com padrões SQL é ótima, recurso de conexão interbancos também é muito interessante, tratamento de caracteres, muito fácil de trabalhar, mas, o firebird tem uma falha na parte da segurança que, torna inviável a aplicação dele em grandes projetos: ACESSO DE USUARIO!

    Gosto da filosofia de criar procedures, triggers, …, enfim, centralizar as regras de negocio em banco. O custo para manutenção é inferior, a velocidade para implementações e reaproveitamento é maior e etc. Mas, a partir do momento em que qualquer um pode copiar o arquivo .FDB para outra máquina é abrir o modelo com a senha padrão, é ridículo!
    Não é barato você colocar a segurança de acesso ao banco na infraestrutura, requer politicas de segurança, acesso na rede, S.O. próprio para servidores, domínios, e tudo mais.

    E o pior:
    Toda senha do firebird suporta no em seu máximo 8 caracteres!!
    A senha “masterkey” contem 9 caracteres, façam o teste de locar apenas com “masterke” e postem ai o resultado!!

    1. Avatar de Allan
      Allan

      Toda a sua afirmação é válida até a versão 2.5 do firebird. A versão 3.0 (lancada em abril/2016) traz segurança a nível de base.

      1. Avatar de Fernando Fraga
        Fernando Fraga

        Ainda não vi como proteger o banco de dados com senha, se você souber como, por favor compartilhe conosco, porque pra mim é um problema gravíssimo do Firebird.

  9. Avatar de Fabio Luis Rodrigues

    Excelente artigo.
    Ainda não utilizei justamente pela impopularidade.

    Será que a combinação c# + Firebird Embarcado é boa?
    Alguém já programou usando esta linguagem e Firebird?

  10. Avatar de tiago pereira
    tiago pereira

    uso firebird com VB.NET sem problema algum. uso a versao free do ems sql manager: http://www.sqlmanager.net/en/tools/free
    mto pratica e rapida tb.

  11. Avatar de edgardo alvarez
    edgardo alvarez

    Hola, los saludos desde Argentina, Firebird es una muy buena alternativa como base de datos, la usé en un proyecto Java Enterprise, actualmente el producción y sin ningun problema, uso un 30% de las capacidades de esta espectacular base de datos.

  12. Avatar de victor
    victor

    Pessoal,

    alguem ainda lendo estas noticias? Pesquisei no google sobre banco de dados e o Firebird apareceu entre minhas buscas, através desse post. HOje em dia, ainda vale a pena? Não encontrei muitas informações sobre programadores que utilizam a ferramenta.

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Continua a mesma coisa, talvez um pouco pior.

      1. Avatar de victor
        victor

        Rs…
        Mas ainda vale a pena usar a ferramenta ou é perda de tempo, melhor ir atrás de outro banco de dados?

        1. Avatar de Kico (Henrique Lobo Weissmann)
          Kico (Henrique Lobo Weissmann)

          Olha, eu fiquei muito impressionado quando saiu a versão 3.0 é quase não foi noticiado o fato. Que o projeto está ativo, isto é um fato, está bem ativo.
          Sobre a qualidade é que não posso dizer nada neste momento, mas aí menos na época em que usava era uma ferramenta excelente.

    2. Avatar de Walter Bernardo Gomes
      Walter Bernardo Gomes

      Você está bem por fora do mundo da programação Delphi.

      1. Avatar de Kico (Henrique Lobo Weissmann)
        Kico (Henrique Lobo Weissmann)

        Oi Walter,

        este post é de 8 anos atrás: vou correr atrás para me atualizar, ok?
        Grande abraço!

  13. Avatar de Fabio Luis Rodrigues

    Tentei estudar para ver se uso em um PDV.
    Existe muita falha de DLL, não consigo administrar e nem mesmo testar.
    O suporte a FB é precário.

  14. Avatar de Walter Bernardo Gomes
    Walter Bernardo Gomes

    Você disse que o Delphi é decadente? Em que mundo você vive? Já viu a última versão da Embarcadero? Sabia que o Projeto ACBr só dá suporte ao Delphi? Por que será, heim?

    1. Avatar de Kico (Henrique Lobo Weissmann)
      Kico (Henrique Lobo Weissmann)

      Oi Walter,
      me desculpe mas, em popularidade, está e já faz algum tempo: note que este post é de 2009, oito anos atrás.
      Legal conhecer o projeto ACBr, não conhecia, e interessante também ser voltado para o Delphi: entretanto com o mundo web a ferramenta ainda ficou presa ao desktop (eu sei do Intraweb (que deu errado)).
      Houve um momento, quando vi que estavam incluindo desenvolvimento mobile no Delphi que até achei que a coisa caminharia: mas como pode ver, não pegou. A ferramenta continua cara demais, não se popularizou.

      Agora, Delphi é ruim? Não: considero inclusive uma puta arma secreta se usada por aqueles que de fato a conhecem.
      Mas estou por fora do mundo Delphi já faz algum tempo, então pode ser que a realidade tenha mudado.

  15. Avatar de Wagner Santos Correa
    Wagner Santos Correa

    KKK 25 anos no mercado. Bom, estamos no Brasil. Aquí, quem atende dezenas de empresas, emite NFE, NFCE, MDFE, CTE, NFSE e outros em 80% e delphi e ACBR. Falando dias de hoje mas delphi sempre. Sobre APPs, temos APP para COMANDAS, FORÇA DE VENDAS, etc. TUDO DELPHI, Firebird e Sqlite. Atendemos mercados com 15 giga de banco servidor e 15 checkouts, TUDO FIREBIRD 2.5. Nunca truncou, nunca travou, nunca tivemos problemas. Geramos SPED PIS E FISCAL Velocidade incrivel para 15 giga. Grátis. Não quero aparencia no site, desde que seja grátis e funcione. Pois o comércio de maneira geral sao empreendedores na maioria neste pais que nao absorvem a ideia de pagar um banco.

  16. Avatar de Fernando Cortes
    Fernando Cortes

    En Chile uso una base de datos firebird 2.5. El datafile es de 27Gb. Funciona de forma perfecta, es increíblemente rápido y es muy robusta. Es totalmente recomendable.
    En mi opinión, a Firebird le hace falta tener mayor presencia en sistemas CMS y esto hace que firebird sea invisible y por lo tanto está relegado.

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.