Manipulación de Datos con SQL y Python

Gestión avanzada de datos de RRHH de Veterinaria

Descripción del Proyecto

Este proyecto se enfoca en la manipulación avanzada de datos de Recursos Humanos de una clínica veterinaria utilizando SQL y Python. El objetivo principal fue desarrollar un sistema eficiente para gestionar, analizar y visualizar información relacionada con el personal, departamentos, salarios y ubicaciones de la clínica.

El proyecto abarcó desde consultas SQL avanzadas hasta la implementación de transacciones ACID para garantizar la integridad y consistencia de los datos, proporcionando una solución robusta para la gestión de recursos humanos en el entorno veterinario.

Metodología

El desarrollo de este proyecto siguió una metodología estructurada que incluyó:

1. Consultas SQL Avanzadas

Realicé consultas avanzadas en SQL que incluyeron la actualización, combinación y filtrado de diferentes bases de datos relacionadas con:

  • Localización de empleados y sucursales
  • Estructura departamental
  • Posiciones y roles laborales
  • Historial laboral del personal
  • Información salarial y compensaciones
-- Ejemplo de consulta SQL para análisis de salarios por departamento
SELECT 
    d.department_name, 
    COUNT(e.employee_id) as employee_count,
    AVG(s.salary) as avg_salary,
    MAX(s.salary) as max_salary,
    MIN(s.salary) as min_salary
FROM 
    employees e
JOIN 
    departments d ON e.department_id = d.department_id
JOIN 
    salaries s ON e.employee_id = s.employee_id
WHERE 
    s.to_date = '9999-01-01'
GROUP BY 
    d.department_name
ORDER BY 
    avg_salary DESC;

2. Procedimientos Almacenados

Generé y almacené procedimientos de procesado para representar datos de las diferentes tablas de manera eficiente, permitiendo análisis recurrentes y reportes automatizados sobre la estructura organizacional y el rendimiento del personal.

3. Transacciones ACID

Implementé transacciones ACID (Atómicas, Consistentes, Aisladas y Duraderas) para la automatización del procesamiento de datos, garantizando la integridad de la información incluso en operaciones complejas que afectan a múltiples tablas relacionadas.

-- Ejemplo de transacción ACID para actualización de departamento y salario
BEGIN TRANSACTION;

UPDATE employees 
SET department_id = 3 
WHERE employee_id = 1001;

UPDATE salaries 
SET salary = salary * 1.1 
WHERE employee_id = 1001 AND to_date = '9999-01-01';

INSERT INTO job_history (employee_id, start_date, end_date, department_id, position_id)
VALUES (1001, '2023-01-01', CURRENT_DATE, 2, 
       (SELECT position_id FROM employees WHERE employee_id = 1001));

COMMIT;

4. Integración con Python

Utilicé Python para ampliar las capacidades de análisis y visualización de los datos extraídos mediante SQL, creando dashboards interactivos y reportes automatizados para la toma de decisiones en recursos humanos.

Tecnologías Utilizadas

SQL Python Pandas SQLAlchemy PostgreSQL Matplotlib Seaborn Jupyter Notebook

Resultados y Logros

Principales Logros

Optimización de consultas complejas entre múltiples tablas relacionadas
Automatización de procesos de actualización de datos con integridad garantizada
Desarrollo de dashboards para análisis de tendencias en RRHH

El sistema desarrollado permitió a la clínica veterinaria gestionar de manera más eficiente su información de recursos humanos, facilitando análisis complejos sobre distribución de personal, evolución salarial y estructura organizacional.

Los procedimientos almacenados y las transacciones ACID implementadas garantizaron la consistencia de los datos incluso en operaciones complejas, reduciendo errores y mejorando la confiabilidad del sistema.

Conclusiones

Este proyecto demuestra la efectividad de combinar SQL avanzado con Python para crear soluciones robustas de gestión de datos en entornos empresariales. Las técnicas implementadas no solo mejoraron la eficiencia en el manejo de información de recursos humanos, sino que también proporcionaron herramientas valiosas para la toma de decisiones basadas en datos.

La implementación de transacciones ACID y procedimientos almacenados estableció una base sólida para futuras expansiones del sistema, permitiendo escalar las capacidades analíticas a medida que crecen las necesidades de la organización.