CSQL
Encyclopedia
CSQL is an open source main memory
high-performance relational database management system
developed @ sourceforge.net
. It is designed to provide high performance for SQL
queries and DML
statements.
Main Memory databases
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
) for existing database management systems such as MySQL, Postgres, etc.
same as mysql DBMS
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 spaceAddress spaceIn 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
- IsolationIsolation (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 - DurabilityDurability (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 (rowRow (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 keyUnique keyIn 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 KeyForeign keyIn 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 indexingHash tableIn 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 trieTrieIn 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 functionAggregate functionIn 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 SQLSQLSQL is a programming language designed for managing data in relational database management systems ....
, ODBC, JDBC, PHPPHPPHP 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
- List of relational database management systems
- In memory database
same as mysql DBMS