Logo Studenta

DABD-U2-A2-ALMM

¡Este material tiene más páginas!

Vista previa del material en texto

Universidad Abierta y a Distancia
de México
División de Ciencias Exactas, Ingeniería y Tecnología
Desarrollo de software
Semestre: 4
Asignatura: Administración de bases de datos
Unidad de aprendizaje: 2
Actividad: 2
Ciudad de México, Octubre del 2022
Diseño: DL-CPL
 
ÍNDICE
INTRODUCCIÓN	3
INSTRUCCIONES	3
DADB_Actividades_A2.PDF	4
INDICACIONES	5
DESARROLLO DE LA ACTIVIDAD	6
CONCLUSIONES	15
REFERENCIAS BIBLIOGRÁFICAS	15
INTRODUCCIÓN 
El Lenguaje de Manipulación de Datos (Data Manipulation Language) es un lenguaje de programación para los sistemas gestores de bases de datos que permite a los usuarios llevar a cabo tareas de consulta o modificación de los datos contenidos en las Bases de Datos.
El objetivo de esta actividad es el emplear sentencias de DML de SQL en línea de comando, que nos permitan manipular los campos y registros, con base en la ejecución de las indicaciones mencionadas mas adelante.
INSTRUCCIONES
1. Redacta la introducción sobre el uso de los comandos DML y su importancia en el proceso de gestión de bases de datos. 
2. Diseña las sentencias DML que te permitan realizar las acciones que se indican en el documento siguiente: DADB_Actividades_A2.PDF
3. Realiza capturas de pantalla de las acciones que vas realizando, de acuerdo con los criterios indicados. 
4. Redacta la conclusión, sobre lo aprendido en esta actividad. 
5. Carga tu archivo en la sección correspondiente. 
DADB_Actividades_A2.PDF 
EMPLEADO
	Clave_emp
	Nombre
	Ap_Pat
	Ap_Mat
	Fecha_nacimiento
	Dirección
	Sexo
	Salario
	Clave_supervisor
	Clave_departamento
	12345
	Juan
	Perez
	Perez
	01/02/1961
	4 Norte
#1201
	M
	5000
	23456
	3
	23456
	Pablo
	Suarez
	Gonzalez
	09/09/1959
	20
poniente # 1320
	M
	4800
	33445
	3
	33445
	Humberto
	Tapia
	Mora
	24/12/1963
	2 sur #
39
	M
	3900
	Null
	1
	99887
	Maria
	Zuñiga
	Acolco
	13/05/1969
	10
oriente # 1100
	F
	6300
	33445
	2
	88665
	Pedro
	Garcia
	Ariza
	25/07/1960
	18 norte
#230
	M
	5200
	99887
	1
DEPARTAMENTO
	NUM_DEPARTAMENTO
	NOMBRE
	ID_JEFE
	FECHA_INGRESO_JFI
	1
	CONTABILIDAD
	23456
	19/06/2015
	2
	MANTENIMIENTO
	33445
	16/10/2012
	3
	RECURSOS HUMANOS
	99887
	01/04/2017
LOCALIZACION
	ID
	NUM_DEP
	LOCALIZACION_DEPA
	1
	1
	NAVE A
	2
	2
	NAVE B
	3
	3
	NAVE B
INDICACIONES
1. Crea las tablas listadas en la parte de arriba.
2. Genera las llaves primarias y foráneas que consideres necesarias para implementar las restricciones correspondientes
3. De acuerdo con los valores de los campos determina cuales de estos deben ser nulos y cuáles no deben ser nulos, asegúrate que en las estructuras de las tablas se implementen
4. Genera las instrucciones necesarias para realizar la inserción de los datos 
5. Realiza las siguientes actualizaciones en las tablas:
a. Actualiza la nave del departamento 3 para que sea la Nave C
b. Actualiza la fecha de ingreso del supervisor 33445 por la fecha de 19 de septiembre de 2012
c. Incrementa $1000 el salario de los empleados del departamento 3
6. Genera las sentencias SQL para borrar los siguientes archivos:
a. Elimina los empleados del departamento de Recursos Humanos
b. Elimina el empleado que no tiene supervisor
c. Elimina el departamento que pertenece a la Nave A
Nota: Solo genera las instrucciones, pero no la ejecutes en el servidor, de tal forma que para las consultas se encuentren todos los datos originales
7. Realiza las siguientes consultas:
a. Mostrar los nombres y apellidos de los empleados únicamente, concatena el resultado y muestra la columna como Nombre_Completo
b. Muestra a lo empleados de sexo femenino
c. Mostrar la clave del empleado, nombre, apellidos de los empleados que trabajan en el departamento de Mantenimiento
d. Muestra las claves de los supervisores desde la tabla empleado(asegúrate que los valores no se muestren repetidos)
e. Muestra la clave del empleado, apellidos y el nombre del departamento al que pertenece cada uno de ellos
f. Muestra el nombre y apellidos de cada jefe de departamento
DESARROLLO DE LA ACTIVIDAD
1. Creamos las tablas como están en el ejemplo:
Página 2 de 2
CREATE TABLE `empleado` (
 `Clave_emp` int(6) NOT NULL,
 `Nombre` varchar(25) NOT NULL,
 `Ap_Pat` varchar(25) NOT NULL,
 `Ap_Mat` varchar(25) NOT NULL,
 `Fecha_nacimiento` date NOT NULL,
 `Direccion` varchar(55) NOT NULL,
 `Sexo` varchar(2) NOT NULL,
 `Salario` int(10) NOT NULL,
 `Clave_supervisor` int(6) DEFAULT NULL,
 `Clave_departamento` int(2) NOT NULL
);
CREATE TABLE `departamento` (
 `NUM_DEPARTAMENTO` int(2) NOT NULL,
 `NOMBRE` varchar(25) NOT NULL,
 `ID_JEFE` int(6) NOT NULL,
 `FECHA_INGRESO_JFI` date NOT NULL
);
CREATE TABLE `localizacion` (
 `ID` int(2) NOT NULL,
 `NUM_DEP` int(2) NOT NULL,
 `LOCALIZACION_DEPA` varchar(25) NOT NULL
);
2. Generamos las llaves primarias y foráneas.
ALTER TABLE `empleado`
 ADD PRIMARY KEY (`Clave_emp`);
ALTER TABLE `departamento`
 ADD PRIMARY KEY (`NUM_DEPARTAMENTO`),
 ADD KEY `FK_ID_JEFE` (`ID_JEFE`);
ALTER TABLE `localizacion`
 ADD PRIMARY KEY (`ID`),
 ADD KEY `FK_NUM_DEP` (`NUM_DEP`);
ALTER TABLE `departamento`
 ADD CONSTRAINT `FK_ID_JEFE` FOREIGN KEY (`ID_JEFE`) REFERENCES `empleado` (`Clave_emp`);
COMMIT;
ALTER TABLE `localizacion`
 ADD CONSTRAINT `FK_NUM_DEP` FOREIGN KEY (`NUM_DEP`) REFERENCES `departamento` (`NUM_DEPARTAMENTO`);
COMMIT;
3. Con base en el ejemplo podría decir que el único valor que podrían ser nulo seria: Clave_Supervisor en la tabla de empleados. 
4. Para insertar los valores que están en la tabla
INSERT INTO `empleado` (`Clave_emp`, `Nombre`, `Ap_Pat`, `Ap_Mat`, `Fecha_nacimiento`, `Direccion`, `Sexo`, `Salario`, `Clave_supervisor`, `Clave_departamento`) VALUES
(12345, 'Juan', 'Perez', 'Perez', '1961-02-01', '4 Norte #1201', 'M', 5000, 23456, 3),
(23456, 'Pablo', 'Suarez', 'Gonzalez', '1959-09-09', '20 poniente # 1320', 'M', 4800, 33445, 3),
(33445, 'Humberto', 'Tapia', 'Mora', '1963-12-24', '2 sur # 39', 'M', 3900, NULL, 1),
(88665, 'Pedro', 'Garcia', 'Ariza', '1960-07-25', '18 norte #230', 'M', 5200, 99887, 1),
(99887, 'Maria', 'Zuñiga', 'Acolco', '1969-05-13', '10 oriente # 1100', 'F', 6300, 33445, 2);
INSERT INTO `departamento` (`NUM_DEPARTAMENTO`, `NOMBRE`, `ID_JEFE`, `FECHA_INGRESO_JFI`) VALUES
(1, 'CONTABILIDAD', 23456, '2015-06-19'),
(2, 'MANTENIMIENTO', 33445, '2012-10-16'),
(3, 'RECURSOS HUMANOS', 99887, '2017-04-01');
INSERT INTO `localizacion` (`ID`, `NUM_DEP`, `LOCALIZACION_DEPA`) VALUES
(1, 1, 'NAVE A'),
(2, 2, 'NAVE B'),
(3, 3, 'NAVE B');
8
5. Realizando actualizaciones a nuestra tabla
a. Actualiza la nave del departamento 3 para que sea la Nave C
UPDATE `localizacion` SET `LOCALIZACION_DEPA` = 'NAVE C' WHERE `localizacion`.`ID` = 3;
b. Actualiza la fecha de ingreso del supervisor 33445 por la fecha de 19 de septiembre de 2012
UPDATE `departamento` SET `FECHA_INGRESO_JFI` = '2012-09-19' WHERE `departamento`.`NUM_DEPARTAMENTO` = 2;
c. Incrementa $1000 el salario de los empleados del departamento 3
SELECT * FROM `empleado` WHERE `Clave_departamento` = 3;
UPDATE `empleado` SET `Salario` = '6000' WHERE `empleado`.`Clave_emp` = 12345;
UPDATE `empleado` SET `Salario` = '5800' WHERE `empleado`.`Clave_emp` = 23456;
6. Genera las sentencias SQL para borrar los siguientes archivos:
a. Elimina los empleados del departamento de Recursos Humanos
DELETE FROM `empleado` WHERE `empleado`.``Clave_departamento` = 3;
b. Elimina el empleado que no tiene supervisor
DELETE FROM `empleado` WHERE `empleado`.``Clave_supervisor` = NULL;
c. Elimina el departamento que pertenece a la Nave A
DELETE FROM `u2a2`.`departamento` WHERE `NUM_DEPARTAMENTO` = 1;
7. Realiza las siguientes consultas:
a. Mostrar los nombres y apellidos de los empleados únicamente, concatena el resultado y muestra la columna como Nombre_Completo
SELECT CONCAT(Nombre,' ',Ap_Pat,' ',Ap_Mat) AS Nombre_Completo FROM empleado;
b. Muestra a lo empleados de sexo femenino. 
SELECT * FROM `empleado` WHERE `Sexo` = 'F'; 
c. Mostrar la clave del empleado, nombre, apellidos de los empleados que trabajan en el departamento de MantenimientoSELECT `Clave_emp`, `Nombre`, `Ap_Pat`, `Ap_Mat` FROM `empleado` WHERE `Clave_departamento`= 2;
 
d. Muestra las claves de los supervisores desde la tabla empleado (asegúrate que los valores no se muestren repetidos).
SELECT DISTINCTROW Clave_supervisor FROM empleado; 
e. Muestra la clave del empleado, apellidos y el nombre del departamento al que pertenece cada uno de ellos
SELECT DISTINCTROW Clave_supervisor, Clave_emp, Nombre, Ap_Pat, Ap_Mat FROM empleado;
f. Muestra el nombre y apellidos de cada jefe de departamento
SELECT Nombre, Ap_Pat, Ap_Mat FROM `u2a2`.`empleado` WHERE `Clave_emp`;
CONCLUSIONES
Una vez concluidas todas indicaciones para esta actividad, puedo concluir que es muy importante el manejo de Data Manipulation Language, ya que es fundamental para la ejecución de cualquier tarea (Consulta, Edicion, Insertar, Eliminar) en un sistema de base de datos, es por ello que entiendo que es importante saber trabajar desde el entorno mas “puro” (consola), aunque en la vida real existe software y aplicaciones que nos facilitan el trabajo con la creación o manejo de BD, Tablas y/o columnas.
Particularmente en este caso aprendí que hay que tener cuidado con el formato de fecha al trabajar con la variable DATE, ya que puede ocasionar errores u omisiones al ingresar la información. Otro detalle que observe es que debí haber relacionado era Clave_departamento con Num_departamento.
REFERENCIAS BIBLIOGRÁFICAS
· MySQL CONCAT() Function. (s. f.). Recuperado 31 de octubre de 2022, de https://www.w3schools.com/sql/func_mysql_concat.asp
· MySQL :: MySQL 5.7 Reference Manual :: 2.11.12 Rebuilding or Repairing Tables or Indexes. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/5.7/en/rebuilding-tables.html
· MySQL :: MySQL 8.0 Reference Manual :: 13.1.9 ALTER TABLE Statement. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/alter-table.htm
· MySQL :: MySQL 8.0 Reference Manual :: 13.1.36 RENAME TABLE Statement. (s. f.). Recuperado 30 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/rename-table.html
· MySQL :: MySQL 8.0 Reference Manual :: 13.2.10 SELECT Statement. (s. f.). Recuperado 31 de octubre de 2022, de https://dev.mysql.com/doc/refman/8.0/en/select.html
· PHP MySQL Create Table. (s. f.). Recuperado 30 de octubre de 2022, de https://www.w3schools.com/php/php_mysql_create_table.asp
· SQL INSERT INTO Statement. (s. f.). Recuperado 31 de octubre de 2022, de https://www.w3schools.com/sql/sql_insert.asp

Continuar navegando