Trang này được dịch bằng máy. Đọc bản gốc tiếng Anh. English

Thư viện IBSurgeon

Sự khác biệt giữa Firebird và InterBase

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

Tổng quan lịch sử

InterBase được tạo ra vào năm 1985: đây là cơ sở dữ liệu đa phiên bản thương mại đầu tiên. Vào cuối năm 1999, Borland quyết định đóng cửa quá trình phát triển InterBase và công bố mã nguồn của nó theo Giấy phép Công cộng InterBase. Mã này đã được sao chép (được phép theo giấy phép), và Firebird ra đời - từ phiên bản 1.0, Firebird là một cơ sở dữ liệu sẵn sàng cho sản xuất, dựa trên nhiều thập kỷ phát triển InterBase trước đó.

Vào cuối năm 2000, Borland quay trở lại với mã nguồn đóng và giấy phép thương mại (chính xác như trước đây) với InterBase và bắt đầu phát triển phiên bản 6.5.

FirebirdSQLFirebird 1.0 được phát hành vào năm 2002, với nhiều bản sửa lỗi và mở rộng DDL và DML. Quá trình phát triển Firebird tích cực tiếp tục sau 1.0, và vào năm 2004, phiên bản chính thứ hai của Firebird (v.1.5) đã được phát hành. Borland vào thời điểm đó cũng đã giới thiệu các phiên bản mới (7.0 và 7.1). Firebird 1.5 và InterBase 7.0 không tương thích cả về định dạng cơ sở dữ liệu (ODS) lẫn chức năng cốt lõi. Việc di chuyển từ InterBase sang Firebird và ngược lại bằng sao lưu/phục hồi là không thể kể từ Firebird 2.0 và InterBase 7.0.

Kể từ đó, sự khác biệt giữa Firebird và InterBase ngày càng lớn hơn.

Tình hình hiện tại (2017)

Cách duy nhất để di chuyển giữa các phiên bản hiện tại của InterBase và Firebird là thông qua tập lệnh SQL (với việc sửa thủ công các khác biệt) và sau đó bơm dữ liệu từ cơ sở dữ liệu cũ sang cơ sở dữ liệu mới. Tuy nhiên, việc di chuyển từ InterBase sang Firebird vẫn dễ dàng hơn so với sang một DBMS khác, vì các nguyên tắc quản lý giao dịch là giống nhau.

Chúng tôi đã thực hiện một số lần di chuyển như vậy cho nhiều phiên bản khác nhau của InterBase và Firebird - xem thêm chi tiết về dịch vụ di chuyển của chúng tôi tại đây - và chúng đều diễn ra tốt đẹp.

Dưới đây bạn có thể tìm thấy bảng danh sách các khác biệt giữa các phiên bản mới nhất: Firebird 3.0 và InterBase 2017.

Khác biệt giữa Firebird và InterBase
Tính năng
SQL (DML và DDL)
Độ ổn định của con trỏ (INSERT FROM SELECT chính xác)
Con trỏ cuộn được (hai chiều)
Execute Statement
Execute Statement On External (truy vấn đến cơ sở dữ liệu Firebird bên ngoài)
Giao dịch tự trị
Bảng dẫn xuất (SELECT từ SELECT)
Biểu thức bảng chung đệ quy (CTE)
Hàm cửa sổ và hàm thống kê
MERGE
Mệnh đề RETURNING cho insert/update/delete
Trigger khi kết nối/ngắt kết nối
Trigger khi giao dịch bắt đầu/cam kết/hủy bỏ
Trigger cho DDL
Hỗ trợ Regexp cho SUBSTRING
Kiểu dữ liệu Boolean
Kiểu dữ liệu BIGINT
Hàm PSQL
Thủ tục, hàm, trigger bên ngoài ( Java)
Thủ tục và hàm lồng nhau
Hàm xác định (deterministic)
Biến ngữ cảnh trong không gian tên SYSTEM, USER_SESSION và USER_TRANSACTION
Package (thủ tục và hàm)
Ngoại lệ có tham số
Cột IDENTITY
RECREATE (kết hợp CREATE hoặc ALTER)
Hỗ trợ UTF8
Hỗ trợ tìm kiếm không phân biệt chữ hoa chữ thường Unicode
Độ dài định danh
Chỉ mục COMPUTED BY (trên biểu thức)
Kiến trúc/Quản trị
SMP SuperServer (hỗ trợ đa lõi)
Classic (phiên bản cho mỗi kết nối)
SuperClassic
Nhiều phiên bản (tại các cổng khác nhau)
Bí danh cơ sở dữ liệu
Định tuyến lại giữa các phiên bản máy chủ
Nhật ký ghi trước (WAL)
Khôi phục tại thời điểm (point-in-time-recovery)
Tạo chỉ mục song song trong quá trình phục hồi
Sao lưu gia tăng
Bảng giám sát hệ thống
Máy khách và máy chủ 64-bit
Phiên bản nhúng
Nhúng cho Android (di động)
Nhúng cho iOS (di động)
ChangeViews ( nó là gì?)
Nén đường truyền (Wire compression)
Cải tiến giao thức mạng cho mạng có độ trễ cao (cho truy vấn SQL qua internet)
Sao chép cấp máy chủ (gốc)
Trace và kiểm toán
Xác thực cơ sở dữ liệu trực tuyến
Bảo mật
Cơ sở dữ liệu bảo mật
Người dùng trong cơ sở dữ liệu
Mã hóa cơ sở dữ liệu
Mã hóa cột
Nhiều khóa mã hóa
Mã hóa đường truyền
Quyền người dùng DDL
Quản lý người dùng qua SQL
UDF và hàm tích hợp
Hàm do người dùng định nghĩa (User Defined Functions)
SDF hay còn gọi là Hàm do máy chủ định nghĩa (nhanh hơn UDF)
Hỗ trợ trình điều khiển và thư viện máy khách
Java
.NET
PHP
Python
ODBC
Node.JS/TypeScript
Golang
Yii2
Ruby
Perl
Erlang
QT
Cấp phép/Giá cả
Giá mỗi máy chủ (kết nối không giới hạn)
Hỗ trợ cộng đồng
Hỗ trợ chuyên nghiệp, mỗi máy chủ
Công cụ khôi phục, giám sát, trace/kiểm toán, tối ưu hóa, sao chép gốc

Liên hệ với chúng tôi

Bạn có câu hỏi nào không? Đừng ngần ngại liên hệ với chúng tôi qua email!