Una biblioteca para medir la calidad de la integridad referencial en bases de datos relacionales.
Project description
pyntegritydb
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 Basado en Métricas: Calcula métricas clave como
validity_rateyorphan_ratepara cada relación. - 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),jsonocsv. - Visualización de Esquema: Crea un grafo visual de las relaciones de tu base de datos, coloreando las conexiones según su "salud".
- 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
Puedes analizar tu base de datos con un único comando, pasándole la URI de conexión de SQLAlchemy.
1. Ejecutar un Análisis Básico
El siguiente comando se conectará a una base de datos SQLite y mostrará un reporte en la consola.
pyntegritydb "sqlite:///ruta/a/tu/database.db"
2. Generar Reporte en JSON
Usa el argumento --format para cambiar el formato de salida.
pyntegritydb "postgresql://user:pass@host/db" --format json
3. Generar una Visualización del Grafo
Próximamente se añadirá la funcionalidad para generar y guardar el grafo visual directamente desde la CLI.
Desarrollo
Si quieres contribuir al proyecto, sigue estos pasos:
-
Clona el repositorio:
git clone [https://github.com/tu_usuario/pyntegritydb.git](https://github.com/tu_usuario/pyntegritydb.git) cd pyntegritydb
-
Crea y activa un entorno virtual:
python3 -m venv venv source venv/bin/activate
-
Instala las dependencias en modo editable:
pip install -e ".[dev]" # (Necesitarás definir los 'dev' extras en pyproject.toml para pytest, etc.)
-
Ejecuta las pruebas:
pytest
Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyntegritydb-0.1.0.tar.gz.
File metadata
- Download URL: pyntegritydb-0.1.0.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d420e586525c22519de324958deaa3376fd88dfea606a06d76a5232b6c3749b
|
|
| MD5 |
d7dbe1e139677545cd86fb9d919a0bea
|
|
| BLAKE2b-256 |
13d83b054ce6367229f216c1fe145007653c2dfc00eef58a7cb94939bee6d810
|
File details
Details for the file pyntegritydb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pyntegritydb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1689571596fc12d5d630ee3590cda9a2dca870b7700d27a21c28d5fd08d32210
|
|
| MD5 |
10e17cc4fe1d7c7ccd5c87e79433eaa9
|
|
| BLAKE2b-256 |
78283c74a139d607fec0dac87c31a3b9813919400c9865d6732607db8cf54368
|