Esta página foi traduzida por máquina. Leia o original em inglês. English

Biblioteca IBSurgeon

Diferenças entre Firebird e InterBase

(c) Dmitry Kuzmenko, Alexey Kovyazin, IBSurgeon, 21.05.2017

Visão geral histórica

O InterBase foi criado em 1985: foi o primeiro banco de dados comercial com versionamento múltiplo. No final de 1999, a Borland decidiu encerrar o desenvolvimento do InterBase e publicou seus códigos-fonte sob a Licença Pública do InterBase. Esse código foi copiado (o que é permitido pela licença), e o Firebird nasceu - a partir da versão 1.0, o Firebird é um banco de dados pronto para produção, baseado em décadas anteriores de desenvolvimento do InterBase.

No final de 2000, a Borland voltou ao código fechado e às licenças comerciais (exatamente como era antes) com o InterBase e iniciou o desenvolvimento da versão 6.5.

FirebirdSQLFirebird 1.0 foi lançado em 2002, com muitas correções de bugs e extensões de DDL e DML. O desenvolvimento ativo do Firebird continuou após a versão 1.0, e em 2004 foi lançada a segunda versão principal do Firebird (v.1.5). A Borland também lançou novas versões naquela época (7.0 e 7.1). O Firebird 1.5 e o InterBase 7.0 eram incompatíveis tanto no formato do banco de dados (ODS) quanto na funcionalidade principal. A migração do InterBase para o Firebird e vice-versa com backup/restore é impossível desde o Firebird 2.0 e o InterBase 7.0.

Desde então, a diferença entre Firebird e InterBase tornou-se maior.

Situação atual (2017)

A única forma de migração entre as versões atuais do InterBase e do Firebird é por meio de script SQL (com a correção manual das diferenças) e, em seguida, a transferência de dados do banco de dados antigo para o novo. No entanto, a migração do InterBase para o Firebird ainda é mais fácil do que para outro SGBD, pois os princípios de gerenciamento de transações são os mesmos.

Realizamos várias dessas migrações para diferentes versões do InterBase e do Firebird - veja mais detalhes sobre nosso serviço de migração aqui - e elas ocorreram bem.

Abaixo você encontra a tabela com a lista de diferenças entre as versões mais recentes: Firebird 3.0 e InterBase 2017.

Diferenças entre Firebird e InterBase
Recursos
SQL (DML e DDL)
Estabilidade de cursor (INSERT FROM SELECT correto)
Cursores roláveis (bidirecionais)
Execute Statement
Execute Statement On External (consultas a bancos de dados Firebird externos)
Transações autônomas
Tabelas derivadas (SELECT de SELECT)
Common Table Expressions recursivas (CTE)
Funções de janela e estatísticas
MERGE
Cláusula RETURNING para insert/update/delete
Triggers em connect/disconnect
Triggers em início/commit/rollback de transações
Triggers para DDL
Suporte a regexp para SUBSTRING
Tipo de dado Boolean
Tipo de dado BIGINT
Funções PSQL
Procedimentos, funções e triggers externos ( Java)
Procedimentos e funções aninhados
Funções determinísticas
Variáveis de contexto em namespaces SYSTEM, USER_SESSION e USER_TRANSACTION
Pacotes (procedimentos e funções)
Exceções com parâmetros
Coluna IDENTITY
RECREATE (combinação de CREATE ou ALTER)
Suporte a UTF8
Suporte a pesquisa sem diferenciação de maiúsculas/minúsculas em Unicode
Comprimento do identificador
Índices COMPUTED BY (em expressão)
Arquitetura/Administração
SMP SuperServer (suporte a múltiplos núcleos)
Classic (instância por conexão)
SuperClassic
Múltiplas instâncias (em portas diferentes)
Aliases de bancos de dados
Re-roteamento entre instâncias de servidor
Log de write-ahead (WAL)
Recuperação point-in-time
Criação paralela de índices durante restore
Backup incremental
Tabelas de monitoramento do sistema
Cliente e servidor 64 bits
Versão embarcada
Embarcado para Android (móvel)
Embarcado para iOS (móvel)
ChangeViews ( o que é?)
Compressão de wire
Melhorias no protocolo de rede para redes de alta latência (para consultas SQL pela internet)
Replicação em nível de servidor (nativa)
Trace e auditoria
Validação online do banco de dados
Segurança
Banco de dados de segurança
Usuários no banco de dados
Criptografia do banco de dados
Criptografia de coluna
Múltiplas chaves de criptografia
Criptografia de wire
Direitos de usuário para DDL
Gerenciar usuários via SQL
UDF e funções embutidas
User Defined Functions
SDF também conhecidas como Server Defined Functions (mais rápidas que UDF)
Suporte a drivers e bibliotecas de cliente
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Licenciamento/Preços
Preço por servidor (conexões ilimitadas)
Suporte da comunidade
Suporte profissional, por servidor
Ferramentas de recuperação, monitoramento, trace/auditoria, otimização e replicação nativa

Fale conosco

Você tem alguma dúvida? Não hesite em nos contatar por e-mail!