Guía de Aplicación para Base de Datos (Para Revisión)
Guía de Aplicación para Base de Datos (Para Revisión)
Guía de Aplicación para Base de Datos (Para Revisión)
APLICACIÓN
PARA BASE DE
DATOS
ÍNDICE GENERAL
ÍNDICE GENERAL..........................................................................................................2
PRESENTACIÓN.............................................................................................................3
OBJETIVO GENERAL....................................................................................................4
OBJETIVOS ESPECÍFICOS............................................................................................4
TABLA DE CONTENIDOS.............................................................................................5
ANEXOS.........................................................................................................................40
PRESENTACIÓN
La guía plantear llevar aquellas prácticas que se han logrado desarrollar con resultados
muy buenos, presentando lo que esperamos de cada uno e incentivando a los alumnos a
generar sus propias conclusiones de cada método y resultado individual obtenido.
En esta edición, se desea dar las primeras referencias para aportar en la formación
académica de profesionales con excelentes bases en el área ya mencionada, y que
aprecien desde un punto de vista práctico el manejo de los equipos que encontrarán en
vida profesional.
OBJETIVO GENERAL
OBJETIVOS ESPECÍFICOS
TABLA DE CONTENIDOS
Proporcionar una visión general del propósito y fundamento de los sistemas de bases de
datos, entendiendo su desarrollo, características usuales y lo que proporciona al usuario
su diseño.
Conoce los conceptos básicos y la evolución de las bases de datos, y tiene conocimiento
suficiente para elaborar modelos entidad relación.
Objetivo:
Familiarizar al alumnado con la herramienta gestora de base de datos de la
paquetería de utilitarios de Office, muy utiliza para la gestión y manejo de
información.
Procedimiento:
1. Abra Access y elija New, Blank Database (base de datos nueva en blanco), guarde la
base de datos con el nombre del archivo de db1 a MiMusica.
9. Cree una segunda tabla de amigos que pudieran pedirle prestada su música.
10. El primer campo es apellido, tipo de datos text 20. Esta vez creará su propia clave
que consiste en apellido. Para hacerlo, mueva el cursor a la columna justo a la
izquierda de apellido y dé clic en el ícono key en la barra de herramientas Access.
Continúe para crear el resto de los campos:
a. nombre text 15
b. códigoPostal text 3
c. teléfono text 7
11. Guarde esta tabla como Amigos.
15. Para crear relaciones entre las tablas, dé clic en el ícono Relationships en la barra de
herramientas Access. Consiste en tres rectángulos conectados mediante líneas. En la
ventana Show Table que aparece, resalte Música (Music), dé clic en el botón Add,
1
ING. GABRIEL FIENCO, MGS.
0
GUÍA DE APLICACIÓN PARA BASE DE DATOS
resalte Préstamo, haga clic en Add, resalte Amigos, haga clic en Add, luego clic en
Close.
17. El resultado final nos da una relación como la primera figura de este taller.
1
ING. GABRIEL FIENCO, MGS.
1
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Diseñar un diagrama entidad-relación en base a las necesidades planteadas por un
usuario, cliente o a nivel empresarial interno.
Requerimientos:
Plantee una relación entre la siguiente información:
1. En el tecnológico debemos llevar un archivo maestro que contenga la relación entre
los alumnos y sus carreras, obviamente también se deberá saber la relación entre
ellos con sus materias y profesores.
1
ING. GABRIEL FIENCO, MGS.
2
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Asignar atributos a las siguientes entidades, basándose en los requerimientos que se
plantean.
Requerimientos:
DISTRIBUIDOR AUTOS AMISTOSOS
Descripción general
Autos Amistosos es un distribuidor que ofrece automóviles nuevos de un solo
fabricante. El distribuidor se ubica en un suburbio de una gran ciudad. Sus ventas brutas
superan un millón de dólares anuales. Tiene 10 empleados: Jim Amistoso
(dueño/gerente), ocho vendedores y un administrador. La mayoría de sus clientes son
del área vecina y saben del distribuidor por comentarios personales; por comerciales en
periódico, radio y televisión; por Internet, o por referencia de servicios de compra.
Necesidades de información
1. Calcomanía de precio. La calcomanía de precio que viene con el automóvil cuando
se embarca del fabricante contiene toda la información básica acerca del automóvil.
Incluye una ID de vehículo que identifica de manera única al vehículo y está
físicamente incrustada en la carrocería del automóvil. La calcomanía también
proporciona el precio de lista, modelo, fecha de fabricación, número de cilindros,
1
ING. GABRIEL FIENCO, MGS.
3
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Nota: Debe crear al menos 5 ENTIDADES, una por literal, no se solicita la relación
entre ellas. Solo debe hacer la asignación de atributos para cada entidad
1
ING. GABRIEL FIENCO, MGS.
4
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Diseñar un diagrama que cuenta con la asignación de cardinalidades entre entidades.
Requerimientos:
Ejercicio 1:
1. Considere el conjunto de entidades Empleado con atributos empId, socSecNo,
empNombre, titulopuesto y salario.
a. Muestre cómo el conjunto de entidades y sus atributos se representarían
en un diagrama E-R.
b. Identifique una clave primaria para el conjunto de entidades y subráyelo
en el diagrama E-R.
3. Suponga que debe agregar otra entidad llamada Departamento. Cada empleado
trabaja sólo para un departamento. Los proyectos no los patrocina directamente un
departamento.
1
ING. GABRIEL FIENCO, MGS.
5
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Ejercicio 2:
1. Diseñe una base de datos para conservar los datos de:
a. estudiantes universitarios,
b. Sus consejeros académicos,
c. los clubes a los que pertenecen,
d. los moderadores de los clubes
e. y las actividades que patrocina cada club.
3. Cada estudiante puede pertenecer a cualquier número de clubes, y los clubes pueden
patrocinar cualquier número de actividades. El club debe tener algunos miembros
estudiantes con la finalidad de existir. Cada actividad está patrocinada por
exactamente un club, pero puede haber muchas actividades programadas para un
día.
4. Cada club tiene un moderador, quien puede o no ser miembro del personal docente.
1
ING. GABRIEL FIENCO, MGS.
6
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Manipula las tablas o relaciones por medio de las operaciones definidas en el álgebra
relacional.
La unidad 2 se compone de talleres que sirven como siguiente paso al estudiante para
familiarizarse con el lenguaje de consultas estructurado por medio del sistema gestor,
los mismos son:
Taller # 5 Normalización de Tablas
Taller # 6 Definición de la base de datos: SQL DDL
Taller # 7 Manipulación de la base de datos: SQL DDL
1
ING. GABRIEL FIENCO, MGS.
7
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Entender las características de las formas normales y su necesidad como buenas
prácticas durante el diseño de un modelo relacional.
Requerimiento:
1. Para resumir las varias formas normales definidas mediante dependencias
funcionales, considere la siguiente relación que almacena información acerca de
proyectos en una gran empresa:
a. Work (projName, projMgr, empId, hours, empName, budget, startDate,
salary, empMgr, empDept, rating)
1
ING. GABRIEL FIENCO, MGS.
8
GUÍA DE APLICACIÓN PARA BASE DE DATOS
1
ING. GABRIEL FIENCO, MGS.
9
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Conocer el lenguaje de definición de datos por medio del gestor MySQL.
Ejercicio 1:
Restricciones – usando AUTO_INCREMENT.
1. El atributo AUTO_INCREMENT puede ser usado para generar un identificador
único para cada nueva fila:
2
ING. GABRIEL FIENCO, MGS.
0
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Ejercicio 2:
Restricciones – usando CHECK y LIKE.
1. Restricciones en la data a insertar.
Nota: Verifique la sintaxis si se genera algún error al transcribir o copiar y
pegar.
Ejercicio 3:
Mapeo de un modelo E-R a un modelo relacional
1. Implemente en MySQL las tablas y campos, con sus respectivas PK y FK para el
modelo relacional de la figura 11 - 2.
2
ING. GABRIEL FIENCO, MGS.
1
GUÍA DE APLICACIÓN PARA BASE DE DATOS
(1)
(2)
Figura 11. Mapeo de un modelo E-R (1) a un modelo relacional (2).
2
ING. GABRIEL FIENCO, MGS.
2
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Familiarizarse con el lenguaje de manipulación de datos por medio del gestor
MySQL.
Procedimiento:
1. Implemente las siguientes sentencias en el gestor de base de datos, analice aquellas
que contengan las palabras reservadas INSERT y SELECT:
2
ING. GABRIEL FIENCO, MGS.
3
GUÍA DE APLICACIÓN PARA BASE DE DATOS
2
ING. GABRIEL FIENCO, MGS.
4
GUÍA DE APLICACIÓN PARA BASE DE DATOS
La unidad 3 se compone de una serie de talleres que suman los conocimientos de las
unidades anteriores para las tareas que debe realizar un administrador de base de datos,
DBA.
Taller # 8 SELECT usando tablas múltiples, UPDATE y DELETE
Taller # 9 Manejo de sentencias, Vistas, Procedimientos, Funciones y Usuarios
Taller # 10 Ejercicios de Consultas
2
ING. GABRIEL FIENCO, MGS.
5
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Realizar consultas anidadas, y con información entre múltiples tablas.
Procedimiento:
1. Cargue y ponga en uso nuevamente el script del TALLER # 7.
2. La opción ORDER BY (ordenar por) en el SELECT de SQL permite ordenar los
registros recuperados en orden ascendente (ASC, por defecto) o descendente
(DESC) en cualquier campo o combinación de campos, sin importar si dicho campo
aparece en los resultados. Si se ordenan por más de un campo, el que se nombró
primero determina orden mayor, el siguiente orden menor, etcétera.
a. SELECT “columna1”, “columna2”, ... FROM “tabla”
ORDER BY “columna1”, “columna2”, ... ASC|DESC;
2
ING. GABRIEL FIENCO, MGS.
6
GUÍA DE APLICACIÓN PARA BASE DE DATOS
5. Ejecute las sentencias y compare los resultados. ¿Es la información utilizada de una
sola tabla o varias?
a. SELECT nombre,edad,salario FROM usuarios,sueldos WHERE
salario>2500 AND usuarios.id=sueldos.id_1 ;
b. SELECT nombre, salario FROM usuarios INNER JOIN sueldos ON
usuarios.id = sueldos.id_1;
2
ING. GABRIEL FIENCO, MGS.
7
GUÍA DE APLICACIÓN PARA BASE DE DATOS
14. Hay que considerar que no debe existir espacio entre la “agregación” y el
paréntesis.
a. SELECT COUNT(nombre) FROM usuarios;
b. SELECT MAX(edad) FROM usuarios;
c. SELECT nombre, MAX(edad) FROM usuarios;
d. SELECT MIN(salario) FROM SUELDOS;
e. SELECT id_1, MIN(salario) FROM SUELDOS;
15. Demuestre como ver solamente el nombre del empleado con el sueldo más bajo,
en ese orden, es decir, columna 1 debe ser nombre y columna 2 sueldo.
16. Una subconsulta es una consulta anidada en una instrucción SELECT, INSERT,
UPDATE o DELETE, o bien en otra subconsulta. Las subconsultas se pueden
utilizar en cualquier parte en la que se permita una expresión.
17. Presente el nombre del o los usuarios cuya edad sea 42 años. Ambas columnas están
dentro de una misma tabla.
a. SELECT nombre FROM usuarios
WHERE edad IN (SELECT edad FROM usuarios WHERE edad=42);
18. Presente el nombre del o los usuarios cuyo salario es mayor a 3000 (nótese que esta
consulta requiere información de 2 tablas diferentes).
a. SELECT nombre FROM usuarios
WHERE id = (SELECT id_1 FROM sueldos WHERE salario>3000);
19. Ahora utilice el >=, nótese que en estos casos se recomienda el uso del IN.
a. SELECT nombre FROM usuarios
WHERE id IN (SELECT id_1 FROM sueldos WHERE salario>=3000);
20. DELETE.- Se usa para borrar registros. El número de registros borrados puede ser
cero, uno o muchos, dependiendo de cuántos satisfagan el predicado.
a. DELETE FROM departamento;
2
ING. GABRIEL FIENCO, MGS.
8
GUÍA DE APLICACIÓN PARA BASE DE DATOS
24. La instrucción UPDATE se usa para modificar los registros existentes en una tabla.
a. UPDATE tabla
b. SET columna1 = valor1, columna2 = valor2, ...
c. WHERE condición;
27.
2
ING. GABRIEL FIENCO, MGS.
9
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Implementar secuencias de automatización de procesos repetitivos, tomando como
base los conocimientos de sentencias de lenguaje de programación generales.
Procedimiento:
1. El COMMIT hace permanentes los cambios realizados desde el comienzo de la
transacción actual, que es o el comienzo de la sesión o el momento desde el último
COMMIT o ROLLBACK.
2. El ROLLBACK deshace los cambios realizados por la transacción actual. Es
aconsejable escribir COMMIT con frecuencia para guardar los cambios mientras
trabaja.
DROP TABLE IF EXISTS customer;
CREATE TABLE IF NOT EXISTS customer (a INT, b CHAR (20));
3
ING. GABRIEL FIENCO, MGS.
0
GUÍA DE APLICACIÓN PARA BASE DE DATOS
4. Crear Procedimientos:
a. CREATE PROCEDURE nombre_procedimiento (lista_parámetros)
b. declaraciones de variables locales
c. código de procedimiento
5. Cada parámetro en la lista de parámetros tiene tres ítems: modo, nombre y tipo de
datos. El modo puede ser IN, OUT o INOUT, dependiendo de si es un parámetro de
entrada, un parámetro de salida o ambos.
6. Para la base de datos empleados, taller 7, cree un procedimiento que muestre a los
empleados con su respectiva área.
DELIMITER //
CREATE PROCEDURE nombre_departamento()
BEGIN
SELECT nombre, area FROM usuarios INNER JOIN departamento
ON usuarios.id = departamento.id_2;
END
// DELIMITER ;
7. Existe alguna diferencia entre el procedimiento creado y la consulta propuestos a
continuación:
3
ING. GABRIEL FIENCO, MGS.
1
GUÍA DE APLICACIÓN PARA BASE DE DATOS
a. CALL nombre_departamento();
b. SELECT nombre, area FROM usuarios INNER JOIN departamento
ON usuarios.id = departamento.id_2;
8. Las funciones sólo aceptan parámetros con modo IN, para evitar efectos colaterales.
El único valor regresado debe ser el especificado en el enunciado RETURN.
a. DECLARE identificador de tipo de datos;
b. Ejemplo:
c. DECLARE status VARCHAR2;
d. DECLARE number_of_courses NUMBER;
9. Ejecute la siguiente sentencia:
CREATE FUNCTION saludo (variable VARCHAR(30)) RETURNS
VARCHAR(50)
RETURN CONCAT ('Hola, ', variable, '! ') ;
// DELIMITER ;
DELIMITER //
CREATE FUNCTION saludo (variable VARCHAR(30)) RETURNS
VARCHAR(50) DETERMINISTIC
RETURN CONCAT ('Hola, ', variable, '! ') ;
// DELIMITER ;
#Llamamos a la función
SELECT saludo ('Alumno de base de datos');
3
ING. GABRIEL FIENCO, MGS.
2
GUÍA DE APLICACIÓN PARA BASE DE DATOS
13. ¿Implemente una vista que permita solo ver el salario más alto del área
administrativa?
3
ING. GABRIEL FIENCO, MGS.
3
GUÍA DE APLICACIÓN PARA BASE DE DATOS
3
ING. GABRIEL FIENCO, MGS.
4
GUÍA DE APLICACIÓN PARA BASE DE DATOS
Objetivo:
Desarrollar habilidades avanzadas en el manejo de SQL y adaptarse a las
necesidades previstas por una organización.
Procedimiento:
Ejercicio 1
20. Implemente las siguientes sentencias en el gestor de base de datos:
DROP DATABASE IF EXISTS CONSTRAINT id_1_fk FOREIGN
empleados_version2; KEY (id_1) REFERENCES
CREATE DATABASE IF NOT EXISTS usuarios_version2 (id)
empleados_version2; );
USE empleados_version2;
CREATE TABLE departamento_version2(
#CREACIÓN DE TABLAS id_2 MEDIUMINT NOT NULL,
area VARCHAR(30) NOT NULL,
CREATE TABLE usuarios_version2( CONSTRAINT id_2_fk FOREIGN
id MEDIUMINT NOT NULL KEY (id_2) REFERENCES
AUTO_INCREMENT, usuarios_version2 (id)
nombre VARCHAR(30) NOT NULL, );
edad INTEGER(30),
salario INTEGER(30), #INSERCIÓN DE VALORES
##ojo error al crear, analizar
como borrar. INSERT INTO usuarios_version2 (nombre,
CONSTRAINT id_pk PRIMARY edad) VALUES
KEY (id) ("Pedro", 24),
); ("Maria", 26),
ALTER TABLE usuarios_version2 DROP ("Juan", 28),
COLUMN salario; ("Luis", 35),
#ALTER TABLE "nombre_tabla" DROP ("Monica", 42),
COLUMN "nombre_columna"; ("Rosa", 43),
("Susana", 45);
CREATE TABLE sueldos_version2( SELECT * FROM usuarios_version2;
id_1 MEDIUMINT NOT NULL,
salario INTEGER(30), INSERT INTO sueldos_version2 (id_1,
salario) VALUES
3
ING. GABRIEL FIENCO, MGS.
5
GUÍA DE APLICACIÓN PARA BASE DE DATOS
21. Obtenga solo los nombres de todos los trabajadores en el departamento operativo.
22. Obtenga una lista alfabética de nombres (ordenada) de todos los trabajadores con
sueldo menor a 3000.
23. Obtenga el nombre del empleado en el departamento administrativo que tenga el
salario más alto.
24. Obtenga toda la información disponible (de todas las tablas) del empleado operativo
con sueldo más bajo.
25. Obtenga los nombres y sueldo de todos los trabajadores con 43 años (Es obligatorio
realizar esta consulta usando solamente anidación).
Ejercicio 2
1. Implemente las siguientes sentencias en el gestor de base de datos:
#**************************
###En cada sección donde lea:
3
ING. GABRIEL FIENCO, MGS.
6
GUÍA DE APLICACIÓN PARA BASE DE DATOS
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
ALTER TABLE Dept ADD CONSTRAINT Dept_mgrId_fk FOREIGN KEY (mgrId) REFERENCES
Worker(empId) /* ON UPDATE*/;
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
3
ING. GABRIEL FIENCO, MGS.
7
GUÍA DE APLICACIÓN PARA BASE DE DATOS
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
#------------------------------------------------------------------------
#"Indique sus comentarios con relación a las siguientes líneas de ejecución."
INSERT INTO Project vALUES (1001, 'Jupiter', 101, 300000, str_to_date('01-Feb-2004','%d-%M-%Y'), 50);
INSERT INTO Project vALUES (1005, 'Saturn', 101, 400000, str_to_date('01-Jun-2004','%d-%M-%Y'), 35);
INSERT INTO Project vALUES (1019, 'Mercury', 110, 350000, str_to_date('15-Feb-2004','%d-%M-%Y'), 40);
INSERT INTO Project vALUES (1025, 'Neptune', 110, 600000, str_to_date('01-Feb-2005','%d-%M-%Y'), 45);
INSERT INTO Project vALUES (1030, 'Pluto', 110, 380000, str_to_date('15-Sept-2004','%d-%M-%Y'), 50);
#SELECT * FROM Project;
3
ING. GABRIEL FIENCO, MGS.
8
GUÍA DE APLICACIÓN PARA BASE DE DATOS
2. Cree una vista que tenga número de proyecto y nombre de cada proyecto, junto con
las ID y nombres de todos los trabajadores asignados a él.
3. Con la vista creada en la opción 1, encuentre el número de proyecto y nombre de
proyecto de todos los proyectos a los que está asignado el empleado 110.
4. Agregue un nuevo trabajador llamado Jack Smith con ID de 1999 al departamento
research.
5. Cambie las horas que tiene asignadas el empleado 110 al proyecto 1019, de 20 a 10.
6. Para todos los proyectos que comiencen (starting) después del 1 de mayo de 2004,
encuentre el número de proyecto y las ID y nombres de todos los trabajadores
asignados a ellos.
7. Para cada proyecto, haga una lista del número de proyecto y cuántos trabajadores se
asignan a él.
8. Encuentre los detalles de cualquier proyecto con la palabra “urn” en cualquier parte
en su nombre.
9. Obtenga una lista de números de proyecto y nombres y fechas de inicio de todos los
proyectos que tienen la misma fecha de inicio.
10. Agregue un campo llamado status a la tabla Project. Los valores muestran para este
campo son active (activo), completed (completado), planned (planificado), cancelled
(cancelado). Luego escriba el comando para deshacer este cambio. Sele recomienda
limitar el campo a los valores solicitados usando -- CHECK --LIST.
11. Obtenga la ID de empleado y número de proyecto de todos los empleados que no
tengan calificaciones en dicho proyecto.
12. Si supone que salary ahora contiene salario anual, encuentre la ID, nombre y salario
mensual de cada trabajador.
3
ING. GABRIEL FIENCO, MGS.
9
GUÍA DE APLICACIÓN PARA BASE DE DATOS
4
ING. GABRIEL FIENCO, MGS.
0
GUÍA DE APLICACIÓN PARA BASE DE DATOS
BIBLIOGRAFÍA
1. Estiwarthp, P. J. (s.f.). Gestiona Base de Datos con Access 2013. TECSU: I-4-
38124989
4
ING. GABRIEL FIENCO, MGS.
1
GUÍA DE APLICACIÓN PARA BASE DE DATOS
4
ING. GABRIEL FIENCO, MGS.
2
GUÍA DE APLICACIÓN PARA BASE DE DATOS
ANEXOS
4
ING. GABRIEL FIENCO, MGS.
3
GUÍA DE APLICACIÓN PARA BASE DE DATOS
4
ING. GABRIEL FIENCO, MGS.
4
GUÍA DE APLICACIÓN PARA BASE DE DATOS
4
ING. GABRIEL FIENCO, MGS.
5