Data storage, indexing, and retrieval have long been crucial tasks of many large organizations such as governments, banks, hospitals, and libraries. As human societies have grown increasingly complex, data management requirements have also increased. Some of the new challenges include the complexity of what the data represents, how the data is used, and the sheer volume of data. Since the development of modern electronic computers in the latter half of the twentieth century, tools such as relational database management systems (RDBMS) and the Structured Query Language (SQL) have become standards that are widely used for data handling in many different types of organizations.
In a typical organization, many different users need to access the data management system, and hence many database applications are server based. They can be combined with other server-based technologies, often called enterprise technologies, such as web servers, web services, and remote computing heterogeneous architectures.
At the current time, there are many different database systems. These range from large-scale, expensive commercial applications that are suitable for high-end uses to freely available open-source tools running on personal computers with operating systems such as Microsoft Windows or Linux.
Mathematica contains a large collection of functions for numerical and symbolic computation that can be applied to data taken from a database. After the computations have been completed, the results can be stored in a database application, allowing Mathematica to work on the results at a later time. Mathematica might be used for statistical processing, modeling, or computing some optimal configuration. All of these computations typically require and produce data that can conveniently be stored in a database application.
Database applications can be integrated with many other application types, providing an important form of interoperability. Data derived from one application can be stored in the database. Then, elements of this data can be retrieved by Mathematica, used for computation, and the results stored in the database. Finally, another application can extract these results and use them for some further purpose. The central database application is the hub of this computational network; its interaction with Mathematica is made possible by DatabaseLink.
- Connectivity-works with most standard SQL database applications and with databases that are local and network based (including different types of computers).
- The HSQL Database Engine (HSQLDB)-a lightweight database useful for database applications if you do not have an existing database.
- Supplied drivers-built-in support for many important databases, including MySQL, PostgreSQL, Open Database Connectivity (ODBC), and HSQLDB.
- GUI interfaces-the Database Explorer and the Connection Tool provide convenient tools for opening connections and querying the database.
- Access to data and metadata-you can inspect the names of tables and columns, as well as the data in each entry.
- Configurable-common tasks can be simplified and Mathematica applications can add their own database information.
- Data type support-works with standard SQL data types, including numbers, strings, binary data, date and time, and Mathematica expressions.
- Support for advanced features-such as multiple connections and transactions (including rollbacks and savepoints).
DatabaseLink is based on the commonly used Java database connectivity (JDBC) technology, java.sun.com/products/jdbc. The package makes extensive use of the Mathematica Java toolkit J/Link, (www.wolfram.com/solutions/mathlink/jlink), though no Java programming is required. The Database Explorer uses the Mathematica graphical user interface toolkit GUIKit, www.wolfram.com/solutions/guikit.
DatabaseLink comes with a selection of drivers for a number of databases. If it does not include a driver for your database, you can install your own driver, as described in "Database Connections: JDBC Connections".