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
-
Relacionamentos de banco de dados
-
Glossário de termos comuns de banco de dados
-
Colocando um banco de dados na terceira forma normal (3NF)
-
Determinantes e seu papel em um banco de dados
-
Noções básicas de normalização de banco de dados
-
O que é a forma normal de Boyce-Codd (BCNF)?
-
O que são dependências de banco de dados?
-
O que é dependência transitiva em um banco de dados
-
Relacionamentos um-para-muitos em um banco de dados
-
Como a integridade referencial garante a consistência do banco de dados
-
Normalizando seu banco de dados: Primeira forma normal (1FN)
-
Escolhendo uma chave primária
-
Dependência multivalorada no design de banco de dados
-
Introdução aos relacionamentos de banco de dados
-
Dependência funcional em um banco de dados
-
Chaves básicas que facilitam o gerenciamento de banco de dados
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)