CSQL
From Wikipedia, the free encyclopedia
This article or section seems to contain embedded lists that may require cleanup. To meet Wikipedia's style guidelines, please help improve this article by: removing items which are not notable, encyclopedic, or helpful from the list(s); incorporating appropriate items into the main body of the article; and discussing this issue on the talk page. |
CSQL is an open source main memory high-performance relational database management system developed in sourceforge.net. It is designed to provide high performance on simple SQL queries and DML statements which involves only one table.
It supports only limited features which are used by most of the real time applications which includes INSERT, UPDATE, DELETE on single table and SELECT with local predicates on single table. It provides multiple interfaces to client
- DB API - to access the relational storage engine
- SQL API - to access SQL Engine
- ODBC - standard interface for C/C++ applications
- JDBC - standard interface for Java applications
This is mainly developed to be used as a cache for existing disk based commercial databases. Main Memory databases performs 10-20 times faster than the commercial database systems, as it completely keeps the database in main memory. Reference: [1] for more information.
[edit] Features:
- Direct access to database, it should be available in application's address space
- Atomicity - All of the operations of a transaction performed take effect on the database or none of them will effect
- Consistency - Database should be in legal state when the transaction begins and when it ends
- Isolation - Application should be able to make operations in a transaction that appear isolated from all other transactions
- Protection from process failures by freeing resources held by dead application process
- Faster access for point lookup using hash indexing
- Faster access for range queries using tree indexing
- Data Item (row) level locking for high concurrency
- Support for multiple users and authentication mechanism to access database
- Support for large data items (column length) and variable sized data items (Varchar and Varbinary)
- Support for ODBC, JDBC
- Log Trace messages and debug messages for important operations to ease the debugging
- In case of failure, return code should specify the kind of error and stack trace of error messages to ease debugging and to identify the cause of error by looking at the error message stack
- It should support SQL DML statements which contains only single table.
- SQL Syntax Support for SQL Engine
- INSERT INTO <tablename> [fieldNameList] VALUES (valuelist)
- UPDATE <tablename> SET fldname=value , ... [WHERE <condition>]
- DELETE FROM <tablename> [WHERE <condition>]
- SELECT <* | fieldNameList> FROM <tablename> [WHERE <condition>]
Note:
1.condition shall be [NOT] <predicate> <AND | OR > <predicate>
2.predicate shall be <fieldName> <"=, !=, >,<, >=, <="> [fieldName | value]
[edit] References
- ^ "DataBlitz Storage Manager: Main-Memory Database Performance for Critical Applications" . sigmod proceedings.