Modelagem de Dados – Restrições de Integridade em Bancos de Dados
Restrições de Integridade em Bancos de Dados
Artigo complementar do Curso Completo de Modelagem de Dados da Bóson Treinamentos no YouTube.
A integridade de dados se refere á acurácia, completude e consistência dos dados armazenados em um sistema de banco de dados relacional (ou outro sistema). Isso garante que os dados armazenados possam ser armazenados, consultados e utilizados com confiabilidade, sendo assim dados íntegros – daí o nome integridade de dados.
Trata-se, portanto, da manutenção e garantia da consistência e precisão dos dados, sendo um aspecto crítico no design, implementação e uso de sistemas de armazenamento de dados.
Para que seja possível garantir a integridade dos dados, é necessário conhecer e aplicar determinadas restrições de armazenamento, que chamamos de Restrições de Integridade, que dizem respeito a aspectos como tipos dos dados armazenados, relacionamentos entre colunas de chave primária e estrangeira, possibilidade de haver valores nulos ou não, e regras de negócio específicas importantes requisitadas pelo cliente, por exemplo.
Tipos de Restrições de Integridade
Os tipos de restrições de integridade que estudaremos neste artigo são os seguintes:
- Integridade Referencial
- Integridade de Domínio
- Integridade de Vazio
- Integridade de Chave
- Integridade Definida pelo Usuário
Vamos detalhar cada um deles a partir de agora.
Integridade de Domínio
Valores inseridos em uma coluna devem sempre obedecer à definição dos valores que são permitidos para essa coluna – os valores do domínio.
Ex.: em uma coluna que armazena preços de mercadorias, os valores admitidos são do domínio numérico – ou seja, apenas números. Não há preços usando letras para sua representação.
Integridade de Domínio: Fatores
Os seguintes fatores impactam a integridade de domínio:
- Tipo de Dado do campo
- Representação interna do tipo de dado
- Presença ou não do dado
- Intervalos de valores no domínio
- Conjuntos de valores discretos
Exemplo
Suponha um atributo Preço do Produto: Valor Monetário
- Valor permitido:
- 25,33
- Valores não permitidos:
- 25 Reais e 33 centavos
- -32,33
Neste exemplo, não há preços usando letras ou valores negativos, e o valor 25,33 atende à integridade de domínio (numérico e positivo).
Integridade Referencial
Uma restrição de Integridade Referencial assegura que valores de uma coluna em uma tabela são válidos baseados nos valores em uma outra tabela relacionada.
Ex.: Se um produto de ID 523 foi cadastrado em uma tabela de Vendas, então um produto com ID 523 deve existir na tabela de Produtos relacionada.
Em resumo: cada valor de uma chave estrangeira deve corresponder a um valor de uma chave primária existente. Serve para manter a consistência entre tuplas de duas relações; Aparecem devido aos relacionamentos entre entidades
Exemplo
Atributo Nome_Produto: Caracteres
- Valores permitidos (produtos cadastrados):
- Água
- Refrigerante
- Suco
- Valores não permitidos para venda (não existentes na tabela de produtos):
- Cerveja
Neste exemplo, há um problema na Tabela de Bebidas: o item Cerveja viola a integridade referencial. Não é possível cadastrar uma venda com esse produto, pois ele não existe na tabela de produtos.
Integridade Referencial: Atualização e Exclusão de Registros
Se um registro for excluído em uma tabela (operações DELETE e TRUNCATE), então os registros relacionados em outras tabelas que o referenciam talvez precisem ser excluídos.
Caso contrário ocorrerá erro. O mesmo se dá com a atualização de registros (operação UPDATE).
Integridade de Vazio
Este tipo de integridade informa se a coluna é obrigatória ou opcional – ou seja, se é possível não inserir um valor na coluna.
Uma coluna de chave primária, por exemplo, sempre deve ter dados inseridos, e nunca pode estar vazia, para nenhum registro.
Valores Nulos – NULL
Um valor NULL significa que não existem dados disponíveis para o campo em particular. É diferente de zero, espaço, string vazia ou tabulação, que consistem em algo armazenado.
Os nulos podem ser problemáticos, pois indicam:
- O valor da coluna não é apropriado;
- O valor não foi inserido;
- O valor é desconhecido.
Exemplos de valores NULL
Suponha uma tabela de cadastro de alunos. Nesta tabela todo aluno deverá ter um nome cadastrado, de modo que esse campo é obrigatório (atributo não-nulo – NOT NULL)
Nem todo aluno possui telefone, portanto esse campo não é obrigatório (atributo nulo)
Integridade de Chave
Os valores inseridos na coluna de chave primária (PK) devem ser sempre únicos, não admitindo-se repetições nesses valores. Desta forma, as tuplas (registros) serão sempre distintas.
Os valores de chave primária também não podem ser nulos.
Integridade Definida pelo Usuário
Diz respeito a regras de negócio específicas que são definidas pelo usuário do banco de dados. Por exemplo, pode-se definir que uma coluna somente aceitará um conjunto restrito de valores, como por exemplo apenas as siglas dos estados da federação, e mais nenhum outro valor diferente.
Conclusão
Conhecer as formas de integridade de dados é muito importante durante o processo de modelagem de dados, pois, é de crucial importância garantir de forma adequada que os dados armazenados sejam confiáveis e que possam ser utilizados com tranquilidade, senado sempre associados a outros dados, além de estarem sempre disponíveis.
Próximo: Dependências em Bancos de Dados
Opa, beleza? tô na instalação do Ubunto, e tá uma tela preta checking files e eu posso cancelar, poderia me informar sobre isso?
Fabio, muito obrigada pelas aulas de Modelagem e por seu papel social ajudando pessoas.
Como faço pra ter os pdfs das aulas? Você poderia enviar por email?