Hello everyone and welcome to InterBase RDBMS! This is the first blog post of a series that introduces the InterBase multiplatform database to .NET developers. The idea is to present InterBase to the .NET community, ranging from an overview of what InterBase is, installation and configuration, connecting to InterBase from .NET and how to deploy InterBase – not only in the client/server model, but also embedded in your app.
Table of Contents
A Brief History
InterBase was one of the first enterprise-grade relational databases ever produced. Since its inception it is based on a superior versioning architecture still unmatched by many popular databases. It was also the first DBMS to implement Multi-Version Concurrency Control (MVCC). MVCC is referred to as Multi-Generational Architecture in InterBase.
To make a long story short, InterBase was invented in the 80s by Jim Starkey, than sold to the (famous by that time) dBase product owner Ashton-Tate, which in turn become part of Borland circa 91. Fast forward, the Borland dev tools division become part of Embarcadero in 2008, and – finally – Embarcadero become part of Idera Group in 2015, and here we are!
InterBase remains in continuous development since his inception, and each new release brings a set of new features, but always aligned with the mission to maintain 100% backward compatibility and provide no-friction migrations.
– Around the 2000s Borland decided to open-source the InterBase database, giving birth to Firebird, the open-source incarnation of InterBase 6.0. Right after that Borland made a turnaround and began releasing new commercial versions of InterBase. Today InterBase and Firebird are very different databases and not compatible between each other anymore, as InterBase introduced many new features that are not present in Firebird.
Below there is a table showing the InterBase versions after 6.x, as well the official support status for each one:
|InterBase 2020||December 2019|
|InterBase 2017||March 2017||December 2019|
|InterBase XE7||December 2014||June 2017||December 2019|
|InterBase XE3||September 2012||April 2015||March 2017|
|InterBase XE||September 2010||September 2013||December 2014|
|InterBase SMP 2009||September 2008||September 2010||September 2013|
|InterBase 2007||November 2006||November 2009||January 2013|
|InterBase 7.5||November 2003||December 2006||November 2008|
|InterBase 7.1||November 2002||December 2006||June 2007|
|InterBase 6.x||March 2001||December 2006||June 2007|
InterBase offers the following editions:
- IBLite = free/embedded with some limitations
- InterBase ToGo = embedded with no limitations
- InterBase Server = full client/server that scales up to 32 cores
- InterBase Desktop = similar features from the Server edition but localhost only
- InterBase Developer = free/similar features from the Server edition but for development only
Below you can see a comparison of the different editions available on InterBase.
|Attribute Description||IBLite||InterBase ToGo||InterBase Desktop||InterBase Server||InterBase Developer|
|Licensing of CPU Cores||1||4||4||8||8|
|Maximum simultaneous users||1||1||1||1 to Unlimited||20|
|Number of connections per user||1||8||8||4||4|
|Access local database from clients on remote systems|
|Connect to server hosting database on remote systems|
|TCP listening server|
|Strong (256bit AES) database and column encryption||No encryption||No Strong Encryption|
|Strong network (SSL) encryption||No encryption||No Strong Encryption|
|Able to import add-on licenses|
|Database file size limitation||100MB||No limit||No limit||No limit||No limit|
|Simultaneous Transactions per Connection||1||No limits||No limits||No limits||No limits|
|Services API Enabled|
|Metadata Updates (ddl operations)|
|External Table Access|
|Journaling and Journal Archives|
|Requires a server restart every 48 hours|
|Available connectivity drivers from RAD Studio (FireDAC and IBX)|
|Point-in-time-recovery of data, with database restoration based on timestamp for greater recovery flexibility between physical backups|
|Available for deployment|
|Zero-install, embedded database as a library, just link to access database|
|Embedded InterBase available for Android 64-bit and macOS 64-bit|
|Other connectivity drivers: ODBC, JDBC, ADO.NET, PHP+|
|Command line tools for development, administration and validation|
Core InterBase Features
InterBase has an interesting list of features that we’ll explore along the upcoming posts in detail, but I’d like to highlight here the ones that for me sets InterBase apart from other options in the market.
- Single on-Disk Format
InterBase single-file format allows you to deploy your applications anywhere. A unified on-disk format allows fast support and testing directly from your development machine. No changes in the metadata or the database at all when moving between platforms.
- InterBase supports encryption over the wire between server and clients, and data at rest (both DES and AES 256-bit encryption). InterBase encryption is built in as part of its cross-platform single file format.
- Built-in granular column-level encryption drastically reduces risk of data breaches through requirement changes and product refactoring as your data layer (and not your application) manages data visibility.
- InterBase also supports a backup-specific encryption key that allows an encrypted backup to be created and answers the needs of those requiring command-line backups to be run via scheduling
- Admin-Free Operation
- InterBase will just run and run and run! Even with the hardest working databases processing 10,000+ transactions each second, it could be years before you need to backup and restore the latest InterBase database server. InterBase servers are so good at being admin-free, the Mars rover used a copy on Mars (it is too far to send a DBA!).
- InterBase also offers a range of failover capabilities, including incremental backups, journals, point-in-time recovery, and database shadowing.
- Log-less Replication
- InterBase Change Views eliminates common scalability issues associated with log tables and time-stamp fields.
- Change Views not only makes it easy to identify what has changed, it controls who can track those changes and prevents others from even guessing at data changes.
To wrap up this first post I’d like to share some of success cases we have recorded recently with InterBase. There are many others but I do think the ones below will give you an interesting perspective of what InterBase can do for you: