Documento de Universidad sobre Lenguajes para la definición y manipulación de datos en sistemas de bases de relacionales. El Pdf explora los lenguajes LDD y LMD, analizando SQL, QBE y Quel, con foco en la estructura, restricciones de integridad y control de transacciones en SQL, útil para Informática.
Ver más8 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
Las bases de datos requieren herramientas para definir su estructura y gestionar la información almacenada. La definición de datos permite establecer los elementos que integran la base de datos, sus relaciones y restricciones de integridad, mientras que la manipulación de datos facilita la consulta y actualización de la información. Para ello, existen lenguajes específicos, como el Lenguaje de Definición de Datos (LDD) y el Lenguaje de Manipulación de Datos (LMD).
En el ámbito relacional, estos lenguajes pueden expresarse mediante el álgebra y cálculo relacional, aunque los sistemas comerciales requieren herramientas más accesibles. Entre ellas destacan SQL, el estándar más utilizado, así como QBE y Quel, que también han tenido influencia en el desarrollo de bases de datos comerciales.
Los sistemas de bases de datos utilizan dos tipos de lenguajes: uno para definir el esquema y otro para gestionar consultas y actualizaciones. La definición del esquema se realiza a través del Lenguaje de Definición de Datos (LDD o DDL, en inglés), que permite especificar la estructura de almacenamiento y los métodos de acceso. Dentro del LDD, existe un tipo especial denominado lenguaje de almacenamiento y definición de datos, encargado de detallar la implementación del esquema en el sistema. Por otro lado, la manipulación de datos, que abarca la recuperación, inserción, eliminación y modificaciónde la información, se lleva a cabo mediante el Lenguaje de Manipulación de Datos (LMD o DML, en inglés).
La definición de datos se realiza en distintos niveles. A nivel interno, se especifica el espacio de almacenamiento y la representación de los datos. En niveles superiores, se definen entidades, atributos, relaciones, vistas y autorizaciones de acceso. Para ello, se usa el Lenguaje de Definición de Datos (LDD o DDL, en inglés), que establece la estructura lógica, restricciones de integridad y vistas de usuario. Su compilación genera un diccionario de datos, que almacena metadatos y se consulta antes de acceder o modificar la información.
La manipulación de datos sigue los tres niveles de abstracción. A nivel físico, se diseñan algoritmos para un acceso eficiente, mientras que en niveles superiores se prioriza la facilidad de uso y la interacción con el sistema.
El Lenguaje de Manipulación de Datos (LMD o DML, en inglés) permite acceder y modificar los datos según el modelo de datos utilizado. Existen dos tipos:
Los sistemas comerciales de bases de datos relacionales combinan elementos de lenguajes procedimentales y no procedimentales, basándose en lenguajes formales más rígidos y estructurados. Entre estos se encuentran:
El álgebra relacional proporciona operaciones explícitas para construir relaciones, mientras que el cálculo relacional se enfoca en describirlas sin indicar procedimientos específicos. Aunque presentan enfoques distintos, ambos son equivalentes, ya que cada expresión en álgebra tiene una correspondencia en cálculo y viceversa.
En los sistemas comerciales, los lenguajes relacionales se basan en estas dos aproximaciones. El más influyente es SQL (Structured Query Language), que se estudia en profundidad. Otros lenguajes relevantes incluyen QBE (Query by Example), basado en el cálculo relacional de dominios, y Quel, basado en el cálculo relacional de tuplas. Estos lenguajes han influido en el desarrollo de sistemas comerciales y, al igual que SQL, permiten definir estructuras de datos, modificar información y establecer restricciones de seguridad.
QBE es tanto un lenguaje de manipulación de datos como un sistema de base de datos desarrollado por IBM en los años 70. Actualmente, algunos sistemas para ordenadores personales incluyen variantes de este lenguaje.
Sus dos características principales son:
A pesar de su enfoque particular, QBE es equivalente al cálculo relacional de dominios. Las consultas se realizan a través de esqueletos de tablas, donde el usuario rellena filas con constantes y variables de dominio. En QBE, las variables de dominio llevan un guion bajo (_) como prefijo, mientras que las constantes se escriben sin comillas, a diferencia de otros lenguajes.
Quel fue el lenguaje de consultas del sistema de base de datos Ingres, desarrollado en la Universidad de California en Berkeley. Su estructura se basa en el cálculo relacional de tuplas, y sus consultas se construyen con tres cláusulas principales:
Las consultas en Quel siguen la sintaxis:
range of t1 is r1 range of t2 is r2 retrieve (t1.A1, t2.A2, ... ) where P
donde t.A representa el valor del atributo A de una tupla t.
A diferencia de SQL, Quel no admite operaciones del álgebra relacional como intersección, unión y diferencia, ni permite subconsultas anidadas. Aunque estas limitaciones no afectan su poder expresivo, pueden hacer que algunas consultas sean más complejas de formular.
El Structured Query Language (SQL) es el lenguaje estándar para la gestión de bases de datos relacionales. Su funcionalidad abarca tanto la manipulación de datos como la definición de estructuras y restricciones, además de proporcionar mecanismos para el control de transacciones.
Desde su creación, SQL ha evolucionado considerablemente, desarrollando diferentes estándares para garantizar la interoperabilidad entre distintos sistemas. Versiones como SQL-92, SQL-99 y SQL-2016 han introducido mejoras significativas, incluyendo el soporte para bases de datos distribuidas, la integración con lenguajes de programación, la capacidad de manejar grandes volúmenes de datos y la optimización de consultas complejas.
Las bases de datos modernas utilizan motores SQL avanzados que incluyen optimizadores de consultas, ejecución paralela y técnicas de indexación avanzadas para mejorar el rendimiento. Además, la integración de SQL con Big Data y NoSQL ha permitido ampliar su uso en entornos de análisis de datos y computación en la nube.
El Lenguaje de Manipulación de Datos (LMD) en SQL permite realizar consultas y modificaciones sobre la información almacenada en una base de datos relacional. Se basa en el álgebra relacional, proporcionando operaciones para recuperar, insertar, actualizar y eliminar datos.
Las consultas en SQL se estructuran en tres cláusulas principales:
Si WHERE se omite, se devuelven todas las filas de las tablas indicadas en FROM. SQL ejecuta la consulta formando el producto cartesiano de las tablas en FROM, aplicando luego los filtros de WHERE y finalmente seleccionando los atributos indicados en SELECT.
SQL permite eliminar duplicados en los resultados con DISTINCT o mantenerlos con ALL. También permite seleccionar todos los atributos con *. Se pueden utilizar expresiones aritméticas y funciones sobre los atributos seleccionados.
En WHERE, se pueden definir condiciones con operadores de comparación (=, <, >, <= , >=, <>), operadores lógicos (AND, OR, NOT) y operadores especiales como BETWEEN para rangos, LIKE para patrones de texto y IN para listas de valores.
Para ordenar los resultados, se usa ORDER BY, que por defecto ordena de manera ascendente (ASC), aunque se puede cambiar a descendente (DESC). SQL también permite operaciones sobre cadenas con funciones como concatenación, conversión de mayúsculas/minúsculas y extracción de subcadenas.
SQL soporta operaciones de conjuntos basadas en el álgebra relacional:
Las funciones de agregación permiten operar sobre un conjunto de valores:
Se pueden agrupar datos con GROUP BY y aplicar filtros sobre los grupos con HAVING, lo que permite realizar cálculos sobre subconjuntos de datos.
SQL permite realizar subconsultas dentro de consultas, lo que facilita la verificación de pertenencia a conjuntos (IN, NOT IN), comparación de valores (SOME, ALL), comprobación de existencia (EXISTS, NOT EXISTS) y verificación de duplicados (UNIQUE, NOT UNIQUE).
Las consultas pueden combinar datos de múltiples tablas usando diferentes tipos de JOIN:
SQL permite modificar datos mediante:
Las modificaciones pueden combinarse con subconsultas para insertar o actualizar datos dinámicamente.