Thursday, November 8, 2007

Free Database Libraries, ODBC Drivers, SQL Servers and SQL Tools

Free Database Libraries, ODBC Drivers, SQL Servers and SQL Tools (thefreecountry.com)


Free ODBC Drivers, SQL Servers and Tools, Database Libraries and Source Code

H2 Database Engine
H2 is a free SQL engine written in Java. It supports embedded, server and cluster modes, JDBC and ODBC (partial) API, etc. It works on platforms that support Java, inluding Windows and Linux. The source code can be compiled with GCJ as well (see the Free Java Compilers page for more information about the GNU Compiler for Java).

Microsoft SQL Server 2005 Express Edition
The Microsoft SQL Server 2005 Express Edition is the free version of Microsoft's SQL Server 2005. You need to have Windows 2000, XP, or 2003 to run it. According to the website, it looks like you can redistribute it royalty-free, although you should read their licence agreement yourself to verify this. You can also download the Microsoft SQL Server Management Studio Express, a graphical management tool for SQL Server 2005 Express.

HSQLDB - Java SQL Database Engine
HSQLDB is a Java SQL relational database engine. It has a JDBC driver and supports a subset of ANSI-92 SQL with SQL 99 and 2003 enhancements. It supports both in-memory and disk-based tables, and embedded and server modes.

Sybase ASE Express Edition for Linux
Sybase ASE Express Edition for Linux has all the features of Sybase's commercial offering except that it is limited to 1 CPU, 5 GB of storage and 2 GB of RAM (according to their press release). You have to register before you are allowed to download.

IBM Cloudscape (Java relational database management system)
IBM Cloudscape is an open source Java RDBMS with a small footprint that can be embedded in Java programs. It runs on a Java virtual machine, which means that it is theoretically portable to systems that have a JVM, including AIX, Linux, Windows 2000/XP/2003, Mac OS, Mac OS X, Solaris, and OS/400.

CA Ingres, Data Management and Application Development
Computer Associates' Ingres is now an open source (CA Trusted Open Source License) relational database that runs on Linux, UNIX, Windows and OpenVMS.

Berkeley DB, Berkeley DB XML, Berkeley DB Java Edition
Berkeley DB is an embedded database system that is thread-safe, has support for arbitrary data types, allows both keyed and sequential access to records, supports cursors, logical joins, secondary indices, memory-mapped and read-only databases, architecture-independent databases, databases up to 256 terabytes (with keys and values up to 4 gigabytes), supports concurrent accesses, fine-grained locking, group commit, load balancing, transparent failover, hot backups, etc. The licence requires you to distribute the source code for any application that uses Berkeley DB when you distribute it.

SQLite
SQLite is a C library with an embeddable SQL database engine. It implements most of SQL92, stores the entire database in a single file, supports databases up to 2 terabytes in size, has bindings for many programming languages (download separately), supports ACID (atomic, consistent, isolated, durable) transactions, etc. Sources for the library is available and is in the public domain.

OTL - Oracle, Odbc and DB2-CLI Template Library
OTL is a C++ template library. It is a wrapper around the Oracle, ODBC and DB2-CLI database APIs. When you use the library, it is expanded into direct database API function calls. The code is ANSI C++ compliant, and is integrated with the Standard Template Library (STL). OTL supports Oracle 7, Oracle 8, Oracle 8i, Oracle 9i, DB2, ODBC 3.0 and ODBC 2.5 compliant sources in Windows and Unix (such as Oracle, MS SQL Server, Sybase, MySQL, DB2, Interbase, PostgreSQL, etc).

nanoBase 1997
nanoBase is neither a database library nor an SQL server, but a clone of the old dBase. It is an xBase interpreter and it works under MSDOS. It comes with source code, and is apparently released under the GNU GPL.

MySQL++ - C++ API for MySQL
MySQL++ is a C++ API that you can use for making MySQL queries. The software is licensed under the GNU LGPL. Precompiled binaries are available for Linux, Windows, Mac OS X, etc.

TurboPower B-Tree Filer
B-Tree Filer is a library of database routines (probably using b-trees as its name implies) for either MSDOS or Windows. Written in Object Pascal, it may be used in Turbo Pascal or Delphi programs.

TurboPower FlashFiler
The TurboPower FlashFiler is a free client/server database engine that supports SQL queries, huge tables, huge BLOB (binary large objects) support (up to 2GB), concurrent transactions, server plug-ins, server monitors and extenders, login security, encrypted tables, timeout handling, etc. It is a multi-threaded server that can handle multiple requests from many clients simultaneously. You can also run it as a Windows service under Windows NT/2000. TurboPower's libraries and components work with Borland Delphi and C++ Builder.

XTG's Interbase 6 iODBC Driver
This is the Interbase 6 and Firebird ODBC driver. It aims to conform to the ODBC 3.X API CORE. It currently only runs on Win32, although plans appear to be underway to support Linux. You may use the driver free in both personal and commercial software. Source code is available under the GNU LGPL.

Firebird Relational Database
FirebirdSQL is an open source relational database based on the Interbase 6 engine. It runs on Linux, Windows, and a number of Unix systems.

OpenLink iODBC Driver Manager and ODBC SDK for Unix
The iODBC driver manager supports ODBC 3.X API. It is an open source release that is portable to all major Unix platforms, including Solaris, HP-UX, AIX, SCO OpenServer, SCO Unixware, SGI IRIX (Mips ABI), Digital Unix, DG-UX, Dynix/PTX, BSDI, FreeBSD and of course Linux.

Database Template Library
This C++ library makes ODBC record sets look like an STL container. You can move through it using standard STL iterators. The author informs me that the library is free and licenced under the same terms as the SGI STL.

Datareel Database C++ Library
This is a collection of C/C++ libraries that purportedly "simplifies complex time-consuming database, socket, multithreaded programming tasks". It supports the Windows and Unix platforms.

UnixODBC Free ODBC
The UnixODBC Project provides developers with a free ODBC kit distributed with source code under GNU GPL and LGPL (the LGPL applies to the library source code so that presumably you can build commercial applications with them without releasing your source code if you want). As is obvious from its name, it is designed for Unix systems, and includes ODBC sample drivers, a ODBC driver manager, a GUI administrative tool (for KDE), a data source explorer, etc. It looks like Linux is the primary platform that is supported, although there are ports for FreeBSD as well.

XDB (formerly Xbase)
XDB (formerly Xbase) is "a collection of specifications, programs, utilities and a C++ class library for manipulating Xbase type datafiles and indices." That is, if you deal with dBase compatible files, such as those produced by dBase, Clipper, FoxPro, etc, this might be the library for you. It supports the DBF files, dBase's NDX index files, Clipper's NTX files, DBT memo files, and possibly others.

Libsqlora8 Library
Libsqlora8 is a C library that hides much of the complexity of accessing Oracle databases, allowing you to use a more simplified interface. The library is provided in source code form. It works on Linux; I am not sure if other operating systems are also supported.

GQL C++ Library: Generic SQL Interface
GQL is a C++ library that provides an abstraction of an SQL database. It provides you with a portable API that you can use with most SQL databases. A wrapper for Python is currently also in the works.

FreeODBC++ ODBC Library
If you are looking for a free ODBC library, you might want to take a look at Libodbc++. This C++ class library provides a convenient means for you to access SQL databases. It supports a subset of JDBC 2.0, and it is distributed under the GNU LGPL.

NOSQL Relational Database Management System
NoSQL, a GNU GPLed relational database management system, is, as its name suggests, is not an SQL database. It's actually a shell-level tool that creates regular ASCII files that can be manipulated by other text tools (like text editors, etc). It is closely integrated with Unix, and the author created it because he wanted something he could use for simple database management tasks that didn't require the full feature set usually present in other DBMSes.

Dxstore Database Management System
Dx is a C/C++ Linux and FreeBSD database that you can embed in your applications. It uses an extensible hashing algorithm for indexing, much like DBM, NDBM and GDBM, and can support databases spread over multiple file systems. Among its other features are flexible methods of storing and retrieving data, a sophisticated data editing facility, a small memory footprint, etc.

Mariposa DBMS
This free distributed database management system (with a BSD-like licence) runs on DEC Alpha running DEC OSF/1.3.2. It is specially designed for wide area networks, and allows DBMSs which are far apart and under different administrative domains to work together to process queries. It is scaleable, provides local autonomy, data mobility, easily configurable and does not force a global synchronisation. It also supports the paradigm where processing sites buy and sell data and query processing services.

mSQL DBMS
mSQL, or mini SQL, is a database engine that offers a subset of the ANSI SQL language. There are versions for various flavours of Unix as well as a port to Win32. The program is free for certain people (such as full-time students) and organisations (such as educational institutions, etc). A number of tools for the engine, as well as an ODBC driver, are also available.

mySQL Database Server
mySQL is a SQL database server which has been ported to a number of operating systems, including Linux and Win32. An ODBC driver for the server is also available. mySQL is free unless you are selling a product that includes the mySQL server. If you are looking for a book on programming this database, I read of a number of recommendations from users about Paul Dubois' MySQL. I've not read it myself though.

Ocelot SQL-92 DBMS Library & SQL Server
This is DBMS library and SQL server that supports the full ANSI/ISO SQL 1992 Standard. You can access the database directly (via its DLLs) or via ODBC. The system is free for both personal and commercial use. Source code is available under a maintainence contract. You cannot however redistribute the DLL but you can always direct your customers to the website. Incredibly, the DLL is only about 600k for the full DBMS support!

GNU DBMS and SQL Server
According to its web site, the GNU SQL Server is a free relational database management system that supports the full SQL89 language and some of the SQL92 extensions. Like all things GNU, source code is included and protected under the GNU General Public License. You will need to check its documentation to find out what OSes are supported.

PostgreSQL Object-Relational DBMS and SQL Server
According to its website, "PostgreSQL is a sophisticated Object-Relational DBMS supporting almost all SQL constructs." It has a long history, dating back to its original incarnation as Ingres, then Postgres, and later Postgres95. An ODBC driver supporting the core functionality as well as portions of level 1 and 2 is available. Windows NT/95 is supported only on the client side, while numerous Unices and Unix-clones are fully supported.

LEAP Relational Database Management System (RDBMS)
A relational database management system that comes with full C source code, released under the GNU GPL. According to its website, it is as powerful as the complex offerings from Sybase, Oracle and IBM, but was originally written as an educational tool. It's query language is a full implementation of relational algebra. It supports Windows 95/NT, Linux, Solaris, SunOS, HP/UX, AIX, etc.

Diamond C++ Database Library
A C++ database library that is apparently free for non-commercial purposes. It supports a number of systems including various Unices, OS/2, DOS and Windows.