Introducción
Tras conocer los esquemas de relación y depurado del diseño de bases de datos se hace necesario entender cómo se hace la implementación física de una base de datos. Para tal fin se recurre al lenguaje estructurado de consultas, comúnmente conocido como SQL (structured query language).
Este lenguaje se divide en diferentes tipos de comandos que no solo permiten la creación de una base de datos en un sistema de gestión de base de datos determinado, sino que además permite la manipulación de los datos mediante la incorporación de comandos para agregar, modificar o borrar datos, de acuerdo con los requerimientos de procesamiento.
Para finalizar, en esta unidad se expondrá una de las actividades más importantes y realizadas con las bases de datos: la consulta. Esta se realiza a través de comandos que se fundamentan en el álgebra relacional y que tienen diferentes niveles de complejidad.
Objetivos
Propósito general
Implementar bases de datos de acuerdo con el modelo relacional definido, el lenguaje estructurado de consultas y las características del sistema de gestión de base de datos a utilizar.
Propósitos específicos
- Conocer y aplicar los comandos que permiten la creación de esquemas de relación en una base de datos.
- Identificar y utilizar los comandos que permiten agregar, modificar o eliminar datos en una base de datos.
- Formular diferentes operaciones de consulta en una base de datos según los requerimientos establecidos.
Lenguaje de definición de datos
El lenguaje estructurado de consultas (SQL) fue desarrollado por Donald D. Chamberlin y Raymond F. Boyce. Inicialmente fue denominado SEQUEL y sirvió de base para la creación de Oracle y otros sistemas.
La primera categoría del lenguaje estructurado de consultas agrupa los comandos que permiten crear, modificar y borrar objetos de las bases de datos. Estos comandos son «CREATE», «ALTER» y «DROP» y se utilizan para construir la base de datos, las tablas, los índices y, en general, todos los objetos que constituyan la base de datos. De igual manera, permiten la modificación de estas estructuras, en caso de ser necesario, y finamente, su eliminación.
El lenguaje SQL fue adoptado como estándar por la ANSI, en 1986 y por la ISO, en 1987. Ha tenido varias revisiones en las que le han agregado funcionalidades de acuerdo con la evolución de los lenguajes de programación y las tecnologías emergentes. La última actualización se realizó en 2008 (Wikipedia, 2017).
Lenguaje de definición de datos
Definición de esquemas de relación
El primer paso en la implementación del modelo físico de los datos es la creación de la base de datos. Para realizar esta actividad se introduce el primer comando de SQL a trabajar en esta unidad: el comando CREATE, el cual va acompañado del tipo de objeto a crear —que en este caso es la base de datos o contenedor principal— y por eso va acompañado de la cláusula DATABASE. Por último se pone el nombre que va a recibir el objeto.
De acuerdo con lo anterior, la sintaxis básica para crear una base de datos es:
CREATE DATABASE [Nombre_de_la_base de datos];
Aplicando la sintaxis anterior para el modelo relacional que se presenta a la derecha, se obtiene como sentencia de creación de esta base de datos:
CREATE DATABASE GestiónProyecto;
La cual se va a denominar GestiónProyecto. En el siguiente documento se explica la forma en que se crean las tablas en el modelo relacional. Haga clic sobre el enlace para acceder al contenido.
Lenguaje de definición de datos
Incorporación de restricciones de integridad
El modelo relacional determina que cada tabla de la base de datos debe tener un campo que permita identificar de manera única cada registro de datos de dicha tabla. Este campo es denominado clave primaria, llave principal o campo clave de la tabla, por lo tanto se debe indicar cuál de los campos se va a constituir en la llave primaria para lo cual se utiliza la cláusula PRIMARY KEY al lado del campo seleccionado.
Otra restricción inherentemente a la sentencia de creación de la tabla es la de valores obligatorios, por lo cual se debe establecer al lado de cada uno de los campos las cláusulas NULL o NOT NULL. La primera de ellas (NULL) indica que puede ser opcional, mientras que la segunda (NOT NULL) indica que es obligatorio proporcionar el campo. Si no indica nada, el sistema asume por defecto que los campos son opcionales.
Haga clic sobre el enlace para conocer los pasos para construir una relación entre tablas.
Lenguaje de definición de datos
Modificación de esquemas de relación
Aun cuando el diccionario de datos proporciona una referencia detallada de la estructura de las tablas es posible que al momento de crearlas se haya olvidado algún campo o restricción, o que a partir del análisis de rendimiento se haya decidido modificar de alguna forma la estructura de la base de datos.
En tal sentido, el comando ALTER permite alterar la estructura de la tabla, bien sea agregando, eliminando o alterando campos o restricciones.
Continuando con el ejemplo de una base de datos para gestión de proyectos y para facilitar la comprensión de las posibles variaciones de sintaxis, se consideran las siguientes restricciones:
- Se ha decidido incorporar un campo denominado «fecha de finalización del proyecto».
- Se determinó que manejar tres estados para el proyecto era insuficiente, por lo cual se decidió eliminar el campo «estado» y colocar en su lugar un nuevo campo que identifique el estado y lo relacione con una nueva tabla denominada «estados».
En la siguiente interactividad se detallan los diferentes usos del comando ALTER. Haga clic sobre el enlace para acceder al contenido.
Lenguaje de definición de datos
Creación de índices
Un índice es un objeto de la base de datos que guarda información que permite realizar procesos de ordenamiento y consulta de manera más rápida.
Debido a la cantidad de datos que se pueden llegar a tener en una tabla existen mecanismos que permiten su rápida localización, sin que sea necesario hacer un recorrido secuencial por todas las filas que componen la tabla.
Los índices son estructuras de datos que se almacenan como árboles B, B+ o B*, mientras que la información que almacenan corresponde a la ubicación de las filas de datos, por lo tanto requieren un espacio de almacenamiento mucho menor que el de la tabla.
Cada vez que se establece una llave primaria o restricción de unicidad se crea automáticamente un índice, pues debe existir algún medio para determinar si el dato a insertar está repetido o no. Como no sería óptimo tener que recorrer toda la tabla para comparar si ya existe ese dato se utiliza el índice como medio rápido para identificar la existencia o no de un dato en una PRIMARY KEY o en un campo de tipo UNIQUE.
Por otro lado, si existen campos que vayan a utilizarse frecuentemente como base de ordenamiento o consulta es posible crear un índice que facilite esta tarea.
Haga clic sobre el enlace para conocer la sintaxis de creación de un índice.
Lenguaje de definición de datos
Eliminación de esquemas de relación
Así como es posible crear nuevas estructuras de datos en una base de datos, también es posible borrarlas. En consecuencia, el comando que proporciona el lenguaje estructurado de consultas (SQL) para esto es: DROP, el cual permite eliminar diferentes objetos de la base de datos.
Antes de eliminar una tabla es importante verificar estos aspectos:
- También se eliminarán los datos que posee la tabla.
- No debe ser una tabla referenciada por otra en una relación.
En el primer caso es necesario considerar el hecho de que los datos que posee la tabla se perderán permanentemente. En el segundo caso, se debe tener en cuenta que si, definitivamente, se requiere eliminar la tabla se debe eliminar inicialmente el comando CONSTRAINT (restricción) que representa esta relación, y luego sí podrá ser eliminada la tabla.
Haga clic sobre el enlace para conocer la sintaxis para borrar una tabla.
Lenguaje de modificación de datos
La segunda categoría del lenguaje estructurado de consultas (SQL) es la que se denomina data manipulation language (DML), lo cual se traduce como lenguaje de manipulación de datos.
En esta segunda categoría se encuentran los comandos que permiten agregar nuevas filas de datos a las tablas, modificar los datos ya existentes, borrar filas de datos y consultar los datos.
Actividad de aprendizaje
![]() |
Haga clic sobre el enlace para acceder a una actividad que le permitirá poner en práctica los conocimientos adquiridos hasta este punto. |
Lenguaje de modificación de datos
Inserción de tuplas de datos
Una de las primeras operaciones a realizar tras construir las tablas es la inserción de datos en ellas, lo que comúnmente se denomina poblamiento de las tablas. El comando que permite realizar esta acción es INSERT INTO, en el cual se especifican, entre otros, la tabla y los campos a poblar de datos, así como los valores que serán agregados a ella.
La sintaxis del comando INSERT INTO es:
INSERT INTO nombre_tabla (lista de campos…)
VALUES (lista de valores)
Haga clic sobre el enlace para acceder a una interactividad que explica los principales aspectos a tener en cuenta para insertar tuplas.
Lenguaje de modificación de datos
Modificación de datos
Otra de las operaciones a realizar como parte del mantenimiento de una base de datos es la modificación de la misma. Para tal fin es posible que se requiera introducir un valor de datos en un campo vacío o simplemente cambiar el valor de un dato a partir de una formula o una actualización de datos.
El comando que permite realizar esta operación se denomina UPDATE y también permite especificar la tabla a la que se le realizará la modificación, los nuevos valores a incorporar y la selección de la fila o filas que deben asumir este cambio.
La sintaxis del comando de actualización es:
UPDATE nombre_tabla
SET Campo = nuevovalor (,campo2=nuevovalor ,…)
WHERE condición
En este caso, la condición cumple un papel muy importante, pues permite establecer un filtro que determina a cuáles filas de la tabla se les realizará el cambio. Haga clic sobre el enlace para ver un ejemplo del uso de esta condición.
Operadores condicionales
En la siguiente interactividad se exponen los operadores condicionales que permiten modificar los datos en una base de datos.
Lenguaje de modificación de datos
Borrado de tuplas de datos
Para eliminar filas de datos se utiliza el comando DELETE. Este comando no hace eliminaciones parciales, sino que borra por completo una o varias filas, por lo que se recomienda saber exactamente qué filas se desea eliminar.
La sintaxis para borrar filas de datos es:
DELETE FROM nombre_tabla
WHERE condición
Haga clic sobre el enlace para conocer el proceso mediante el cual se borran filas de datos por medio del comando DELETE.
Consulta de datos
Aun cuando la consulta de datos hace parte del lenguaje de manipulación de datos (DML), se dedicará una sección particular para explicar su uso y los conceptos que se relacionan con este comando, pues es uno de los más utilizados en los procesos de creación y administración de bases de datos.
Las consultas de datos utilizan la estructura conceptual del álgebra relacional y permiten constituir nuevos conjuntos de datos a partir de las relaciones y condiciones que se pueden establecer entre las tablas. SELECT es entonces el comando que se utilizará, con todas sus variaciones, en los apartados de esta sección.
Consulta de datos
Algebra relacional
Las operaciones básicas del álgebra relacional son:
- selección;
- proyección;
- unión;
- diferencia, y
- producto.
Mientras que las operaciones no básicas o derivadas son:
- intersección;
- unión natural, y
- división.
Todas estas operaciones se representan con letras del alfabeto griego y poseen una notación particular. Haga clic sobre el enlace para conocer en detalle las operaciones del álgebra relacional.
Consulta de datos
Consultas simples
Se denominan consultas simples a las que se realizan en una sola tabla, es decir que la información a consultar se encuentra almacenada en la misma tabla. Haga clic sobre el enlace para ver los tres primeros casos en los que se aplica la sintaxis básica de una consulta simple.
En la lista de selección de campos es posible incluir fórmulas que incluyan operadores matemáticos básicos o funciones dadas por el SGBD. En estos casos los campos resultantes no tienen un título de columna asignado, por lo que se recomienda asignarles un nombre a través de la cláusula AS.
Haga clic sobre el enlace para conocer otros casos de sintaxis de consultas simples.
Consulta de datos
Consultas multitabla
Aun cuando en la explicación del álgebra relacional ya se indicaron algunas de las posibles operaciones a realizar entre tablas, en esta sección se presenta la combinación de tablas, que es el método más eficiente para realizar consultas en varias tablas de acuerdo con la cantidad de operaciones que el servidor debe realizar para obtener los datos.
Existen tres tipos de consultas multitabla:
Consulta de Datos
Consultas de resumen
En general, al realizar las consultas en las tablas se obtienen listas con las tuplas de resultados de acuerdo con las sentencias definidas; sin embargo, la gran cantidad de datos que se pueden llegar a obtener no siempre facilita su análisis o interpretación.
Es por esto que en las consultas se incluye la posibilidad de aplicar funciones que permitan calcular ciertas cifras en un grupo determinado de datos. A estas funciones se les denomina funciones de grupo, haga clic sobre el enlace para conocerlas en detalle.
Una vez descritas y expuestas las funciones de grupo, lo invitamos a ver el siguiente documento en el que se presentan ejemplos de su uso.
Consulta de datos
Subconsultas
Se denomina subconsultas a aquellas consultas que se incluyen al interior de otra consulta. Las subconsultas pueden estar ubicadas en la lista de selección, como origen de datos o como parte de una condición.
Estas consultas no tienen modificaciones en cuanto a su sintaxis, pero tienen algunas restricciones, como no poder incluir la cláusula ORDER BY o que se restrinja su uso en ciertas posiciones, dependiendo del número de datos que retorne.
Cuando una subconsulta se aloja en la lista de selección debe retornar un único dato, de otra manera no se permitirá su inclusión. La sintaxis para este caso es:
SELECT <lista de campos>, (SELECT campo FROM Tabla . . .)
FROM Tabla
WHERE condición
Haga clic sobre el enlace para ver un ejemplo de aplicación de una subconsulta.
Actividad de aprendizaje
![]() |
Antes de terminar con esta unidad, le proponemos hacer el siguiente videotest, que le permitirá aplicar los conocimientos adquiridos hasta el momento. Haga clic sobre el enlace para acceder al contenido. |
Resumen
El lenguaje estructurado de consultas (SQL) fue desarrollado por la IBM y posteriormente estandarizado para los sistemas de gestión de bases de datos que utilizan el modelo relacional.
El lenguaje se encuentra dividido en categorías. La primera de ellas es el lenguaje de definición de datos (DDL), que agrupa los comandos que permiten crear, modificar y borrar objetos en las bases de datos.
Estos comandos son CREATE, ALTER y DROP, y se utilizan para construir la base de datos, las tablas, los índices y, en general, todos los objetos que constituyan la base de datos. Adicionalmente permiten la modificación de estas estructuras, en caso de ser necesario, así como su eliminación.
La segunda categoría del SQL es el lenguaje de manipulación de datos (DML), en el cual se encuentran los comandos INSERT, UPDATE, DELETE, y SELECT, que permiten agregar nuevas filas de datos a las tablas, modificar los datos ya existentes, borrar filas de datos y consultar los datos.
Algunos de estos comandos están basados en el álgebra relacional, que es un conjunto de operaciones diseñadas para especificar nuevas relaciones y operaciones entre los datos.
Caso de estudio: unidad de fisioterapia
El siguiente caso le permitirá poner en práctica los conocimientos adquiridos en esta unidad, mediante la solución de un problema cotidiano. Haga clic sobre el enlace para acceder al contenido.
Bibliografía ()
- Elmasri, R. (2011). Fundamentos de sistemas de bases de datos. 5.ª ed. Madrid, España: Pearson.
- Oppel, A. (2010). Fundamentos de bases de datos. México: McGraw-Hill.
- Oppel, A., y otros. (2010). Fundamentos de SQL. México: McGraw-Hill.
- Ramakrishnan, R. (2007). Sistemas de Gestión de Bases de Datos. 3.ª ed. México: Pearson.
- Ricardo, C. (2009). Bases de datos. México: McGraw-Hill.
- Silberschatz, A. (2005). Fundamentos de bases de datos. 5.ª ed. Madrid, España: McGraw-Hill.
Referencias Web
- Ahsmann, M. (2011). Amsterdam 65 IBM building. [Fotografía]. Recuperado de: https://goo.gl/NkKyUC.
- Diccionario Actual. (2017). ¿Qué es alfanumérico?. Recuperado de: https://goo.gl/q9PNKo.
- Donahoo, M. J., y Speegle, G. D. (2005). Sql: practical guide for developers. pp. 47-51. Recuperado de: https://goo.gl/CaQaNa.
- IBM Corporation. (S. f.). Dictionary of IBM & Computing Terminology. Recuperado de: https://goo.gl/W6uaKo.
- Oracle. 2017. MySQL 5.7 Reference Manual. Recuperado de: https://goo.gl/6nK32M.
- Wikipedia. (2017). Árbol B. Recuperado de: https://goo.gl/dwsZHB.
- Wikipedia. (2017). SQL. Recuperado de: https://goo.gl/h9A3Ig.








