By SD Times News Team
July 15, 2002 —
In the database world, most of the attention is given to the large enterprise-scale database products, such as Oracle's 9iDB, IBM's DB2 and IMS, Microsoft's SQL Server and others. While these large-and expensive-data repositories generally form the backbone of an enterprise's IT infrastructure, smaller databases continue to play a vital role in enterprise software. In most cases, however, programmers create such database capability from scratch, considering that an essential part of the development process. That need not be the case, given the number of excellent small database products on the market, designed specifically for incorporation into specific applications.
Indeed, dozens of software providers, large and small, offer such targeted database products. These products are all shapes and sizes: Some run on .NET, Java or native C/C++. Some are accessed via ANSI-standard SQL, while others use a SQL subset, or offer their own proprietary query language or direct-access APIs. Some databases are commercial products, some are open source, and still others are integrated with IDEs. Some are relational, while others are flat filers. Some run on servers, others on clients. Some are distributed as components or JAR files, while others are packaged as separate executables. Sometimes you get the source code, and sometimes you don't.
Historically, these targeted tools have simply been called "databases," but that term is too broad to be meaningful for this specific product category. Some vendors use the label "embedded database" to mean database functionality integrated into industrial controllers, handheld computers or other nontraditional devices, while others use it more broadly to include all databases built into desktop and server applications. Some companies are using the term "mobile database" to refer to a small-footprint database application. In a word, the terminology is confusing.
To reduce the ambiguity, SD Times recently introduced a new term: application-specific database. An ASDB is a database engine and data store dedicated to a single task, and configured to be accessed by a single application or by a small number of applications running on a single device. While certainly even the largest database products could be used as ASDBs, in most cases an ASDB's binaries would execute on the same machine as its application, and its data store would reside on that machine as well.
What these databases have in common is that they're affordable, fast, have a relatively small memory footprint and are easy to maintain: DBAs need not apply. In fact, many ASDB products lack any post-deployment management capabilities whatsoever; due to the simplicity of the software, and its tight integration with a small number of applications, administration isn't necessary.
Traditionally, when development teams needed local database functionality within an application, someone on the team coded a custom database from scratch. Given the prevalence of affordable, flexible and high-performance ASDB solutions available today, rolling your own local database may no longer be the most cost-effective choice.