In collaboration with others, Tim Bunce began specifying DBI in 1992. As of 2010[update] the Perl community maintains DBI as a CPAN module in accordance with the open source model. DBD (DataBase Driver) modules serve as plug-ins to DBI, allowing programmers to use near-database-independent SQL code in their applications. Programmers can also use the DBI and DBD modules indirectly using one of the object-relational mappers available for Perl, such as DBIx::Class, for more database-independent code with no need to write SQL.
The DBI and DBD Perl packages allow Perl programmers to access many database environments in a standard way. The system implements each supported database environment as a DBD driver, in much the same way that hardware devices from multiple vendors can operate with different CPU platforms. Prospective DBD users can download DBD implementations from the Internet. DBD implementations exist for proprietary products such as IBM DB2, Microsoft SQL Server, Oracle and for free-software databases such as SQLite, PostgreSQL, Firebird and MySQL.