A database management system (DBMS) is a set of computer programs that controls the organization, storage, management and retrieval of data in a database. It consists of several components including a DBMS engine that converts logical requests into physical operations, data definition and manipulation subsystems that help users add, change and delete data, and an application generation subsystem that helps develop data-intensive applications. Common DBMS models include hierarchical, network, relational, multidimensional and object-oriented models. Key DBMS capabilities include querying, backup and replication, rule enforcement, security, computation, logging and optimization.