H2 Database Engine
|
H2 Database Engine is a Java SQL database. An SQL database engine written in Java (but also available as a native binary).
This database can be used in embedded mode, or in server mode. To use it in embedded mode, you need to:
1. Add the h2*.jar to the classpath (H2 does not have any dependencies)
2. Use the JDBC driver class: org.h2.Driver
3. The database URL jdbc:h2:~/test opens the database test in your user home directory
4. A new database is automatically created
H2 Database Engine Main Features
1. Very fast database engine
2. Open source
3. Written in Java
4. Supports standard SQL, JDBC API
5. Embedded and Server mode, Clustering support
6. Strong security features
7. The PostgreSQL ODBC driver can be used
8. Multi version concurrency
Additional Features
1. Disk based or in-memory databases and tables, read-only database support, temporary tables
2. Transaction support (read committed and serializable transaction isolation), 2-phase-commit
3. Multiple connections, table level locking
4. Cost based optimizer, using a genetic algorithm for complex queries, zero-administration
5. Scrollable and updatable result set support, large result set, external result sorting, functions can return a result set
6. Encrypted database (AES or XTEA), SHA-256 password encryption, encryption functions, SSL
SQL Support
1. Support for multiple schemas, information schema
2. Referential integrity / foreign key constraints with cascade, check constraints
3. Inner and outer joins, subqueries, read only views and inline views
4. Triggers and Java functions / stored procedures
5. Many built-in functions, including XML and lossless data compression
6. Wide range of data types including large objects (BLOB/CLOB) and arrays
7. Sequence and autoincrement columns, computed columns (can be used for function based indexes)
8. ORDER BY, GROUP BY, HAVING, UNION, LIMIT, TOP
9. Collation support, users, roles
10. Compatibility modes for IBM DB2, Apache Derby, HSQLDB, MS SQL Server, MySQL, Oracle, and PostgreSQL.
Security Features
1. Includes a solution for the SQL injection problem
2. User password authentication uses SHA-256 and salt
3. For server mode connections, user passwords are never transmitted in plain text over the network (even when using insecure connections; this only applies to the TCP server and not to the H2 Console however; it also doesn't apply if you set the password in the database URL)
4. All database files (including script files that can be used to backup data) can be encrypted using AES-128 and XTEA encryption algorithms
5. The remote JDBC driver supports TCP/IP connections over SSL/TLS
6. The built-in web server supports connections over SSL/TLS
7. Passwords can be sent to the database using char arrays instead of Strings
Other Features and Tools
1. Small footprint (smaller than 1 MB), low memory requirements
2. Multiple index types (b-tree, tree, hash)
3. Support for multi-dimensional indexes
4. CSV (comma separated values) file support
5. Support for linked tables, and a built-in virtual 'range' table
6. EXPLAIN PLAN support, sophisticated trace options
7. Database closing can be delayed or disabled to improve the performance
8. Web-based Console software (translated to many languages) with autocomplete
9. The database can generate SQL script files
10. Contains a recovery tool that can dump the contents of the database
11. Support for variables (for example to calculate running totals)
12. Automatic re-compilation of prepared statements
13. Uses a small number of database files
14. Uses a checksum for each record and log entry for data integrity
15. Well tested (high code coverage, randomized stress tests)
The license of this software is Freeware, you can free download and free use this database management software.

