Proyecto Final

FINAL BASE DE DATOS II

Definir el enunciado del problema a sistematizar según las necesidades detectadas. (Debe ser Claro y tener mínimo 12 tablas) 

PROBLAMA A SISTEMATISAR: EmpresaRedes

Una empresa Redes, dedicada a la prestación de servicios de instalación, cableado estructurado y mantenimiento de equipos de cómputo, presenta actualmente una deficiente gestión en el control de información relacionada con sus usuarios (clientes) y empleados técnicos, lo que genera demoras en la asignación de servicios, errores en el seguimiento de actividades y dificultades para acceder a reportes actualizados.

El manejo de datos se realiza de forma manual o mediante hojas de cálculo dispersas, lo que impide tener una trazabilidad adecuada de las órdenes de trabajo, historial de mantenimiento, disponibilidad del personal técnico, y control de insumos o equipos utilizados en las instalaciones.

Ante esta situación, se hace necesario diseñar y desarrollar un sistema de información integral que permita automatizar los procesos de gestión de usuarios, empleados técnicos, servicios solicitados, asignación de tareas, recursos, facturación, y seguimiento de mantenimiento, con el fin de mejorar la eficiencia operativa, la toma de decisiones y la calidad del servicio ofrecido.

Usuarios (Clientes)

    • Información de contacto, tipo de cliente, dirección, etc.

Empleados Técnicos

    • Datos personales, cargo, habilidades, disponibilidad, etc.

Servicios

    • Tipos de servicios ofrecidos: instalación, mantenimiento, revisión, etc.

Órdenes de Servicio

    • Solicitudes de clientes, fechas, estados, prioridades.

Asignaciones Técnicas

    • Relación entre órdenes y técnicos asignados.

Equipos / Herramientas

    • Inventario de equipos usados por los técnicos.

Insumos

    • Materiales utilizados para instalaciones o mantenimientos.

Historial de Mantenimiento

    • Registro de servicios anteriores por cliente o equipo.

Facturación

    • Detalle de cobros por servicio realizado.

Zonas o Ubicaciones de Servicio

  • Para organizar las rutas o zonas de cobertura.

Disponibilidad Técnica/Turnos

  • Calendario o turnos de trabajo de los técnicos.

Reportes / Auditoría

  • Seguimiento de acciones realizadas dentro del sistema.

Categorías de Servicio (opcional para extender)

  • Clasificación de servicios en grupos o especialidades.

Usuarios (Clientes)

  • id_usuario (PK)

  • nombre, tipo_cliente, direccion, telefono, etc.

  • Relacionada con: Órdenes de servicio, Historial de mantenimiento, Facturación

Técnicos

  • id_tecnico (PK)

  • nombre, cargo, habilidades, etc.

  • Relacionada con: Asignaciones técnicas, Turnos

Servicios

  • id_servicio (PK)

  • nombre_servicio, descripcion, precio, etc.

  • Relacionada con: Órdenes de servicio, Categorías de servicio

Categorías de Servicio

  • id_categoria (PK)

  • nombre_categoria, descripcion

  • Relacionada con: Servicios (FK: id_categoria en tabla Servicios)

Equipos

  • id_equipo (PK)

  • nombre_equipo, tipo, estado, etc.

  • Relacionada con: Equipos usados, Historial de mantenimiento

Insumos

  • id_insumo (PK)

  • nombre_insumo, cantidad_disponible, etc.

  • Relacionada con: Insumos usados

Zonas

  • id_zona (PK)

  • nombre_zona, descripcion

  • Relacionada con: Órdenes de servicio


🔄 TABLAS DE MOVIMIENTO

Órdenes de Servicio

  • id_orden (PK)

  • id_usuario (FK), id_servicio (FK), id_zona (FK), fecha_solicitud, estado, prioridad

  • Relacionada con: Asignaciones técnicas, Facturación, Historial de mantenimiento, Equipos usados, Insumos usados

Asignaciones Técnicas

  • id_asignacion (PK)

  • id_orden (FK), id_tecnico (FK), fecha_asignacion, estado

  • Relacionada con: Turno

Equipos Usados

  • id_equipo_usado (PK)

  • id_orden (FK), id_equipo (FK), cantidad, observaciones

Insumos Usados

  • id_insumo_usado (PK)

  • id_orden (FK), id_insumo (FK), cantidad_usada

Historial de Mantenimiento

  • id_historial (PK)

  • id_usuario (FK), id_equipo (FK), fecha_mantenimiento, detalle, id_tecnico (FK)

Turnos

  • id_turno (PK), id_tecnico (FK),

  • nombre_turno, horario_inicio, horario_fin


Facturación

  • id_factura (PK)

  • id_orden (FK), id_usuario (FK), fecha, monto_total


TABLAS

Tipo Tablas
Referenciales:  Usuarios, Técnicos, Servicios, Categorías, Equipos, Insumos, Zonas, Turnos.

De Movimiento :
Órdenes, Asignaciones_tecnicas, Equipos_usados, Insumos_usados, Mantenimiento, Facturación.

 Descargar: Diccionario de datos

Diseñar ejercicios en los que se apliquen los diferentes comandos que se utilizaron durante el semestre con su respectivo análisis y resultados.

Tigger: Evitar borrar un técnico si tiene asignaciones activas (pendiente o en curso).

Vemos que en algunas tablas aparecen la id_tecnico o la id_turno o asi vamos a cambiar cada una de ellas  por los nombres que tienen su respectiva id. Ejemplo Tabla servicios 

Me aparece la id de categoria_id, pero queremos que nos aparezca el nombre de la categoría.

ANÁLISIS

-Que deseo Mostrar:

  • Nombre de categorias en la tabla de servicios

-Tablas Involucradas

  • Categorias

Funcion a utilizar

  • Select,Join

Codigo: select s.id_servicio, s.nombre AS nombre_servicio, s.descripcion, c.nombre_categoria from servicios s join categorias c on s.categoria_id = c.id_categoria;

Insertar una asignación tecnica con datos en una tabla buscando un valor en otra (Insert - select) 

Insetamos una asignacion_tecnica;

ANÁLISIS

- En que tabla se van a insertar los datos

  • Asignaciones_tecnicas

-Que campo(campos conitiene la informacion solicitada) y de que tabla

  • Campo: d_orden, id_tecnico, fecha_asignacion, estado_asignacion
  • Tabla: Ordenes,Tecnicos

-Codicione(s) si las hay:

  • No hay condiciones

-Que tablas están involucradas en la inserción

  • Tablas: ordenes y tecnicos

Codigo: insert into asignaciones_tecnicas (id_orden, id_tecnico, fecha_asignacion, estado_asignacion) select o.id_orden, t.id_tecnico, '2025-06-01', 'pendiente' from ordenes o join tecnicos t on t.nombre = 'luis ramírez' where o.id_orden = 10;

Actualización en cascada: para asignaciones_tecnicas con respecto al estado de la orden

ANÁLISIS

- Cual es el nombre de la tabla en la que se van actualizar los datos y con que información

  • tablas: asignaciones_tecnicas y ordenes.
  • información :asignaciones_tecnicas a join ordenes

-que campo(campos conitiene la inforamcion solicitada) y de que tabla

  • Campo:NA
  • Tabla: NA

-Codicione(s) si las hay:

  • a.id_orden = o.id_orden

-Que tablas estan involucradas en la consulta y como se relacionan

  • Tablas: asignaciones_tecnicas y ordenes
  • Relación:  a.id_orden = o.id_orden

Codigo: update asignaciones_tecnicas a join ordenes o on a.id_orden = o.id_orden set a.estado_asignacion = o.estado where o.estado = 'completada';

Crear tabla usuario para acceder ala base de datos: Una que tenga todos los derechos, otro que no tenga derechos y otro que tenga uno que otro derecho.

USUARIO CON TODOS LOS DERECHOS

create user 'admin_user'@'localhost' identified by 'admin123';

grant all privileges on EmpresaRedes.* to 'admin_user'@'localhost';

  flush privileges;

Ingreso como: mysql -u admin_user -p

Contreseña: admin123

USUARIO SIN DERECHOS

create user 'user_sin_acceso'@'localhost' identified by 'sinacceso123';

Ingreso como: mysql -u user_sin_acceso -p

Contreseña: sinacceso123

USUARIO CON DERECHOS PARCIALES

create user 'user_limitado'@'localhost' identified by 'limitado123';

grant select, insert on EmpresaRedes.* to 'user_limitado'@'localhost';

flush privileges;

Ingreso como: mysql -u user_limitado -p

Contreseña: limitado123

Josue Casalins Hernadez
Creado con Webnode
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar