Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Arq. E Ger. De Banco de Dados 
 
Aula 02 – Normalização 
Adaptado de Haroldo Amaral (UPE) 
 
 
igor@ifalpalmeira.edu.br 
https://Sites.google.com/site/professorigorrocha 
 
 
1 
Aula 02 – Normalização 
Normalização 
Formas Normais 
2 
Normalização 
3 
 
 Baseado no conceito de FORMA NORMAL 
 
 Um forma normal é uma regra que deve ser obedecida 
por uma tabela para que ela seja considerada “bem 
projetada” 
 
 Uma vez definido o esquema relacional de um BD, passa-
se ao processo de NORMALIZAÇÃO 
Normalização 
4 
 Técnica para eliminação de redundâncias de dados em 
esquemas relacionais 
 Ou seja, método que permite identificar a existência de 
problemas potenciais no projeto de um BD relacional 
 Converte, progressivamente, uma tabela em tabelas de grau e 
cardinalidade menores até que pouca ou nenhuma redundância 
de dados exista 
 Se a normalização for bem sucedida 
 O espaço de armazenamento dos dados diminui 
 A tabela pode ser atualizada com maior eficiência 
 A descrição do BD será imediata 
Normalização 
5 
Formas normais: 
• Primeira Forma Normal (1FN) 
• Segunda Forma Normal (2FN) 
• Terceira Forma Normal (3FN 
• Forma Normal de Boyce-Codd (BCNF) 
• Quarta Forma Normal (4FN) 
• Quinta Forma Normal (5FN) 
Primeira Forma Normal (1FN) 
6 
 Primeiro passo do processo de normalização 
 A passagem à 1FN consiste na eliminação de tabelas 
aninhadas, eventualmente, existentes 
 Eliminação de atributos compostos, multivalorados ou a 
combinação de ambos 
 O domínio de um atributo deve incluir apenas valores 
atômicos (indivisíveis) 
 Além disso, o valor de qualquer atributo deve ser um único 
valor do domínio desse atributo 
 Portanto, a 1FN reprova ter um conjunto de valores, uma 
tupla de valores ou uma combinação de ambos como 
valor de atributo para uma única tupla 
Primeira Forma Normal (1FN) 
7 
 
 Em outras palavras, a 1FN reprova relações dentro de 
relações ou relações como valores de atributo dentro de 
tuplas 
 Tabelas aninhadas 
Primeira Forma Normal (1FN) 
8 
 Por exemplo: 
Tabela aninhada 
Primeira Forma Normal (1FN) 
9 
 1ª Alternativa – Construir uma única tabela com 
redundância de dados 
 Cria-se uma tabela na qual os dados das linhas externas à 
tabela aninhada são repetidos para cada linha da tabela 
aninhada 
 Para o exemplo anterior: 
 
 
 
 
 Nesta tabela, os dados do projeto aparecem repetidos para cada linha 
da tabela de empregados 
Primeira Forma Normal (1FN) 
10 
 
 2ª Alternativa – Construir uma tabela para cada tabela 
aninhada 
 Cria-se uma tabela referente à própria tabela que está sendo 
normalizada e uma tabela para cada tabela aninhada 
 Para o exemplo anterior: 
Primeira Forma Normal (1FN) 
11 
 
 
 Das duas alternativas: 
 
 A primeira é menos recomendada pelas redundâncias que 
podem ser geradas 
 
 A segunda alternativa deixa mais claro o modelo e de mais fácil 
visualização 
Primeira Forma Normal (1FN) 
12 
 A passagem à 1FN, pela decomposição de tabelas, é feita 
nos seguintes passos: 
1. É criada uma tabela na 1FN referente à tabela não 
normalizada e que contém apenas as colunas com valores 
atômicos, ou seja, sem tabelas aninhadas 
 A chave primária da tabela na 1FN é idêntica a chave da tabela não 
normalizada 
2. Para cada tabela aninhada, é criada uma tabela na 1FN 
composta pelas seguintes colunas: 
 A chave primária de cada uma das tabelas na qual a tabela em 
questão está aninhada 
 As colunas da própria tabela aninhada 
3. São definidas as chaves primárias das tabelas na 1FN que 
correspondem a tabelas aninhadas 
Primeira Forma Normal (1FN) 
13 
 
 De acordo com o exemplo, o esquema da relação: 
 
 
 
 Após a aplicação da 1FN: 
Primeira Forma Normal (1FN) 
14 
 E se as tabelas não normalizadas fossem essas, como 
ficaria a normalização? 
Primeira Forma Normal (1FN) 
15 
 E se as tabelas não normalizadas fossem essas agora, 
como ficaria a normalização? 
 
 
 
 
 
 
 Como um candidato só pode fazer somente um curso, não 
precisa compor a chave primária de Candidatos com a 
coluna Cod-Curso 
Dependência Funcional 
16 
 
 Para entender as próximas formas normais – 2FN e 3FN 
– é necessário compreender o conceito de 
DEPENDÊNCIA FUNCIONAL 
 
 Numa tabela, diz-se que uma coluna C2 DEPENDE 
FUNCIONALMENTE de uma coluna C1 quando, em 
todas as linhas da tabela, para cada valor de C1 que 
aparece, aparecer o mesmo valor de C2 
Dependência Funcional 
17 
 Por exemplo: 
A coluna Salário depende funcionalmente da coluna Código 
Dependência Funcional 
18 
 De forma geral, o 
determinante de uma 
dependência funcional 
pode ser um conjunto de 
colunas e não somente 
uma coluna, como no 
exemplo anterior 
Segunda Forma Normal (2FN) 
19 
 
 Uma tabela encontra-se na 2FN quando, além de 
encontrar-se na 1FN, cada coluna não chave depende da 
chave primária completa 
 
 
 Assim, uma tabela que não se encontra na 2FN contém 
DEPENDÊNCIAS FUNCIONAIS PARCIAIS 
 Contém colunas não chave que dependem apenas de uma 
parte da chave primária 
Segunda Forma Normal (2FN) 
20 
 
 Portanto, um esquema de relação R está em 2FN se cada 
atributo não principal A em R for total e funcionalmente 
dependente da chave primária de R 
Segunda Forma Normal (2FN) 
21 
 Por exemplo, a tabela abaixo encontra-se na 2FN? 
 
 
 
 
 Encontra-se na 1FN 
 Não existe dependência parcial 
 Todos os campos não chaves dependem totalmente da chave 
primária 
 Portanto, a tabela Proj encontra-se na 2FN 
Segunda Forma Normal (2FN) 
22 
 Por exemplo, considerando a tabela Proj, a tabela abaixo 
encontra-se na 2FN? 
Segunda Forma Normal (2FN) 
23 
 
 Existem dependências parciais 
 
 As colunas Nome, Cat e Sal dependem apenas da coluna 
CodEmp 
 Por sua vez, as colunas DataIni e TempAl dependem da 
chave completa 
 Assim, não são dependentes parciais 
 
 Portanto, a tabela ProjEmp não se encontra na 2FN 
Segunda Forma Normal (2FN) 
24 
 
 No exemplo: 
Segunda Forma Normal (2FN) 
25 
 
 Para passar a 2FN, ou seja, eliminar as dependências 
parciais é necessário dividir a tabela ProjEmp em duas 
tabelas, conforme esquema abaixo: 
 
 
 Assim, o esquema relacional total ficará como segue: 
Segunda Forma Normal (2FN) 
26 
 No exemplo: 
Segunda Forma Normal (2FN) 
27 
Segunda Forma Normal (2FN) 
28 
 De forma mais precisa, o processo de passagem da 1FN à 
2FN é descrito como segue: 
1. Copiar para a 2FN cada tabela que tenha chave primária 
simples ou que não tenha colunas além da chave 
2. Para cada tabela com chaves primárias compostas e com pelo 
menos uma coluna não chave: 
a) Criar, na 2FN, uma tabela com as chaves primárias da tabela na 1FN 
b) Para cada coluna não chave, fazer a seguinte pergunta: “a coluna 
depende de toda a chave ou de apenas parte dela?” 
 Caso a coluna dependa de toda a chave, criar a coluna correspondente 
na tabela com a chave completa na 2FN 
 Caso a coluna dependa apenas de parte da chave: 
i. Criar, caso ainda não exista, uma tabela na 2FN que tenha como chave 
primária a parte da chave que é determinante da coluna em questão 
ii. Criar a coluna dependente dentro da tabela na 2FN 
Terceira Forma Norma (3FN) 
29 
 
 Uma dependência funcional transitiva acontece quando 
uma colunanão chave primária depende funcionalmente 
de outra coluna (ou combinação de colunas) não chave 
primária 
 
 Uma tabela encontra-se na 3FN quando, além de estar na 
2FN, toda coluna não chave depende diretamente da 
chave primária 
 Quando não há dependências funcionais transitivas (ou 
indiretas) 
Terceira Forma Norma (3FN) 
30 
 
 Portanto, um esquema de relação R está na 3FN se ele 
satisfizer a 2FN e nenhum atributo não principal de R for 
transitivamente dependente da chave primária 
 A passagem à 3FN consiste em dividir tabelas de forma a 
eliminar dependências transitivas 
Terceira Forma Norma (3FN) 
31 
 Por exemplo, qual a dependência transitiva da tabela 
abaixo, ou seja, que informação está representada de 
forma redundante? 
Terceira Forma Norma (3FN) 
32 
 
 
 
 
 
 
 
 
 Vamos supor que o salário de um empregado dependa da sua 
categoria 
 Nesse caso, a informação de que salário é pago por categoria 
está representada de forma redundante 
Terceira Forma Norma (3FN) 
33 
 
 No exemplo: 
Terceira Forma Norma (3FN) 
34 
 Passagem à 3FN: 
Terceira Forma Norma (3FN) 
35 
Terceira Forma Norma (3FN) 
36 
Terceira Forma Normal (3FN) 
37 
 De forma mais precisa, o processo de passagem da 2FN à 3FN 
é descrito como segue: 
1. Copiar para o esquema na 3FN cada tabela que tenha menos que 
duas colunas não-chave, pois nesse caso não há como haver 
dependências transitivas 
2. Para tabelas com duas ou mais colunas não-chave: 
a) Criar uma tabela no esquema da 3FN com a chave primária da tabela 
em questão 
b) Para cada coluna não-chave fazer a seguinte pergunta: “a coluna 
depende de alguma outra coluna não-chave (dependência transitiva ou 
indireta)?” 
 Caso a coluna dependa apenas da chave: 
I. Copiar a coluna para a tabela na 3FN 
 Caso a coluna dependa de outra coluna: 
i. Criar, caso ainda não exista, uma tabela no esquema na 3FN que tenha como chave 
primária a coluna da qual há a dependência indireta 
ii. Copiar a coluna dependente para a tabela criada 
iii. A coluna determinante deve permanecer também na tabela original 
As Outras Formas Normais 
38 
 
 Para a maioria dos projetos de bancos de dados, a 
decomposição até a 3FN é suficiente para obter o 
esquema de um banco de dados com qualidade 
 No máximo, a BCNF é executada 
 
 
Forma Normal de Boyce-Codd (BCNF) 
39 
 Foi proposta como uma forma mais simples que a 3FN, 
mas é considerada mais rígida 
 Ou seja, toda relação na BCNF está na 3FN, porém uma 
relação na 3FN não está necessariamente na BCNF 
 
 A 3FN não tratou satisfatoriamente casos onde uma 
relação tem mais de uma chave candidata 
 Essas chaves são compostas e possuem atributos em comum 
 
 Assim, uma relação está em BCNF se todo determinante 
for uma chave candidata 
Forma Normal de Boyce-Codd (BCNF) 
40 
 Exemplo: 
 Seja ENSINO(Estudante, Disciplina, 
Professor) uma relação com o seguinte significado: 
 Para cada disciplina, cada estudante recebe aula de apenas um 
professor 
 Cada professor ensina somente uma disciplina 
 Uma disciplina pode ser ensinada por diversos professores 
Forma Normal de Boyce-Codd (BCNF) 
41 
 Chaves candidatas 
 {Estudante, Disciplina} 
 {Estudante, Professor} 
 Dependências funcionais 
 (Estudante, Disciplina)  
 Professor 
 Professor  Disciplina 
 Se a chave primária for (Estudante, Disciplina) ou 
(Estudante, Professor), a relação está na 3FN 
 Porém, em ambos os casos a relação não está em BCNF 
porque o determinante Professor não é uma chave 
candidata 
Forma Normal de Boyce-Codd (BCNF) 
42 
 
 
 Processo para obtenção da BCNF 
 
1. Identificar as dependências funcionais que violem a BCNF 
2. Para cada dependência funcional achada em 1, criar uma 
relação com a chave primária igual ao determinante 
3. As colunas que têm seu valor determinado em 1 são 
excluídas da relação original 
Forma Normal de Boyce-Codd (BCNF) 
43 
 Para o exemplo anterior, após a aplicação da BCNF 
Quarta Forma Normal (4FN) 
44 
 Para explicar a 4FN , consideremos o seguinte 
relacionamento 
Quarta Forma Normal (4FN) 
45 
 De acordo com o exemplo, o relacionamento 
UTILIZACAO indica que deseja-se manter a informação 
de qual empregado usa qual equipamento em qual projeto 
 
 Assim, de acordo com as regras de mapeamento, quatro 
relações serão geradas: 
 
 PROJETO(CodProj, NomeProj) 
 EQUIPAMENTO(CodEquip, NomeEquip) 
 EMPREGADO(CodEmp, NomeEmp) 
 UTILIZACAO(CodProj, CodEmp, CodEquip) 
Quarta Forma Normal (4FN) 
46 
 De acordo com o esquema 
gerado, uma tabela que 
implemente o 
relacionamento 
UTILIZACAO pode conter 
redundâncias 
 A informação de que os 
empregados {“1”, “2”, “3”} 
trabalham no projeto “1” está 
representada duas vezes 
 A informação de quais 
equipamentos são usados em 
um projeto está armazenada 
redundantemente 
Quarta Forma Normal (4FN) 
47 
 
 Para evitar esse tipo de redundância de dados, é 
necessário considerar uma forma normal (4FN), que se 
baseia no conceito de DEPENDÊNCIA FUNCIONAL 
MULTIVALORADA 
 
 Uma coluna ou conjunto de colunas depende 
multivaloradamente de uma coluna (determinante), da 
mesma tabela, quando um valor do atributo determinante 
identifica repetidas vezes um conjunto de valores na 
coluna dependente 
Quarta Forma Normal (4FN) 
48 
 No exemplo: 
 A coluna CodEmp depende multivaloradamente da coluna 
CodProj, já que um valor de CodProj determina múltiplas 
vezes um conjunto de valores de CodEmp 
 
 
 
 
 
 Assim, a tabela UTILIZACAO contém as seguintes 
dependências funcionais multivaloradas: 
 CodProj  CodEmp 
 CodProj  CodEquip 
Quarta Forma Normal (4FN) 
49 
 Assim, uma tabela está na 4FN caso, além de estar na 
3FN, não possua dependências funcionais multivaloradas 
 
 
 
 
 
 Portanto, a tabela UTILIZACAO deve ser decomposta 
em duas tabelas: 
 ProjEmp(CodProj, CodEmp) 
 ProjEquip(CodProj, CodEquip) 
Quarta Forma Normal (4FN) 
50 
 Essas tabelas correspondem à implementação de dois 
relacionamentos binários e duas tabelas implementam 
esses relacionamentos 
Quinta Forma Normal (5FN) 
51 
 
 Uma relação de 4FN estará em 5FN quando o seu 
conteúdo não puder ser reconstruído (existe perda de 
informação) a partir das diversas relações menores que 
não possuam a mesma chave primária 
 
 
 Essa forma normal trata especificamente dos casos de 
perda de informação, quando da decomposição de 
relacionamentos múltiplos 
Quinta Forma Normal (5FN) 
52 
 A 5FN trata de casos bastante particulares, que ocorrem 
na modelagem de dados, que são relacionamentos 
múltiplos (ternários, quaternários, e n-ários) 
 
 Ela fala que um registro está na sua 5FN, quando o 
conteúdo desse mesmo registro não puder ser 
reconstruído (junção) a partir de outros registros 
menores, extraídos desse registro principal 
 Ou seja, ao se particionar um registro, e sua junção posterior 
não conseguir recuperar as informações contidas no registro 
original, então esse registro está na 5FN 
Referências Usadas 
53 
 Livros 
 
 Navathe, Shamkant B. e Elmasri, Ramez E. Sistemas 
de Banco de Dados. Addison Wesley. 6a Edição, 
2011 
 
 Silberschatz, Abraham; Korth, Henry F. e Sudarshan S. 
Sistema de Banco de Dados. Elsevier. 5a Edição, 
2006 
 
 Heuser, Carlos Alberto. Projeto de Banco de 
Dados. Bookman. 6a Edição, 2009

Mais conteúdos dessa disciplina