O resumo anterior mostrou o sintoma — as três anomalias de atualização — a partir de uma tabela mal projetada, mas descreveu a causa (misturar atributos de entidades diferentes) de forma só informal. Agora é hora de formalizar: dependência funcional é o conceito que dá nome preciso a essa relação entre atributos, e é a base matemática sobre a qual toda a teoria de normalização é construída.
Neste resumo, você vai aprender a notação e a definição formal de dependência funcional, entender a diferença entre dependência trivial e não trivial, revisitar chave candidata sob essa nova lente e conhecer as regras (axiomas de Armstrong) usadas para provar que uma dependência é consequência de outras.
📲 Canal Oficial do Dicionário do Concurseiro no WhatsApp
Receba resumos, questões comentadas e novidades diretamente no seu celular!
💡 Conteúdo exclusivo para concurseiros. Totalmente gratuito!
🔑 Definição formal e notação
Numa relação R, existe uma dependência funcional de um conjunto de atributos X para um conjunto de atributos Y — notação X → Y, lida como “X determina Y” ou “Y depende funcionalmente de X” — quando, para quaisquer duas linhas de R que tenham o mesmo valor de X, elas obrigatoriamente têm também o mesmo valor de Y. Em outras palavras: conhecer o valor de X é suficiente para saber, sem ambiguidade, o valor de Y. X é chamado de determinante; Y, de dependente.
🗄️ Exemplo prático (retomando o resumo anterior)
Na tabela Funcionario(matricula, nome, departamento, gerente_departamento) do resumo anterior, valem as dependências matricula → nome e matricula → departamento (cada matrícula pertence a um único funcionário, que tem um único nome e está lotado num único departamento). Também vale departamento → gerente_departamento (cada departamento tem um único gerente). Note que esta última não depende de matricula — é justamente essa dependência “escondida” dentro de uma tabela pensada em torno de funcionário que gera as três anomalias já vistas.
➗ Dependência trivial x não trivial
Uma dependência X → Y é trivial quando Y é subconjunto de X (ex.: {matricula, nome} → nome) — ela é sempre verdadeira, por definição, e não carrega informação nova sobre o esquema. É não trivial quando Y não está contido em X (ex.: matricula → nome). Só as dependências não triviais interessam para decidir se um esquema está bem projetado; dependências triviais aparecem em provas como distrator, citadas como se fossem uma regra de negócio relevante.
🗝️ Superchave e chave candidata, agora com definição formal
Superchave é qualquer conjunto de atributos K tal que K determina funcionalmente todos os demais atributos da relação (K → todos os outros atributos). Chave candidata é uma superchave mínima: nenhum subconjunto próprio de K também é superchave. Em Funcionario, matricula sozinha já é chave candidata: sendo composta por um único atributo, não existe subconjunto próprio não vazio menor que ela, então a minimalidade é satisfeita automaticamente. Já {matricula, nome} é superchave, mas não é chave candidata, porque o subconjunto {matricula} sozinho já determina tudo.
🧩 Dependência funcional total (completa)
Quando a chave candidata é composta (mais de um atributo), surge uma distinção importante: uma dependência funcional é total (ou completa) quando o atributo dependente precisa do conjunto inteiro da chave para ser determinado — removendo qualquer atributo da chave, a dependência deixa de valer. Esse conceito é a base do próximo resumo, que trata do caso oposto: quando um atributo depende de apenas parte de uma chave composta. (Esse é o recorte mais cobrado em prova; formalmente, a noção de dependência total/parcial vale para qualquer conjunto determinante, não só chaves.)
📐 Axiomas de Armstrong: provando dependências implícitas
As dependências funcionais de um esquema não precisam ser todas declaradas explicitamente — muitas são implicadas por outras, e os axiomas de Armstrong são as três regras de inferência que permitem provar isso formalmente:
- Reflexividade: se Y é subconjunto de X, então X → Y (gera exatamente as dependências triviais);
- Aumento: se X → Y, então X∪Z → Y∪Z para qualquer conjunto Z (acrescentar os mesmos atributos dos dois lados preserva a dependência);
- Transitividade: se X → Y e Y → Z, então X → Z.
Aplicando transitividade ao exemplo: como matricula → departamento e departamento → gerente_departamento, conclui-se que matricula → gerente_departamento — uma dependência que não precisou ser declarada à parte, ela já estava implícita nas outras duas.
⚠️ Pegadinhas comuns
- “X determina Y” não é o mesmo que “Y determina X”: dependência funcional não é simétrica —
departamento → gerente_departamentonão implicagerente_departamento → departamento(um gerente pode, em tese, responder por mais de um departamento); - Dependência funcional é sobre o esquema, não sobre uma instância específica de dados: ela precisa valer para qualquer conjunto de linhas válido da tabela, não apenas para os dados que estão nela hoje;
- Superchave sempre existe (a tabela toda é uma); chave candidata pode ser mais de uma: uma relação pode ter múltiplas chaves candidatas; a que é escolhida para ser a chave primária é uma decisão de projeto, não uma imposição da teoria;
- Não confundir os três axiomas de Armstrong com regras de normalização: eles servem para inferir dependências (matemática pura), não para classificar formas normais — esse é o tema dos próximos resumos.
🎯 Dica Final para a Prova
Quando a questão apresentar uma dependência e pedir para classificá-la, primeiro cheque se o lado direito está contido no esquerdo (trivial) ou não (não trivial). Quando pedir para provar uma dependência “nova” a partir de outras já dadas, procure aplicar transitividade — é o axioma mais cobrado, porque simula exatamente o raciocínio de “A implica B, B implica C, logo A implica C”.
✓ Agora que você sabe o que é uma dependência funcional total (aquela que depende da chave inteira), o próximo resumo mostra o que acontece quando essa regra é quebrada: dependências parciais (de parte da chave) e transitivas (de um atributo que não é chave) — as duas violações formais da chave que explicam, de forma sistemática, as anomalias vistas no resumo anterior.
📍Gostou do conteúdo? Deixe um comentário, compartilhe e continue acompanhando o Dicionário do Concurseiro para mais Resumos de TI – Banco de Dados. Aqui você encontra explicações claras, atualizadas e com foco total no que cai em prova!
👉 Leia também no Dicionário do Concurseiro: Resumo TI Banco de Dados: Dependências Parciais e Transitivas
📘 Dependência funcional é a régua matemática que mede se um atributo “pertence” a outro dentro da tabela — e é essa régua que a normalização usa para decidir onde cortar. Continue estudando!
Comentários
Seja o primeiro a comentar.
Você precisa fazer o login para publicar um comentário.