Chave estrangeira

No contexto dos banco de dados, o conceito de chave estrangeira ou chave externa se refere ao tipo de relacionamento entre distintas tabelas de dados do banco de dados.

Uma chave estrangeira é chamada quando há o relacionamento entre duas tabelas.

Sempre em chave estrangeira vai haver relacionamentos entre tabelas, por exemplo, se uma tabela que tem uma chave primária de outra tabela.

Chave externas ou estrangeiras (Foreign Key - FK)

Uma chave estrangeira é um campo, que aponta para a chave primária de outra tabela ou da mesma tabela. Ou seja, passa a existir uma relação entre duplas de duas tabelas ou de uma única tabela. A finalidade da chave estrangeira é garantir a integridade dos dados referenciais, pois apenas serão permitidos valores que supostamente vão aparecer na base de dados.

Esse tipo de atributo não permite exclusão, modificação ou inserção de dados em tabelas que estejam dependentes umas das outras("foreign key"), o que requer modificadores especiais, como cascade, por exemplo. Isso também exige uma maior atenção do administrador da base de dados, quanto à própria manipulação dos dados.

Definindo chaves estrangeiras

As chaves estrangeiras são definidas no padrão ISO do SQL, através de uma restrição FOREIGN KEY. A sintaxe para adicionar uma tal restrição a uma tabela existente é definido no SQL: 2003, como mostrado abaixo. Omitindo a lista de colunas na cláusula de referências implica que a chave estrangeira deve referenciar a chave primária da tabela referenciada.

ALTER TABLE <tabela>
   ADD [ CONSTRAINT <restrição> ]
      FOREIGN KEY ( <coluna> {, <coluna>}... )
      REFERENCES <tabela> [ ( <coluna> {, <ccoluna>}... ) ]
      [ ON UPDATE <ação> ]
      [ ON DELETE <ação> ]

Ver também

  • v
  • d
  • e
Modelagem  · Normalização  · Estrutura de banco de dados  · GDBS distribuídos  · Integridade referencial  · Álgebra relacional  · Cálculo relacional  · Banco de dados relacional  · Mapeamento objeto-relacional  · Modelo relacional  · Banco de dados objeto-relacional  · Processamento de transação
Conceitos
Banco de dados  · ACID  · CRUD  · Null  · Chave candidata  · Chave estrangeira  · Chave primária  · Superkey  · Surrogate key  · Axiomas de Armstrong  · NoSQL
Objetos
Relação (Tabela)  · Vista  · Trigger  ·  · Cursor  · Log de transação  · Transação  · Índice  · Procedimento armazenado  · Partição
Componentes
Controle de concorrência  · Dicionário de dados  · JDBC  · ODBC  · Linguagem de consulta  · Query optimizer  · Query plan
Funções
Gestão e automatização  · Otimização de consulta  · Replicação
Produtos disponíveis no mercado: Orientados a objeto (Comparativo)  · Relacionais (Comparativo)  · Orientados a documento  · NoSQL  · NewSQL
Ícone de esboço Este artigo sobre banco de dados é um esboço. Você pode ajudar a Wikipédia expandindo-o.
  • v
  • d
  • e