CRUD: o que é, como criar e exemplos
O Dicionário Tech de hoje traz um termo relacionado ao universo da Ciência de Dados. Você sabe o que é CRUD? Se você opera sistemas com tabelas, dados, gráficos e afins precisa dominar esse conceito e aplicá-lo no seu dia a dia como profissional de tecnologia.
Então, vamos às explicações? Primeiramente, CRUD é o acrônimo para Create (criar), Read (ler), Update (atualizar) e Delete (apagar). Com essa explicação, já dá para intuir que o CRUD é uma sequência de funções de um sistema que trabalha com banco de dados, seja ele na sua máquina ou na nuvem.
O que é CRUD?
CRUD é uma sigla do mundo da programação de computadores e refere-se às quatro funções consideradas necessárias para implementar uma aplicação de armazenamento persistente: criar, ler, atualizar e excluir.
Armazenamento persistente refere-se a qualquer dispositivo de armazenamento de dados que retém energia após ser desligado, como um disco rígido ou uma unidade de estado sólido.
Por outro lado, a memória de acesso aleatório e o cache interno são dois exemplos de memória volátil. eles contêm dados que serão apagados quando perderem energia.
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.
Ler
READ retorna registros (ou documentos ou itens) de uma tabela de banco de dados (ou coleção ou bucket) com base em alguns critérios de pesquisa. A operação READ pode retornar todos os registros e alguns ou todos os campos.
Atualizar
UPDATE é usado para modificar registros existentes no banco de dados. Por exemplo, pode ser uma mudança de endereço em um banco de dados de clientes ou uma mudança de preço em um banco de dados de produtos. Semelhante ao READ, os UPDATEs podem ser aplicados em todos os registros ou apenas em alguns, com base em critérios.
Uma operação UPDATE pode modificar e persistir alterações em um único campo ou em vários campos do registro. Se vários campos precisarem ser atualizados, o sistema de banco de dados garante que todos sejam atualizados ou não sejam atualizados.
Alguns sistemas de big data não implementam UPDATE, mas permitem apenas uma operação CREATE com carimbo de data/hora, adicionando uma nova versão da linha a cada vez.
Excluir
As operações DELETE permitem ao usuário remover registros do banco de dados. Uma exclusão definitiva remove o registro completamente, enquanto uma exclusão suave sinaliza o registro, mas o deixa no lugar.
Por exemplo, isto é importante na folha de pagamento, onde os registos de emprego precisam de ser mantidos mesmo depois de um empregado ter saído da empresa.
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.
Especialmente focado em interpretar e analisar grandes volumes de dados, este curso ensina a maximizar o valor para o cliente e a fortalecer a competitividade no mercado através de uma gestão de dados eficaz e inovadora.
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á DELETEado.
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 DELETEadas.
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.