Normalização de bancos de dados – de uma tabela plana à 3FN, com diagramas ER
ComputaçãoArquivos, armazenamento e bancos de dadosIdades 16–17
Carregando…
Entre para usarComece com uma tabela plana cheia de dados repetidos, provoque anomalias de atualização, inserção e exclusão e avance pela 1FN, 2FN e 3FN enquanto a tabela se divide, chaves primárias e estrangeiras aparecem e as dependências parciais e transitivas são eliminadas. Um diagrama entidade–relacionamento (ER) em notação pé de galinha muda a cada passo, um gráfico conta os valores armazenados e as cópias repetidas, e uma consulta SQL com JOIN reconstrói as linhas originais para mostrar que nenhuma informação foi perdida.
Aula: Projeto de bancos de dados relacionais: dependências funcionais, normalização para 1FN, 2FN e 3FN, anomalias de dados, diagramas ER e relacionamentos um para um, um para muitos e muitos para muitos
O que mostra
Uma tabela plana que guarda tudo junto repete os mesmos fatos muitas vezes: uma mudança precisa ser feita em várias linhas (anomalia de atualização), um fato novo não pode ser guardado até que um registro o use (anomalia de inserção) e excluir um registro pode destruir fatos alheios (anomalia de exclusão). A normalização divide a tabela passo a passo: a 1FN elimina grupos repetitivos, a 2FN elimina dependências parciais de parte da chave composta e a 3FN elimina dependências transitivas entre colunas não chave. Chaves estrangeiras ligam as tabelas e os JOIN reconstroem as linhas sem perda.
Como usar
Escolha o Conjunto de dados e o número de Registros e clique em 1FN, 2FN e 3FN (ou Voltar e Avançar) para ver a tabela se dividir. Marque Dependências para ver qual dependência viola cada forma normal. Escolha uma Anomalia e clique em Testar para alterar, incluir ou excluir dados; Desfazer restaura. Alterne o Diagrama ER entre Lógico e Conceitual, toque em uma entidade para destacar sua tabela e use Filtro para consultar um só registro.
Parâmetros que você pode mudar
- Conjunto de dados Pedidos de uma loja, Matrículas de alunos em disciplinas
- Passo da normalização Não normalizada (FNN), Primeira forma normal (1FN), Segunda forma normal (2FN), Terceira forma normal (3FN)
- Número de registros (pedidos ou alunos) 3–8 registros
- Anomalia a testar Nenhuma, Anomalia de atualização, Anomalia de inserção, Anomalia de exclusão
- Nível do diagrama ER Lógico (com tabela associativa), Conceitual (muitos para muitos)
- Mostrar as dependências funcionais
Perguntas para explorar
- Por que a tabela na 1FN guarda mais cópias repetidas dos mesmos fatos do que a tabela não normalizada?
- Na 2FN, por que ainda não é possível guardar um cliente novo que não fez nenhum pedido?
- Por que o relacionamento muitos para muitos entre pedidos e produtos precisa ser substituído por uma tabela associativa?