ACCESS Base de Dados para a Gestão de Informação de Natureza Pedagógica @ Rafael Machado – 2004 e-mail: [email protected] ACCESS – Normalização  Normalização   É um processo que consiste em estruturar as tabelas e os atributos na forma mais adequada, do ponto de vista das operações a executar sobre a informação registada na base de dados, tendo em vista eliminar redundâncias desnecessárias e evitar problemas com a inserção, eliminação e actualização de dados. Existem 3 Formas normais:    Primeira Forma Normal (1FN) Segunda Forma Normal (2FN) Terceira Forma Normal (3FN) ACCESS – Normalização  Primeira Forma Normal (1FN)  Uma tabela está na primeira forma normal (1FN) quando todos os seus atributos são elementares. Não pode existir um conjunto de valores para um determinado atributo.  Exemplo: Registo da informação sobre alunos e respectivas disciplinas.  Esta tabela não está na 1FN! ACCESS – Normalização  Primeira Forma Normal (1FN)   Tabela na 1FN Uma possível tabela, com a respectiva chave primária: Alunos-Disciplinas (IdAluno, Nome, Morada, IdDisciplina, Disciplina, IdProfessor, Professor) ACCESS – Normalização  Primeira Forma Normal (1FN)  Problemas com a 1FN  A BD ocupa mais espaço em disco (redundância de informação)  Repetição da morada, disciplina, nome, …  Problemas de actualização  Alteração da morada… inconsistência de informação  Problemas de inserção  Inserir um aluno que não esteja matriculado a nenhuma disciplina  Problemas de eliminação  Anular matrícula.. Pode perder-se informação do aluno ACCESS – Normalização  Segunda Forma Normal (2FN)  Uma tabela está na segunda forma normal (2FN) quando estiver na 1FN e os seus atributos que não fazem parte da chave primária dependerem funcionalmente da chave primária.  A tabela: Alunos-Disciplinas (IdAluno, Nome, Morada, IdDisciplina, Disciplina, IdProfessor, Professor) não está na 2FN, pois os atributos Nome e Morada dependem de parte da chave primária (IdAluno), bem como o atributo Disciplina, IdProfessor e Professor, que depende de outra parte da chave primária (IdDisciplina).  Tabelas na 2FN: Alunos-Disciplinas (IdAluno, IdDisciplina) Alunos (IdAluno, Nome) Disciplinas (IdDisciplina, Disciplina, IdProfessor, Professor) ACCESS – Normalização  Terceira Forma Normal (3FN)  Uma tabela está na terceira forma normal (3FN) quando estiver na 2FN e nenhum atributo que não seja parte da chave primária depender funcionalmente de outros atributos que não sejam parte da chave primária.  É necessário verificar, tabela a tabela: As tabelas seguintes já estão na 3FN: Alunos-Disciplinas (IdAluno, IdDisciplina) Alunos (IdAluno, Nome) A tabela seguinte não está na 3FN Disciplinas (IdDisciplina, Disciplina, IdProfessor, Professor) pois o atributo Professor depende funcionalmente de IdProfessor que não é um atributo que faça parte da chave primária. ACCESS – Normalização  Terceira Forma Normal (3FN)  Desta forma, obtemos as seguintes tabelas normalizadas (3FN): Alunos-Disciplinas (IdAluno, IdDisciplina) Alunos (IdAluno, Nome) Disciplinas (IdDisciplina, Disciplina, IdProfessor) Professores (IdProfessor, Professor) ACCESS – Normalização  Modelo E-R Simplificado ALUNOS 1 N ALUNOSDISCIPLINAS N 1 DISCIPLINAS N 1 PROFESSORES  Regras:  Onde o atributo é Chave Primária, tem o grau 1.  Onde o atributo é Chave Externa, tem o grau N. ACCESS – Normalização  Exemplo de Aplicação Matricula Classificação N N N N Inscrição ALUNOS 1 N N CADEIRAS N Lecciona 1 DEPARTAMENTOS N 1 Pertence PROFESSORES Pertence 1 CURSOS ACCESS – Normalização  Exemplo de Aplicação  Considerando o diagrama E-R, apresentado no diapositivo anterior, proceder à derivação das respectivas tabelas, à sua normalização e respectivo modelo E-R simplificado, , tendo em conta as seguintes entidades e respectivos atributos:  Alunos (CodAluno, Nome, Morada, FotoAluno)  Cursos (CodCurso, Curso)  Cadeiras (CodCadeira, Cadeira, Ano, Semestre)  Professores (CodProfessor, Professor)  Departamentos (CodDepartamento, Departamento) ACCESS – Normalização  Resolução  Conjunto de Tabelas Normalizadas  Alunos (CodAluno, Nome, Morada, FotoAluno)  Cursos (CodCurso, Curso)  Cadeiras (CodCadeira, Cadeira, Ano, Semestre, CodProfessor, CodCurso)  Professores (CodProfessor, Professor, CodDepartamento)  Departamentos (CodDepartamento, Departamento)  Inscricao (CodAluno, CodCadeira)  Classificacao (CodAluno, CodCadeira, Data , Classificacao)  Matricula (CodAluno, CodCurso, DataMatricula) ACCESS – Normalização  Modelo E-R Simplificado