Como usar a IA para gerar esquemas de banco de dados?
Projetar um banco de dados para uma solução de backend eficiente é um desafio. Descobrir todas as classes, relacionamentos e assim por diante necessários pode ser extremamente demorado.
Além disso, tomar decisões erradas na fase de projeto pode ter consequências prejudiciais posteriormente na produção.
Neste artigo, discutiremos o uso da IA para a geração de esquemas de banco de dados. Examinaremos os benefícios do uso da IA e suas armadilhas e forneceremos alguns exemplos práticos.
Além disso, você aprenderá a utilizar a IA para gerar um backend completo sem escrever nenhum código!
Contents
- 1 Benefícios do uso de IA para design de banco de dados
- 2 Armadilhas do uso de IA para design de banco de dados
- 3 Como usar a IA para gerar um esquema de banco de dados?
- 4 Conclusão
Benefícios do uso de IA para design de banco de dados
Vamos primeiro analisar os benefícios do uso da IA.
Automação e eficácia de custos
A primeira e provavelmente a mais aparente vantagem de incorporar a IA ao design do banco de dados é a capacidade de automatizar várias tarefas.
Isso inclui a geração do esquema do banco de dados, a otimização do banco de dados, a definição de índices, a elaboração de consultas avançadas, etc.
Tudo o que foi mencionado acima resulta em uma economia significativa de tempo e custo.
Otimização
A IA desempenha um papel fundamental na otimização das estruturas de banco de dados. Por meio de algoritmos avançados e aprendizado de máquina, a IA pode analisar padrões de uso de dados e recomendar melhorias no esquema do banco de dados.
Essa otimização pode levar a um melhor desempenho e capacidade de resposta do seu aplicativo.
Integração com bancos de dados existentes
Outra grande vantagem do uso da IA é que ela pode ajudá-lo a atualizar seus bancos de dados existentes.
Tudo o que você precisa fazer é descrever o banco de dados atual para o agente de IA ou gerar um dump do banco de dados e, em seguida, descrever as atualizações desejadas.
Isso se torna ainda mais fácil se você estiver usando o Back4app Agent. Em vez de gerar um dump de banco de dados, você pode dizer ao agente para se conectar a um aplicativo existente:
Connect to my "movie-reviews" app and create a new database class named `Watchlist`.
O agente de IA reunirá todo o contexto necessário e atualizará seu banco de dados de acordo.
Menos propenso a erros
A integração da IA ao design do banco de dados reduz a probabilidade de erros humanos.
Os processos tradicionais de design e otimização de bancos de dados geralmente envolvem intervenção manual, aumentando o risco de erros, como designs de esquemas incorretos, consultas ineficientes ou escolhas de índices abaixo do ideal.
Visualização fácil
Ao aproveitar a IA, você pode visualizar facilmente a estrutura do seu banco de dados. Para visualizar o banco de dados, solicite ao agente de IA que gere um código de visualização para sua ferramenta de diagramação ER favorita.
Aqui está um exemplo 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
}
// ...
Armadilhas do uso de IA para design de banco de dados
Alucinações
Os agentes de IA às vezes fornecem informações plausíveis, mas incorretas ou sem sentido. Isso é conhecido como alucinações e acontece com a maioria dos modelos de linguagem de grande porte (LLMs).
Por esse motivo, os desenvolvedores iniciantes em bancos de dados não devem usar a IA para a geração de esquemas de banco de dados.
Desempenho
Não é garantido que o esquema de banco de dados gerado por IA seja ideal. O agente de IA pode interpretar mal o que você está tentando criar e fornecer um esquema de banco de dados abaixo do ideal ou com falhas.
O projeto de banco de dados usando IA é um processo iterativo. Se você perceber que o agente de IA cometeu um erro, indique-o. Ele poderá corrigi-lo ou melhorar o esquema. Talvez ele possa consertá-lo ou melhorar o esquema.
Casos extremos
Usar a IA pode não ser a melhor ideia se sua empresa exigir um projeto de banco de dados atípico. A maioria dos agentes de IA foi treinada em um grande número de aplicativos genéricos.
Eles não têm conhecimento de como lidar com seu banco de dados especializado.
Se esse for o caso, é melhor confiar em especialistas do que em soluções gerais de IA.
Como usar a IA para gerar um esquema de banco de dados?
Nesta seção do artigo, veremos três exemplos práticos de uso de IA para gerar um esquema de banco de dados. Os exemplos incluem um aplicativo de blog simples, um site de comércio eletrônico e um site de resenhas de filmes.
Depois disso, daremos uma olhada em algumas das outras coisas que o agente de IA do Back4app é capaz de fazer.
As etapas a seguir exigirão que você tenha uma conta no Back4app. Se ainda não tiver uma, registre-se gratuitamente.
Objetivos
- Gerar um esquema de banco de dados
- Criar um banco de dados usando o esquema
- Analisar a API RESTful e GraphQL gerada automaticamente
- Revisar a documentação gerada automaticamente
- Utilize as funções do Cloud Code
O que é o Back4app Agent?
O Back4app Agent é um agente com tecnologia de IA que permite que você execute tarefas relacionadas à nuvem com o poder da conversa.
Isso inclui criar aplicativos, implantar aplicativos, projetar o banco de dados e escrever Dockerfiles ou código de front-end.
Ao aproveitar o Back4app Agent, você terá seu próprio assistente pessoal de DevOps ao seu lado 24 horas por dia, 7 dias por semana. O melhor de tudo é que ele pode aprender na hora e melhorar à medida que você avança.
O agente é totalmente integrado ao Back4app e ao Back4app Containers. O agente é indispensável se você já estiver usando qualquer um dos serviços do Back4app!
Lembre-se de que o agente de IA não é uma ferramenta mágica. Ele é um modelo de linguagem (LLM) grande e sofisticado que pode cometer erros. Se isso acontecer, caberá a você corrigi-los. Além disso, o envio das mesmas solicitações (como eu) pode gerar respostas diferentes.
Caso 1: Site de blog
Como primeiro exemplo, solicitaremos que o agente de IA crie um esquema de banco de dados de blog. Nesse exemplo, forneceremos o mínimo de informações possível para ver se o agente de IA consegue decifrar as peças que faltam.
Navegue até a página do Back4app Agent, crie um novo agente e solicite a ele o seguinte:
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 entidade-relacionamento (ER) do esquema gerado:
Como você pode ver, o agente criou com sucesso um esquema de banco de dados válido. Ele incluiu todas as classes necessárias e manipulou os relacionamentos entre elas. Além disso, incluiu campos administrativos do Parse, como createdAt
, updatedAt
e ACL
.
Caso 2: Site de comércio eletrônico
Continuando, vamos tentar um esquema de banco de dados mais complexo. Desta vez, um site de comércio eletrônico.
Envie o seguinte prompt para o 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.
O agente gerou o seguinte esquema de banco de dados:
Novamente, o agente retornou um esquema de banco de dados válido.
A única coisa que eu mudaria aqui seria inverter a relação entre pedido
e endereço
. Faria mais sentido se um pedido fosse associado a um único endereço e um endereço reutilizável entre os pedidos.
Caso 3: site de revisão
Para o último exemplo, vamos gerar um esquema de banco de dados de resenhas de filmes. Aqui, forneceremos o máximo de contexto possível para ver se o agente de IA consegue criar um esquema que corresponda às nossas instruções detalhadas.
Solicite ao agente de IA o seguinte:
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`.
O AI Agent gerou o seguinte esquema de banco de dados:
Outro esquema excelente.
Todas as classes foram tratadas, e os relacionamentos parecem bons. Aqui, o agente de IA até gerou um modelo intermediário que lida com o relacionamento M:N
entre as classes Filme
e Gênero
.
Geração de banco de dados
Como mencionado na introdução, o Back4app Agent é totalmente integrado a outros serviços do Back4app.
Gerar o esquema do banco de dados é apenas uma das coisas que o agente de IA pode fazer. Quando tivermos o esquema, poderemos criar rapidamente um banco de dados.
Solicite ao agente o seguinte:
Create a Back4app app called "back4app-reviews" using the generated database schema.
Ótimo, parece que o agente criou com sucesso um aplicativo e a estrutura de banco de dados desejada.
Em seguida, peça ao agente para preencher o banco de dados com alguns dados:
Populate the database with sample users, movie genres, and reviews.
Verifique se o banco de dados foi criado e preenchido navegando até o painel do Back4app, selecionando seu aplicativo e verificando as entradas do banco de dados.
É isso aí!
Agora temos um banco de dados totalmente funcional para um site de resenhas de filmes.
APIs geradas automaticamente
O Back4app permite que você se comunique com seu backend por meio de:
- API RESTful gerada automaticamente
- API GraphQL gerada automaticamente
- SDK do Parse
Vamos examinar cada uma delas.
API RESTful
O REST é baseado no protocolo HTTP e utiliza diferentes métodos HTTP, como GET
, POST
, PUT
e DELETE
, para manipular os recursos.
Essas operações são frequentemente chamadas de CRUD (Create, Retrieve, Update, Delete). O REST é compatível com vários formatos de dados, mas seu formato preferido é o JSON.
Para testar a API REST, navegue até seu aplicativo e selecione “API > Console > REST” na barra lateral.
Preencha o formulário com as seguintes informações:
- Tipo de solicitação GET
- Ponto de extremidade: classes/Movie
- Chave mestra: Verdadeiro
Em seguida, clique em “Send Query” (Enviar consulta) para executar a consulta.
Você deve receber uma resposta semelhante a esta:
{
"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",
},
// ...
]
}
A operação de lista funciona bem. Os filmes foram serializados com sucesso e retornados como JSON. Para ter uma ideia de como a API RESTful funciona, sugiro que você teste também as outras operações.
Para saber mais sobre APIs RESTful, confira Como criar uma API RESTful?
API GraphQL
O GraphQL funciona como uma linguagem de consulta e um tempo de execução no lado do servidor para facilitar o desenvolvimento de interfaces de programação de aplicativos (APIs).
Essa tecnologia permite que os clientes especifiquem os dados que precisam da API, eliminando a necessidade de depender do back-end para um conjunto de dados predefinido.
Para testar as consultas GraphQL, navegue até “API > Console > GraphQL” na barra lateral.
Em seguida, execute a seguinte consulta GraphQL:
{
reviews {
count
edges {
node {
objectId
rating
}
}
}
}
Como você pode ver, a consulta buscou todas as avaliações, mas incluiu apenas o objectId
e a classificação.
Novamente, sinta-se à vontade para testar diferentes consultas e manipulações.
Para saber mais sobre o GraphQL, confira Como criar uma API GraphQL?
SDK do Parse
O Parse SDK é a maneira recomendada de conectar seu frontend com o backend. Ele é o mais robusto e menos propenso a erros.
O Parse SDK é compatível com várias linguagens e estruturas de programação, incluindo JavaScript, TypeScript, Objective-C, etc.
Ele permite que você execute operações CRUD, consultas avançadas e muito mais.
Para saber como utilizar o Parse SDK, confira Como hospedar o frontend e o backend?
Documentação gerada automaticamente
Outra vantagem do Back4app é que ele gera automaticamente a documentação de todos os seus modelos de banco de dados.
Você obtém explicações de texto simples e fáceis de entender e trechos de código úteis para várias linguagens de programação, como JavaScript, TypeScript, Objective-C, Swift e muito mais.
Para acessar os documentos, navegue até seu aplicativo e selecione “API > Referência de API” na barra lateral:
Aqui está uma captura de tela da aparência dos documentos:
Código de nuvem
O Back4app permite que você execute código JavaScript personalizado por meio das chamadas funções Cloud Code.
Essas funções podem ajudar a realizar operações complexas, como agregação de dados, exportação, etc.
Uma função do Cloud Code pode ser acionada por solicitações Parse ou HTTP ou programada para ser executada no futuro.
Função do código de nuvem
Suponhamos que queiramos uma função do Cloud Code que calcule a classificação média de um filme. Poderíamos escrevê-la e implantá-la nós mesmos, mas é mais fácil pedir ao agente de IA para fazer isso.
Navegue até a tela do AI Agent e solicite o seguinte:
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).
Vá em frente e teste-o usando o seguinte 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
Certifique-se de substituir os espaços reservados (
<your_app_id>
,<your_rest_api_key>
, e<movie_object_id>
) pelos valores reais. Para obter o “Application ID” e a “REST API Key”, navegue até o aplicativo e selecione “App Settings > Security & Keys” na barra lateral.
Você deve obter uma resposta semelhante:
{
"result": 4.25
}
Para ver o código gerado em segundo plano, navegue até “Cloud Code > Function & Web Hosting” na barra lateral. Em seguida, selecione main.js na pasta da nuvem.
Agendamento de código na nuvem
Por fim, solicite ao agente de IA que agende um trabalho semanal:
Create and deploy a Cloud Code job named `clearRatings()`, which deletes all
the ratings. Schedule it to run every week.
O agente criou um trabalho com êxito e o agendou semanalmente.
Conclusão
Em resumo, utilizamos com sucesso a IA para gerar um esquema de banco de dados.
Também aprendemos a criar um aplicativo e um banco de dados Back4app, gerar dados de amostra e implementar funções personalizadas do Cloud Code, tudo com o poder da conversação.
Lembre-se de que a criação de um esquema de banco de dados usando IA é um processo iterativo. Se você acha que algo poderia ser implementado melhor, explique isso ao agente e ele modificará seu esquema de acordo.
Recursos adicionais do artigo podem ser acessados no repositório back4app-ai-agent-schema.