CSQL
Encyclopedia
CSQL is an open source main memory
Main Memory database
An in-memory database is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems which employ a disk storage mechanism...

 high-performance relational database management system
Relational database management system
A relational database management system is a database management system that is based on the relational model as introduced by E. F. Codd. Most popular databases currently in use are based on the relational database model....

  developed @ sourceforge.net
SourceForge
SourceForge Enterprise Edition is a collaborative revision control and software development management system. It provides a front-end to a range of software development lifecycle services and integrates with a number of free software / open source software applications .While originally itself...

. It is designed to provide high performance for SQL
SQL
SQL is a programming language designed for managing data in relational database management systems ....

 queries and DML
Data Manipulation Language
A data manipulation language is a family of syntax elements similar to a computer programming language used for inserting, deleting and updating data in a database...

  statements.

Main Memory databases
Main Memory database
An in-memory database is a database management system that primarily relies on main memory for computer data storage. It is contrasted with database management systems which employ a disk storage mechanism...

 performs 10-20 times faster than the disk based database systems, as it completely keeps the database in main memory. As there is no disk I/O, main memory databases provide predictive response time (~10 microsecs for point lookup and ~20 microsecs for insert/update/delete operations) which makes main memory databases ideal for real time as well as near real time applications.
Refer: for more information.

It can be configured to work in Embedded as well as client/server mode. Apart from acting as relational storage engine, it can also transparently cache data from existing databases.

It can be configured to work as transparent, updateable, real time cache ( CSQL Cache
CSQL Cache
CSQL Cache is an open source high performance, bi-directional updateable data caching infrastructure that sits between the clustered application process and back-end data sources to provide high throughput to the application....

 ) for existing database management systems such as MySQL, Postgres, etc.

Storage

  • Direct access to database, data is available in application's address space
    Address space
    In computing, an address space defines a range of discrete addresses, each of which may correspond to a network host, peripheral device, disk sector, a memory cell or other logical or physical entity.- Overview :...

     through embedded mode.
  • Client/server mode access for applications residing in remote hosts.
  • Atomicity - All 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
    Isolation (computer science)
    In database systems, isolation is a property that defines how/when the changes made by one operation become visible to other concurrent operations. Isolation is one of the ACID properties.-Isolation levels:...

     - Application should be able to make operations in a transaction that appear isolated from all other transactions
  • Durability
    Durability (computer science)
    In database systems, durability is the ACID property which guarantees that transactions that have committed will survive permanently.For example, if a flight booking reports that a seat has successfully been booked, then the seat will remain booked even if the system crashes.Durability can be...

     - Ability to recover all the committed transactions in case of application crash
  • Protection from process failures by freeing resources held by dead application process
  • Data Item (row
    Row (database)
    In the context of a relational database, a row—also called a record or tuple—represents a single, implicitly structured data item in a table. In simple terms, a database table can be thought of as consisting of rows and columns or fields...

    ) level locking and lock free internal structures for high concurrency
  • Support for multiple users and authentication mechanism to access database

Data Type and Constraints

  • Data Types: byte, small, int, bigint, float, double, char, binary, date, time, timestamp
  • Constraints: NOT NULL, Unique key
    Unique key
    In relational database design, a unique key can uniquely identify each row in a table, and is closely related to the Superkey concept. A unique key comprises a single column or a set of columns. No two distinct rows in a table can have the same value in those columns if NULL values are not used...

    , Primary Key, Foreign Key
    Foreign key
    In the context of relational databases, a foreign key is a referential constraint between two tables.A foreign key is a field in a relational table that matches a candidate key of another table...

  • Default values and auto increment key

Index

  • Faster access for point lookup using hash indexing
    Hash table
    In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys , to their associated values . Thus, a hash table implements an associative array...

  • Faster access for range queries using tree indexing
  • Highly concurrent faster operations using trie
    Trie
    In computer science, a trie, or prefix tree, is an ordered tree data structure that is used to store an associative array where the keys are usually strings. Unlike a binary search tree, no node in the tree stores the key associated with that node; instead, its position in the tree defines the...


SQL

  • Support for aggregate function
    Aggregate function
    In computer science, an aggregate function is a function where the values of multiple rows are grouped together as input on certain criteria to form a single value of more significant meaning or measurement such as a set, a bag or a list....

    s, grouping, inner join, outer join, self join, distinct, order by

Interfaces

  • Support for SQL
    SQL
    SQL is a programming language designed for managing data in relational database management systems ....

    , ODBC, JDBC, PHP
    PHP
    PHP is a general-purpose server-side scripting language originally designed for web development to produce dynamic web pages. For this purpose, PHP code is embedded into the HTML source document and interpreted by a web server with a PHP processor module, which generates the web page document...

  • JDBC and ODBC drivers are supported for windows

See also


same as mysql DBMS
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK