SmallSQL

SmallSQL is a Germany-based Java Desktop SQL Database Engine. It is a relational and 100% pure Java DBMS implemented using the Java Database Connectivity (JDBC) API.

SmallSQL is built upon the belief that database runtime should not be the largest part of a desktop application, and is designed to have minimal runtime storage, producing only 200 to 300 KB of jar file. However, this implies a lot of unimplemented or unsupported features, including user management, database sharing, and network interface.

SmallSQL have only limited use and popularty, and suffers from a lack of documentation.

Joins

Nested Loop Join Index Nested Loop Join

SmallSQL supports nested loop join methods including inner join, outer join, cross join, full join, left join, and right join. SmallSQL also supports indexed nested loop join using a scroll index, but only for inner join requests.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/Join.java'.

Stored Procedures

Not Supported

SmallSQL does not support Stored Procedures.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/SSDatabaseMetaData.java'.

Data Model

Relational Key/Value

SmallSQL is a Relational Dababase Management System (RDBMS) implemented using the Java Database Connectivity (JDBC) API, which supports mostly RDBMS. It is also classified as a 100% pure Java DBMS, which is defined as a DBMS that is written in pure java with no link to any native library.

System Architecture

Embedded

SmallSQL is an embedded system that does not contain any network interfaces.

Views

Materialized Views

SmallSQL supports materialized views.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/View.java'.

Storage Architecture

Disk-oriented

SmallSQL is a disk-oriented DBMS.

Storage Model

Decomposition Storage Model (Columnar)

SmallSQL implements a Decomposition Storage Model.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/Column.java'.

Indexes

Patricia/Radix Trie

SmallSQL supports a radix tree index. The index data structure is implemented by the author himself, and supports both unique and non-unique keys. It will also attempt to convert stored values to a data type with comparable order.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/Index.java'.

Isolation Levels

Read Uncommitted Serializable Repeatable Read

SmallSQL supports four isolation levels: Read Uncommitted, Repeatable Read, Serializable, and None.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/SSDatabaseMetaData.java'.

Foreign Keys

Supported

SmallSQL supports foreign keys, and stores information about foreign keys as an array list.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/ForeignKeys.java'.

Checkpoints

Not Supported

SmallSQL does not support checkpoints.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/SSDatabaseMetaData.java'.

Logging

Not Supported

SmallSQL does not support logging and log recovery.

This information is extracted from SmallSQL's source codes, at 'src/smallsql/database/SSDatabaseMetaData.java'.

SmallSQL Logo
Website

http://www.smallsql.de/

Source Code

https://sourceforge.net/projects/smallsql/

Tech Docs

http://www.smallsql.de/doc/index.html

Developer

Volker Berlin

Country of Origin

DE

Start Year

2005

End Year

2013

Project Type

Open Source

Written in

Java

Supported languages

Java

Operating Systems

All OS with Java VM

Licenses

LGPL v3