| • Science | • People | • Locations | • Timeline |
InterBase is a database management system (DBMS) currently developed and marketed by Borland Software Corporation. InterBase is distinguished from other DBMSs by its small footprint, close to zero administration requirements, and multi-generational architecture. InterBase runs on the Linux, Microsoft Windows, and Solaris operating systems.
In many respects, InterBase is quite conventional; it is a SQL-92-compliant relational database and supports standard interfaces such as JDBC, ODBC, and ADO.NET. However, certain technical features distinguish InterBase from other products.
A full InterBase 7 server installation requires around 40 MB on disk. This is significantly smaller than the client installation of many competing database servers. The server uses very little memory when idle. A minimum InterBase client install requires about 400 KB of disk space.
InterBase servers typically do not require full-time database administrators.
Consider a simple banking application where two users have access to the funds in a particular account. Bob reads the account and finds there is 1000 dollars in it, so he withdraws 500. Jane reads the same account before Bob has changed it, sees 1000 dollars, and withdraws 800. Needless to say, any database system with multi-user access needs some sort of system for dealing with these sorts of database transactions.
Traditional products used lockIn software engineering, a lock is a mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. Locks are one way of enforcing concurrency control policies. Generally, locks are advisory locks wheres which stated that a particular transaction was going to modify a record. Once the lock was placed, no one else could read or modify the data until the lock was released. The lock may block changes to a single record, a page (a group of records stored together on disk) of records, or every record examined by a particular transaction, depending on the lock resolution. Lock resolution is a tradeoff between performance and accuracy -- by blocking updates at the page level, for example, some updates will be blocked which do not in fact conflict with updates made by other transactions, but performance will be improved in comparison with record level locks.
Locking becomes an even bigger problem when combined with another feature common to all such systems, transaction isolationIn databases, ACID stands for Atomicity, Consistency, Isolation, and Durability. They are considered to be the key transaction processing features of a database management system or DBMS. Without them, the integrity of the database cannot be guaranteed.. This is because transactions typically involve both a read and a write -- in this example, to read the value of the account and then change it. In order to show an isolated view of the data the entire transaction, including records read but never written to, must be locked in many database servers.
In InterBase, readers do not block writers. Instead, each record in the database can exist in more than one version. For instance, when Bob and Jane read the accounts they would both get "version 1", reading 1000 dollars. When Bob then changes the account to make his withdrawal the data is not overwritten, but instead a new "version 2" will be created with 500 dollars. Jane's attempt to make her 800 dollar withdrawal will notice that there is a new version 2, and her attempt to make a withdrawal will fail.