Esta unidad formativa se centra en el desarrollo de competencias para implementar y utilizar bases de datos, con especial énfasis en la extracción de información mediante lenguajes y herramientas de consulta específicos.
Utilizar herramientas y lenguajes de consulta y manipulación de la información, de acuerdo a especificaciones técnicas y funcionales.
Las herramientas y lenguajes de consulta y manipulación para extraer la información se seleccionan según especificaciones del modelo y la tecnología del gestor de datos.
Para una base de datos relacional como MySQL, se seleccionaría SQL como lenguaje principal, mientras que para MongoDB se usaría su API de consultas o el lenguaje de agregación.
Es fundamental conocer las capacidades y limitaciones de cada sistema gestor para elegir las herramientas más adecuadas.
Las herramientas de manipulación de la información se utilizan para extraer y presentar la información según especificaciones técnicas, necesidades de la organización y normativa legal vigente.
La codificación de las instrucciones correspondientes a los lenguajes de consulta y manipulación se utiliza para realizar los procedimientos de consulta, de acuerdo a las especificaciones requeridas y la normativa legal vigente.
La documentación inherente a las herramientas y lenguajes de consulta se interpreta para obtener la funcionalidad deseada en el proceso de extracción de información.
Los procedimientos de extracción y consulta realizados se documentan para su registro según normas de la organización.
La documentación técnica específica asociada a las herramientas y lenguajes de consulta se interpreta, en su caso, en la lengua extranjera de uso más frecuente en el sector.
Identificar las funcionalidades de los lenguajes y herramientas de consulta de los sistemas gestores de datos, según sus especificaciones técnicas.
Determinar las funcionalidades y características de los lenguajes de consulta utilizados en los gestores de datos.
Clasificar las funcionalidades y características de las herramientas utilizadas en los gestores de datos.
Herramienta | Tipo de BD | Características principales |
---|---|---|
MySQL Workbench | Relacional (MySQL) | Diseño visual, consultas SQL, administración |
MongoDB Compass | NoSQL (MongoDB) | Consulta documentos, agregaciones, visualización |
pgAdmin | Relacional (PostgreSQL) | Administración, consultas, monitoreo |
Oracle SQL Developer | Relacional (Oracle) | Desarrollo SQL, modelado, migración |
Comparar las funcionalidades de lenguajes y herramientas para su selección según necesidades funcionales.
Utilizar lenguajes de consulta específicos según necesidades dadas para extraer información de bases de datos.
Utilizar la gramática, sintaxis y semántica del lenguaje de consulta para la creación de procedimientos de extracción.
En un supuesto práctico, extraer y consultar información utilizando lenguajes de consulta específicos según un diseño especificado.
Interpretar la documentación inherente al lenguaje de consulta incluso si está editada en lengua extranjera.
Eliminar grupos repetitivos y asegurar que cada columna contenga valores atómicos.
Debe estar en 1FN y todos los atributos no clave deben depender de toda la clave primaria.
Debe estar en 2FN y no debe existir dependencia transitiva de los atributos no clave.
Versión más fuerte de 3FN donde toda determinante es una clave candidata.
Eliminar dependencias multivaluadas no triviales.
Descomposición sin pérdida en relaciones más pequeñas.
Proceso de transformación de un modelo conceptual en un esquema relacional normalizado.
Proceso intencional de introducir redundancia controlada para mejorar el rendimiento en situaciones específicas.
Técnicas para acceder a registros por su ubicación física en el almacenamiento.
Técnicas para localizar registros basados en el valor de sus atributos.
Estructuras que mejoran la velocidad de las operaciones de búsqueda.
Estructura de datos en árbol optimizada para sistemas de bases de datos.
Técnica que permite el acceso directo a los registros mediante una función de hash.
Índices donde el orden físico de los registros es el mismo que el orden lógico.
Los lenguajes de consulta permiten interactuar con la base de datos para recuperar y manipular información.
Lenguaje estándar para bases de datos relacionales, con operaciones DDL, DML y DCL.
Lenguaje de consulta para bases de datos orientadas a objetos, estandarizado por ODMG.
Lenguaje de consulta para la Java Persistence API (JPA), similar a SQL pero orientado a objetos.
Lenguaje para consultar datos en formato XML, precursor de XQuery.
Lenguaje que traduce URLs en consultas a bases de datos relacionales.
Componente de .NET que añade capacidades de consulta a los lenguajes .NET.
Situación práctica: La empresa ficticia DataGlobal desea optimizar el acceso a su base de datos de ventas, clientes y productos. Tu tarea como técnico en gestión de datos es diseñar, implementar, probar y documentar procedimientos de consulta eficientes y seguros, además de preparar el informe para su publicación en formatos reutilizables.
Identifica las entidades principales de la base de datos relacional para almacenar la información siguiente:
Tarea: Diseña un esquema entidad-relación simplificado y justifica tus decisiones. Aplica al menos dos formas normales.
Consejo: Aplica Primera y Segunda Forma Normal. Identifica claves primarias y foráneas.
Clientes(ID, Nombre, Ciudad, Email) Pedidos(ID, ID_Cliente, Fecha, Total) Productos(ID, Nombre, Precio) DetallePedidos(ID_Pedido, ID_Producto, Cantidad)
Instrucción: Crea consultas SQL que devuelvan:
-- Clientes con total gastado SELECT c.Nombre, SUM(p.Total) AS TotalGastado FROM Clientes c JOIN Pedidos p ON c.ID = p.ID_Cliente GROUP BY c.Nombre; -- Productos más vendidos SELECT pr.Nombre, SUM(dp.Cantidad) AS TotalVendido FROM Productos pr JOIN DetallePedidos dp ON pr.ID = dp.ID_Producto GROUP BY pr.Nombre ORDER BY TotalVendido DESC; -- Pedidos últimos 30 días SELECT * FROM Pedidos WHERE Fecha >= CURDATE() - INTERVAL 30 DAY;
Tarea: Guarda las consultas anteriores como procedimientos almacenados en SQL. Añade comentarios descriptivos (en inglés técnico básico).
-- Stored Procedure: GetTopProducts DELIMITER // CREATE PROCEDURE GetTopProducts() BEGIN -- Returns the most sold products SELECT pr.Nombre, SUM(dp.Cantidad) AS Total FROM Productos pr JOIN DetallePedidos dp ON pr.ID = dp.ID_Producto GROUP BY pr.Nombre ORDER BY Total DESC; END; // DELIMITER ;
Tarea: Elabora una tabla HTML que muestre el resultado de la consulta de los pedidos en los últimos 30 días, incluyendo los campos ID, Cliente, Fecha y Total. Añade una leyenda y estilo visual básico.
<table border="1"> <caption>Pedidos últimos 30 días</caption> <tr><th>ID</th><th>Cliente</th><th>Fecha</th><th>Total</th></tr> <tr><td>101</td><td>Ana Torres</td><td>2025-04-22</td><td>420.50</td></tr> <tr><td>102</td><td>Luis Pérez</td><td>2025-04-25</td><td>690.00</td></tr> </table>
Tarea: Describe 3 métodos para verificar la calidad y precisión de las consultas implementadas.
Tarea: Lee el siguiente fragmento técnico y responde:
"The SELECT statement is used to retrieve records from one or more tables. The WHERE clause filters records based on specific conditions. The JOIN clause is used to combine rows from two or more tables."
Pregunta: ¿Cuál es el propósito de cada cláusula mencionada?
Instrucciones: Seleccione la respuesta correcta para cada pregunta (solo una opción es válida por pregunta).
Instrucciones: Analice el siguiente escenario y responda las preguntas utilizando sus conocimientos sobre implementación de bases de datos.
Una empresa de comercio electrónico necesita extraer información de su base de datos relacional que contiene las siguientes tablas:
Objetivo: Determinar y clasificar las funcionalidades de diversos lenguajes de consulta utilizados en gestores de datos.
Instrucciones: Dada la siguiente lista de lenguajes de consulta:
Clasificación:
Uso recomendado: Para una app Java con BBDD relacional → JPQL
Objetivo: Aplicar la teoría de la normalización hasta 3FN a una tabla desnormalizada.
Enunciado: Analiza la siguiente tabla y aplica normalización:
Ventas(ID_Venta, Fecha, Nombre_Cliente, Teléfono, Producto, Precio, Cantidad, Dirección, Zona)
Redundancia: Cliente puede repetirse; Dirección y Teléfono son repetitivos.
Tablas normalizadas:
Objetivo: Clasificar e interpretar métodos de acceso en sistemas de bases de datos.
Acceso por valor: se basa en buscar registros por contenido (por ejemplo, índice por nombre).
Acceso por posición: accede directamente a una posición de almacenamiento.
Categoría:
Objetivo: Aplicar sentencias SQL correctamente utilizando la gramática y sintaxis del lenguaje.
Enunciado: Dada la siguiente base de datos simplificada:
Clientes(ID, Nombre, Ciudad) Pedidos(ID, ID_Cliente, Fecha, Total)
SELECT c.Nombre, SUM(p.Total) AS TotalPedidos FROM Clientes c JOIN Pedidos p ON c.ID = p.ID_Cliente GROUP BY c.Nombre HAVING SUM(p.Total) > 500 ORDER BY TotalPedidos DESC;
Objetivo: Usar correctamente sentencias de definición y control de datos.
Productos
con campos: ID, Nombre, Precio.usuario1
.CREATE TABLE Productos ( ID INT PRIMARY KEY, Nombre VARCHAR(100), Precio DECIMAL(10,2) ); GRANT SELECT ON Productos TO usuario1; REVOKE INSERT, UPDATE, DELETE ON Productos FROM usuario1;
Objetivo: Comprender la estructura y uso de procedimientos y triggers.
InsertarCliente
que reciba nombre y ciudad como parámetros e inserte un nuevo cliente.-- Procedimiento DELIMITER // CREATE PROCEDURE InsertarCliente( IN nombre_cli VARCHAR(100), IN ciudad_cli VARCHAR(100) ) BEGIN INSERT INTO Clientes(Nombre, Ciudad) VALUES(nombre_cli, ciudad_cli); END; // DELIMITER ; -- Trigger ALTER TABLE Pedidos ADD COLUMN Fecha_Modificacion DATETIME; DELIMITER // CREATE TRIGGER actualizar_fecha_mod BEFORE UPDATE ON Pedidos FOR EACH ROW BEGIN SET NEW.Fecha_Modificacion = NOW(); END; // DELIMITER ;
Objetivo: Analizar y comparar sintaxis y usos de diferentes lenguajes de consulta.
-- SQL SELECT * FROM Clientes WHERE Ciudad = 'Madrid'; -- JPQL SELECT c FROM Cliente c WHERE c.ciudad = 'Madrid'; -- LINQ (C#) var resultado = from c in Clientes where c.Ciudad == "Madrid" select c;