Integridade referencial - Referential integrity

Um exemplo de banco de dados que não reforçou a integridade referencial . Neste exemplo, há um artist_idvalor de chave estrangeira ( ) na tabela do álbum que faz referência a um artista inexistente - em outras palavras, há um valor de chave estrangeira sem valor de chave primária correspondente na tabela referenciada. O que aconteceu aqui foi que havia um artista chamado " Aerosmith ", com um artist_idde 4, que foi excluído da tabela de artistas. No entanto, o álbum " Eat the Rich " referia-se a este artista. Com a integridade referencial imposta, isso não teria sido possível.

Integridade referencial é uma propriedade dos dados que afirma que todas as suas referências são válidas. No contexto de bancos de dados relacionais , exige que se um valor de um atributo (coluna) de uma relação (tabela) faz referência a um valor de outro atributo (na mesma ou em uma relação diferente), então o valor referenciado deve existir.

Para que a integridade referencial seja mantida em um banco de dados relacional, qualquer coluna em uma tabela base que seja declarada uma chave estrangeira pode conter apenas valores nulos ou valores da chave primária de uma tabela pai ou uma chave candidata . Em outras palavras, quando um valor de chave estrangeira é usado, ele deve fazer referência a uma chave primária válida existente na tabela pai. Por exemplo, excluir um registro que contém um valor referido por uma chave estrangeira em outra tabela quebraria a integridade referencial. Alguns sistemas de gerenciamento de banco de dados relacional (RDBMS) podem impor integridade referencial, normalmente excluindo as linhas de chave estrangeira também para manter a integridade ou retornando um erro e não executando a exclusão. O método usado pode ser determinado por uma restrição de integridade referencial definida em um dicionário de dados .

O adjetivo 'referencial' descreve a ação que uma chave estrangeira executa, 'referindo-se' a uma coluna vinculada em outra tabela. Em termos simples, a 'integridade referencial' garante que o alvo 'referido' será encontrado. A falta de integridade referencial em um banco de dados pode fazer com que os bancos de dados relacionais retornem dados incompletos, geralmente sem indicação de erro.

Formalização

Uma dependência de inclusão sobre dois predicados (possivelmente idênticos) e de um esquema é escrita , onde o , são atributos distintos (nomes de coluna) de e . Isso implica que as tuplas de valores que aparecem em colunas para fatos de também devem aparecer como uma tupla de valores em colunas para algum fato de .

A implicação lógica entre dependências de inclusão pode ser axiomatizada por regras de inferência e pode ser decidida por um algoritmo PSPACE . O problema pode ser mostrado como PSPACE-completo por redução do problema de aceitação para um autômato linear limitado . No entanto, a implicação lógica entre dependências que podem ser dependências de inclusão ou dependências funcionais é indecidível por redução do problema de palavra para monóides .

Integridade referencial declarativa

Integridade referencial declarativa (DRI) é uma das técnicas na linguagem de programação de banco de dados SQL para garantir a integridade dos dados.

Significado em SQL (Structured Query Language)

Uma tabela (chamada de tabela de referência) pode se referir a uma coluna (ou um grupo de colunas) em outra tabela (a tabela referenciada) usando uma chave estrangeira . As colunas referenciadas na tabela referenciada devem estar sob uma restrição exclusiva, como uma chave primária . Além disso, as referências próprias são possíveis (embora não totalmente implementadas no MS SQL Server). Ao inserir uma nova linha na tabela de referência, o sistema de gerenciamento de banco de dados relacional (RDBMS) verifica se o valor da chave inserido existe na tabela referenciada. Caso contrário, nenhuma inserção é possível. Também é possível especificar ações DRI em UPDATE e DELETE , como CASCADE (encaminha uma alteração / exclusão na tabela referenciada para as tabelas referenciadoras), NO ACTION (se a linha específica é referenciada, a alteração da chave não é permitida) ou SET NULL / SET DEFAULT (uma chave alterada / excluída na tabela referenciada resulta na definição dos valores de referência para NULL ou para o valor DEFAULT se um for especificado).

ANSI / ISO / IEC 9075-1: 2003, Tecnologia da informação - Linguagens de banco de dados - SQL - Parte 1: Estrutura (SQL / Framework) ANSI / ISO / IEC 9075-2: 2003, Tecnologia da informação - Linguagens de banco de dados - SQL - Parte 2: Foundation (SQL / Foundation)

Significado específico do produto

No Microsoft SQL Server, o termo DRI também se aplica à atribuição de permissões a usuários em um objeto de banco de dados. Dar permissão DRI a um usuário de banco de dados permite que ele adicione restrições de chave estrangeira em uma tabela.

Veja também

Referências

links externos