2 Porquê? Após a construção do modelo conceptual dos dados é feita a transformação para um modelo lógico (esquema relacional) O conjunto de tabelas obtido representa a estrutura da informação de um modo natural e completo Mas é necessário avaliar o grau de redundâncias existente A normalização tem como objectivo modificar o conjunto de tabelas obtido, por transformação do modelo conceptual, num outro conjunto de tabelas equivalente menos redundante e mais estável.
3 Relações bem-estruturadas
O que são: Contêm um mínimo de redundância; Permitem aos utilizadores inserir, modificar e apagar linhas em tabelas, sem erros e inconsistências.
4 Relações bem-estruturadas
Tendo em atenção as duas tabelas seguintes qual a que representa uma relação bem-estruturada? Claro que é a 1ª, uma vez que só apresenta informação sobre um empregado e qualquer modificação, como p.ex. o salário, será confinado a uma única linha da tabela. A 2ª contém informação sobre os empregados e os cursos que eles frequentaram, donde a chave para esta tabela terá de ser uma combinação entre EmpID e Curso.
5 Relações bem-estruturadas
Redundâncias numa tabela podem resultar em erros e inconsis-tências, quando o utilizador tenta actualizar os dados na tabela. São 3 os tipos de anormalia: Anormalias de inserção – Caso se pretenda inserir um novo empregado na tabela 2, como a chave é Emp_ID e Curso, só é possível efectuar a inserção se ambas existirem; Anormalias de remoção – se, p.ex., os dados do empregado 140 for apagado da tabela, também perdemos informação sobre o curso que esse empregado frequentou. Será que é isso que se pretende? Anormalias de Modificação – Imagine-se que o empregado 100 tem um aumento de vencimento. Então esse aumento tem de ser registado em cada uma das linhas em que a existem ocorrências desse empregado. Não é muito prático, pois não?
6 Relações bem-estruturadas
Então a tabela Empregado_2 não é uma relação bem estruturada e pode ser dividida em 2 relações: Empregado Curso O conceito de Normalização tem por base esta explicação e a capacidade de efectuar relações bem-estruturadas.
7 Normalização Redundância – armazenamento repetido de dados, de que resultam problemas de: Manutenção – alteração ou remoção de registos implica acessos a várias partes da base, tornando-se díficil manter a coerência; Custo de espaço de armazenamento; Desempenho – as operações de acesso aos discos são as que mais afectam o desempenho dos sistemas
8 Processo de Normalização
A normalização é uma técnica de modelação de dados, ligada ao modelo relacional, que pretende definir um conjunto de tabelas prontas a serem implementadas numa base de dados relacional; Pode ser aplicada a um conjunto de dados em bruto (1 tabela – relação universal), ou a partir de estruturas já existentes.
9 Etapas na normalização
Tabelas com grupos repetidos 1ª FN 2ª FN 3ª FN Remover os grupos repetidos Remover as dependências parciais Remover dependências transitivas
10 Normalização A normalização é baseada na análise das dependências funcionais. Uma dependência funcional é uma relação particular entre 2 atributos. A  B ou seja Emp_ID  Nome. Um atributo pode estar dependente de 2 ou mais atributos, em vez de um único. São exemplos: NIV  Marca, modelo, cor (número de identificação de um veículo) ISBN  Título do livro Atenção: A análise das instâncias não é suficiente para avaliar a existência de dependências funcionais. Só o conhecimento do domínio do problema, obtido através na análise de requisitos, é um método válido para essa conclusão.
11 Primeira forma normal(1FN) Eliminar redundâncias
Formas Normais Primeira forma normal(1FN) Eliminar redundâncias Uma tabela encontra-se na 1FN se todas as suas colunas são elementares (atributos atómicos).
12 1ª Forma Normal (Eliminar redundâncias)
Encomendas (#encomenda, n_cliente, cliente, endereço_cliente, dt_encomenda, cod_produto, produto, qtd_encomendada) Encomendas (#encomenda, n_cliente, cliente, endereço_cliente, dt_encomenda) Linhas_Encomenda (#linha_encomenda, cod_produto, produto, qtd_encomendada)
13 1ª FN Normalize (1FN) a seguinte relação:
Num_estudante, Nome_estudante; curso; num_disciplinas; nome disciplinas; cod_professor; nome_professor; grau_professor; nota
14 Segunda forma normal (2FN) Dependência total da Chave
Formas Normais Segunda forma normal (2FN) Dependência total da Chave O conceito de dependência funcional será apresentado considerando uma tabela R com a estrutura R(x,y,z,w). Diz-se que a linha z é funcionalmente dependente da linha x se, para um dado valor da linha x, o valor da linha z é sempre o mesmo. Pode dizer-se que x determina z, ou que z depende funcionalmente de x, x® z. Uma tabela está na 2FN quando estiver na 1FN e as suas colunas que não são chave primária dependerem inteira-mente da chave primária.
15 2ª Forma Normal (Dependência total da chave)
Linhas_Encomenda (#encomenda, cod_produto, produto, qtd_encomendada) Linhas_Encomenda (#encomenda, cod_produto, qtd_encomendada) Produtos (cod_produto, produto)
16 2ª FN Aplique a 2ª FN ao exemplo anterior (alunos, cursos, etc.)
17 Terceira forma normal (3FN) (Eliminar dependências transitivas)
Formas Normais Terceira forma normal (3FN) (Eliminar dependências transitivas) Uma tabela está na terceira forma normal quanto estiver na 2FN e se todos os atributos que não pertencem à chave primária, não dependerem de outro atributo que não chave. A 3FN impõe que cada coluna dependa apenas da chave e não de qualquer outra coluna ou conjunto de colunas, assim todos as colunas que não pertencem à chave são mutuamente independentes. Esta condição permite elimi-nar dependências transitivas.
18 3ª Forma Normal (Eliminar dependências transitivas)
Encomendas (#encomenda, n_cliente, cliente, endereço_cliente, dt_encomenda) Encomendas (#encomenda, n_cliente, dt_encomenda) Clientes (n_cliente, cliente, endereço_cliente)
19 3ª Forma Normal (Eliminar dependências transitivas)
Considere a seguinte tabela destinada a armazenar informação sobre jogos de futebol e árbitros: JOGO(IdJogo, Estádio, Nome_arbitro, Categoria_arbitro). A tabela encontra-se na 3FN?
20 Forma normal de Boyce/Cood (BCFN)
Formas Normais Forma normal de Boyce/Cood (BCFN) A BCFN é um aperfeiçoamento da 3FN, destinada a lidar com situações em que se verifique a existência de mais do que uma chave candidata e que duas chaves candidatas possuam elementos comuns. Uma relação está na BCFN quando todos os atributos estão dependentes da chave, de toda a chave e de nada mais do que a chave.
21 Forma normal de Boyce/Cood (BCFN)
(paciente, serviço)  médico R(doente, serviço, médico) (um doente, num determinado serviço hospitalar é sempre observado pelo mesmo médico, donde um médico só pertence a um e um só serviço) Mas esta solução permite ter um paciente com 2 médicos do mesmo serviço R1 (paciente,médico) R2 (médico, serviço) Tratamento a nível aplicacional, mantendo a relação R e R2 (criando redundância)
22 Forma normal de Boyce/Cood (BCFN)
Imaginemos que temos a relação R(CodAluno, CodDisciplina, Professor) na 3FN, onde os alunos frequentam várias disciplinas. Cada professor só lecciona uma disciplina, mas uma disciplina pode ser leccionada por vários professores. Portanto, podemos verificar a seguinte dependência funcional (CodAluno, CodDisciplina) ® Professor. No entanto, existem duas chaves candidatas compostas, (CodAluno, CodDisciplina) e (CodAluno, Professor) e o atributo Professor não é chave candidata mas determina o CodDisciplina (Professor ® CodDisciplina), pois um professor só lecciona uma disciplina.
23 Quarta Forma Formal (4FN) Quinta Forma Normal (5FN)
Formas Normais Quarta Forma Formal (4FN) Quinta Forma Normal (5FN) Em geral uma relação na BCNF está já na 4FN e 5FN, que surgem para resolver problemas muito raros. Uma relação encontra-se na 4FN, se está na BCFN e não existem dependências multivalor. Uma relação R está na 5FN se não puder ser mais decomposta sem perda de informação.
24 Consequências da Normalização
1FN 2FN 3FN BCFN 4FN 5FN - + + relações - redundância Compromisso, bom senso, avaliação do desempenho do sistema e, eventualmente, necessidade de desnormalizar
25 Formas Normais Desnormalização
O SGBD para além de implementar o modelo de dados de um universo, deverá considerar alguns aspectos que permitem melhorias na utilização do sistema. Trata-se de estabelecer um compromisso entre a flexibilidade do sistema e a viabilidade da sua utilização. Pretende-se um esquema equilibrado que não ponha em risco a integridade da BD, mas que, simultane-amente, tenha um desempenho razoável. Por essa razão, na maioria dos casos, o processo de norma-lização pára na 3FN.