Nowadays one of the most important requirement of databases is fast response time. Many fields of the Information Technology require real-time data access, such as telecommunication, process control, stock exchange and national defense. The advantages of main memory databases over conventional database systems is that they do not use block access data storage devices. All transactions are done in the memory, so information access can be orders of magnitude faster. It takes 5 ms in average to read a block from a hard disk. From the memory the same operation takes only 100 ms. Memory based systems became accessible in the last few years due to the increasing capacity and the decreasing price of memory modules. Several large companies have developed their own in-memory databases, such as TimesTen by Oracle or solidDB by IBM.
Our goal was to create an object-relational database engine, which takes advantage of the Microsoft .NET Framework, operates fast by using only memory for data storage, and provides a comfortable interface for data access and manipulation.
Data retrieval is obtainable by LINQ with a SQL-like syntax. The query is accessible as an expression tree provided by .NET Framework. This expression tree is already optimalised, taking various aspects into count. Where possible, our optimized query retreives data by indices. Other operations of relational algebra are also more efficient than in traditional database systems.