Conoce las diferencias entre DDL, DML, DCL y DQL.
Bases de datos, DBMS y RDBMS
El término base de datos se refiere a un conjunto de datos relacionados con un mismo tema o varios temas relacionados, estructurado para permitir el uso (y actualización) de los datos por aplicaciones de software. La base de datos, además de los datos en sí, debe contener información sobre sus representaciones y las relaciones que los unen.
Un DBMS (Database Management System o Sistema de Gestión de Bases de Datos) es un sistema de software capaz de gestionar una colección de datos compartidos por varias aplicaciones y usuarios. Un DBMS debe:
- Gestionar una gran cantidad de datos.
- Gestionar el intercambio de datos entre diferentes usuarios y aplicaciones.
- Gestionar las transacciones.
- Garantizar la fiabilidad de los datos, es decir, la capacidad de recuperación ante fallos (resiliencia), mecanismos de guardado (backup) y restauración (recovery).
- Ofrecer una “visión estructurada” de los datos según el modelo lógico utilizado.
- Garantizar la privacidad de los datos mediante mecanismos de autorización.
Un RDBMS (Relational Database Management System o Sistema de Gestión de Bases de Datos Relacionales) es un sistema relacional para la gestión de bases de datos, un DBMS basado en el modelo relacional, introducido por Edgar F. Codd. Los requisitos mínimos para que un DBMS pueda llamarse RDBMS son:
- Debe presentar los datos al usuario en forma de relaciones (una presentación en tablas puede satisfacer esta propiedad).
- Debe proporcionar operadores relacionales para manipular los datos en forma tabular.
Lenguaje SQL
SQL (Structured Query Language o Lenguaje de Consulta Estructurado) es un lenguaje creado para acceder a información almacenada en bases de datos. SQL nació en 1974, creado por Donald Chamberlin en los laboratorios de IBM, y su DBMS relacional sigue siendo uno de los más difundidos.
Más detalladamente, SQL es un lenguaje estandarizado para bases de datos basadas en el modelo relacional (RDBMS), diseñado para las siguientes operaciones:
- Crear y modificar esquemas de bases de datos: DDL, Data Definition Language (Lenguaje de Definición de Datos).
- Insertar, modificar y gestionar datos almacenados: DML, Data Manipulation Language (Lenguaje de Manipulación de Datos).
- Consultar los datos almacenados: DQL, Data Query Language (Lenguaje de Consulta de Datos).
- Crear y gestionar herramientas de control y acceso a los datos: DCL, Data Control Language (Lenguaje de Control de Datos).
Estructura SQL
Siendo un lenguaje declarativo, SQL no requiere la escritura de secuencias de operaciones (como los lenguajes imperativos), sino que especifica las propiedades lógicas de la información buscada. Se divide en cuatro subconjuntos:
DDL (Data Definition Language)
DDL sirve para crear, modificar o eliminar objetos en una base de datos. Los comandos DDL definen la estructura de la base de datos y, por lo tanto, de los datos que contiene. No proporciona herramientas para modificar los datos en sí; para ello se utiliza el DML. El usuario debe tener los permisos necesarios para actuar sobre la estructura de la base de datos, y estos permisos se asignan a través del DCL (Data Control Language).
DML (Data Manipulation Language)
DML proporciona los comandos para insertar, modificar, eliminar o leer datos dentro de las tablas de una base de datos. La estructura de estos datos ya debe haber sido definida mediante el DDL. Ejemplos de comandos son SELECT, INSERT, UPDATE, DELETE, etc.
DCL (Data Control Language)
DCL sirve para otorgar o revocar a los usuarios los permisos necesarios para utilizar los comandos DML y DDL, además de los propios comandos DCL (que sirven para modificar los permisos sobre algunos objetos).
DQL (Data Query Language)
DQL sirve para crear consultas en bases de datos y sistemas de información, permitiendo la extracción de información de la base de datos interactuando con el usuario y sus peticiones de servicio.
Operadores SQL
Finalmente, los operadores proporcionados por el estándar SQL se dividen en cuatro categorías:
- Operadores de comparación
- Operadores aritméticos
- Operadores condicionales
- Operadores lógicos
Diferencia entre DDL, DML, DCL y DQL
Recapitulando, en informática, SQL (Structured Query Language) es un lenguaje estandarizado para bases de datos basadas en el modelo relacional (RDBMS) que incluye un conjunto de lenguajes:
DDL (Data Definition Language)
Permite crear, modificar o eliminar objetos en una base de datos, es decir, actuar sobre el esquema de la base de datos. Por ejemplo, los comandos CREATE TABLE…, DROP TABLE…, etc.
DML (Data Manipulation Language)
Permite leer, insertar, modificar o eliminar datos en una base de datos. Por ejemplo, los comandos INSERT INTO…, DELETE FROM…, etc.
DCL (Data Control Language)
Se utiliza para otorgar o revocar a los usuarios los permisos necesarios para utilizar los comandos DML y DDL, además de los propios comandos DCL (que sirven para modificar los permisos sobre algunos objetos). Por ejemplo, los comandos GRANT… ON… TO…, etc.
DQL (Data Query Language)
Se utiliza para crear consultas en bases de datos y sistemas de información por parte de los usuarios. Sirve para permitir la extracción de información de la base de datos interrogando la base de datos e interactuando con el usuario y sus peticiones de servicio. Por ejemplo, los comandos SELECT… FROM… WHERE…, etc.