Está en la página 1de 9

Informática y Telecomunicaciones

Analista Programador

Evaluación Sumativa 3: Proyecto de desarrollo de


CRUD - MySQL

Datos de alumno

Nombre alumno

Apellido Paterno Apellido Materno Nombres

RUT

Puntaje máximo
74
NOTA
Puntaje obtenido

INSTRUCCIONES
Lea cuidadosamente estas instrucciones antes de contestar:

 La duración máxima de la Prueba es de 5 días.


 La nota 4,0 se obtiene logrando un 60% del puntaje total de 74 Pts.
 La prueba cuenta de un tipo de ítem: Desarrollo.
 Utilizar la herramienta Python
 Lea cuidadosamente cada pregunta antes de contestar.

Caso – Mantenedor Comuna y Cargo

Actividades
Para el desarrollo de esta actividad deberás leer atenta y comprensivamente cada uno de los ítems
a desarrollar.

 Desarrollar una solución para las problemáticas planteadas utilizando Python.

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

Actividad: Realización de CRUD

La empresa de minimarket Fénix, requiere un control de los empleados que tiene y es por ello que
le ha solicitado realizar un sistema para poder llevar un registro de los empleados que tiene la
empresa.

Inicialmente se cargará el siguiente menú, siempre y cuando se haya autenticado como


administrador, mediante su correo y contraseña.

CRUD MIMARKET FÉNIX

1. CRUD Empleados
2. CRUD Cargos
3. CRUD Comunas
4. Salir del sistema

Nota: La opción 1, no se encuentra operativa para la evaluación 3.

Al ingresar la opción 2:

CRUD Cargos

1. Ingresar Cargo
2. Modificar Cargo
3. Eliminar Cargo
4. Mostrar todos los Cargos
5. Volver al menú principal

Al ingresar la opción 3:

CRUD Comunas

6. Ingresar Comuna
7. Modificar comuna
8. Eliminar Comuna
9. Mostrar todas las comunas
10. Volver al menú principal

 Se deberá construir patrón MVC (DAO-DTO):


Vista:
o Main.py (Vista): El que debe contener el proceso de login de acceso al sistema.
o Propiedades de las clases que se encuentran en la capa modelo, deben ser
privadas.
o Métodos: Puede agregar algunos métodos adicionales a los que se
encuentran en el diagrama de clases, que necesite para construir su
aplicación.

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

Diagrama de Clases:

Métodos para trabajar con la Clase Cargo:


 addCargo(): Este método debe permitir ingresar los datos de un cargo disponible en la
empresa y almacenarlos en la tabla Cargo. Antes de realizar el ingreso, se debe validar que
el cargo NO se encuentre (utilizar el método findCargo() para la búsqueda del cargo). De
existir, se debe enviar mensaje respectivo y no permitir el ingreso.
o Los datos para ingresar por consola son:
 Identificador del cargo
 Nombre del cargo

El cargo también se debe incorporar al atributo de clase listaCargos de la clase Cargo.

 updateCargo(): Este método debe permitir modificar solo columna nombre del cargo de la
tabla cargo. Antes de realizar la modificación, se debe validar que el cargo se encuentre
(utilizar el método findCargo() para la búsqueda del cargo). De NO existir, se debe enviar
mensaje respectivo y no permitir la modificación.

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

Observaciones:

 Un dato vacío, implica que el dato en la tabla no se modifica.


 El cargo también se debe modificar en el atributo de clase listaCargos de la clase
Cargo.

 delCargo(): Este método debe permitir eliminar un cargo de la tabla cargo, según
identificador del cargo. Además, se debe realizar una pregunta de confirmación de
eliminación, antes de proceder con la baja del cargo. Antes de realizar la eliminación, se
debe validar que el cargo se encuentra (utilizar el método findCargo() para la búsqueda del
cargo). De NO existir, se debe enviar mensaje respectivo y no realizar eliminación.

El cargo también se debe eliminar del atributo de clase listaCargos de la clase Cargo.

 findCargo(): Este método debe permitir buscar el cargo por su identificador de cargo
ingresado por el usuario.

 findAllCargos(): Este método debe permitir mostrar los datos de todos los cargos
ingresados en la tabla cargos.
Los datos para mostrar son los siguientes:
o identificador del cargo y su nombre

Métodos para trabajar con la Clase Comuna:


 addComuna(): Este método debe permitir ingresar los datos de una comuna en la tabla
Comuna. Antes de realizar el ingreso, se debe validar que la comuna NO se encuentre
(utilizar el método findComuna() para la búsqueda de la comuna). De existir, se debe
enviar mensaje respectivo y no permitir el ingreso.
o Los datos para ingresar por consola son:
 Identificador de la comuna
 Nombre de la comuna

La comuna, también se debe incorporar al atributo de clase listaComunas de la clase


Comuna.

 updateComuna(): Este método debe permitir modificar solo columna nombre de comuna
de la tabla comuna. Antes de realizar la modificación, se debe validar que la comuna se
encuentre (utilizar el método findComuna() para la búsqueda de la comuna). De NO
existir, se debe enviar mensaje respectivo y no permitir la modificación.

Observación:

 Un dato vacío, implica que el dato en la tabla no se modifica.

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

 La comuna, también se debe modificar en el atributo de clase listaComunas de la


clase Comuna.

 delComuna(): Este método debe permitir eliminar una comuna de la tabla comuna, según
identificador de la comuna. Además, se debe realizar una pregunta de confirmación de
eliminación, antes de proceder con la baja de esa comuna. Antes de realizar la
eliminación, se debe validar que el cargo se encuentra (utilizar el método findComuna()
para la búsqueda de esa comuna). De NO existir, se debe enviar mensaje respectivo y no
realizar eliminación.

La comuna, también se debe eliminar del atributo de clase listaComunas de la


clase Comuna.

 findComuna(): Este método debe permitir buscar la comuna por su identificador de


comuna ingresado por el usuario.

 findAllComunas(): Este método debe permitir mostrar los datos de todas las comunas
ingresadas en la tabla comuna.
Los datos para mostrar son los siguientes:
o identificador de comuna y su nombre

Construya la base de datos POO3 y las tablas indicadas, utilizando el SGBD MySQL.

Recuerde:

 Validar que los campos de entrada no sean vacíos en el método addCargo() y


addComuna().
 Las pk de las tablas empleado, cargo y comuna deben ser auto incrementables.

Modelo físico:

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

Script
create table EMPLEADO
(
IDEMPLEADO int not null auto_increment,
IDCARGO int not null,
IDCOMUNA int not null,
RUN varchar(10) not null,
NOMBRE varchar(15),
APELLIDO varchar(15),
DIRECCION varchar(30),
CLAVE varchar(40) not null,
CORREO varchar(15) not null,
primary key (IDEMPLEADO)
);

create table CARGO


(
IDCARGO int not null auto_increment,
NUMEROCARGO int not null,
NOMBRECARGO varchar(15),
primary key (IDCARGO)
);

create table COMUNA


(
IDCOMUNA int not null auto_increment,

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

NUMEROCOMUNA int not null,


NOMBRECOMUNA varchar(15),
primary key (IDCOMUNA)
);

alter table EMPLEADO add constraint FK_RELATIONSHIP_1 foreign key (IDCARGO)


references CARGO (IDCARGO) on delete restrict on update restrict;

alter table EMPLEADO add constraint FK_RELATIONSHIP_2 foreign key (IDCOMUNA)


references COMUNA (IDCOMUNA) on delete restrict on update restrict;

Pasos para insertar registros de manera directa en la base de datos:


Paso 1: Insertar registro
INSERT INTO COMUNA VALUES(NULL,13110,'LA FLORIDA');

Paso 2: Revisar el idcomuna, que se generó de forma automática.


SELECT * FROM COMUNA WHERE NUMEROCOMUNA= 13110;

Paso 3: Insertar registro


INSERT INTO CARGO VALUES(NULL,1,'ADMINISTRADOR');

Paso 4: Revisar el idcargo, que se generó de forma automática.


SELECT * FROM CARGO WHERE NUMEROCARGO=1

Paso 5: Insertar registro, enempleado, respetando los idcargo y idcomuna generados en


los pasos anteriores.
INSERT INTO EMPLEADO VALUES(NULL, 4, 6 ,'11111111-
1','CARLOS','GUAJARDO','ALMIRANTE BARROSO
76','6b27261d2376675ed03f852cd30474d3','CG@INACAP.CL');

Paso 6: Revisar el idempleado, que se generó de forma automática.


SELECT * FROM EMPLEADO WHERE RUN=’11111111-1’;

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

Instrumento de evaluación
Para verificar lo que han aprendido, luego de desarrollar esta evaluación, revise las respuestas o
desarrollo a través de la siguiente pauta de cotejo.
Criterio de Evaluación Escala de Observaciones
Indicadores
valoración
SI NO
2.1.1 Desarrolla aplicación Funcional: Crea la vista para
POO, considerando datos de el proceso de autenticación 4 1
ingreso para ser almacenados por medio de un login.
en base de datos. Funcional: Realiza el
proceso de incorporar un
2.1.2 Codifica Acceso a base cargo a la tabla respectiva, 4 1
de datos mediante Database utilizando el método
API. addCargo().
Funcional: Realiza el
2.1.3 Desarrolla aplicación proceso de incorporar una
POO con procesos CRUD, comuna a la tabla respectiva, 4 1
considerando seguridad de los utilizando el método
datos. addComuna().
Funcional: Realiza el
2.1.4 Codifica Login de proceso de modificación de
acceso a la aplicación un cargo en la tabla 4 1
desarrollada, considerando respectiva, utilizando el
hash MD5 para datos sensibles. método updateCargo().
Funcional: Realiza el
2.1.5 Contribuyendo en la proceso de modificación de
organización de las tareas. una comuna en la tabla 4 1
respectiva, utilizando el
método updateComuna().
Funcional: Realiza el
proceso de eliminación de
un cargo de la tabla 4 1
respectiva, utilizando el
método delCargo().
Funcional: Realiza el
proceso de eliminación de
una comuna de la tabla 4 1
respectiva, utilizando el
método delComuna().
Funcional: Realiza el
proceso de buscar el cargo,
4 1
utilizando el método
findCargo().
Funcional: Realiza el
proceso de buscar comuna,
4 1
utilizando el método
findComuna().
Funcional: Realiza el 4 1
proceso de mostrar todos los
cargos que se encuentran en
la tabla respectiva,
utilizando el método

Programación Orientada a Objetos


Informática y Telecomunicaciones
Analista Programador

findAllCargos().
Funcional: Realiza el
proceso de mostrar todas las
comunas que se encuentran
4 1
en la tabla respectiva,
utilizando el método
findAllComunas().
Realiza las validaciones
respectivas en los datos de
4 1
entrada, en la lógica de
negocios.
Los métodos que se
encuentran en los módulos
Dto del package
Controlador, construyen los
6 1
objetos respectivos para ser
enviados a la lógica de
negocios y al módulo Dao
correspondiente.
Los métodos que se
encuentran en los módulos
del package Dao, se 6 1
comunican con la base de
datos de forma correcta.
Las clases que se encuentran
en los módulos del package
del Modelo, son utilizadas
6 1
correctamente por los
módulos Dto del package
Controlador.
Carga las listas
(listaComunas, listaCargos)
para comuna y cargo antes 4 1
de la carga del menú
principal
Permite encriptar la clave al
momento de autenticarse, 4 1
utilizando Hash MD5
Puntaje total 74

Programación Orientada a Objetos

También podría gustarte