Administración
de bases de datos
| Reto 3
Generar una bitácora de trabajo de
administración de bases de datos
Nombre completo
Matrícula
Fecha de 14 noviembre del 2022
elaboración
Nombre del Administración de bases de datos
Módulo
Nombre del Aracely González García
Asesor
1 Introducción
Una bitácora de trabajo o fichero de registro log, se utiliza para registrar la
información acerca de los eventos que ocurren en el DBMS como, por ejemplo:
instalación, administración y explotación. Esta bitácora es útil para poder
averiguar las posibles fallas o realizar auditorías de las operaciones que los
clientes realizan. Te invitamos a poner en práctica lo aprendido en la Lección de
bitácoras de trabajo del administrador de bases de datos, resolviendo este Reto.
2 Caso de estudio
Instrucción: Revisa con detenimiento el siguiente caso.
Un administrador de base de datos de un hospital desea realizar una bitácora
de trabajo para registrar las operaciones de insert, update y delete sobre la
tabla doctores. La creación de la tabla doctores y bitácora de trabajo, se
muestra a continuación:
CREATE DATABASE hospital;
use hospital;
CREATE TABLE doctores
(
id int NOT NULL,
nombre VARCHAR(25) NOT NULL,
apellido VARCHAR(25) NOT NULL,
especialidad VARCHAR(25) NOT NULL,
);
CREATE TABLE bitacora_trabajo
(
id_registro int NOT NULL AUTO_INCREMENT,
operacion VARCHAR(25) DEFAULT NULL,
usuario_cambio VARCHAR(25) DEFAULT NULL,
host_log VARCHAR(25) NOT NULL,
fecha_modificacion DATETIME DEFAULT NULL,
tabla_modificacion VARCHAR(50) NOT NULL,
PRIMARY KEY (id_registro)
)
ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
3 Bitácora de trabajo
Instrucción: Completa la plantilla con los triggers o disparadores que se
muestran a continuación:
a. log_doctores_insertar
b. INSERT ON
c. "INSERTAR"
d. log_doctores_actualizar
e. UPDATE ON
f. "ACTUALIZAR"
g. log_doctores_eliminar
h. DELETE ON
i. "ELIMINAR"
j. INSERT
k. UPDATE
l. DELETE
m. 'INSERTAR' ON
n. 'ACTUALIZAR' ON
o. 'ELIMINAR' ON
Plantilla para rellenar
DELIMITER //
CREATE TRIGGER log_doctores_insertar AFTER INSERT ON doctores
FOR EACH ROW INSERT INTO bitacora_trabajo(host_log, usuario_cambio,
operacion, fecha_modificacion, tabla_modificacion)
VALUES (SUBSTRING(USER(), (INSTR(USER(), '@')+1)),
SUBSTRING(USER(), 1, (INSTR(USER(), '@')-1)), “INSERTAR”, NOW(),
"DOCTORES")
//
CREATE TRIGGER log_doctores_actualizar AFTER UPDATE ON doctores
FOR EACH ROW INSERT INTO bitacora_trabajo(host_log, usuario_cambio,
operacion, fecha_modificacion, tabla_modificacion)
VALUES (SUBSTRING(USER(), (INSTR(USER(), '@')+1)), SUBSTRING(USER(),
1, (INSTR(USER(), '@')-1)), “ACTUALIZAR”, NOW(), "DOCTORES")
//
CREATE TRIGGER log_doctores_eliminar AFTER DELETE ON doctores
FOR EACH ROW INSERT INTO bitacora_trabajo(host_log, usuario_cambio,
operacion, fecha_modificacion, tabla_modificacion)
VALUES (SUBSTRING(USER(), (INSTR(USER(), '@')+1)),
SUBSTRING(USER(), 1, (INSTR(USER(), '@')-1)), “ELIMINAR”, NOW(),
"DOCTORES")
//
4 Tabla bitácora de trabajo
Instrucción: Completa la tabla de la bitácora de trabajo de acuerdo con las
consultas mostradas, teniendo en cuenta que los registros iniciales de la tabla
doctores y el usuario identificado en la base de datos es root@localhost:
id nombre apellido especialidad
1546 Laura Flores Pediatría
1547 Jaime Valdez Cardiología
1548 Paulina Ferrer Ginecología
1549 Andrés Valdivia Ginecología
Consultas:
INSERT INTO doctores(id, nombre, apellido, especialidad)
VALUES ('1875','Amelia', 'Hernández', 'Neurología');
UPDATE doctores
SET especialidad='Urología' WHERE especialidad='Ginecología'
DELETE FROM doctores
WHERE id = '1549'
Tabla para rellenar
id_registro operación usuario_cambi host_log fecha_modificaci tabla_modificacio
o on n
1 Root Localho 2022-11-14 DOCTORES
INSERTA st 16:47:21
R
2 INSERTA Root localho 2022-11-14 DOCTORES
R st 16:47:21
3 INSERTA Root localho 2022-11-14 DOCTORES
R st 16:47:21
4 INSERTA Root localho 2022-11-14 DOCTORES
R st 16:47:21
5 INSERTA Root localho 2022-11-14 DOCTORES
R st 16:47:21
6 ACTUAL Root localho 2022-11-14 DOCTORES
IZAR st 16:52:04
7 ACTUAL Root localho 2022-11-14 DOCTORES
IZAR st 16:52:04
8 ELIMINA root localho 2022-11-14 DOCTORES
R st 16:52:21