Baixe o app para aproveitar ainda mais
Prévia do material em texto
BANCO DE DADOS Normalização INTRODUÇÃO Normalização Introduzido por E. F. Codd (1970); Processo matemático formal fundamentado na teoria dos conjuntos; Conjunto de regras que ajudam na definição de bancos de dados que não contenham redundância desnecessária e que permitam o fácil acesso às informações; Normalização Há diferentes níveis de normalização, de acordo com as condições atendidas; A hierarquia entre as formas normais indica que uma tabela só pode estar numa forma mais avançada se, além de atender as condições necessárias, já estiver na forma normal imediatamente anterior. Conceitos Úteis Chave Primária (Primary Key – PK): Atributo ou conjunto de atributos que definem o registro de maneira única. Chave Estrangeira (Foreign Key – FK): Atributo ou conjunto de atributos que faz ligação com a chave primária de outra tabela. Conceitos Úteis Dependência Funcional: Ocorre quando um atributo X identifica um atributo Y: X é o Determinante; Y é o Dependente. Representação: X→Y (X determina Y ou Y é dependente de X). Exemplo: CEP → LOGRADOURO Conceitos Úteis Dependência Funcional Transitiva: Quando um atributo X identifica um atributo Y e Y determina Z: X determina Z de forma transitiva. Exemplo: CEP → LOGRADOURO LOGRADOURO → CIDADE CEP → CIDADE Conceitos Úteis Dependência Multivalorada: Quando um atributo identifica um conjunto de valores de outro atributo: Representação: X→ → Y (X multidetermina Y ou Y é multidependente de X). Exemplo: CPF → NOME CPF → → DEPENDENTES Normalização Níveis: 1FN – 1ª Forma Normal; 2FN – 2ª Forma Normal; 3FN – 3ª Forma Normal; FNBC - Forma Normal de Boyce/Codd (Nova 3FN); 4FN – 4ª Forma Normal; 5FN – 5ª Forma Normal. Normalização A finalidade das regras de normalização é evitar anomalias de atualização no banco de dados: Anomalias de inserção: Evitar a repetição desnecessária de dados (redundância). Anomalias de alteração: Evitar inconsistências e reduzir o esforço para a atualização dos dados. Anomalias de exclusão: Evitar a perda de informações associadas a um dado registro. Anomalias Exemplo: Considere a tabela para armazenar os dados relativos aos alunos do IFRN: Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsavel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira ... ... ... ... ... ... ... 2010111005-3 888.888.888-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos 2010111004-6 666.666.666-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Anomalias Caso fosse preciso registrar a matrícula de 3 irmãos no mesmo curso, as seguintes anomalias seriam observadas: Anomalia de Inserção: Redundância em diversas colunas (CodCurso, NomeCurso, CPFResponsavel e NomeResponsavel). Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsavel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira ... ... ... ... ... ... ... 2010111005-3 888.888.888-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos 2010111004-6 666.666.666-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Anomalias Caso fosse preciso registrar a matrícula de 3 irmãos no mesmo curso, as seguintes anomalias seriam observadas: Anomalia de Alteração: Alteração dos responsáveis deveria ser feita em todas as linhas correspondentes da tabela. Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsavel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira ... ... ... ... ... ... ... 2010111005-3 888.888.888-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos 2010111004-6 666.666.666-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Anomalias Caso fosse preciso registrar a matrícula de 3 irmãos no mesmo curso, as seguintes anomalias seriam observadas: Anomalia de Exclusão: Só haveria registro das matrículas realizadas; se a única matrícula de um aluno fosse apagada, não haveria mais informações sobre aquele aluno. Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsavel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira ... ... ... ... ... ... ... 2010111005-3 888.888.888-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos 2010111004-6 666.666.666-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira FORMAS NORMAIS Cenário Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsav el EnderecoRespon savel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos Rua Projetada, No. 100, Bairro Centro, Santa Cruz, RN 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética, No 200, Bairro Liberdade, Tangará, RN ... ... ... ... ... ... ... ... 2010111005-3 888.888.888-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada, No. 100, Bairro Centro, Santa Cruz, RN 2010111004-6 666.666.666-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética, No 200, Bairro Liberdade, Tangará, RN Primeira Forma Normal (1FN) O atributo contém um e somente um valor, não um conjunto de valores (atomicidade). Os atributos da entidade não possui grupo de repetição: Os atributos identificadores estão definidos (chave primária): Os demais atributos são dependentes da chave primária. Primeira Forma Normal (1FN) Passos para obtenção da 1FN em uma tabela: Desmembrar o atributo que possui um conjunto de informações em vários atributos indivisíveis; Separar a informação que se repete em uma nova entidade; Definir na nova entidade um atributo identificador (chave primária). Levar a chave primária da entidade criada para a entidade que originou essa nova entidade (chave estrangeira); Identificar um ou mais atributos que juntos com a chave estrangeira forme a chave primária (chave composta); ou... Criar uma nova chave (não composta) independente. Matricula CPFAluno NomeAluno CodCurso NomeCurso CPFResponsavel NomeResponsav el EnderecoRespon savel 2010114001-0 888.888.888-88 João Maria 114 Informática 555.555.555-77 Francisco Matos Rua Projetada, No. 100, Bairro Centro, Santa Cruz, RN 2010114002-0 777.777.777-77 Maria Jacinta 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética, No 200, Bairro Liberdade, Tangará, RN Primeira Forma Normal (1FN) Matric ula CPFA luno Nome Aluno CodCurso NomeCurso CPFResponsavel NomeResponsavel LogradouroR esponsavel NumCasaRes ponsavel BairroRe sponsav el Cidade Respon savel UFRe spons avel 20101 14001 -0 888.8 88.88 8-88 João Maria 114 Informática 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 14002 -0 777.7 77.77 7-77 Maria Jacint a 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 20101 11005 -3 888.8 88.88 8-88 JoãoMaria 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 11004 -6 666.6 66.66 6-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Originalmente era o atributo ENDERECORESPONSAVEL; Primeira Forma Normal (1FN) Matric ula CPFA luno Nome Aluno CodCurso NomeCurso CPFResponsavel NomeResponsavel LogradouroR esponsavel NumCasaRes ponsavel BairroRe sponsav el Cidade Respon savel UFRe spons avel 20101 14001 -0 888.8 88.88 8-88 João Maria 114 Informática 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 14002 -0 777.7 77.77 7-77 Maria Jacint a 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 20101 11005 -3 888.8 88.88 8-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 11004 -6 666.6 66.66 6-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Grupo de repetição de dados de Alunos→ CPFAluno, NomeAluno Primeira Forma Normal (1FN) Matric ula CPFA luno Nome Aluno CodCurso NomeCurso CPFResponsavel NomeResponsavel LogradouroR esponsavel NumCasaRes ponsavel BairroRe sponsav el Cidade Respon savel UFRe spons avel 20101 14001 -0 888.8 88.88 8-88 João Maria 114 Informática 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 14002 -0 777.7 77.77 7-77 Maria Jacint a 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 20101 11005 -3 888.8 88.88 8-88 João Maria 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 20101 11004 -6 666.6 66.66 6-66 Luiza Maria 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN CPFAluno NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta Entidade: ALUNOS Primeira Forma Normal (1FN) Matricula (PK) CPFAluno (FK) CodCurso NomeCurso CPFResponsavel NomeRespon savel LogradouroR esponsavel NumCas aRespon savel BairroRes ponsavel CidadeR esponsa vel UFRespo nsavel 201011400 1-0 888.888.888- 88 114 Informática 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011400 2-0 777.777.777- 77 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 201011100 5-3 888.888.888- 88 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011100 4-6 666.666.666- 66 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: ALUNOS Entidade na 1FN Entidade continua tendo repetições. Repete-se o procedimento. Foram eleitas as coluna candidatas a PK CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria Primeira Forma Normal (1FN) Matricula (PK) CPFAluno (FK) CodCurso NomeCurso CPFResponsavel NomeRespon savel LogradouroR esponsavel NumCas aRespon savel BairroRes ponsavel CidadeR esponsa vel UFRespo nsavel 201011400 1-0 888.888.888- 88 114 Informática 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011400 2-0 777.777.777- 77 114 Informática 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 201011100 5-3 888.888.888- 88 111 Refrigeração 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011100 4-6 666.666.666- 66 111 Refrigeração 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: ALUNOS CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria Primeira Forma Normal (1FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) CPFRespons avel NomeResponsavel LogradouroR esponsavel NumCas aRespon savel BairroRes ponsavel CidadeR esponsa vel UFRespo nsavel 201011400 1-0 888.888.888- 88 114 555.555.555- 77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011400 2-0 777.777.777- 77 114 444.444.444- 33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 201011100 5-3 888.888.888- 88 111 555.555.555- 77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011100 4-6 666.666.666- 66 111 444.444.444- 33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: ALUNOS CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria Primeira Forma Normal (1FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) CPFRespons avel NomeResponsavel LogradouroR esponsavel NumCas aRespon savel BairroRes ponsavel CidadeR esponsa vel UFRespo nsavel 201011400 1-0 888.888.888- 88 114 555.555.555- 77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011400 2-0 777.777.777- 77 114 444.444.444- 33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN 201011100 5-3 888.888.888- 88 111 555.555.555- 77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 201011100 4-6 666.666.666- 66 111 444.444.444- 33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: ALUNOS CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS Primeira Forma Normal (1FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) CPFResponsavel (FK) 2010114001-0 888.888.888-88 114 555.555.555-77 2010114002-0 777.777.777-77 114 444.444.444-33 2010111005-3 888.888.888-88 111 555.555.555-77 2010111004-6 666.666.666-66 111 444.444.444-33 Entidade: ALUNOS CPFResponsavel (PK) NomeResponsavel LogradouroResponsavel NumCasaResponsavel BairroResponsavel CidadeResponsavel UFResponsavel 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: RESPONSAVEIS Entidade: MATRICULAS CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS Segunda Forma Normal (2FN) Uma variável de relação está em 2FN se, e somente se: Ela está em 1FN e; Todo atributo não-chave é irredutivelmente dependente da chave primária. A conversão de 1FN para 2FN é feita apenas quando a entidade possuir chave composta: Entidade em 1FN com chave primária de atributo único já está em 2FN. Segunda Forma Normal (2FN) Passos para obtenção da 2FN em uma tabela: Deixá‐la em 1FN; Identificar os atributos que não fazem parte da chave primária da tabela; Para cada um desses atributos, analisar se seu valor é determinado por parte ou pela totalidade da chave; Criar novas tabelas para os atributos parcialmente dependentes, incluindo a parte da chave correspondente, e retirá‐losda tabela original. Segunda Forma Normal (2FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) CPFResponsavel (FK) 2010114001-0 888.888.888-88 114 555.555.555-77 2010114002-0 777.777.777-77 114 444.444.444-33 2010111005-3 888.888.888-88 111 555.555.555-77 2010111004-6 666.666.666-66 111 444.444.444-33 Entidade: ALUNOS CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS CPFResponsavel (PK) NomeResponsavel LogradouroResponsavel NumCasaResponsavel BairroResponsavel CidadeResponsavel UFResponsavel 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: RESPONSAVEIS Entidade: MATRICULAS CPFAluno (PK) NomeAluno 888.888.888-88 João Maria 777.777.777-77 Maria Jacinta 666.666.666-66 Luiza Maria Segunda Forma Normal (2FN) O responsável é pela matrícula, pelo aluno ou por ambos? O curso é referente apenas a matrícula, apenas ao aluno ou por ambos? Entidade: MATRICULAS Matricula (PK) CPFAluno (FK) CodCurso (FK) CPFResponsavel (FK) 2010114001-0 888.888.888-88 114 555.555.555-77 2010114002-0 777.777.777-77 114 444.444.444-33 2010111005-3 888.888.888-88 111 555.555.555-77 2010111004-6 666.666.666-66 111 444.444.444-33 Segunda Forma Normal (2FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) 2010114001-0 888.888.888-88 114 2010114002-0 777.777.777-77 114 2010111005-3 888.888.888-88 111 2010111004-6 666.666.666-66 111 CPFAluno (PK) NomeAluno CPFResponsavel (FK) 888.888.888-88 João Maria 555.555.555-77 777.777.777-77 Maria Jacinta 444.444.444-33 666.666.666-66 Luiza Maria 444.444.444-33 Entidade: ALUNOS CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS CPFResponsavel (PK) NomeResponsavel LogradouroResponsavel NumCasaResponsavel BairroResponsavel CidadeResponsavel UFResponsavel 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: RESPONSAVEIS Entidade: MATRICULAS Terceira Forma Normal (3FN) Uma entidade está em 3FN quando: Está em 2FN e; Todos os seus atributos não chave não dependem de nenhum outro atributo não chave (dependência transitiva). Terceira Forma Normal (3FN) Matricula (PK) CPFAluno (FK) CodCurso (FK) 2010114001-0 888.888.888-88 114 2010114002-0 777.777.777-77 114 2010111005-3 888.888.888-88 111 2010111004-6 666.666.666-66 111 CPFAluno (PK) NomeAluno CPFResponsavel (FK) 888.888.888-88 João Maria 555.555.555-77 777.777.777-77 Maria Jacinta 444.444.444-33 666.666.666-66 Luiza Maria 444.444.444-33 Entidade: ALUNOS CodCurso (PK) NomeCurso 114 Informática 111 Refrigeração Entidade: CURSOS CPFResponsavel (PK) NomeResponsavel LogradouroResponsavel NumCasaResponsavel BairroResponsavel CidadeResponsavel UFResponsavel 555.555.555-77 Francisco Matos Rua Projetada 100 Centro Santa Cruz RN 444.444.444-33 Marta Teixeira Rua Hipotética 200 Liberdade Tangará RN Entidade: RESPONSAVEIS Entidade: MATRICULAS Terceira Forma Normal (3FN) Imaginemos uma entidade para armazenar as notas dos alunos: Matricula (FK) NomeDisciplina PeriodoLetivo Nota1 Nota2 Nota3 Nota4 Media 2010114001-0 Algoritmos 2010.1 5,0 6,0 6,5 8,5 6,5 2010114002-0 Algoritmos 2010.1 6,5 6,5 8,5 9,0 7,6 2010114002-0 POO 2010.2 4,5 6,5 7,5 3,5 5,5 2010111005-3 Banco de Dados 2010.2 8,5 8,0 9,5 10,0 9,0 2010111004-6 Banco de Dados 2010.1 7,7 6,9 6,5 9,0 7,5 Entidade: NOTAS A entidade está na 2FN ? Terceira Forma Normal (3FN) CodDisciplina (PK) NomeDisciplina 1 Algoritmos 2 POO 3 Banco de Dados Entidade: DISCICIPLINAS Entidade: NOTAS Matricula (FK) CodDisciplina (FK) PeriodoLetivo Nota1 Nota2 Nota3 Nota4 Media 2010114001-0 1 2010.1 5,0 6,0 6,5 8,5 6,5 2010114002-0 1 2010.1 6,5 6,5 8,5 9,0 7,6 2010114002-0 2 2010.2 4,5 6,5 7,5 3,5 5,5 2010111005-3 3 2010.2 8,5 8,0 9,5 10,0 9,0 2010111004-6 3 2010.1 7,7 6,9 6,5 9,0 7,5 Qual ou quais atributos formarão a PK? Terceira Forma Normal (3FN) CodDisciplina (PK) NomeDisciplina 1 Algoritmos 2 POO 3 Banco de Dados Entidade: DISCICIPLINAS Entidade: NOTAS Matricula (PK) (FK) CodDisciplina (PK) (FK) PeriodoLetivo (PK) Nota1 Nota2 Nota3 Nota4 Media 2010114001-0 1 2010.1 5,0 6,0 6,5 8,5 6,5 2010114002-0 1 2010.1 6,5 6,5 8,5 9,0 7,6 2010114002-0 2 2010.2 4,5 6,5 7,5 3,5 5,5 2010111005-3 3 2010.2 8,5 8,0 9,5 10,0 9,0 2010111004-6 3 2010.1 7,7 6,9 6,5 9,0 7,5 Atributo é dependente de outros atributos não chave Terceira Forma Normal (3FN) CodDisciplina (PK) NomeDisciplina 1 Algoritmos 2 POO 3 Banco de Dados Entidade: DISCICIPLINAS Entidade: NOTAS Matricula (PK) (FK) CodDisciplina (PK) (FK) PeriodoLetivo (PK) Nota1 Nota2 Nota3 Nota4 2010114001-0 1 2010.1 5,0 6,0 6,5 8,5 2010114002-0 1 2010.1 6,5 6,5 8,5 9,0 2010114002-0 2 2010.2 4,5 6,5 7,5 3,5 2010111005-3 3 2010.2 8,5 8,0 9,5 10,0 2010111004-6 3 2010.1 7,7 6,9 6,5 9,0
Compartilhar