Perl DBI (Perl Database Interface) este o modalitate standardizată de a încorpora comunicarea bazei de date în programele scrise în limbajul de programare Perl [1] . Modulul Perl DBI este găzduit de CPAN și poate rula pe o serie de sisteme de operare acceptate de limbaj.
În septembrie 1992, Buzz Moschetti, creatorul interperl, a observat că existau mai multe extensii perl compilate personalizat (versiunea perl 4 sau mai frecvent perl4 la acea vreme) care permiteau conectarea la baze de date populare bazate pe SQL, și anume Interbase , Informix , Oracle . și Sybase . El a implicat autorii acestor module personalizate [2] în proiectul de creare a unui strat comun de interfață pentru baze de date, independent de specificul implementărilor subiacente. Tim Bunce a preluat conducerea și a elaborat specificația inițială care a devenit în cele din urmă modulul DBI în 1994 odată cu lansarea perl5 [3] . Din 2010, comunitatea Perl a susținut DBI ca modul CPAN, urmând modelul open source. Modulele DBD (driver de bază de date) sunt folosite ca plug-in-uri pentru DBI, permițând programatorilor să folosească cod SQL aproape independent de baze de date în aplicațiile lor. De asemenea, programatorii pot folosi modulele DBI și DBD indirect, folosind unul dintre modulele ORM disponibile pentru Perl, cum ar fi DBIx::Class, pentru mai mult cod independent de baze de date, fără a fi nevoie să scrie SQL.
Pachetele Perl DBI și DBD permit programatorilor Perl să acceseze multe RDBMS într-un mod standard [4] . Sistemul implementează suport pentru fiecare dintre SGBD folosind driverul DBD [1] , în același mod în care caracteristicile de lucru cu dispozitive hardware din aceeași clasă de la diferiți furnizori sunt implementate în sistemul de operare folosind driverul de dispozitiv. Utilizatorii potențiali DBD pot descărca implementări DBD pentru un anumit DBMS de pe Internet. Implementări DBD există pentru produse proprietare, cum ar fi IBM Db2, Microsoft SQL Server, Oracle și pentru baze de date open source, cum ar fi SQLite, PostgreSQL, Firebird și MySQL.
PHP 5 are o interfață similară numită PHP Data Objects (PDO) [5] . Java Database Connectivity ( JDBC ) este, de asemenea, similară ca funcționalitate cu DBI.