Views

InformationTechnology:Database:Embedded

Contents

Navigation



Related categories



About this page

We apologize for the little information we provide, this page is still under construction. Please stay tuned.
Image:Construction_worker.gif

Embedded Databases

The so-called embedded databased are high-performance, low-footprint database systems, generally being used on specialized systems. Not speaking about well-known candidates to comply with this definition, like Berkeley DB or Tobias Oetiker's Round Robin Database (RRD), Objectstore, Solid, SQL Anywhere and Firebird databases can be considered. A number of Java-based embedded database systems exist as well. An interesting article [1] debates the evolution of some Ultralite embedded databases.

Objectstore

The ObjectStore object-oriented Database is a Progress Software product. Because of its flexibility and performance is still being used for storing in real time the collected statistics in some Network Management Solutions [2]. One example of Objectstore-based architecture is the Infovista Collector [3].

Solid database

The Solid Database Engine is a carrier-grade, high-availability database solution targeted to mission-critical, high-performance applications. To insure high-availability, the Solid Database Engine can do checkpointing, thus enabling consistence of application state over failovers. The engine is also able to support redundancy, at process level, logical level and physical level. The solid Database Engine is being used by management applications for carrier-grade routers from Nortel, as well as for some integrated POS and inventory control systems for the retail industry. Recently the Solid DB technology has been ported to MySQL, in the form of a Solid storage engine for MySQL. Beside providing the same transactional capabilities as the InnoDB storage engine, the Solid DB storage engine provides for online, hot-backup and improved performance through an optimized Bonsai-tree caching mechanism.

Solid Database Engine resources
  • Architecture of Highly Available Databases [4]
  • Solid's Open Source Community [5]
  • SOLID JDBC Driver [6]
  • DBD::Solid - Perl DBD driver to access Solid database [7]


Solid Database Engine manuals
  • Solid Database Engine Getting Started Guide [8]
  • Solid Database Engine Administrator Guide [9]
  • Solid Database Engine SQL Guide [10]
  • Solid Programmer Guide [11]


SQL Anywhere

The SQL Anywhere Database is a small footprint database solution that enables deployment of database functionality on small footprint devices, powered by Windows (desktop and mobile), Symbian or Palm operating systems. Once bundled with some Rational products, it is being replaced by IBM with IBM's own java-based Cloudscape embedded DB [12] (a commercial version of Apache Derby SQL RDBMS [13]). SQL Anywhere was originally developed, as Watcom/SQL, at the University of Waterloo as a fully SQL-compliant RDBMS for PC and middle tier client/server applications. When Watcom was acquired by Sybase Watcom/SQL was integrated into Sybase's own SQLServer database product line, under the SQL Anywhere brandname, targetting the embedded and mobile/PDA applications market. It comes with an SQL Anywhere Studio that allows development of database applications for a wide range of programming languages and operating systems. On top of that, the UltraLite Analyser Technology allows further optimizing applications' size. With this optimization, some full-fledged database application can have a footprint as low as 75KB. Some commercial products are using SQL Anywhere as the storage engine, among these CiscoWorks 2000 (using version SQL ANywhere 7.0), which is using it to store network inventory information. For some some applications it might be necessary to directly access the information in the underlying database, to overcome limitations in the Resource Manager Essentials (RME) component, but Cisco specifically disclaims support of users who directly access the information this way. Here is an article [14] exploring this technique.

SQL Anywhere resources
  • SQL ANywhere manuals [15]
  • Connection strings collection [16]
  • Another connection strings collection [17]
  • Opening Sybase databases with BaseNow [18]
  • Databases - sybase FAQ [19]
  • Open Source Generic Enterprise Manager and Sybase Free Software [20]
  • Various Sybase resources [21] and [22]


SQLite

SQLite [23] is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine in aless than 250KB footprint. It began life as a small, portable database for a photo cataloging app called mPhoto. It was written from the very start to comply with a nearly complete version of SQL92 - more compliant than nowadays' MySQL. It is ACID-compliant (Atomicity, Consistency, Isolation, Durability), i.e. transactions are processed reliably. It also supports concurrent read access and database-level locking for write access. SQLite is being used by popular products like Firefox, the Yum package manager, the Solaris 10 Service Management Facility [24].

SQLite resources
  • SQLite Tutorial [25]
  • Freeware SQLite Administrator for Windows 2000/XP and Vista [26]
  • SQL4Sockets - A client/server implementation of SQLite [27]


IBM Informix Dynamic Server (IDS)

The IBM Informix Dynamic Server (IDS) is a rugged DBMS for embedded applications. IDS is currently being used on the new Cisco Call Manager 5.0 and 6.0, thus replacing the Microsoft SQL Server engine [28].

References:
  • IBM Informix Dynamic Server v10.0 Information Center [29]
  • Informix Dynamic Server V10 RedBook [30]
  • International Informix Users Group [31]


Firebird

The Open Source Firebird [32] database is based on the source code released in 2000 in the public domain by Inprise Corp (known as Borland Software Corp) under the InterBase Public License [33] [34] It offers many ANSI SQL-99 and SQL-2003 [35] features. Firebird runs on a large number of platforms from Windows and Linux to MacOS X (Darwin), FreeBSD and OpenBSD, HP-UX, AIX and others. Firebird is however a mature database system, which has been improved for the last 20 years, with many features, including transactions, stored procedures, hot-backup and excellent scalability. Although Firebird is available in a client-server model, what makes it attractive is the Embedded Firebird feature and the fact that a Firebird database can be deployed just by copying the database file. It is a compelling alternative to Microsoft Jet [36] and Microsoft MSDE 2000/SQL Express 2005 [37]. On Windows Embedded Firebird has a very small footprint of less than 2M for its 2 dll's.

Firebird resources
  • The Firebird Database home [38]
  • The FlameRobin database administration tool [39], currently in beta
  • The IBPhoenix Interbase and Firebird resources portal [40]


Embedded Java databases

  • HSQLDB[41] has good support for ANSI-92 SQL plus SQL 99 and 2003 enhancements with an extremely small footprint (around 100KB), supporting provides both "in-memory" and disk-based databases.
  • DAFFODIL[42] is a commercial RDBMS fully compliant with SQL-99 and JDBC 3.0, with enterprise-grade capabilities like full text search, PSM or triggers. It is available in client-server and embedded editions.
  • One$DB [43] is the open source version of Daffodil RDBMS and offers all basic features of Daffodil
  • Apache Derby [44] [45] is the Open Source version of the discontinued IBM Cloudscape database engine. It is embedded in SUN Java 6 as Java DB. It is available in client-server and embedded editions, with a small footprint of under 2MB.