## data manipulation language 

See DML. 

## data warehouse 

 A database system or application that primarily runs large queries . The read-only or read-mostly data might be organized in denormalized  form for query efficiency. Can benefit from the optimizations for read-only transactions  in MySQL 5.6 and higher. Contrast with OLTP . See Also denormalized, OLTP, query, read-only transaction. 

## database 

 Within the MySQL data directory , each database is represented by a separate directory. The InnoDB system tablespace , which can hold table data from multiple databases within a MySQL instance , is kept in data files that reside outside of individual database directories. When file-per-table  mode is enabled, the .ibd files representing individual InnoDB tables are stored inside the database directories unless created elsewhere using the DATA DIRECTORY  clause. General tablespaces, introduced in MySQL 5.7.6, also hold table data in .ibd files . Unlike file-per-table .ibd files , general tablespace .ibd files  can hold table data from multiple databases within a MySQL instance , and can be assigned to directories relative to or independent of the MySQL data directory. 

For long-time MySQL users, a database is a familiar notion. Users coming from an Oracle Database background may find that the MySQL meaning of a database is closer to what Oracle Database calls a schema . See Also data files, file-per-table, .ibd file, instance, schema, system tablespace. 

## DCL 

 Data control language, a set of SQL  statements for managing privileges. In MySQL, consists of the GRANT  and REVOKE  statements. Contrast with DDL  and DML . See Also DDL, DML, SQL. 

## DDEX provider 

 A feature that lets you use the data design tools within Visual Studio  to manipulate the schema and objects within a MySQL database. For MySQL applications using Connector/NET , the MySQL Visual Studio Plugin acts as a DDEX provider with MySQL 5.0 and later. See Also Visual Studio. 

## DDL 

 Data definition language, a set of SQL  statements for manipulating the database itself rather than individual table rows. Includes all forms of the CREATE , ALTER , and DROP  statements. Also includes the TRUNCATE  statement, because it works differently than a DELETE FROM table_name  statement, even though the ultimate effect is similar. 

DDL statements automatically commit  the current transaction ; they cannot be rolled back . 

The InnoDB  online DDL feature enhances performance for CREATE INDEX , DROP INDEX , and many types of ALTER TABLE  operations. See Section 15.12, “InnoDB and Online DDL”  for more information. Also, the InnoDB file-per-table setting can affect the behavior of DROP TABLE  and TRUNCATE TABLE  operations. 

Contrast with DML  and DCL . See Also commit, DCL, DML, file-per-table, rollback, SQL, transaction. 

## deadlock 

 A situation where different transactions  are unable to proceed, because each holds a lock  that the other needs. Because both transactions are waiting for a resource to become available, neither one ever releases the locks it holds. 

A deadlock can occur when the transactions lock rows in multiple tables (through statements such as UPDATE or SELECT ... FOR UPDATE ), but in the opposite order. A deadlock can also occur when such statements 

