100% encontró este documento útil (1 voto)
3K vistas6 páginas

R3 - U2 Generar Una Bitacora. ABD

Este documento presenta un caso de estudio sobre la creación de una bitácora de trabajo para registrar operaciones insert, update y delete en una tabla doctores de una base de datos de un hospital. Se muestra la creación de la tabla doctores y la tabla bitácora_trabajo, así como plantillas para crear triggers que inserten registros en la bitácora de trabajo cuando ocurran dichas operaciones en la tabla doctores. Finalmente, se completa la tabla bitácora_trabajo con registros de ejemplo según las consultas propuestas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
3K vistas6 páginas

R3 - U2 Generar Una Bitacora. ABD

Este documento presenta un caso de estudio sobre la creación de una bitácora de trabajo para registrar operaciones insert, update y delete en una tabla doctores de una base de datos de un hospital. Se muestra la creación de la tabla doctores y la tabla bitácora_trabajo, así como plantillas para crear triggers que inserten registros en la bitácora de trabajo cuando ocurran dichas operaciones en la tabla doctores. Finalmente, se completa la tabla bitácora_trabajo con registros de ejemplo según las consultas propuestas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

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 elaboración

Nombre del Módulo

Nombre del 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_insert 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_cambio host_log fecha_modificacion tabla_modificacion

1 INSERTAR root localhost 02-11-22 DOCTORES

02-11-22
2 INSERTAR root Localhost DOCTORES

02-11-22
3 INSERTAR root Localhost DOCTORES

02-11-22
4 INSERTAR root Localhost DOCTORES

02-11-22
5 INSERTAR root Localhost DOCTORES

02-11-22
6 ACTUALIZAR root localhost DOCTORES

02-11-22
7 ELIMINAR root Localhost DOCTORES

NOTA: Los primeros cuatro registros corresponden a los primeros cuatro doctores ya
ingresados 1546 a 1549

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

El registro número 5 corresponde al de la primera consulta 1875 y la tabla quedaría así.


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
1875 Amelia Hernández Ginecología
La consulta número 6 actualiza la tabla completa. Y la tabla quedaría así

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
1875 Amelia Hernández Ginecología

La consulta número 7 modifica al id 1549 que corresponde al doctor Andres Valdivia por lo tanto
la tabla con la eliminación quedaría de la siguiente forma:

id nombre apellido especialidad


1546 Laura Flores Pediatría
1547 Jaime Valdez Cardiología
1548 Paulina Ferrer Ginecología
1875 Amelia Hernández Ginecología

Conclusión:

En este Reto aprendí un poco más sobre la importancia de una base de datos y el disparador o
trigger que es una funcionalidad que la base de datos ejecuta de forma automática cuando
se realiza una operación de tipo Insert, Update o Delete.

Considero que con la práctica y aprendiendo bien el funcionamiento del programa MySQL
lograré aprender más, es muy importante y elemental en el manejo de alguna empresa o
negocio, Ya que creando una base de datos se puede uno ahorrar mucho tiempo relacionado
con el trabajo y con el programa, las funciones y ejecuciones de una empresa se realizan mucho
mejor y con más confianza, siempre y cuando se maneje bien la base de datos.

También podría gustarte