Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 13 Introdução - Normalização A teoria da normalização tem origem na área de projetos de bancos de dados relacionais, e teve como criador o Dr. E. F. Codd. A teoria continua se desenvolvendo até os dias atuais, quando o modelo relacional se mantém como o padrão da indústria mundial para bancos de dados, mesmo tendo o modelo de objetos crescente aceitação. A teoria da normalização visa resolver três problemas potenciais no projeto de bancos de dados relacionais [2]: Repetição da informação: informações repetidas desperdiçam espaço de armazenamento e criam dificuldades na atualização do banco de dados; Incapacidade de representação de informação; Perda de informação. A aplicação da normalização a um modelo de banco de dados relacional é realizada (ao menos teoricamente) em etapas, denominadas formas normais; A 1ª forma normal (1FN) é o ponto de partida. Posteriormente, são aplicadas as formas normais seguintes até o nível de normalização desejado; O fato de uma relação se encontrar em uma determinada forma normal implica que ela se encontra também em todas as formas normais anteriores. Na prática, as formas normais 1FN, 2FN e 3FN são aplicadas de forma conjunta sobre as relações em um projeto de banco de dados. 1ª Forma Normal (1ª FN) Uma tabela encontra-se na 1ª FN se todos os seus atributos estiverem definidos em domínios que contenham apenas valores atômicos, isto é, os domínios devem ser formados por valores elementares e não por conjuntos de valores. Vejamos o seguinte exemplo: Imaginemos uma tabela destinada a registrar a informação sobre os alunos e as disciplinas em que estes estão matriculados: 1º caso) ALUNOS (CodAluno, Nome, Morada, Disciplinas) Esta tabela não obedece à primeira forma normal (1FN), uma vez que o atributo Disciplinas admite conjuntos de valores. Consideremos a tabela com alguns dados como exemplo: Como podemos constatar, o atributo Disciplinas apresenta o conjunto de disciplinas freqüentadas por cada aluno.Poderíamos, no entanto, repetir os valores na tabela para que o atributo Disciplinas apenas contivesse um único valor (2º caso). 2º caso) ALUNOS (CodAluno, Nome, Morada, Disciplina1, Disciplina2, Disciplina3,...) Esta tabela não obedece à primeira forma normal (1FN) porque, embora todos os campos sejam atômicos, existem campos repetidos para a mesma categoria. Consideremos a tabela com alguns dados como exemplo: Como podemos constatar os atributos Disciplina1, Disciplina2 e Disciplina3 aparecem como campos repetidos para a mesma categoria. A solução para este problema, ou seja, para a tabela se encontrar na 1ª FN é a apresentada no 3º caso. 3º caso) ALUNOS (CodAluno, Nome, Morada, Disciplina) A tabela ALUNOS agora está na 1FN, pois todos os atributos contêm apenas valores elementares. Apresenta, no entanto, grande redundância de informação, que se reflete na repetição dos identificadores dos nomes e moradas dos alunos. Para além desse inconveniente, podem apontar-se ainda os seguintes: Problemas de atualização - se a morada de um aluno for alterada, essa alteração tem de ser feita em várias linhas da tabela, sob o risco de gerar incoerências na Base de Dados, isto é, numa determinada linha o aluno poderá aparecer uma morada e noutra linha outra; Problemas de inserção – com a tabela estruturada desta maneira torna-se impossível registrar um aluno que não esteja matriculado a nenhuma disciplina, mas que se encontra a fazer apenas exames, sem o atributo DISCIPLINA fique com valor nulo não obedecendo à regra de integridade de entidade; Problemas de eliminação - porque para anular a matrícula de um aluno implica ter de eliminar várias linhas da tabela, e mesmo perder a informação do aluno, tal como NÚMERO, NOME e MORADA.
Compartilhar