01 Nov
Implementación de Consultas SQL y Fundamentos de Bases de Datos
A continuación, se presentan una serie de ejercicios de consulta SQL y la descripción de conceptos fundamentales sobre la arquitectura y características de los sistemas de Bases de Datos (BD).
A) Ejercicios de Consultas SQL
Ejercicio 1: Clientes que compraron ‘tornillos’
Muestra el nombre y apellido de los clientes que han realizado compras que incluyen el artículo ‘tornillos’.
SELECT c.nombre, c.apellido
FROM Clientes AS c
INNER JOIN Compras AS cp ON cp.id_cliente = c.id_cliente
WHERE cp.Id_compra IN (
SELECT d.Id_compra
FROM Articulos AS a
INNER JOIN Detalles AS d ON d.Id_articulo = a.Id_articulo
WHERE Descripcion = 'tornillos'
);Ejercicio 2: Descripción de artículos ordenados
Selecciona la descripción de los artículos, agrupados y ordenados de forma descendente.
SELECT a.Descripcion
FROM Articulos AS a
INNER JOIN Detalles AS d ON a.Id_articulo = d.Id_articulo
GROUP BY a.Descripcion
ORDER BY a.Descripcion DESC;Ejercicio 3: Conteo de facturas por rango de fecha y patrón
Cuenta las facturas que cumplen con el patrón ‘ab%c%’ y que fueron emitidas entre el 01/01/2008 y el 31/03/2008.
SELECT COUNT(factura) AS facturas
FROM Compras
WHERE Factura LIKE 'ab%c%'
AND Fecha >= '01/01/2008'
AND Fecha <= '31/03/2008';Ejercicio 4: Importe total de ventas por artículo
Muestra el nombre del artículo y el importe total de ventas de los mismos.
-- MOSTRAR EL NOMBRE DEL ARTÍCULO Y EL IMPORTE TOTAL DE VENTAS DE LOS MISMOS.
SELECT a.Descripcion, SUM(d.importe) AS ImporteTotalVentas
FROM Articulos AS a
INNER JOIN Detalles AS d ON d.Id_articulo = a.Id_articulo
GROUP BY a.Descripcion;Ejercicio 5: Artículos sin ventas registradas
Selecciona la descripción de los artículos que no tienen detalles de compra asociados.
SELECT Descripcion
FROM Articulos
WHERE Id_articulo NOT IN (
SELECT a.Id_articulo
FROM Articulos AS a
INNER JOIN Detalles AS d ON d.Id_articulo = a.Id_articulo
);Nota: Aquí no es estrictamente necesario realizar un JOIN en la subconsulta porque con fijarse que el Id_articulo no exista en la tabla Detalles es suficiente.
Ejercicio 6: Facturas con múltiples detalles de compra
Muestra las facturas que tienen más de un detalle de compra asociado.
SELECT c.factura
FROM Compras AS c
INNER JOIN Detalles AS d ON d.Id_compra = c.Id_compra
GROUP BY c.Factura
HAVING COUNT(c.Factura) > 1;B) Características Principales de un Sistema de Base de Datos
Las bases de datos modernas ofrecen diversas funcionalidades esenciales para la gestión eficiente de la información:
- Independencia de datos respecto a los programas de aplicación: Los programas de acceso a la Base de Datos se escriben de modo independiente a la estructura física de los datos. Si la estructura de los datos sufre modificaciones, esto no debería incidir en la codificación de los programas que utilizan dichos datos.
- Control y disminución de la redundancia: El sistema de Base de Datos permite almacenar los datos de forma única, reduciendo al mínimo la repetición de información. Esto ahorra espacio y facilita la consistencia y el mantenimiento de los datos.
- Naturaleza autodescriptiva (Catálogo): El sistema no solo contiene la base de datos misma, sino también una definición completa (metadatos) con información de estructuras, tipos, formato de almacenamiento de cada elemento y diversas restricciones que se aplican a los datos.
- Manejo de múltiples vistas (Esquemas externos): Una base de datos suele ser accedida por varios usuarios. El sistema ofrece la posibilidad de que cada usuario vea solo la porción de datos que necesita, adaptada a su rol o requerimiento.
- Capacidad de compartir datos y acceso concurrente: La información está disponible para varios usuarios simultáneamente y por distintas vías de acceso, permitiendo que múltiples usuarios accedan y requieran diferentes vistas de la misma información.
- Disponibilidad de información precisa y actualizada: Se dispone en cualquier momento de la información precisa y al día, garantizando que los datos reflejen el estado actual de la realidad modelada.
- Aplicación de restricciones de seguridad y control de acceso: Se definen mecanismos para asegurar los accesos a la base de datos, ya sea mediante palabras clave, vistas parciales o la concesión de permisos específicos (consultas o modificaciones).
- Auditoría: Los sistemas proveen la facilidad para obtener el estado de la base de datos, registrar los accesos realizados y los registros borrados, facilitando el seguimiento de las operaciones.
- Recuperación y restauración (Tolerancia a fallos): La recuperación y restauración ante cualquier problema de la base de datos está considerada. Las actualizaciones se realizan de forma transaccional, asegurando que, en caso de fallo, la base de datos pueda volver a un estado consistente.
- Relacionabilidad y flexibilidad de exploración: Los datos pueden ser utilizados o explorados de manera flexible, con diferentes caminos de acceso, gracias a la relación inherente entre los datos.
C) Niveles de Arquitectura de Base de Datos (Modelo ANSI/SPARC)
La arquitectura de tres esquemas (ANSI/SPARC) define cómo se perciben y almacenan los datos:
- Nivel Externo: Es el nivel del usuario individual. Se ocupa de la forma en que los usuarios perciben los datos, utilizando lenguajes de consulta o lenguajes de aplicación específicos. Cada vista de usuario constituye un esquema externo.
- Nivel Conceptual: Es una representación de toda la información contenida en la base de datos. Es la vista comunitaria de los usuarios, actuando como un nivel de mediación. Oculta los detalles de las estructuras físicas de almacenamiento y se concentra en describir entidades, tipos de datos, vínculos, operaciones de los usuarios y restricciones.
- Nivel Interno: Es el que se ocupa de la forma en que se almacenan físicamente los datos. Es una representación de bajo nivel. Emplea un modelo físico de los datos y describe todos los detalles para su almacenamiento, incluyendo los caminos de acceso para la base de datos.
D) Diferencia entre Modelos de Datos: Jerárquico vs. Red (Plex)
La principal diferencia entre el modelo jerárquico y el modelo de red (plex) reside en la estructura de las relaciones entre los datos:
- Modelo Jerárquico: Representa organizaciones jerárquicas y utiliza el principio de estructuración de datos de relación padre-hijo. Este vínculo (VPH) es una relación de 1:N entre dos tipos de registros. Una ocurrencia del tipo VPH consiste en un registro del tipo padre y varios registros del tipo hijo. En este modelo, un hijo solo puede tener un padre.
- Modelo de Red (Plex): Permite relaciones más complejas. La diferencia fundamental es que un registro hijo puede tener más de un registro padre. Cualquier componente puede vincularse con otro, permitiendo estructuras de datos más flexibles que el modelo jerárquico.

Deja un comentario