¿Cómo utilizar la IA para generar esquemas de bases de datos?

Cubierta del esquema de la base de datos del agente de IA de Back4app

Diseñar una base de datos para una solución backend eficaz es todo un reto. Averiguar todas las clases, relaciones, etc. necesarias puede llevar mucho tiempo.

Además, tomar decisiones equivocadas en la fase de diseño puede tener consecuencias perjudiciales más adelante en la producción.

En este artículo hablaremos del uso de la IA para la generación de esquemas de bases de datos. Analizaremos las ventajas de utilizar IA y sus inconvenientes, y ofreceremos algunos ejemplos prácticos.

Además, aprenderás a utilizar la IA para generar un backend completo sin necesidad de escribir código.

Ventajas del uso de la IA para el diseño de bases de datos

Veamos primero las ventajas de utilizar la IA.

Automatización y rentabilidad

La primera ventaja, y probablemente la más evidente, de incorporar la IA al diseño de bases de datos es la posibilidad de automatizar diversas tareas.

Esto incluye la generación del esquema de la base de datos, la optimización de la base de datos, la configuración de índices, la escritura de consultas avanzadas, etc.

Todo lo anterior supone un importante ahorro de tiempo y dinero.

Optimización

La IA desempeña un papel crucial en la optimización de las estructuras de las bases de datos. Mediante algoritmos avanzados y aprendizaje automático, la IA puede analizar los patrones de uso de los datos y recomendar mejoras en el esquema de la base de datos.

Esta optimización puede mejorar el rendimiento y la capacidad de respuesta de su aplicación.

Integración con bases de datos existentes

Otra gran ventaja del uso de la IA es que puede ayudarle a actualizar sus bases de datos existentes.

Todo lo que hay que hacer es describir la base de datos actual al agente de IA o generar un volcado de la base de datos y, a continuación, describir las actualizaciones deseadas.

Esto es aún más fácil si utiliza el agente Back4app. En lugar de generar un volcado de base de datos, puede decirle al agente que se conecte a una aplicación existente:

Connect to my "movie-reviews" app and create a new database class named `Watchlist`.

El agente de IA recopilará todo el contexto necesario y actualizará su base de datos en consecuencia.

Menos propenso a errores

La integración de la IA en el diseño de bases de datos reduce la probabilidad de errores humanos.

Los procesos tradicionales de diseño y optimización de bases de datos suelen implicar la intervención manual, lo que aumenta el riesgo de cometer errores como diseños de esquemas incorrectos, consultas ineficaces o elecciones de índices subóptimas.

Visualización sencilla

Aprovechando la IA, puedes visualizar fácilmente la estructura de tu base de datos. Para visualizar la base de datos, solicite al agente de IA que genere un código de visualización para su herramienta de diagramación ER favorita.

He aquí un ejemplo para Mermaid:

Generate Mermaid ER diagram visualization code for my database.

Resultado:

erDiagram
    USER ||--o{ REVIEW : writes
    MOVIE ||--o{ REVIEW : has
    MOVIE ||--o{ MOVIEGENRE : has

    USER {
        username String
        email String
        emailVerified Boolean
        displayName String
    }

    MOVIE {
        title String
        releaseDate Date
        duration Number
        director String
        cast Array
        synopsis String
    }

    // ...

Escollos de la IA en el diseño de bases de datos

Alucinaciones

Los agentes de inteligencia artificial a veces proporcionan información plausible pero incorrecta o sin sentido. Esto se conoce como alucinaciones, y ocurre con la mayoría de los grandes modelos lingüísticos (LLM).

Por ello, los desarrolladores noveles en bases de datos no deberían utilizar la IA para la generación de esquemas de bases de datos.

Rendimiento

No se garantiza que el esquema de base de datos generado por la IA sea óptimo. El agente de IA podría malinterpretar lo que estás intentando construir y proporcionarte un esquema de base de datos subóptimo o defectuoso.

El diseño de bases de datos con IA es un proceso iterativo. Si observas que el agente de IA ha cometido un error, indícaselo. Quizá pueda corregirlo o mejorar el esquema.

Casos extremos

Utilizar la IA puede no ser la mejor idea si su empresa requiere un diseño de base de datos atípico. La mayoría de los agentes de IA fueron entrenados en un gran número de aplicaciones genéricas.

No tienen conocimiento de cómo proceder con su base de datos especializada.

En ese caso, es mejor confiar en expertos que en soluciones generales de IA.

¿Cómo utilizar la IA para generar un esquema de base de datos?

En esta sección del artículo, veremos tres ejemplos prácticos del uso de la IA para generar un esquema de base de datos. Los ejemplos incluyen una sencilla aplicación de blog, un sitio de comercio electrónico y un sitio de reseñas de películas.

Después de eso, veremos algunas de las otras cosas que el agente Back4app AI es capaz de hacer.

Los siguientes pasos requerirán que tengas una cuenta Back4app. Si aún no tienes una, regístrate gratis.

Objetivos

  1. Generar un esquema de base de datos
  2. Crear una base de datos utilizando el esquema
  3. Analizar la API RESTful y GraphQL autogenerada
  4. Revisar la documentación generada automáticamente
  5. Utilizar las funciones de Cloud Code

¿Qué es el Agente Back4app?

Back4app Agent es un agente impulsado por IA que le permite realizar tareas relacionadas con la nube con el poder de la conversación.

Esto incluye la creación de aplicaciones, el despliegue de aplicaciones, el diseño de la base de datos y la escritura de archivos Docker o código front-end.

Al aprovechar Back4app Agent, tendrá su propio asistente personal de DevOps a su lado 24/7. Lo mejor de todo es que puede aprender sobre la marcha y mejorar sobre la marcha.

El agente está estrechamente integrado con Back4app y Back4app Containers. ¡El agente es un must-have si ya está utilizando cualquiera de los servicios de Back4app!

Tenga en cuenta que el agente de IA no es una herramienta mágica. Es un modelo lingüístico (LLM) grande y sofisticado que puede cometer errores. Si eso ocurre, dependerá de ti corregirlos. Además, si envías las mismas preguntas (como yo), es posible que obtengas respuestas diferentes.

Caso 1: Blog

Como primer ejemplo, pediremos al agente de IA que diseñe un esquema de base de datos de blog. Con este ejemplo, proporcionaremos la menor información posible para ver si el agente de IA puede descifrar las piezas que faltan.

Navegue a la página de Agente Back4app, cree un nuevo agente y pídale lo siguiente:

Create a database schema for a simple blog. Each article in the blog should have a `title`, `shortContent`, `content`, `tags`, and other administrative data. The articles should be filterable by `tags`.

Diagrama entidad-relación (ER) del esquema generado:

Back4app AI Agente Blog Diagrama ER

Como puede ver, el agente creó con éxito un esquema de base de datos válido. Incluyó todas las clases requeridas y manejó las relaciones entre ellas. Además, incluyó campos administrativos de Parse como createdAt, updatedAt y ACL.

Caso 2: Sitio web de comercio electrónico

Sigamos, probemos con un esquema de base de datos más complejo. Esta vez, un sitio web de comercio electrónico.

Envíe el siguiente mensaje al agente de IA:

Create a database schema for an e-commerce website. The database should allow sellers 
to post listings. After a listing is posted, a user can open an order for it. The 
order should be associated with the user's shipping address. Amazon is a good example 
of what I'm looking for.

El agente generó el siguiente esquema de base de datos:

Back4app AI Agente de Comercio Electrónico ER Diagrama

De nuevo, el agente devolvió un esquema de base de datos válido.

Lo único que cambiaría es la relación entre pedido y dirección. Tendría más sentido que un pedido estuviera asociado a una única dirección y que una dirección pudiera reutilizarse en varios pedidos.

Caso 3: Revisar el sitio web

Para el último ejemplo, generaremos un esquema de base de datos de reseñas de películas. Aquí, proporcionaremos todo el contexto posible para ver si el agente de IA puede crear un esquema que coincida con nuestras instrucciones detalladas.

Pregunte al agente de IA lo siguiente:

Create a database schema for a movie review website. The database should contain 
the following models: `Movie`, `MovieGenre`, `Review`,  and `User` (Parse).

Notes:
- A `Movie` can have multiple genres
- The `Review` should contain at least `title`, `content`, `rating`, and `is_critic`
- Each `Review` should be associated with a `User`

Make sure to include all the Parse administrative fields, such as `createdAt`,
`updatedAt`, and `ACL`.

El Agente AI generó el siguiente esquema de base de datos:

Back4app AI Agent Review Diagrama ER

Otro gran esquema.

Todas las clases fueron atendidas, y las relaciones se ven bien. Aquí, el agente de IA incluso generó un modelo intermedio que maneja la relación M:N entre la clase Película y Género.

Generación de bases de datos

Como se menciona en la introducción, Back4app Agent está estrechamente integrado con otros servicios de Back4app.

Generar el esquema de la base de datos es sólo una de las cosas que puede hacer el agente de IA. Una vez que tenemos el esquema, podemos crear rápidamente una base de datos.

Pregunte al agente lo siguiente:

Create a Back4app app called "back4app-reviews" using the generated database schema.
Back4app AI Agente Crear Base de Datos Respuesta

Genial, parece que el agente ha creado con éxito una aplicación y la estructura de base de datos deseada.

A continuación, pida al agente que rellene la base de datos con algunos datos:

Populate the database with sample users, movie genres, and reviews.
Respuesta Back4app Populate Database

Asegúrese de que la base de datos se ha creado y rellenado navegando al panel de Back4app, seleccionando su aplicación y comprobando las entradas de la base de datos.

Base de datos generada y poblada por Back4app

¡Ya está!

Ahora tenemos una base de datos totalmente funcional para un sitio de críticas de cine.

API generadas automáticamente

Back4app le permite comunicarse con su backend a través de:

  1. API RESTful autogenerada
  2. API GraphQL autogenerada
  3. Parse SDK

Examinemos cada una de ellas.

API RESTful

REST se basa en el protocolo HTTP y utiliza diferentes métodos HTTP como GET, POST, PUT y DELETE para manipular los recursos.

Estas operaciones suelen denominarse CRUD (Create, Retrieve, Update, Delete). REST admite múltiples formatos de datos, pero su formato preferido es JSON.

Para probar la API REST, navega hasta tu aplicación y selecciona “API > Consola > REST” en la barra lateral.

Consola REST de Back4app

Rellene el formulario con la siguiente información:

  • Tipo de solicitud GET
  • Punto final: classes/Movie
  • Llave maestra: Verdadero

A continuación, haga clic en “Enviar consulta” para ejecutar la consulta.

Debería recibir una respuesta similar a ésta:

{
    "results": [
        {
            "objectId": "AD1r4b9Oie",
            "title": "The Fast Saga",
            "duration": 120,
            "director": "Justin Lin",
            "cast": [
                "Vin Diesel",
                "Michelle Rodriguez"
            ],
            "synopsis": "Street racing, heists, and espionage.",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        {
            "objectId": "Sr6FQjnckj",
            "title": "The Serious Case",
            "duration": 140,
            "director": "Christopher Nolan",
            "cast": [
                "Christian Bale",
                "Michael Caine"
            ],
            "synopsis": "An intricate story of human emotions and relationships",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        // ...
    ]
}

La operación de lista funciona bien. Las películas se serializaron correctamente y se devolvieron como JSON. Para hacerte una idea de cómo funciona la API RESTful, te sugiero que pruebes también las otras operaciones.

Para saber más sobre las API RESTful, consulte ¿Cómo crear una API RESTful?

API GraphQL

GraphQL sirve tanto de lenguaje de consulta como de tiempo de ejecución del lado del servidor para facilitar el desarrollo de interfaces de programación de aplicaciones (API).

Esta tecnología permite a los clientes especificar los datos que necesitan de la API, eliminando la necesidad de depender del backend para un conjunto de datos predefinidos.

Para probar las consultas GraphQL, vaya a “API > Consola > GraphQL” en la barra lateral.

Consola GraphQL de Back4app

A continuación, ejecute la siguiente consulta GraphQL:

{
  reviews {
    count
    edges {
      node {
        objectId
        rating
      }
    }
  }
}

Como puede ver, la consulta obtiene todas las opiniones, pero sólo incluye su objectId y su valoración. De nuevo, siéntete libre de probar diferentes consultas y manipulaciones.

Para saber más sobre GraphQL, consulte ¿Cómo crear una API GraphQL?

Parse SDK

Parse SDK es la forma recomendada de conectar tu frontend con el backend. Es la más robusta y la menos propensa a errores.

Parse SDK es compatible con múltiples lenguajes y marcos de programación, incluidos JavaScript, TypeScript, Objective-C, etc.

Permite realizar operaciones CRUD, consultas avanzadas y mucho más.

Para saber cómo utilizar Parse SDK, consulta ¿Cómo alojar frontend y backend?

Documentación generada automáticamente

Otra gran cosa acerca de Back4app es que genera automáticamente la documentación para todos sus modelos de base de datos.

Obtendrás explicaciones de texto sencillas y fáciles de entender, así como prácticos fragmentos de código para varios lenguajes de programación, como JavaScript, TypeScript, Objective-C, Swift, etc.

Para acceder a la documentación, ve a tu aplicación y selecciona “API > Referencia API” en la barra lateral:

Referencia API Back4app

Aquí tienes una captura de pantalla del aspecto de los documentos:

Documentación generada por Back4app

Código Nube

Back4app le permite ejecutar código JavaScript personalizado a través de las llamadas funciones Cloud Code.

Estas funciones pueden ayudar a realizar operaciones complejas, como la agregación de datos, la exportación, etc.

Una función de Cloud Code puede ser activada por peticiones Parse o HTTP o programada para ejecutarse en el futuro.

Función Código Nube

Supongamos que queremos una función de Cloud Code que calcule la puntuación media de una película. Podríamos escribirla y desplegarla nosotros mismos, pero es más fácil pedirle al agente de IA que lo haga.

Vaya a la pantalla del Agente AI y pídale lo siguiente:

Please write me a Cloud Code function that calculates a movie's average rating. The the function should take in the movie's `objectId` and return a float (average rating).
Back4app AI Agente Nube Código Respuesta

Siga adelante y pruébelo utilizando el siguiente comando cURL:

$ curl -X POST \
   -H "X-Parse-Application-Id: <your_app_id>" \
   -H "X-Parse-REST-API-Key: <your_rest_api_key>" \
   -H "Content-Type: application/json" \
   -d '{"movieId": "<movie_object_id>"}' \
   https://parseapi.back4app.com/functions/calculateAverageRating

Asegúrese de sustituir los marcadores de posición (<your_app_id>, <your_rest_api_key>, y <movie_object_id>) por los valores reales. Para obtener su “ID de aplicación” y su “Clave API REST”, vaya a su aplicación y seleccione “Configuración de la aplicación > Seguridad y claves” en la barra lateral.

Debería obtener una respuesta similar:

{
  "result": 4.25
}

Para ver el código generado en segundo plano, vaya a “Código en la nube > Función y alojamiento web” en la barra lateral. A continuación, seleccione main.js dentro de la carpeta de la nube.

Código Back4app Cloud

Programación de código en la nube

Por último, pida al agente de IA que programe un trabajo semanal:

Create and deploy a Cloud Code job named `clearRatings()`, which deletes all 
the ratings. Schedule it to run every week.
Back4app Horario Respuesta

El agente ha creado correctamente un trabajo y lo ha programado semanalmente.

Conclusión

En resumen, hemos utilizado con éxito la IA para generar un esquema de base de datos.

También hemos aprendido a crear una aplicación y una base de datos Back4app, generar datos de muestra e implementar funciones personalizadas de Cloud Code, todo ello con el poder de la conversación.

Recuerda que crear un esquema de base de datos utilizando IA es un proceso iterativo. Si crees que algo podría implementarse mejor, explícaselo al agente y modificará tu esquema en consecuencia.

Los recursos adicionales del artículo son accesibles en back4app-ai-agent-schema repo.


Leave a reply

Your email address will not be published.