Skip to main content

Una biblioteca para medir la calidad de la integridad referencial en bases de datos relacionales.

Project description

pyntegritydb

PyPI version License: MIT Python versions Build Status

pyntegritydb es una herramienta de línea de comandos para analizar y medir la calidad de la integridad referencial en bases de datos relacionales. Basada en el paper académico "Referential Integrity Quality Metrics", la biblioteca te ayuda a diagnosticar rápidamente relaciones rotas o "huérfanas" en tu esquema.


Características Principales

  • Análisis Dual: Mide tanto la Completitud (filas huérfanas) como la Consistencia (datos desnormalizados incorrectos).
  • Sistema de Alertas: Define umbrales de calidad en un archivo config.yml y recibe alertas si tus datos no cumplen con los estándares.
  • Soporte Multi-DB: Compatible con cualquier base de datos que soporte SQLAlchemy (PostgreSQL, MySQL, SQLite, etc.).
  • Reportes Flexibles: Genera reportes en múltiples formatos: tabla para la consola (cli), json o csv.
  • Fácil de Usar: Diseñada como una herramienta de línea de comandos simple y directa.

Instalación

Instala pyntegritydb directamente desde PyPI:

pip install pyntegritydb

Guía de Inicio Rápido

El uso más potente de pyntegritydb es combinando un análisis con un archivo de configuración.

1. Crea tu Archivo de Configuración

En tu proyecto, crea un archivo config.yml:

# config.yml
thresholds:
  default:
    validity_rate: 0.99 # Al menos 99% de las FKs deben ser válidas
    
  tables:
    orders:
      validity_rate: 1.0 # La tabla 'orders' debe ser perfecta

consistency_checks:
  orders: 
    - on_fk: ["user_id"]
      attributes:
        customer_name: name

2. Ejecuta el Análisis

Usa el comando pyntegritydb apuntando a tu base de datos y a tu archivo de configuración.

pyntegritydb "postgresql://user:pass@host/db" --config config.yml

3. Interpreta el Reporte

pyntegritydb generará un reporte completo en tu consola, mostrando primero las alertas, y luego los análisis detallados.

🚦 Reporte de Alertas 🚦
=========================
- ALERTA [Completitud]: La tabla 'orders' viola el umbral de 'validity_rate'. Esperado >= 100.00%, Obtenido = 98.50%

### Reporte de Completitud (Filas Huérfanas) ###
+-----------------+------------------+-----------------+-----------------+-------------+
| Tabla de Origen | Tabla de Destino | Tasa de Validez | Filas Huérfanas | Total Filas |
+=================+==================+=================+=================+=============+
| orders          | users            | 98.50%          | 15              | 1000        |
+-----------------+------------------+-----------------+-----------------+-------------+
...

Desarrollo

Si quieres contribuir al proyecto, sigue estos pasos:

  1. Clona el repositorio:

    git clone [https://github.com/tu_usuario/pyntegritydb.git](https://github.com/tu_usuario/pyntegritydb.git)
    cd pyntegritydb
    
  2. Crea y activa un entorno virtual:

    python3 -m venv venv
    source venv/bin/activate
    
  3. Instala las dependencias en modo editable:

    pip install -e ".[dev]" 
    # (Necesitarás definir los 'dev' extras en pyproject.toml para pytest, etc.)
    
  4. Ejecuta las pruebas:

    pytest
    

Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyntegritydb-0.2.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyntegritydb-0.2.0-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file pyntegritydb-0.2.0.tar.gz.

File metadata

  • Download URL: pyntegritydb-0.2.0.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyntegritydb-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3b0474544abf3a1154dfb42111775bf208c0f12c65d369cbbe6f28b691763af7
MD5 4fb7c58a46e3c41ff4258b36e72a71f6
BLAKE2b-256 0e3db054b6e940ed367c3189c20342cb6391fb44d313f6302dc2a948ef88e9a2

See more details on using hashes here.

File details

Details for the file pyntegritydb-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyntegritydb-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pyntegritydb-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7e032c63af88f23575c87d4f395e100451f497d7306f34f8e780e41c201f8b28
MD5 433ab14beaea20e7c80a4855d374142f
BLAKE2b-256 aa3fe9a4181d370dceb8d5c603e65cafdaf3d75f98e01cc12cbb0668117a1075

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page