Você está na página 1de 14

UNIVERSIDADE FEDERAL DE JUIZ DE FORA UFJF Curso de Cincia da Computao Disciplina Banco de Dados

Profa. Tatiane Ornelas Martins

QUARTA FORMA NORMAL (4FN)

ALAN SANTOS IVAN RIOS LUCAS ARAJO

Juiz de Fora, Setembro de 2007

SUMRIO

INTRODUO............................................................................................................................. 03 1. DEFINIES............................................................................................................................ 3. APLICAO............................................................................................................................ 4. EXEMPLOS.............................................................................................................................. 4.1. Exemplo 1: Fornecedor de Peas para Comprador......................................................... 4.2. Exemplo 2: Dados sobre Livros...................................................................................... 4.3. Exemplo 3: SQL Magazine 7 Edio.......................................................................... 4.5. Exemplo 5: Livros........................................................................................................... 4.6. Exemplo 6: Funcionrio.................................................................................................. 4.7. Exemplo 7: Projeto Funcionrio Equipe................................................................... 4.8. Exemplo 8: Empregado................................................................................................... BIBLIOGRAFIA........................................................................................................................... 03 05 05 05 06 07 09 11 11 12 14 2. DEPENDNCIAS MULTIVALORADAS............................................................................... 04

4.4. Exemplo 4: Empregados Habilidades Linguagens.................................................... 08

QUARTA FORMA NORMAL (4FN)

INTRODUO
Na maioria dos casos, as entidades normalizadas at a 3FN so fceis de entender, atualizar e de se recuperar dados. Mas s vezes podem surgir problemas com relao a algum atributo no chave, que recebe valores mltiplos para um mesmo valor de chave. Esta nova dependncia recebe o nome de dependncia multivalorada que existe somente se a entidade contiver no mnimo trs atributos. Se duas ou mais dependncias multivaloradas forem mapeadas na mesma tabela, haver a gerao de uma significativa redundncia de dados. A Quarta Forma Normal (4FN) impede que isso acontea, elaborada no intuito de no precisarmos repetir informaes acerca de um mesmo atributo de uma entidade a cada transao.

1. DEFINIES
Definio 1: Uma tabela est na 4FN, se e somente se, estiver na 3FN e no existirem dependncias multivaloradas. Definio 2: Uma entidade que esteja na 3FN tambm est na 4FN, se ela no contiver mais do que um fato multivalorado a respeito da entidade descrita. Definio 3: Uma relao esquema R est na quarta forma normal (4FN), com respeito a um conjunto de DFs F, se para toda DF X| A, X for uma superchave, ou a dependncia X| A for trivial. Definio 4: Um esquema de bases de dados R, est na quarta forma normal (4FN) com respeito a F, se toda relao esquema R em R est na 4FN com respeito a F. Definio 5: A quarta forma normal deve satisfazer a terceira forma normal e conter dois ou mais Atributos Interdependentes. Definio 6: Um esquema de bases de dados R, est na quarta forma normal com respeito a F, se toda relao esquema R em R est na 4FN com respeito a F.

Definio 7: Uma relao R est em 4FN se e somente se estiver em FNBC e, caso exista alguma Dependncia Multivalorada MV X --->> Y. A DMV trivial (i.e., Y C X ou X U Y = R) ou X uma superchave de R. Definio 8: Um projeto de um Banco de Dados Relacional est na 4FN se, e somente se, estiver na FNBC e, em cada relao (tabela) R, para toda dependncia multivalorada no trivial X > Y vlida de R, X uma superchave de R.

2. DEPENDNCIAS MULTIVALORADAS
A dependncia multivalorada ocorre entre atributos no chave que recebem valores mltiplos para um mesmo valor de chave e que existe em entidades de no mnimo 3 atributos, no sendo, no entanto, o mesmo que uma associao M:N entre atributos descrita em algumas literaturas. Em outras palavras, as dependncias multivaloradas ocorrem quando o valor de uma coluna ocorre de forma repetida com o mesmo conjunto de valores de uma outra coluna. Dessa forma, o valor de um atributo determina um conjunto de valores de um outro atributo. Uma dependncia multivalorada representada por: X -> Y (X multidetermina Y ou Y multidependente de X) Exemplo: DF: {CPF} {nome} (um nome para cada CPF) DMV: {CPF} {dependente} (vrios dependentes para cada CPF) 4

3. APLICAO
Para se normalizar na Quarta Forma Normal (4FN): A entidade tem que estar (obrigatoriamente) na 3FN; Verificar se a entidade possui atributos que no sejam participantes da chave primria e que sejam multivalorados e independentes em relao a um mesmo valor da chave primria; Retirar estes atributos no chaves e multivalorados, criando novas entidades individuais para cada um deles, herdando a chave primria da entidade desmembrada. Resultando em Entidades na 4FN.

4. EXEMPLOS
4.1. Exemplo 1: Fornecedor de Peas para Comprador

Cdigo do Fornecedor 1111 1111 1111 1111

Cdigo da Pea BA3 CJ10 88A BA3

Cdigo do Comprador 113 113 435 537

Entidade tenta conter dois fatos multivalorados: as diversas peas compradas e os diversos compradores. Apresenta uma dependncia multivalorada entre: CDIGO-FORNECEDOR e o CDIGO-PEA e entre CDIGO-FORNECEDOR e o CDIGO-COMPRADOR.

Embora esteja na 3FN, ao conter mais de um fato multivalor: Torna sua atualizao muito difcil; Podem ocorrer problemas de espao fsico de armazenamento; Ocupao desnecessria de rea de memria (primria ou secundria); Pode at gerar situaes crticas de necessidade de espao para outras aplicaes.

Procedimentos: Para passarmos a entidade acima para a 4FN, necessria: 1) Realizar uma diviso da entidade original, em duas outras, 2) Ambas herdam a chave CDIGO-FORNECEDOR e 3) Concatenar, em cada nova entidade, com os atributos CDIGO-PEA e CDIGOCOMPRADOR.

Cdigo do Fornecedor Cdigo da Pea Fornecedor-Pea

Cdigo do Fornecedor Cdigo do Comprador Fornecedor-Comprador

4.2. Exemplo 2: Dados sobre Livros Relao no normalizada: Livros(nrol, (autor), ttulo, (assunto), editora, cid_edit, ano_public) 1FN: 2FN: 3FN: Livros (nrol, autor, assunto, ttulo, editora, cid_edit, ano_public) Livros (nrol,ttulo, editora, cid-edit, ano_public) AutAssLiv (nrol, autor, assunto) Livros (nrol, ttulo, editora, ano_public) Editoras (editora,cid-edit) AutAssLiv (nrol, autor, assunto)

Nrol 1 1 1 1 2 2 2 2 2 2

Autor aut1 aut1 aut2 aut2 aut1 aut1 aut1 aut3 aut3 aut3

Assunto ass1 ass2 ass1 ass2 ass3 ass4 ass1 ass3 ass4 ass1

Redundncia para representar todas as informaes Evitar todas as combinaes: representao no-uniforme (repete alguns elementos ou posies nulas)

Passagem 4FN: Gerao de novas tabelas, eliminando Dependncias Multivaloradas; Anlise de Dependncias Multivaloradas entre atributos: autor, assunto Dependncia Multivalorada de nrol.

Resultado: 4FN: Livros(nrol,ttulo, editora, ano_public) Editoras(editora, cid-edit) AutLiv(nrol, autor) AssLiv(nrol, assunto)

4.3. Exemplo 3: SQL Magazine 7 Edio Um condomnio deseja cadastrar os veculos e os motoristas que os dirigem (para cada apartamento):

Apto Nome 101 Joo 101 Joo 101 Maria 101 Maria 101 Carlos 101 Carlos 102 Paulo 102 Rosa

Placa GBD-2541 GHJ-5468 GBD-2541 GHJ-5468 GBD-2541 GHJ-5468 GDA-7677 GDA-7677

Nome Placa GBD-2541 GHJ-5468 GDA-7677 Carro Siena Parati Fusca Ano 2003 2002 1990 Joo Maria Carlos Paulo Rosa

Idade 55 50 22 57 56

A primeira tabela contm anomalias de atualizao. Se o apartamento 101 comprar mais um carro, precisaremos inserir mais trs linhas na primeira tabela. Se o apartamento 102 vender o carro perderemos a informao de quem mora no referido apartamento. Estas anomalias ocorrem porque temos duas DMVs independentes: {Apto}{Nome} {Apto}{Placa} Ou como aparece em algumas bibliografias: 7

{Apto} {Nome}|{Placa} Para deixarmos a tabela na 4FN devemos efetuar a decomposio sem perdas e levar cada DMV para uma tabela diferente.

Apto 101 101 101 102 102

Nome Joo Maria Carlos Paulo Rosa

Apto 101 101 102

Placa GBD-2541 GHJ-5468 GDA-7677

Placa GBD-2541 GHJ-5468 GDA-7677

Carro Siena Parati Fusca

Ano 2003 2002 1990

Nome Joo Maria Carlos Paulo Rosa

Idade 55 50 22 57 56

Note que a primeira tabela pode ser unida terceira tabela e que a segunda tabela tambm pode ser unida quarta tabela. Ou seja, a normalizao nem sempre leva ao formato ideal exigindo sempre uma anlise do seu resultado.

Apto 101 101 101 102 102

Nome Joo Maria Carlos Paulo Rosa

Idade 55 50 22 57 56 Apto 101 101 102 Placa GBD-2541 GHJ-5468 GDA-7677 Carro Siena Parati Fusca Ano 2003 2002 1990

4.4. Exemplo 4: Empregados Habilidades Linguagens Exemplo de Interdependncia de Atributos - Empregados possuem mltiplas habilidades e mltiplas linguagens. Na Relao EMP_TALENTO existem dois relacionamentos muitos-paramuitos, entre os atributos empregado e habilidade, e empregado e linguagem.

Relao na 3FN: EMP_TALENTO Empregado # S5 S5 S5 Habilidade Cozinhar Digitar Digitar Linguagem Alemo Espanhol Russo 8

Relao na 4FN: EMP_HABILIDADE Empregado # S5 S5 Habilidade Cozinhar Digitar EMP_LINGUAGEM Empregado # S5 S5 S5 Linguagem Alemo Espanhol Russo

Neste Exemplo, foram eliminadas as Anomalias de Atualizao da Relao EMP_TALENTO na 3FN. Nas Relaes EMP_HABILIDADE e EMP_LINGUAGEM, passadas para a 4FN, acabou-se com as ambiguidades e com os dois relacionamentos muitos-para-muitos do exemplo.

4.5. Exemplo 5: Livros Relaes que violam a 4FN possuem redundncias indesejveis, normalmente advindas do mapeamento na mesma relao (tabela) de dois ou mais atributos multivalorados e independentes entre si. Um exemplo simples : Livros(no_tombo, ttulo, edio, editora, ano_publ) AutoresAssuntosLivros (no_tombo, autor, assunto) Um dado livro pode ter vrios autores e tratar de vrios assuntos, por exemplo: AUTORESASSUNTOSLIVROS No_tombo ............ 321321 321321 321321 321321 321321 321321 ............ Autor ................ Silberschatz, A. Korth, H.F. Sudarshan, S Silberschatz, A. Korth, H.F. Sudarshan, S ................ Assunto ................ Banco de Dados Banco de Dados Banco de Dados SQL SQL SQL ................

A relao AutoresAssuntosLivros est na FNBC, mas existe grande redundncia na representao acima um livro com k autores e m assuntos teria k*m linhas nesta tabela e 9

inconsistncias poderiam ocorrer, por exemplo, se o assunto SQL for substitudo por Linguagem de Consulta em apenas uma das linhas onde aparece o autor Korth. A soluo para evitar este tipo de redundncia seria decompor a tabela de AutoresAssuntosLivros em duas: AutoresLivros(no_tombo, autor) AssuntosLivros (no_tombo, assunto)

AUTORESLIVROS No_tombo ............ 321321 321321 321321 ............ Autor ................ Silberschatz, A. Korth, H.F. Sudarshan, S ................

ASSUNTOSLIVROS No_tombo ............ 321321 321321 ............ Assunto ................ Banco de Dados SQL ................

Dependncias multivaloradas explicitam a independncia entre os atributos e possuem regras de inferncia no bvias. No exemplo da relao AutoresAssuntosLivros teramos as seguintes dependncias multivaloradas: no_tombo -> autor e no_tombo -> assunto Uma dependncia multivalorada X -> Y dita trivial quanto todos os atributos de R esto na unio de X com Y, e no trivial caso contrrio. Na relao AutoresAssuntosLivros temos as dependncias multivaloradas no triviais no_tombo -> autor e no_tombo -> assunto e o no_tombo no superchave de R, portanto esta relao no esta na 4FN. Nas relaes AutoresLivros e AssuntosLivros temos as mesmas dependncias multivaloradas vlidas, porm elas so triviais (envolvem todos os atributos), portanto estas relaes esto na 4FN.

10

4.6. Exemplo 6: Funcionrio FUNCIONARIO cod_func 001 001 001 001 002 002 002 002 002 002 local_trab Dfm Dfm D qumica D qumica D psico D psico D educ D educ D qumica D qumica atribuio carpintaria marcenaria carpintaria marcenaria segurana malote segurana malote segurana malote

Nessa relao aparece uma redundncia desnecessria, que pode ser resolvida assim: Func_Locais = (cod_func, local_trab) Func_Atribs = (cod_func, atribuio)

4.7. Exemplo 7: Projeto Funcionrio Equipe A tabela a seguir NO est na 4FN:

PROJFUNCEQUIP CodProj 11 11 11 11 12 12 CodProj ->-> CodFunc CodProj ->-> CodEquip 11 CodFunc 1001 1002 1001 1002 1001 1001 CodEquip A10 A10 A20 A20 A10 A20

Passando para a 4FN:

PROJFUNC CodProj 11 11 12 CodFunc 1001 1002 1001 11 11 12 12

PROJEQUIP CodProj CodEquip A10 A20 A10 A20

4.8. Exemplo 9: Empregado Relao EMPREGADO no est em 4FN. 2 DMVs no triviais: Nome-Emp --->> Nome-Proj Nome-Emp --->> Nome-Depend EMPREGADO Nome-Emp Prado Prado Prado Prado Borba Borba Borba Borba Borba Borba Borba Borba Borba Borba Borba Borba Nome-Proj X Y X Y W X Y Z W X Y Z W X Y Z Nome-Depend Joo Ana Ana Joo Jos Jos Jos Jos Joana Joana Joana Joana Beto Beto Beto Beto

12

As relaes EMP-PROJ e EMP-DEP esto em 4FN:

EMP-PROJ Nome-Emp Prado Prado Borba Borba Borba Borba Nome-Proj X Y W X Y Z Prado Prado Borba Borba Borba

EMP-DEP Nome-Emp Nome-Proj Joo Ana Jos Joana Beto

13

BIBLIOGRAFIA

Internet www.comp.ita.br/~cunha/download/CES30CES240-2002/Sem07/Aula07_2.pdf pt.wikipedia.org/wiki/Normalizao_de_dados inf.unisinos.br/~bandeira/Normalizacao.doc www.creupiapostilas.hpg.ig.com.br/Modelagem%20Conceitual%20de%20Banco%20de%2 0Dados.htm www.faetec.br/download/yasuo/BancoDeDados/slides_aula_5_BancoDados.pdf www.noginfo.com.br/arquivos/CC_EBD_05.pdf www.maxarte.com.br/eduardocustodiohp/engenharia_reversa.htm docentes.anchieta.br/~claudior/1bim/Normalizacao.doc www.scribd.com/word/download/136042?extension=pdf dfm.ffclrp.usp.br/infobio/bd/BD3_Normalizacaox.pdf

Revista SQL Magazine N 7 Formas Normais Superiores Brulio Ferreira de Carvalho

14