CRUD: o que é, como criar e exemplos
Sistemas de software precisam armazenar, consultar, modificar e excluir dados de forma controlada. Esses quatro processos estão presentes na maioria das aplicações de plataformas de e-commerce a sistemas internos de RH. Esse conjunto de operações é conhecido como CRUD.
Neste conteúdo, você verá como cada operação do CRUD funciona na prática, exemplos aplicados a diferentes cenários e o impacto direto dessas ações no desempenho de um banco de dados. Ao final, também abordaremos como testar e otimizar essas operações para garantir segurança, integridade e eficiência na manipulação dos dados.
O que é CRUD?
CRUD é um acrônimo para as quatro operações básicas de manipulação de dados em sistemas com armazenamento persistente: Create (criar), Read (ler), Update (atualizar) e Delete (excluir).
Essas operações são fundamentais em aplicações que lidam com informações armazenadas, como bancos de dados. Elas representam a base de qualquer sistema que precise registrar, consultar, modificar ou remover dados de forma estruturada.
O termo armazenamento persistente refere-se a dispositivos que mantêm os dados mesmo após desligados, como discos rígidos (HD), SSDs ou sistemas de banco de dados. Isso contrasta com memórias voláteis, como a RAM ou o cache do processador, que perdem todas as informações quando não há mais energia.
A seguir, você verá em mais detalhes como funcionam as quatro operações: criar, ler, atualizar e excluir.
Create (criar)
A operação CREATE adiciona um novo registro a um banco de dados. No RDBMS, uma linha da tabela do banco de dados é chamada de registro, enquanto as colunas são chamadas de atributos ou campos. A operação CREATE adiciona um ou mais novos registros com valores de campo distintos em uma tabela.
O mesmo princípio se aplica aos bancos de dados NoSQL. Se o banco de dados NoSQL for orientado a documentos, um novo documento (por exemplo, um documento formatado em JSON com seus atributos) será adicionado à coleção, o que equivale a uma tabela RDBMS. Da mesma forma, em bancos de dados NoSQL como DynamoDB, a operação CREATE adiciona um item (que equivale a um registro) a uma tabela.
Read (Ler)
A operação de leitura (Read) representa o momento em que os dados são consultados e exibidos para o usuário.
Sempre que você acessa uma lista de informações em um sistema, como clicar em “ver vagas” em uma plataforma, o sistema realiza uma leitura no banco de dados para recuperar os registros correspondentes e apresentar os resultados na tela.
Essa leitura pode trazer todos os registros disponíveis ou apenas aqueles que atendem a critérios específicos, como filtros por nome, data ou status. Também é possível retornar campos selecionados, evitando o envio desnecessário de dados.
Update (Atualizar)
A operação de atualização (Update) ocorre quando informações existentes são modificadas em um sistema.
Sempre que você edita seu perfil em uma plataforma, como corrigir um endereço ou alterar uma senha, está executando uma operação de atualização nos dados salvos.
Esse tipo de ação é permitido apenas para usuários que criaram os dados ou que possuem permissão para editar dentro da aplicação. O sistema localiza o registro correspondente e modifica um ou mais campos, sem a necessidade de criar um novo item.
Em alguns ambientes de big data, não há atualização direta: cada mudança gera uma nova versão do dado, preservando o histórico por meio de carimbos de data/hora.
Delete (Excluir)
Excluir (Delete) é a operação que remove um dado armazenado do sistema.
Ela é executada quando o responsável pelos dados, ou alguém com permissão, solicita a remoção de um registro — como quando você pede para seu e-mail ser retirado de uma lista de marketing. Essa ação não é feita de forma automática pelo usuário; depende de autorização e regras de controle do sistema.
Existem dois tipos principais de exclusão. A exclusão definitiva remove completamente o dado da base. Já a exclusão lógica (ou suave) apenas marca o registro como inativo, sem eliminá-lo fisicamente. Esse modelo é comum em contextos onde o histórico precisa ser mantido, como em sistemas de folha de pagamento ou cadastros de clientes.
O controle de acesso à exclusão é importante para evitar perdas irreversíveis de informações críticas e para garantir conformidade com normas legais, como a LGPD.
Como o CRUD é realizado em um banco de dados?
No RDBMS, as operações CRUD são executadas por meio de comandos Structure Query Language (SQL).
- A instrução INSERT é usada para CREATE:
INSERT INTO < nome da tabela > VALUES (valor do campo 1 , valor do campo, 2 …)
- A instrução SELECT é usada para READ:
SELECT campo 1 , campo 2 ,… FROM < nome da tabela > [ WHERE <condição>]
- A instrução UPDATE é usada para UPDATE:
UPDATE < nome da tabela > SET campo1 = valor1, campo2 = valor2,… [ WHERE <condição>]
- A instrução DELETE é usada para DELETE:
DELETE FROM < nome da tabela > [ WHERE < condição>]
As operações CRUD em bancos de dados NoSQL dependerão da linguagem da plataforma de banco de dados específica. Por exemplo, o Cassandra CQL é muito semelhante ao SQL. No MongoDB, por outro lado, as operações são realizadas com funções integradas:
- CREATE é realizado através
banco de dados. coleção . inserir
Um ()oubanco de dados. coleção . insertMany (). O primeiro adiciona um documento e o último adiciona vários documentos a uma coleção de banco de dados.
- READ é realizado através
banco de dados. coleção . encontrar ()oubanco de dados. coleção . encontrarUm ().
- UPDATE é realizado através
banco de dados. coleção . atualizar
Um (),banco de dados. coleção . atualizarMuitos (), oubanco de dados. coleção . substituirUm ().
- DELETE é realizado através
banco de dados. coleção . excluirUm () ou banco de dados. coleção . deletarMuitos ().
Os desenvolvedores de banco de dados ou DBAs geralmente executam instruções CRUD manualmente no banco de dados a partir de uma ferramenta cliente.
No entanto, na maioria dos casos de uso de produção, essas instruções são incorporadas ao código da linguagem de programação. Quando o programa é executado, a API do banco de dados de destino pega a instrução CRUD e a traduz para o idioma nativo do banco de dados.
Por exemplo, quando um visitante de um site de comércio eletrônico inicia o processo de registro do usuário, um microsserviço escrito em Python ou Java pode ler os valores de entrada (como nome, sobrenome, e-mail, endereço e assim por diante) e construir dinamicamente um Oracle PL Comando /SQL. Essa instrução é então enviada para a biblioteca de drivers Oracle, que a executa no banco de dados.
Se você se interessou pelo tema, o curso gratuito de "Fundamentos da Ciência de Dados" da FM2S pode oferecer uma base sólida para entender melhor os comportamentos e necessidades dos usuários através da análise de dados. Compreender os padrões de uso e as preferências dos usuários é essencial para criar interfaces eficazes e intuitivas.
Um dos aspectos cruciais da ciência de dados abordados neste curso é o entendimento e aplicação de medidas estatísticas, como o desvio padrão. Essa medida é fundamental para avaliar a variabilidade ou dispersão dos dados dentro de um conjunto, aspecto essencial para a análise de risco, qualidade e precisão em qualquer investigação ou decisão baseada em dados.
Isso enriquece o conhecimento técnico dos participantes e os prepara para aplicar estas técnicas de forma prática e eficiente em suas organizações, fomentando uma cultura de decisões informadas e baseadas em dados confiáveis.
Exemplos de operações CRUD
Vamos levar mais longe o exemplo da loja de comércio eletrônico.
- Quando o usuário CRIA um registro de cliente, ele pode LER o inventário navegando pelo catálogo de produtos.
- Quando ela faz um pedido, o sistema back-end ATUALIZA o estoque temporariamente para refletir o número reduzido de itens disponíveis.
- Quando ela compra o item, a ATUALIZAÇÃO se torna permanente, e outros usuários que LÊEM a quantidade de itens disponíveis podem ver a mudança. Enquanto isso, outro processo CRIA um registro no banco de dados da transportadora, notificando-a da solicitação de despacho.
- Se o usuário remover um item do carrinho de compras, um registro temporário adicionado à tabela “vendas” será deletado.
Em uma agência de viagens online, o usuário pode CRIAR um pedido de reserva, LER os voos disponíveis para a rota solicitada e fazer uma compra. Isto irá ATUALIZAR uma lista de assentos disponíveis para o voo e CRIAR vários registros na tabela “itinerário”. Se o usuário encerrar a sessão no meio, todas as linhas relacionadas a esta transação serão deletadas.
Aplicativo CRUD
As operações CRUD são amplamente utilizadas em muitos aplicativos suportados por bancos de dados relacionais subjacentes. Essas quatro funções básicas do CRUD são incrivelmente versáteis no suporte a várias funções importantes em diferentes modelos de negócios e setores verticais do setor. Vejamos um exemplo de como o CRUD é implementado.
Uma organização empresarial mantém um departamento de recursos humanos que ajuda a gerenciar a equipe e a acompanhar os funcionários existentes. O departamento de RH gerencia um aplicativo de banco de dados relacional com várias tabelas que rastreiam diferentes tipos de informações de funcionários:
- Uma tabela de funcionários inclui atributos como nome e sobrenome, número de identificação do funcionário, número de contato, endereço residencial, local de trabalho e quaisquer outros dados pessoais relevantes.
- Uma tabela de dados de RH que inclui informações da folha de pagamento do funcionário, número do seguro social, identificação do funcionário e salário.
- Uma Tabela de Locais que contém dados de atributos para cada um dos locais físicos da empresa, incluindo ID do edifício, endereço, CEP, nome do gerente, etc.
Quando um novo funcionário é contratado, alguém novo é adicionado à folha de pagamento ou a empresa adquire um novo local, o departamento de RH cria um registro para refletir as alterações. Se a empresa precisar enviar uma carta a um ou mais funcionários, a função de leitura poderá ser usada para encontrar o endereço postal correto do funcionário. Se o salário ou as informações de contato de um funcionário mudarem, o departamento de RH poderá precisar atualizar o registro existente para refletir a mudança.
Caso um funcionário saia da empresa, a empresa poderá optar por realizar uma exclusão temporária ou definitiva de suas informações no banco de dados. Aqui, uma exclusão reversível pode ser apropriada, pois a organização deseja reter dados sobre o indivíduo sem sobrecarregar pesquisas futuras ou resultados filtrados.
O teste CRUD é uma técnica de teste de caixa preta para validar a funcionalidade de um produto de software. Este termo para teste de banco de dados é aplicável a SQL e outros bancos de dados e garante mapeamento de dados adequado, integridade de dados, manutenção de propriedades ACID e precisão de regras de negócios.
Testando operações CRUD
As operações de software envolvendo CRUD geralmente são testadas na caixa preta. Quando os testadores realizam determinadas operações, eles verificam o banco de dados back-end em vez de analisar o código para ver se as alterações pretendidas foram feitas ou se os dados corretos foram retornados. Tais testes visam validar cada operação CRUD resultante de diversas interações possíveis do usuário em diferentes cenários.
CRUD e desempenho de banco de dados
O design eficiente do banco de dados é o pré-requisito para operações CRUD ideais. Sem um bom design de banco de dados, as operações CRUD podem afetar negativamente o desempenho de um banco de dados.
Por exemplo, operações como UPDATE ou DELETE requerem bloqueios exclusivos nas linhas (e nos seus recursos relacionados, como páginas de dados ou índices). Os bloqueios garantem que quando mais uma linha for modificada, ela não estará disponível para outros processos ou usuários para qualquer operação CRUD. Isso é para garantir a integridade dos dados.
Você não pode ler um registro quando ele está sendo excluído ou permitir que dois ou mais usuários atualizem um único registro simultaneamente. Outros tipos de bloqueios, como bloqueios compartilhados, permitem READs simultâneos. Os bloqueios podem ser configurados no nível do banco de dados ou da instrução, e diferentes tipos de bloqueio determinarão quais operações CRUD serão permitidas e como a operação CRUD se comportará.
Escusado será dizer que o tipo de bloqueio e o número de bloqueios simultâneos devido às sessões do usuário afetarão o desempenho de um banco de dados.
Por exemplo, um site de comércio eletrônico movimentado com centenas ou milhares de usuários simultâneos terá muitos bloqueios operando ao mesmo tempo. O resultado pode ser uma capacidade de resposta lenta enquanto o usuário espera que os bloqueios sejam liberados.
Esse desafio de desempenho é o motivo pelo qual os administradores de banco de dados trabalham para garantir que as operações CRUD possam ser concluídas o mais rápido possível.
Isso requer ajuste de consulta com base no feedback das soluções de monitoramento. Essas soluções de monitoramento podem mostrar bloqueios, métricas e logs atuais do banco de dados para ajudar o administrador a identificar possíveis gargalos.