Definição – o que significa a segunda forma normal (2NF)?
A segunda forma normal (2NF) é a segunda etapa na normalização de um banco de dados. 2NF baseia-se na primeira forma normal (1NF).
Normalização é o processo de organização de dados em um banco de dados para que atendam a dois requisitos básicos:
- Não há redundância de dados (todos os dados são armazenados em apenas um lugar).
- As dependências de dados são lógicas (todos os itens de dados relacionados são armazenados juntos).
Uma tabela 1NF está na forma 2NF se, e somente se, todos os seus atributos não primos forem funcionalmente dependentes de todas as chaves candidatas.
Definirtec explica a segunda forma normal (2NF)
Depois de atender aos requisitos de 1NF, 2NF requer que o designer do banco de dados faça o seguinte:
- Divida todos os dados que resultam em relacionamentos muitos para muitos e armazene os dados como tabelas separadas. Por exemplo, em um banco de dados usado pelo aplicativo de uma escola, duas das tabelas são STUDENT e SUBJECT. Na vida real, um aluno faz várias disciplinas simultaneamente, enquanto uma disciplina é estudada por vários alunos. Esses são relacionamentos muitos para muitos. 2NF afirma que esta relação deve ser dividida em mais do que as duas tabelas acima (ESTUDANTE e ASSUNTO). Uma forma de dividi-los é introduzindo uma terceira tabela, que contém as colunas Student_ID, Subject_ID, Semester e Year. Desta forma, não há relacionamento direto entre STUDENT e SUBJECT porque todos os relacionamentos são criados indiretamente por meio da terceira tabela.
- Crie relacionamentos entre tabelas usando chaves estrangeiras. Por exemplo, o banco de dados de um banco contém duas tabelas: CUSTOMER_MASTER (para armazenar detalhes do cliente) e ACCOUNT_MASTER (para armazenar detalhes sobre contas bancárias, incluindo qual cliente possui qual conta). Deve haver uma maneira de vincular as duas tabelas para saber quem é o cliente de cada conta. A maneira de fazer isso é por meio de uma chave estrangeira, que é uma coluna na tabela ACCOUNT_MASTER apontando para uma coluna correspondente na tabela CUSTOMER_MASTER.
Uma tabela para a qual não há dependências funcionais parciais na chave primária pode ou não estar em 2NF. Além da chave primária, a tabela pode conter outras chaves candidatas; é necessário estabelecer que nenhum atributo não principal tem dependências de chave parcial em qualquer uma dessas chaves candidatas.