No, ISAM does not (at least here) stand for The International Society for Aerosols in Medicine. The Webopedia defines ISAM as an
Abbreviation for Indexed Sequential Access Method, a method for managing how a computer accesses records and files stored on a hard disk. While storing data sequentially, ISAM provides direct access to specific records through an index. This combination results in quick data access regardless of whether records are being accessed sequentially or randomly.
ISAM is a notion orthogonal to that of the relational database; it is not uncommon for relational databases to be implemented using an ISAM database library, the C-ISAM used by Informix being one example of this.
Most commonly, ISAM libraries are implemented atop some variation of the B-Tree data structure.
This is the basis technology for Informix SE; it visibly parallels xBase systems in having data files with extension .dat and index files with extension .idx, using B+ trees as the data structure.
This standard is aligned with the ISO 1989:1985 COBOL Standard, but was based on Informix C-ISAM.
Raima - Database Manager++, Velocis
Raima Database Manager++ (RDM++) is a high-performance embeddable database engine, using a low-level "d" C-API and provides the ability to build databases based on mixed relational or network models. It has C++ OO class libraries for object storage, retrieval and navigation.
The freely-available "Typhoon" system emulates the functionality of earlier versions of this product.
They sell an ISAM database library compatible with Informix's C-ISAM and a multiplatform text-based screen management library.
The critical components of the bdb system have since been integrated into the The Hackerlab C Library.
In the beginning was the B-tree.
All database search trees since the B-tree have been variations on its theme.
Recognizing this, we have developed a new kind of index called a Generalized Search Tree (GiST), which provides the functionality of all these trees in a single package. The GiST is an extensible data structure, which allows users to develop indices over any kind of data, supporting any lookup over that data. This package unifies a number of popular search trees in one data structure (the long list of potentials includes R-trees, B+-trees, hB-trees, TV-trees, Ch-Trees, partial sum trees, ranked B+-trees, and many, many others), eliminating the need to build multiple search trees for handling diverse applications. In addition to unifying all these structures, the GiST has one key feature that previous trees lacked: both data and query extensibility.
Note that GiST is in use in PostgreSQL to implement special types of indexes.
Dx is a database for Linux, FreeBSD, and other systems, that is based on extensible hashing, provides a relatively simple user interface, and is distributed as an embeddable C or C++ library. In these aspects, it is similar in spirit to the databases in the *dbm family
Dx permits storage of large (2^64) quantities of large (2^64 bytes) objects.
It permits segregating data into keyspaces so that multiple small databases may be joined together into a single physical database.
Unfortunately, Dx does not support transactional updates, locking, or other concurrency-related matters.
It might be interesting to run this atop Coda' RVM (Recoverable Virtual Memory) ...
Used to be Centura's db.linux, briefly available in " open source" form; code is still available to members of a " Club ITTIA".
They also have a database engine called FUEL which is intended to be embedded into applications, and which is intended to be suited for mobile and embedded systems.
Written for use with .NET, compatible with Section 1.1, dueling-licensed with a traditional proprietary license or the GPL (with fairly similar licensing caveats to those for MySQL, where they suggest that if your software isn't free software, you'll need to buy the traditional proprietary license).
I suspect that the "dueling licenses" are likely to limit interest in it...
These systems take advantage of the assumption (increasingly legitimate, with the cheap availability of massive amounts of RAM) that there is enough RAM to store the entire database in memory. That allows eliminating a whole host of sorts of analysis that disk-oriented or page-oriented databases have to do:
Data is in memory; you never have to worry about whether the page is available or not;
Data is never pushed out of memory; you never need to determine which page should be considered "least useful" in order to figure which cached pages can be thrown out;
All data operations take place in memory, and may be considered to be uniformly Very Fast; there is no chance of encountering 1000x slowdowns due to needing to wait for disk I/O for a data access.
This does not have the forcible result of making the database vastly more fragile; if the updates are faithfully logged to disk, these systems can still maintain the ACID transaction requirements.
eXtremeDB is an in-memory database that appears quite similar (in programming interfaces) to Raima, not having an SQL interpreter, yet not being structureless, like DBM, but rather having typed fields that are generally defined at compile time.
Like ISAM and DBM systems, eXtremeDB is particularly targeted at embedded applications requiring a small database manager.
Perst Embedded Database an open source, object-oriented database for Java and .NET
Available in "open source" form in the "dueling-licenses" approach of MySQL.
A freely available main memory database. It supports a form of SQL; interestingly, it doesn't support NULL values at all (which fits well with common relational dogma) and rejects the notion of uniqueness (which fits less well).
CSQL - Open SourceMain Memory DB
This is a relatively simple in-memory database providing basic SQL, SQL types, and JDBC and ODBC interfacing.
A freely available main memory database.
Prevayler is an object persistence system that uses native object serialization to provide ACID -like properties. Originally created for Java; there are now numerous other implementations:
Bamboo.Prevalence - Prevaylence for .NET
It's not clear whether or not this also works with MONO
Prevayler for Common Lisp
VTN Prevayler - Objective C/Cocoa