This site contains older material on Eiffel. For the main Eiffel page, see

EiffelStore: The bridge between objects and the relational world

EiffelStore is the principal interface between Eiffel and Database Management Systems (DBMS), relational or object-oriented.

It enables organizations to combine the power of Eiffel object-oriented development with the need to access existing databases and use them to store objects.


EiffelStore provides a consistent set of library classes for writing Eiffel applications that need to handle persistent objects.

The EiffelStore Application Programming Interface (API) is DBMS-independent, so that you can use the same source code with a wide range of actual database products. The list of currently supported DBMS appears below.

Three layers

EiffelStore layer

Storable layer







EiffelStore enables programming at any of three interface levels:

  • EiffelStore layer: this is the basic API. It allows Eiffel applications to store and retrieve their objects in a portable way.
  • Storage layer: using Eiffel's own STORABLE persistence mechanism, enables easy storage and retrieval of networks of objects into files.
  • DBMS layer: provides the interface to various relational and object-oriented oriented DBMS. It allows an application to store and retrieve objects into and from different data bases.

Supported platforms

EiffelStore "handles" -- interfaces to specific DBMS at the DBMS layer -- are currently available for the following products:

  • ODBC, providing access to dozens of database products, in particular on Windows.
  • Oracle (Unix, Windows).
  • Sybase (Unix, Windows).
  • Open Ingres (Unix, Windows).
  • MATISSE object-oriented and multimedia database.

Several other handles, covering relational and object-oriented databases, are in preparation. A non-EiffelStore interface also exists for the Versant object-oriented database.