Integridade de dados
Aplicar a integridade de dados garante a qualidade dos dados do banco de dados. Por exemplo, se um funcionário for inserido com um valor de ID de funcionário de 123, o banco de dados não deverá permitir que outro funcionário tenha uma ID com o mesmo valor. Se você tiver uma coluna employee_rating destinada a conter valores que se estendem de 1 a 5, o banco de dados não deverá aceitar um valor fora desse intervalo. Se a tabela tiver uma coluna dept_id que armazene o número do departamento de um funcionário, o banco de dados deverá permitir apenas os valores que sejam válidos para os números de departamento da empresa.
Duas importantes etapas do planejamento de tabelas são a identificação de valores válidos para a coluna e a decisão sobre como aplicar a integridade de dados à coluna. A integridade de dados se encaixa nas seguintes categorias:
Integridade de entidade
Integridade de domínio
Integridade referencial
Integridade definida pelo usuário
Integridade de entidade
A integridade de entidade define uma linha como entidade exclusiva de determinada tabela. A integridade de entidade aplica a integridade das colunas do identificador ou da chave primária de uma tabela por meio de índices UNIQUE, restrições UNIQUE ou restrições PRIMARY KEY.
Integridade de domínio
A integridade de domínio é a validade de entradas para uma coluna específica. É possível aplicar a integridade de domínio para restringir o tipo usando tipos de dados; restringir o formato usando restrições e regras CHECK ou restringir o intervalo de valores possíveis usando as restrições FOREIGN KEY, restrições CHECK, definições DEFAULT, definições NOT NULL e regras.
Integridade referencial
A integridade referencial preserva as relações definidas entre tabelas quando linhas são digitadas ou excluídas. No SQL Server, a integridade referencial baseia-se nas relações entre chaves estrangeiras e chaves primárias ou entre chaves estrangeiras e chaves exclusivas, por meio de restrições FOREIGN KEY e CHECK. A integridade referencial assegura que os valores chave permaneçam consistentes em todas as tabelas. Esse tipo de consistência requer que não haja referências a valores não existentes e que se um valor chave é alterado, todas as referências a ele são consistentemente alteradas em todo o banco de dados.
Quando uma integridade referencial é aplicada, o SQL Server impede que os usuários façam o seguinte:
Adicionar ou alterar linhas a uma tabela relacionada se não houver nenhuma linha associada na tabela primária.
Alterar valores em uma tabela primária que causa linhas órfãs em uma tabela relacionada.
Excluir linhas de uma tabela primária se houver linhas relacionadas correspondentes.
Por exemplo, com as tabelas Sales.SalesOrderDetail e Production.Product no banco de dados AdventureWorks, a integridade referencial baseia-se nas relações entre a chave estrangeira (ProductID) da tabela Sales.SalesOrderDetail e a chave primária (ProductID) na tabela Production.Product. Essa relação assegura que o pedido de vendas nunca referencie um produto que não exista na tabela Production.Product.
Integridade definida pelo usuário
A integridade definida pelo usuário permite definir regras comerciais que não se encaixam em outras categorias de integridade. Todas as categorias de integridade oferecem suporte à integridade definida pelo usuário. Isto inclui todas as restrições em nível de coluna e em nível de tabela no CREATE TABLE, procedimentos armazenados e gatilhos.
Consulte também