Skip to content

Dependência funcional total na normalização do banco de dados

16 de maio de 2021

Uma dependência funcional completa é um estado de normalização do banco de dados que se iguala ao padrão de normalização da Segunda Forma Normal (2NF). Em resumo, isso significa que ele atende aos requisitos da Primeira Forma Normal (1NF), e todos os atributos não-chave são totalmente dependentes funcionalmente da chave primária. Isso não é tão complicado quanto pode parecer. Vamos examinar isso com mais detalhes.

Resumo da primeira forma normal

Antes que um banco de dados possa ser totalmente dependente funcionalmente, ele deve primeiro estar em conformidade com a Primeira Forma Normal. Tudo isso significa que cada atributo deve conter um único valor atômico. Por exemplo, a tabela a seguir faz não atendem a 1NF, pois a funcionária Tina está vinculada a duas localidades, ambas em uma única célula:

Primeira forma normal de não conformidade

Empregado Localização
João Los Angeles
Tina Los Angeles, Chicago

Permitir esse design pode impactar negativamente as atualizações ou entradas de dados. Para garantir a conformidade com 1NF, reorganize a tabela para que todos os atributos (ou células da coluna) contenham um único valor:

Conformidade do primeiro formulário normal

Localização do funcionário John Los Angeles Tina Los Angeles Tina Chicago Mas a 1NF ainda não é suficiente para evitar problemas com os dados.


Como funciona 2NF para garantir dependência total

Para serem totalmente dependentes, todos os atributos de chave não candidatos devem depender da chave primária. (Lembre-se, um atributo de chave candidata é qualquer chave (por exemplo, uma chave primária ou estrangeira) usada para identificar exclusivamente um registro de banco de dados. Os designers de banco de dados usam uma notação para descrever os relacionamentos dependentes entre os atributos: Se o atributo A determinar o valor de B, nós escrevemos isso A -> B – o que significa que B é funcionalmente dependente de A. Nesta relação, A determina o valor de B, enquanto B depende de A. Por exemplo, no seguinte Departamentos de Funcionários table, EmployeeID e DeptID são ambas as chaves candidatas: EmployeeID é a chave primária da tabela enquanto DeptID é uma chave estrangeira. Qualquer outro atributo – neste caso, EmployeeName e DeptName – deve depender da chave primária para obter seu valor.

Departamentos de Funcionários

ID do Empregado Nome do empregado DeptID DeptName
Emp1 João Dept001 Finança
Emp2 Tina Dept003 Vendas
Emp3 Carlos Dept001 Finança

Nesse caso, a tabela não é totalmente dependente porque, enquanto o EmployeeName depende da chave primária EmployeeID, o DeptName depende do DeptID. Isso é chamado dependência parcial. Para tornar esta tabela em conformidade com 2NF, precisamos separar os dados em duas tabelas:

Funcionários

ID do Empregado Nome do empregado DeptID
Emp1 João Dept001
Emp2 Tina Dept003
Emp3 Carlos Dept001

Removemos o atributo DeptName do Funcionários mesa e criar uma nova mesa Departamentos:

Departamentos

DeptID DeptName
Dept001 Finança
Dept002 Recursos Humanos
Dept003 Vendas

Agora as relações entre as tabelas são totalmente dependentes, ou em 2NF.

Por que a dependência total é importante

A dependência total entre os atributos do banco de dados ajuda a garantir a integridade dos dados e evitar anomalias nos dados. Por exemplo, considere a tabela na seção acima que adere apenas a 1NF. Aqui está, novamente:

Conformidade do primeiro formulário normal

Empregado Localização
João Los Angeles
Tina Los Angeles
Tina Chicago

Tina tem dois discos. Se atualizarmos um sem perceber que existem dois, o resultado seria dados inconsistentes. Ou, e se quisermos adicionar um funcionário a esta tabela, mas ainda não soubermos a localização? Podemos não ter permissão nem mesmo para adicionar um novo funcionário se o atributo Location não permitir valores NULL. A dependência total não é tudo, porém, quando se trata de normalização. Você deve se certificar de que seu banco de dados está na Terceira Forma Normal (3NF). Mais da Lifewire

  • Um gráfico na tela do computador.

    Relacionamentos de banco de dados

  • Renderização digital de código de computador e linhas de conexão que representam um banco de dados

    Glossário de termos comuns de banco de dados

  • Homem usando laptop na mesa do escritório em casa

    Colocando um banco de dados na terceira forma normal (3NF)

  • Administrador de banco de dados trabalhando na mesa

    Determinantes e seu papel em um banco de dados

  • Fluxograma de banco de dados estilizado

    Noções básicas de normalização de banco de dados

  • Closeup vista lateral de uma mulher negra loira de meados dos anos 20 fazendo seu projeto de desenvolvimento de software.  Ela está sentada na frente de um computador desktop e tomando um café enquanto trabalha em um computador.

    O que é a forma normal de Boyce-Codd (BCNF)?

  • Mulher jovem se concentra em seu trabalho na frente do computador

    O que são dependências de banco de dados?

  • Homem usando um laptop

    O que é dependência transitiva em um banco de dados

  • Mulher olhando para a sala do servidor

    Relacionamentos um-para-muitos em um banco de dados

  • Banco de dados em um computador

    Como a integridade referencial garante a consistência do banco de dados

  • Homem de negócios usando o computador na sala do servidor virtual

    Normalizando seu banco de dados: Primeira forma normal (1FN)

  • Um homem de negócios trabalhando em um escritório

    Escolhendo uma chave primária

  • Mão de uma mulher segurando a mão aberta com conexão de rede ilustrada acima dela

    Dependência multivalorada no design de banco de dados

  • Empresários conversando e discutindo dados no laptop em uma reunião na sala de conferências

    Introdução aos relacionamentos de banco de dados

  • Mulher segurando relatório no escritório, close-up

    Dependência funcional em um banco de dados

  • Visão de alto ângulo dos técnicos que trabalham na sala do servidor

    Chaves básicas que facilitam o gerenciamento de banco de dados

Lifewire

Siga-nos

  • Facebook

  • Sobre nós
  • Anunciar
  • Política de Privacidade
  • Política de Cookies
  • Carreiras
  • Diretrizes editoriais
  • Contato
  • Termos de uso
  • Privacidade da UE
  • Aviso de privacidade da Califórnia



Seus direitos de privacidade

A Lifewire e nossos parceiros terceirizados usam cookies e processam dados pessoais como identificadores exclusivos com base em seu consentimento para armazenar e / ou acessar informações em um dispositivo, exibir anúncios personalizados e para medição de conteúdo, percepção do público e desenvolvimento de produtos. Para alterar ou retirar suas opções de consentimento para Lifewire.com, incluindo seu direito de contestar quando um interesse legítimo é usado, clique abaixo. A qualquer momento, você pode atualizar suas configurações por meio do link “Privacidade da UE” na parte inferior de qualquer página. Essas escolhas serão sinalizadas globalmente para nossos parceiros e não afetarão os dados de navegação. Lista de parceiros (fornecedores)

Nós e nossos parceiros processamos dados para:

Digitalize ativamente as características do dispositivo para identificação. Use dados precisos de geolocalização. Armazene e / ou acesse informações em um dispositivo. Selecione o conteúdo personalizado. Crie um perfil de conteúdo personalizado. Avalie o desempenho do anúncio. Selecione anúncios básicos. Crie um perfil de anúncios personalizados. Selecione anúncios personalizados. Aplique pesquisas de mercado para gerar insights do público. Avalie o desempenho do conteúdo. Desenvolva e melhore produtos. Lista de parceiros (fornecedores)