bibsql and bibtosql:
BibTeX interfaces to
Structured Query Language (SQL)
relational databases

Last updates: Thu Jul 23 17:13:25 2009    Thu Mar 25 11:50:54 2010    Fri Mar 18 12:51:36 2011    Mon Jun 24 08:03:25 2013    Tue Oct 21 12:24:01 2014    Sat Dec 29 11:47:55 2018    Sat Jan 19 17:48:34 2019    Sat Feb 9 08:48:35 2019 Valid HTML 3.2!

This package is available in several functionally-equivalent distribution formats with identical contents: .jar (Java archive), .shar (Unix shar archive), .shar.bz2 (bzip2'ed Unix shar archive), .shar.gz (gzipped Unix shar archive), .shar.xz (xz'ed Unix shar archive), .tar.bz2 (bzip2'ed UNIX tar archive), .tar.gz (gzipped UNIX tar archive), .tar.xz (xz'ed UNIX tar archive), .zip (InfoZip), and .zoo (zoo), together with companion contents listings ending in -lst. Each unpacks into a subdirectory named by the basename of the distribution file, e.g., bibsql-0.00.

On a machine in a nearby building, the downloads, installation, and first successful search took less than 30 seconds with these steps:

    wget http://www.math.utah.edu/pub/bibsql/bibsql-0.09.tar.xz
    tar xf bibsql-0.09.tar.xz
    cd bibsql-0.09
    ./configure && make all check install
    cd ..
    wget http://www.math.utah.edu/pub/tex/bib/history-journals.db
    bibsql -d history-journals
    sqlite> select count(*) from bibtab;
    226482

Prerequisites:

Except possibly for very large collections of data (millions of BibTeX entries), the simplest approach is to use SQLite3, a highly-portable public-domain SQL database system that requires only a single platform-independent database file.