Curso Banco de Dados I Anlise de Sistemas
Curso: Banco de Dados I Análise de Sistemas PUC Campinas Professora: Sílvia Soares silvia@puc-campinas. edu. br file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares
Formas Normais Projetar as relações (tabelas) de uma base de dados relacional, de modo a obter o máximo de independência de dados, eliminando redundâncias desnecessárias. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 2
Processo de Normalização • Permite identificar a existência de problemas potenciais (anomalias de atualização) 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 • Consiste em gradativamente retirar das relações do esquema as dependências funcionais indesejáveis. Cada um dos passos do processo coloca a relação em uma das formas normais file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 3
Processo de Normalização • Se a normalização é bem sucedida: § o espaço de armazenamento dos dados diminui § a tabela pode ser atualizada com maior eficiência • Consiste em, gradativamente, retirar das relações do esquema as dependências funcionais indesejáveis. Cada passo do processo coloca a relação em uma das formas normais file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 4
Processo de Normalização • Cada passo do processo considera determinados aspectos • Uma forma normal é um conjunto de regras que uma tabela deve obedecer, que destinam-se a eliminar as redundâncias de dados file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 5
Formas Normais Relações Normalizadas e Não Normalizadas 1 FN 2 FN 3 FN 4 FN file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 6
Dependência Funcional Dada uma relação R, dizemos que uma coluna ou conjunto de colunas B de R é dependente funcional de uma coluna ou conjunto de colunas A de R, denotado por A B, sse a cada valor VA de A existir nas linhas de R em que aparece VA um único valor VB. Se VA ocorrer em duas linhas diferentes, o mesmo VB deve ocorrer em ambas. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 7
Dependência Funcional Exemplo: Código Salário. . . E 1 E 3 E 1 E 2 E 3 E 2 E 1 file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares Salário 10 10 10 5 10 8
Tabela Não-Normalizada (NN) • Uma tabela não normalizada (ÑN) contém valores de atributos não atômicos, isto é, contém tabelas embutidas (grupos repetidos) • PROJ(CODPROJ, TIPOPROJ, DESCR, (NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC)) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 9
Tabela Não-Normalizada (NN) Cod. Proj Tipo. Proj Descr Emp Nome Cat LSC 001 Novo Desenv PAG 02 Manut. Sal Data. Inicio Tempo. Aloc Sistema 2146 Estoque 3145 6126 8191 João Silvia José Mário A 1 A 2 B 1 A 1 400 900 400 01/11/91 02/10/91 03/10/92 01/11/92 24 24 18 12 1214 Sistema 8191 4112 RH 6126 Carlos A 2 Mário A 1 João A 2 José B 1 400 400 900 04/10/92 01/15/93 04/01/91 01/11/92 18 12 24 18 PROJ(CODPROJ, TIPOPROJ, DESCR, (NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC)) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 10
Primeira Forma Normal (1 FN ou PFN) Uma relação está na Primeira Forma Normal se todos os atributos que a compõem são atômicos, ou seja, se todas as colunas que a compõem são atômicas. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 11
Primeira Forma Normal (1 FN ou PFN) • Passagem à primeira forma normal: - para cada tabela embutida inclusive a mais externa, é criada uma tabela na 1 FN que contém: • as chaves primárias de cada tabela externa à tabela embutida • os atributos da própria tabela embutida - são definidas as chaves primárias das tabelas na 1 FN. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 12
Primeira Forma Normal (1 FN ou PFN) • Primeiro passo: subdivisão em tabelas – Tabela 1 PROJ (CODPROJ, TIPO PROJ, DESCR) – Tabela 2 PROJEMP(CODPROJ, NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 13
Primeira Forma Normal (1 FN ou PFN) • Segundo passo: Identificação de Chaves – Tabela 1 • a chave primária é a chave da tabela externa na forma ÑN PROJ(CODPROJ, TIPOPROJ, DESCR) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 14
Primeira Forma Normal (1 FN ou PFN) • Segundo passo: Identificação de Chaves – Tabela 2 • o atributo NOEMP é a chave da tabela embutida original, portanto, faz parte da chave primária. • verificar se, no documento, um valor de NOEMP aparece associado a muitos valores de CODPROJ, se sim, CODPROJ faz parte da chave primária. PROJEMP(CODPROJ, NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 15
Primeira Forma Normal (1 FN ou PFN) Proj Cod. Proj Tipo Descr LSC 001 Novo Desenv. Sistema de Estoque PAG 02 Manutenção Sistema de RH file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 16
Primeira Forma Normal (1 FN ou PFN) Proj. Emp Cod. Proj Cod. Emp Nome Cat Sal Data. Ini Temp. Al LSC 001 2146 Joao A 1 400 1/11/91 24 LSC 001 3145 Silvio A 2 400 2/10/91 24 LSC 001 6126 Jose B 1 900 3/10/92 18 LSC 001 1214 Carlos A 2 400 4/10/92 18 LSC 001 8191 Mario A 1 400 1/11/92 12 PAG 02 8191 Mario A 1 400 1/05/93 12 PAG 02 4112 Joao A 2 400 4/01/91 24 PAG 02 6126 Jose B 1 900 1/11/92 12 file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 17
Primeira Forma Normal (1 FN ou PFN) • Exemplo: – ÑN (A 1, A 2, A 3, A 4, A 5 (B 1, B 2, B 3, B 4 (C 1, C 2, C 3) (D 1, D 2)) (E 1, E 2, E 3)) – Subdivisão em tabelas: 1 (A 1, A 2, A 3, A 4, A 5) 2 (A 1, A 2, B 1, B 2, B 3, B 4) 3 (A 1, A 2, B 1, C 2, C 3) 4 (A 1, A 2, B 1, D 2) 5 (A 1, A 2, E 1, E 2, E 3) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 18
Segunda Forma Normal (2 FN ou SFN) Uma relação está na Segunda Forma Normal se ela está na 1 NF e todo atributo não-chave primária é plenamente dependente de toda a chave primária e não de apenas parte dela. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 19
Segunda Forma Normal (2 FN ou SFN) • Toda tabela na 1 FN que possui uma chave primária composta por um único atributo já se encontra na segunda forma normal • Assim, ao passar para a 2 FN é necessário considerar apenas tabelas que tenham: – chave primária composta – pelo menos um atributo não chave file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 20
Segunda Forma Normal (2 FN ou SFN) • Para passar à 2 FN: – Copiar para a 2 FN cada tabela que tenha chave primária simples ou que não tenha atributos não chaves. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 21
Segunda Forma Normal (2 FN ou SFN) – Para tabelas com chave primária composta e atributos não chaves: • criar na 2 FN uma tabela com as chaves primárias da tabela na 1 FN • para cada atributo não chave fazer a pergunta: “o atributo depende de toda a chave ou de parte dela? ” – caso o atributo dependa de toda a chave, copiar o atributo para a 2 FN – caso o atributo dependa de parte da chave: » criar uma tabela na 2 FN que tenha como chave a parte da chave da qual o atributo depende » copiar o atributo dependente para a tabela criada. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 22
Segunda Forma Normal (2 FN ou SFN) • Exemplo Tabela 1 – PFN PROJ(CODPROJ, TIPOPROJ, DESCR) – SFN A tabela possui uma chave primária simples, é transcrita para a 2 FN PROJ( CODPROJ, TIPOPROJ, DESCR) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 23
Segunda Forma Normal (2 FN ou SFN) Tabela 2 – 1 FN PROJEMP(CODPROJ, NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC) – 2 FN Nome: depende apenas de parte da chave (NOEMP) Cat: depende apenas de parte da chave (NOEMP) Sal: depende apenas de parte da chave (NOEMP) Datainicio depende de toda a chave (inicio do emp no projeto) tempoaloc depende de toda a chave (tempo do emp no projeto) PROJEMP(CODPROJ, NOEMP, DATAINICIO, TEMPOALOC) EMP(NOEMP, NOME, CAT, SAL) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 24
Segunda Forma Normal (2 FN ou SFN) Emp file: teorica_Formas. Normais. ppt Cod. Emp Nome Cat Sal 2146 Joao A 1 400 3145 Silvio A 2 400 6126 Jose B 1 900 1214 Carlos A 2 400 8191 Mario A 1 400 4112 Joao A 2 400 Banco de. Dados I - Silvia Soares 25
Segunda Forma Normal (2 FN ou SFN) Proj. Emp file: teorica_Formas. Normais. ppt Cod. Proj Cod. Emp Data. Ini Temp. Al LSC 001 2146 1/11/91 24 LSC 001 3145 2/10/91 24 LSC 001 6126 3/10/92 18 LSC 001 1214 4/10/92 18 LSC 001 8191 1/11/92 12 PAG 02 8191 1/05/93 12 PAG 02 4112 4/01/91 24 PAG 02 6126 1/11/92 12 Banco de. Dados I - Silvia Soares 26
Segunda Forma Normal (2 FN ou SFN) RESUMO – ÑN PROJ(CODPROJ, TIPOPROJ, DESCR, (NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC)) – 1 FN PROJ(CODPROJ, TIPOPROJ, DESCR) PROJEMP(CODPROJ, NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC) – 2 FN PROJ( CODPROJ, TIPOPROJ, DESCR) PROJEMP(CODPROJ, NOEMP, DATAINICIO, TEMPOALOC) EMP(NOEMP, NOME, CAT, SAL) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 27
Dependência Transitiva • Dependência Transitiva: Ocorre quando Y depende de X e Z depende de Y. Logo, Z também depende de X. X No-avião Y Tipo file: teorica_Formas. Normais. ppt Z Capacidade Local Banco de. Dados I - Silvia Soares 28
Terceira Forma Normal (3 FN ou TFN) Uma relação está na Terceira Forma Normal se ela está na 2 NF e nenhum atributo não-chave é transitivamente dependente da chave primária. – Toda tabela na 2 FN que possui menos que dois atributos não chave encontra-se na 3 FN. – Na passagem à 3 FN basta considerar tabelas com dois ou mais atributos não chave. file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 29
Terceira Forma Normal (3 FN ou TFN) • Para passar à 3 FN: 1) Copiar para a 3 FN cada tabela que tenha menos que dois atributo não chave 2) Para tabelas com dois ou mais atributos não chaves: a) criar uma tabela na 3 FN com a chave primária da tabela em questão b) para cada atributo não chave fazer a pergunta: “ o atributo depende de algum outro atributo não chave? ” (dependência transitiva) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 30
Terceira Forma Normal (3 FN ou TFN) Caso o atributo dependa apenas da chave: - copiar o atributo para a tabela na 3 FN Caso o atributo dependa de um outro atributo: 1. Criar, caso ainda não exista, uma tabela na 3 FN que tenha como chave primária o atributo do qual há uma dependência indireta. 2. Copiar o atributo dependente para a tabela criada. 3. O atributo do qual há a dependência deve permanecer também na tabela criada no passo a) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 31
Terceira Forma Normal (3 FN ou TFN) • Exemplo – o atributo SAL da tabela EMP depende do atributo CAT (categoria funcional) – As dependências funcionais nesta tabela são: EMP(NOEMP, NOME, CAT, SAL) – Na passagem para a 3 FN, a tabela EMP é subdividida: EMP(NOEMP, NOME, CAT) CAT(CAT, SAL) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 32
Terceira Forma Normal (3 FN ou TFN) RESUMO – ÑN PROJ(CODPROJ, TIPOPROJ, DESCR, (NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC)) – PFN PROJ(CODPROJ, TIPOPROJ, DESCR) PROJEMP(CODPROJ, NOEMP, NOME, CAT, SAL, DATAINICIO, TEMPOALOC) – SFN PROJ( CODPROJ, TIPOPROJ, DESCR) PROJEMP(CODPROJ, NOEMP, DATAINICIO, TEMPOALOC) EMP(NOEMP, NOME, CAT, SAL) – TFN PROJ( CODPROJ, TIPOPROJ, DESCR) PROJEMP(CODPROJ, NOEMP, DATAINICIO, TEMPOALOC) EMP(NOEMP, NOME, CAT) CAT(CAT, SAL) file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 33
Resumo Geral Eliminar atributos não atômicos 1 NF Eliminar DF não plenas 2 NF Eliminar dependências transitivas 3 NF file: teorica_Formas. Normais. ppt Banco de. Dados I - Silvia Soares 34
- Slides: 34