Buscar

Aula 13 300311 Normalizacao (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 53 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados
Haroldo Amaral (haroldo.amaral@gmail.com)
Licenciatura em Computação – 5º Período
30/03/2011
Aula 13 – Normalização
Normalização
Formas Normais
30/03/2011
Banco de Dados
2
Normalização
30/03/2011
Banco de Dados
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
30/03/2011
Banco de Dados
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
30/03/2011
Banco de Dados
5
Primeira Forma Normal (1FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
8
Por exemplo:
Tabela aninhada
Primeira Forma Normal (1FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
12
A passagem à 1FN, pela decomposição de tabelas, é feita nos seguintes passos:
É 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
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
São definidas as chaves primárias das tabelas na 1FN que correspondem a tabelas aninhadas
Primeira Forma Normal (1FN)
30/03/2011
Banco de Dados
13
De acordo com o exemplo, o esquema da relação:
Após a aplicação da 1FN:
Primeira Forma Normal (1FN)
30/03/2011
Banco de Dados
14
E se as tabelas não normalizadas fossem essas, como ficaria a normalização?
Primeira Forma Normal (1FN)
30/03/2011
Banco de Dados
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
30/03/2011
Banco de Dados
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
30/03/2011
Banco de Dados
17
Por exemplo:
A coluna Salário depende funcionalmente da coluna Código
Dependência Funcional
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
22
Por exemplo, considerando a tabela Proj, a tabela abaixo encontra-se na 2FN?
Segunda Forma Normal (2FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
24
No exemplo:
Segunda Forma Normal (2FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
26
No exemplo:
Segunda Forma Normal (2FN)
30/03/2011
Banco de Dados
27
Segunda Forma Normal (2FN)
30/03/2011
Banco de Dados
28
De forma mais precisa, o processo de passagem da 1FN à 2FN é descrito como segue:
Copiar para a 2FN cada tabela que tenha chave primária simples ou que não tenha colunas além da chave
Para cada tabela com chaves primárias compostas e com pelo menos uma coluna não chave:
Criar, na 2FN, uma tabela com as chaves primárias da tabela na 1FN
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:
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
Criar a coluna dependente dentro da tabela na 2FN
Terceira Forma Norma (3FN)
30/03/2011
Banco de Dados
29
Uma dependência funcional transitiva acontece quando uma coluna nã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/03/2011
Banco de Dados
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 consisteem dividir tabelas de forma a eliminar dependências transitivas
Terceira Forma Norma (3FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
33
No exemplo:
Terceira Forma Norma (3FN)
30/03/2011
Banco de Dados
34
Passagem à 3FN:
Terceira Forma Norma (3FN)
30/03/2011
Banco de Dados
35
Terceira Forma Norma (3FN)
30/03/2011
Banco de Dados
36
Terceira Forma Normal (3FN)
30/03/2011
Banco de Dados
37
De forma mais precisa, o processo de passagem da 2FN à 3FN é descrito como segue:
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
Para tabelas com duas ou mais colunas não-chave:
Criar uma tabela no esquema da 3FN com a chave primária da tabela em questão
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:
Copiar a coluna para a tabela na 3FN
Caso a coluna dependa de outra coluna:
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
Copiar a coluna dependente para a tabela criada
A coluna determinante deve permanecer também na tabela original
As Outras Formas Normais
30/03/2011
Banco de Dados
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
Mais detalhes, além dos próximos slides, sobre a BCNF, 4FN e 5FN, consultar as seções 15.5, 15.6 e 15.7 do livro texto
Forma Normal de Boyce-Codd (BCNF)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
41
Chaves candidatas
{Estudante, Disciplina}
{Estudante, Professor}
Dependências funcionais
(Estudante, Disciplina)  
			Professor
Professor  Disciplina
Se a PK 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)
30/03/2011
Banco de Dados
42
Processo para obtenção da BCNF
Identificar as dependências funcionais que violem a BCNF
Para cada dependência funcional achada em 1, criar uma relação com a PK igual ao determinante
As colunas que têm seu valor determinado em 1 são excluídas da relação original
Forma Normal de Boyce-Codd (BCNF)
30/03/2011
Banco de Dados
43
Para o exemplo anterior, após a aplicação da BCNF
Quarta Forma Normal (4FN)
30/03/2011
Banco de Dados
44
Para explicar a 4FN , consideremos o seguinte relacionamento
Quarta Forma Normal (4FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
50
Essas tabelas correspondem à implementação de dois relacionamentos binários e duas tabelas implementam esses relacionamentos
Quinta Forma Normal (5FN)
30/03/2011
Banco de Dados
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)
30/03/2011
Banco de Dados
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
30/03/2011
Banco de Dados
53

Outros materiais