Tu base de datos controla a tu aplicación

Gran parte de las aplicaciones que vas a desarrollar en tu carrera son de consulta y actualización de bases de datos, y esa base de datos es una parte importante de la aplicación, sin embargo, en ocasiones la base de datos controla a la aplicación y cualquier cambio en la base de datos deja a nuestra aplicación inservible.

Veamos ciertos síntomas y anti patrones que nos dejan ver que nuestra base de datos está controlando nuestra aplicación:

  • Las entidades son referenciadas a través de tu código mediante claves únicas generadas dentro de la base de datos.

  • Tienes consultas SQL en tu código front-end.

  • Los usuarios pueden ver los nombres de las columnas o tablas en el front-end.

  • Unas de las tareas más comunes es mitigar el riesgo de inyección SQL desde las llamadas a APIs.

  • Tienes un modelo de autenticación/autorización implementado dentro de la base de datos.

  • Tu base de datos tiene un modelo de autenticación/autorización especifico para los desarrolladores o usuarios individuales.

  • Tienes consultas SQL en cualquier lugar fuera de una capa de servicio aislada.

  • Tienes consultas SQL más largas que secuelas de Rápidos y Furiosos.

  • Tus consultas se asemejan a la piedra Rosetta, es decir, realizan un mapeo complejo y traducción de múltiples campos en una sola declaración larga.

  • Estás utilizando la base de datos para realizar estadísticas avanzadas o ejecutar algoritmos comerciales más allá de la E/S.

  • Has implementado un elaborado sistema de almacenamiento en caché porque tus consultas son demasiado lentas/complejas.

  • Agregar o eliminar un índice da como resultado un rendimiento de front-end drásticamente mejorado.

  • Agregar una nueva columna/tabla requiere una refactorización extensa del código base de la aplicación.

  • Cambiar el nombre o el tipo de una columna/tabla requiere una refactorización extensa del código base de la aplicación.

  • El cambio de una sola tabla en tablas de varios a uno y de uno a varios requiere una refactorización extensa del código base de la aplicación.

  • La combinación de varias tablas en una sola requiere una amplia refactorización del código base de la aplicación.

  • Cambiar el proveedor de la base de datos requiere una amplia refactorización del código base de la aplicación.

  • Tienes objetos en la base de código de su aplicación con nombres explícitos de tablas o columnas en su base de datos, es decir, no nombrados para su propósito.

  • Tienes copias impresas de alta calidad del diccionario/esquema de datos en una caja sellada herméticamente en una bóveda con bloqueo de tiempo que requiere dos personas para desbloquear girando las llaves al mismo tiempo.

  • Tienes columnas tabulares que almacenan blobs JSON o XML.

  • Tienes una versión JSON o XML estática de tu esquema de datos.

  • Tienes campos de datos que almacenan código ejecutable.

  • Tienes desarrolladores que pasan la mayor parte de su tiempo escribiendo y/o optimizando consultas de bases de datos.

  • Estás considerando dejar tu organización por otra diferente que utilice una tecnología de base de datos a la que acabas de conocer en una conferencia.

Comentarios