¿Cómo utilizar la IA para generar esquemas de bases de datos?
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.
Contents
- 1 Ventajas del uso de la IA para el diseño de bases de datos
- 2 Escollos de la IA en el diseño de bases de datos
- 3 ¿Cómo utilizar la IA para generar un esquema de base de datos?
- 4 Conclusión
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
- Generar un esquema de base de datos
- Crear una base de datos utilizando el esquema
- Analizar la API RESTful y GraphQL autogenerada
- Revisar la documentación generada automáticamente
- 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:
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:
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:
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.
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.
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.
¡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:
- API RESTful autogenerada
- API GraphQL autogenerada
- 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.
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.
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:
Aquí tienes una captura de pantalla del aspecto de los documentos:
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).
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.
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.
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.