InterBase

InterBase

Infobox Software
name = InterBase


caption = InterBase's performance monitor allows database administrators to view and control server use.
developer = CodeGear
latest_release_version = 2009
latest_release_date = 08 September, 2008
operating_system = cross-platform
genre = Database management system
license = Proprietary
website = http://www.codegear.com/products/interbase

InterBase is a relational database management system (RDBMS) currently developed and marketed by CodeGear. InterBase is distinguished from other DBMSs by its small footprint, close to zero administration requirements, and multi-generational architecture. [cite web | author=Todd, Bill | title=InterBase: What Sets It Apart | work=The Database Group, Inc. publications | url=http://www.dbginc.com/tech_pprs/IB.html | accessmonthday=September 21 | accessyear=2005 ] InterBase runs on the Linux, Microsoft Windows, Mac OS X and Solaris operating systems.

Technology

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.

mall footprint

A full InterBase 2009 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.

Embedded or server

InterBase offers the option to run as an embedded database or regular server.

Minimal administration

InterBase servers typically do not require full-time database administrators.

Multi-generational architecture

Concurrency control

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. The account should be 300 dollars overdrawn, however, depending on which transaction gets processed first it will contain either 500 or 200 dollars. This poses a serious problem and needless to say, any database system with multi-user access needs some sort of system to deal with these scenarios.

The techniques used to solve this and other related problems are known in the database industry as concurrency control.

Traditional products used "locks" 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 isolation. 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.

This approach to concurrency control is called multiversion concurrency control. InterBase's implementation of multiversion concurrency control is commonly called its multi-generational architecture. InterBase was the second commercial database to use this technique; the first was DEC's Rdb/ELN.

Multiversion concurrency control also makes true snapshot transaction isolation relatively simple to implement. A transaction with snapshot isolation in InterBase shows the state of the database precisely as it was at the instant the transaction began. This is very useful for backups of an active database, long-running batch processes, and the like.

Rollbacks and recovery

InterBase also uses its multi-generational architecture to implement rollbacks. Most database servers use logs to implement the rollback feature, which can result in rollbacks taking a long time or possibly even requiring manual intervention. By contrast, InterBase's rollbacks are near-instantaneous and never fail.

Drawbacks

Certain operations are more difficult to implement in a multi-generational architecture, and hence perform slowly relative to a more traditional implementation. One example is the SQL COUNT verb. Even when an index is available on the column or columns included in the COUNT, all records must be visited in order to see if they are visible under the current transaction isolation.

History

Multiversion concurrency control before InterBase

Multiversion concurrency control is described in some detail in sections 4.3 and 5.5 of the 1981 paper "Concurrency Control in Distributed Database Systems" [cite web | author=Bernstein, Philip A. and Goodman, Nathan | title=Concurrency Control in Distributed Database Systems | work=ACM Computing Surveys | url=http://portal.acm.org/citation.cfm?id=356846&dl=GUIDE&coll=Portal | accessmonthday=September 21 | accessyear=2005 ] by Philip Bernstein and Nathan Goodman -- then employed by the Computer Corporation of America. Bernstein and Goodman's paper cites a 1978 dissertation [cite web | author=Reed, D.P. | title=Naming and Synchronization in a Decentralized Computer System | work=MIT dissertation | url=http://www.lcs.mit.edu/publications/specpub.php?id=773 | accessmonthday=September 21 | accessyear=2005 ] by D.P. Reed which quite clearly describes MVCC and claims it as an original work.

Early years

Jim Starkey was working at DEC on their Datatrieve network database product when he came up with an idea for a system to manage concurrent changes by many users. The idea dramatically simplified the existing problems of "locking" which were proving to be a serious problem for the new relational database systems being developed at the time. He started working on the system at DEC, but at the time DEC had just started a relational database effort which lead to the Rdb/VMS product. When they found out about his project a turf war broke out (although the product was released as Rdb/ELN), and Starkey eventually decided to quit.

Although InterBase's implementation is much more similar to the system described by Reed in his MIT dissertation than any other database that existed at the time and Starkey knew Bernstein from his previous position at the Computer Corporation of America and later at DEC, Starkey has stated that he arrived at the idea of multiversion concurrency control independently. [cite web | author=Starkey, Jim | title=Weblog comment | work=Multiversion Concurrency Control Before InterBase | url=http://blogs.teamb.com/craigstuntz/archive/2005/02/18/MultiversionConcurrencyControlBeforeInterBase.aspx#2718 | accessmonthday=September 21 | accessyear=2005 ] In the same comment, Starkey says:

The inspiration for multi-generational concurrency control was a database system done by Prime that supported page level snapshots. The intention of the feature was to give a reader a consistent view of the database without blocking writers. The idea intrigued me as a very useful characteristic of a database system.

He had heard that the local workstation vendor Apollo Computer was looking for a database offering on their Unix machines, and agreed to fund development. With their encouragement he formed Groton Database Systems (named after the town, Groton, Massachusetts, where they were located) on Labor Day 1984 and started work on what would eventually be released as InterBase in 1986. Apollo suffered a corporate shakeup and decided to exit the software business, but by this time the product was making money.

The road to Borland

Between 1986 and 1991 the product was gradually sold to Ashton-Tate, makers of the famous dBASE who were at the time purchasing various database companies in order to fill out their portfolio. The company was soon in trouble,Fact|date=October 2007 and Borland purchased Ashton-Tate in 1991, acquiring InterBase as part of the deal.

Open source

In early 2000, Borland announced that InterBase would be released under open source, and began negotiations to spin off a separate company to manage the product. When the people who were to run the new company and Borland could not agree on the terms of the separation, InterBase remained a Borland product, and the source code for InterBase version 6 was released under a variant of the Mozilla Public License in mid-2000.

With the InterBase division at Borland under new management, the company released a proprietary version of InterBase version 6 and then 6.5. Borland released several updates to the open source code before announcing that it would no longer actively develop the open source project. Firebird, an open source fork of the InterBase 6 code, however, remains in active development.

CodeGear

CodeGear is a division of Embarcadero Technologies. On February 8 of 2006, Borland announced the intention to sell their line of development tool products, including InterBase, Delphi, JBuilder, and other tools. [http://www.borland.com/us/company/news/press_releases/2006/02_08_06_borland_acquires_segue_software.html] But instead of selling the divisions, Borland spun them out as a subsidiary on 14 November 2006. InterBase, along with IDE tools such as Delphi and JBuilder are included in the new company's product lineup. Then, on 7 May 2008, Borland and Embarcadero Technologies announced that Embarcadero had "signed a definitive asset purchase agreement to purchase CodeGear." [cite web
url=http://dn.codegear.com/article/38132
title=Community Letter: Embarcadero Technologies agrees to acquire CodeGear from Borland
accessdate=2008-05-08
last=Intersimone
first=David
date=2008-05-07
] The acquisition, for approximately $24.5 million, closed on 30 June 2008. [cite web
url=http://www.codegear.com/article/38314/
title=Embarcadero Technologies Closes Acquisition of CodeGear
accessdate=2008-07-03
last=Bravo
first=Thoma
date=2008-07-01
]

Recent releases

At the end of 2002, Borland released InterBase version 7, featuring support for SMP, enhanced support for monitoring and control of the server by administrators, and [http://www.dbginc.com/tech_pprs/ib7/IB7.htm more] . Borland released InterBase 7.1 in June 2003, 7.5 in December of 2004, and 7.5.1 on June 1, 2005.

In September 2006, Borland announced [http://dn.codegear.com/article/33698 Borland’s Developer Tools Group Introduces InterBase® 2007] ] the availability of InterBase 2007. Its new features include point in time recovery via journaling (which also allows recoverability without the performance penalty of synchronous writes), incremental backup, batch statement operations, new Unicode character encodings, and a new ODBC driver.

In September 2008, Embarcadero announced [http://www.embarcadero.com/news/press_releases/interbase2009.html Embarcadero Announces High-Performance InterBase® SMP 2009 Database] ] the availability of InterBase 2009. Its new features include full Database Encryption, selective Column-level data encryption and over-the-wire encryption offering secure TCP/IP communication via SSL.

References

External links

* [http://www.codegear.com/products/interbase InterBase product page]
* [http://www.sqlly.com InterBase Development Studio]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • InterBase — Interbase  СУБД от компании Borland. История Основой InterBase был проект, разработанный Джимом Старки (Jim Starkey) во время работы над СУБД Datatrive. Джим создал его как реализацию своей идеи базы данных с многоверсионной архитектурой. В… …   Википедия

  • InterBase — Entwickler Embarcadero Aktuelle Version 10 (Dezember 2010) Betriebssystem Windows, Linux, Mac OS X, Solaris Kategorie …   Deutsch Wikipedia

  • InterBase — Développeur Embarcadero Technologies Dernière version …   Wikipédia en Français

  • Interbase — ist ein relationales Datenbanksystem von Borland (inzwischen CodeGear), welches dem SQL Standard folgt. Es arbeitet nach dem Client Server Prinzip. Der Quellcode von InterBase 6.0 wurde 2000 von Borland unter der InterBase Public License… …   Deutsch Wikipedia

  • InterBase — InterBase,   eine relationale Datenbank von Borland. Sie versteht die Abfragesprache SQL und zeichnet sich laut Borland durch einfache Bedienung und hohe Geschwindigkeit aus. InterBase unterstützt Microsoft Access sowie JDBC und ODBC. Die… …   Universal-Lexikon

  • InterBase — Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar …   Wikipedia Español

  • Interbase Public Licence — Licence de logiciel Dernière version Approuvée par l OSI Non Compatible GPL Non L Interbase Public Licence est une licence informatique …   Wikipédia en Français

  • Interbase — …   Википедия

  • interbase — in·ter·bà·se s.m. e f.inv. TS sport nel baseball e nel softball, giocatore della squadra schierata in difesa, posto tra la seconda e la terza base | estens., posizione occupata da tale giocatore {{line}} {{/line}} DATA: 1940. ETIMO: der. di base… …   Dizionario italiano

  • Firebird — У этого термина существуют и другие значения, см. Firebird (значения). Firebird Логотип Firebird Тип Реляционная СУБД Разработчик Сообщество Firebird Напис …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”