Un lenguaje de definición de datos es un lenguaje de programación o scripting que define una estructura de datos. Por definición, estos lenguajes deben hacer tres cosas: crear, eliminar y modificar estructuras de datos. Lo que hagan fuera de esas tres áreas es irrelevante, siempre que realicen esas tres tareas. Cualquier lenguaje puede ser un lenguaje de definición de datos, pero el término se aplica más comúnmente a los esquemas de lenguaje de consulta estructurado (SQL) y lenguaje de marcado extensible (XML).
Cuando se empezó a utilizar el término lenguaje de definición de datos, se aplicó a un modelo elaborado por la Conferencia para lenguajes de sistemas de datos (Codasyl). El proceso definió dos áreas principales del desarrollo de la estructura de datos: el lenguaje de definición de datos hizo la estructura real de la base de datos y el lenguaje de manipulación de datos definió los métodos para colocar los datos en la estructura. Desde entonces, estos dos términos se han expandido y se han convertido en términos genéricos para los procesos que cubren.
Los términos genéricos ahora se aplican a cualquier idioma que realice sus funciones originales. Tanto SQL como XML realizan todas las tareas necesarias y proporcionan muchas características que estaban ausentes del modelo original porque aún no se habían inventado. Otros lenguajes también proporcionan estas capacidades; simplemente se usan con mucha menos frecuencia.
Para ser un lenguaje de definición de datos, el lenguaje debe proporcionar tres funciones. La primera función principal es la construcción de estructuras de datos; Básicamente, se trata de tablas diseñadas para contener grupos específicos de información. A menudo aparecen como una hoja de cálculo, conteniendo páginas de información con referencias cruzadas. Por ejemplo, la hoja puede tener una lista de los clientes de una empresa en un lado y una lista de productos disponibles en la parte superior. La hoja tendría una lista de cuándo esos clientes compraron productos individuales en la parte de la mesa.
La siguiente función principal es la eliminación de estructuras de datos. Esto no es lo mismo que borrar una base de datos o un archivo completo; es un proceso mucho más selectivo. Puede eliminar una página específica de información o una parte completa de una matriz multidimensional. En cualquier caso, los datos deben eliminarse sin afectar a otras estructuras de datos, incluso si están todos en el mismo archivo.
La última función principal es la alteración de una estructura de datos. Esta es una categoría amplia que cubre muchas situaciones. Una tabla puede tener columnas agregadas o renombradas, o una base de datos completa puede necesitar ser dividida en dos bases de datos diferentes. En cualquier situación, deben modificarse de manera que no se pierda, destruya o cree información durante el proceso. Esto evita que ingrese información anómala en el sistema de datos.