Um guia para normalização e desnormalização do banco de dados (com exemplos visuais e casos de uso prático)
Índice de Índice Introdução à normalização Primeira forma normal (1NF) Segunda forma normal (2NF) Terceira forma normal (3NF) FORMURA DE NORMAL CODO BOYCE (BCNF) Quarta forma normal (4NF) Quinta forma normal (5NF) Denormalização: Melhor, quando a normalização da normalização e por que a normalização e por que a normalização e porquê para usá-lo e as melhores práticas e a normalização da normalização é o processo do processo. Envolve dividir mesas e definir relacionamentos. Metas -chave: eliminar dados duplicados. Garanta que as dependências de dados façam sentido. Otimize o armazenamento e manutenção. Níveis de normalização: 1nf → 2nf → 3nf → bcnf → 4nf → 5nf Entre no modo de tela cheia Sair do modo de tela cheia 1. Primeira forma normal (1NF) Cada coluna de tabela deve conter valores atômicos (únicos) sem listas, matrizes ou repetições de aninhadas. Isso garante uma forte independência de dados e estabelece as bases para formas normais mais altas. Regras: Todas as colunas contêm valores atômicos (indivisíveis). Sem grupos repetidos. Exemplo: Antes de 1NF OrderId Products 101 Laptop, mouse, teclado após 1NF OrderId Produto 101 Laptop 101 Mouse 101 Teclado 2. Segunda forma normal (2NF) Uma tabela está em 2NF se já estiver em 1NF e todos os atributos que não são de chave não dependem totalmente de toda a chave primária, não apenas a parte dela. Dessa maneira, dependências parciais são impedidas e redundância reduzida. Regras: deve estar em 1nf. Nenhuma dependência parcial (todas as colunas não-chave dependem da chave primária completa). Exemplo: Antes do 2NF OrderId (PK) ProductId (PK) Nome do produto 101 P1 Laptop após 2NF Ordens Tabela: | OrderId (PK) | Tabela de produtos: | ProductId (PK) | Nome do produto | Tabela de encomendas: | OrderId (PK, FK) | ProductId (PK, FK) | 3. Terceira forma normal (3NF) Uma relação está em 3NF se estiver em 2NF e nenhum atributo não crista depende transiativamente de uma chave candidata. Essencialmente, cada atributo não-chave deve depender diretamente da chave, de toda a chave e nada além da chave. Isso elimina dependências transitivas e aplica ainda mais a integridade dos dados. Regras: Deve estar em 2NF. Nenhuma dependência transitiva (colunas não-chave dependem apenas da chave primária). Exemplo: antes de 3nf | StudentId | Departamento | Departamenthead | Após 3NF, tabela de alunos: | StudentId | Departamento | Tabela de departamentos: | Departamento | Departamenthead | 3b. Formulário normal de Boyce-Codd (BCNF) Este é um refinamento de 3NF, onde todo determinante deve ser uma chave candidata. Usado para resolver casos de canto em que o 3NF ainda possui dependências indesejáveis. Regras: Deve estar em 3NF. Todo determinante deve ser um superkey. Exemplo: antes do BCNF | StudentId | Curso | Professor | Após a tabela BCNF StudentCourses: | StudentId | Curso | Tabela do ProfessorCours: | Professor | Curso | 4. Quarta forma normal (4NF) Uma tabela está em 4NF se já estiver na forma normal de Boyce-codd (BCNF) e não existem dependências multivalugas não triviais além daquelas originárias de uma superkey. Ter uma tabela na quarta forma normal garante que vários relacionamentos independentes não causem duplicação de dados entre linhas. Regras: Deve estar no BCNF. Sem dependências com vários valores. Exemplo: antes de 4nf | Funcionário | Habilidade | Idioma | Após a tabela de funcionários 4NF: | Funcionário | Habilidade | Tabela de idiomas empregados: | Funcionário | Idioma | 5. Quinta forma normal (5NF) também chamado de forma de projeto -joa, 5NF garante que toda dependência de junção na tabela seja uma conseqüência das chaves candidatas. Este formulário aborda restrições complexas de junção e garante que os dados sejam irredutíveis e livres de redundância devido a relacionamentos conjuntos. Regras: deve estar em 4nf. Sem dependências de junção. Exemplo: antes de 5nf | Fornecedor | Parte | Projeto | Após 5nf, tabela de fornecedores: | Fornecedor | Parte | Tabela de projectRajects: | Fornecedor | Projeto | Tabela de projetos de partidas: | Parte | Projeto | Denormalização: quando e por que usá -lo desnormalização refere -se a adicionar intencionalmente redundância para melhorar o desempenho da leitura. Quando usar: Cargas de trabalho de leitura pesada (por exemplo, Analytics). Reduzir junções complexas. Aplicações em tempo real. Exemplo 1: Histórico de pedidos de comércio eletrônico Tabela desnormalizada: | OrderId | Nome Customern Nome do produto | TotalPrice | Exemplo 2: mídias sociais como contagem de coluna desnormalizada: postagens (pós-título, conteúdo, luxuoso) Resumo e práticas recomendadas Normal de desnormalização de desnormalização de desnormalização 1nf Valores atômicos raramente necessários 2NF eliminam dependências parciais de dependências de dependências de dependências de dependência 3NF Remova 4N de dependências de dependências de dependência da super-tráfego de dependências de dependência da supervisão de dependência de alterações de dependência de dependência da supervisão de dependência da supervisão de dependência de dependência de mais de dependências. para integridade. Desnormalize seletivamente para desempenho. Dados brutos do fluxo de trabalho visual → 1nf → 2nf → 3nf → bcnf → 4nf → 5nf ↓ desnormalize (para leituras) Digite o modo de saída de tela cheia de tela cheia
Fonte