Created by Thiago Russo
over 7 years ago
|
||
Question | Answer |
Pq é necessário gerenciar a integridade de dados? | Qdo dados inválidos ou com erro de digitação entram na aplicação pode ser que ela falhe, lançando exceptions. Isso é inconveniente para o usuário, mas pode ser pior se um dado não íntegro passa por tudo e é salvo no BD. Isso pode corromper os dados. Ex: operação de saque/transferência. Usuário faz um saque out transferencia de $ e por alguma falha (queda de energia por ex), o saque é realizado mas o valor não sai da conta. |
Quatro tipos de integridade de dados | ■ Integridade de Entidade (Entity integrity) ■ Integridade de Domínio ■ Integridade Referencial ■ Integridade definida pelo usuário |
■ Integridade de Entidade (Entity integrity) | Estado em q cada entidade (um registro de BD) deve ser unicamente identificável. Em um BD, isto é conseguido usando uma chave primária q identifica unicamente cada linha de dados. Ele pode ser gerado pela base de dados ou pela sua aplicação. |
■ Integridade de Domínio | Refere-se à validade dos dados que contém uma entidade. Isto pode ser sobre o tipo de dados e os valores possíveis que estão autorizados (um código postal válido, um número dentro de um determinado intervalo, ou um valor predefinido, por exemplo). |
■ Integridade Referencial | A relação que as entidades têm umas com as outras, tais como a relação entre um pedido e um cliente. |
■ Integridade definida pelo usuário | Compreende as regras de negócios específicas q vc precisa para fazer cumprir. Uma regra de negócios para uma loja de web pode envolver um novo cliente que não tem permissão para fazer um pedido acima de um determinado valor em dólar. |
Exemplo de integridade de entidade e integridade referencial utilizando loja web | Qdo se trabalha c/ uma loja de web, vc tem classes para, pelo menos, um pedido, um cliente, uma linha de pedido, e um produto. Vc precisa de integridade de entidade para garantir que cada entidade pode ser identificada exclusivamente. Pode fazer isso adicionando uma propriedade ID para cada entidade. O BD ajuda a gerar valores exclusivos para seus IDs qdo vc add entidades ao BD A integridade referencial é necessária para garantir q um relacionamento é mantido entre pedidos, linhas de pedidos, clientes e produtos. Restrições de chaves estrangeiras mostram q os relacionamentos são necessários e quais são opcionais. |
Exemplo de integridade de domínio e integridade definida pelo usuário utilizando loja web | Integridade de domínio tb entra em jogo. Vc tem tipos de dados específicos, como um DateTime (sua data do pedido e a data para envio). Alguns campos são obrigatórios, tais como o nome do cliente e a qtde de produtos que deseja encomendar. Integridade definida pelo usuário é outra questão. Ele n pode ser feita automaticamente pelo Entity Framework. Vc pode definir essas verificações no código ou escrever código personalizado q será executado pelo seu BD. Outra forma é usar triggers ou stored procedures. |
exemplo de código que descreve as classes Customer e Address |
Image:
Data Annotation (image/png)
|
exemplo do uso de um contexto Entity Framework para salvar um novo Customer no banco de dados |
Image:
Context Ef (image/png)
|
Saving a new customer to the database |
Image:
Save Customer (image/png)
|
Running manual validation | |
transações | A transação ajuda a agrupar um conjunto de operações relacionadas em um BD, garantindo q essas operações são vistos como uma ação distinta. Se uma falhar, todas as demais falham e pode ser facilmente revertida. Vc tb pode entrar em problemas qdo os usuários trabalham simultaneamente com o mesmo conjunto de dados. Com transações, vc pode configurar seu BD para lançar uma exceção qdo há uma atualização conflitante. Em seu aplicativo, vc pode pegar essas exceções e escrever código que lida com o conflito. Poderia, por ex, permitir q o usuário escolha qual atualização deve ganhar ou deixar a última atualização ganhar. Isso ajuda a manter a integridade dos dados. |
Want to create your own Flashcards for free with GoConqr? Learn more.