Baixe o app para aproveitar ainda mais
Prévia do material em texto
Normalização Processo que visa eliminar redundância de dados em arquivos ou tabelas. 1 Teoria da Normalização: conjunto de regras (formas normais) que determinam formas adequadas, sem redundâncias, de representação dos dados. esquema na 2FN Passagem a 3FNPassagem a 4FN esquema na 3FN Normalização 2 esquema de arquivo ou documento Representação como tabela ÑN esquema não normalizado Passagem a 1FN esquema na 1FN Passagem a 2FN esquema relacional normalizado RELATÓRIO DE ALOCAÇÃO A PROJETO CÓDIGO DO PROJETO: LSC001 TIPO: Novo Desenv. DESCRIÇÃO: Sistema de Estoque CÓDIGO DO EMPREGADO NOME CATEGORIA FUNCIONAL SALÁRIO DATA DE INÍCIO NO PROJETO TEMPO ALOCADO AO PROJETO 2146 João A1 4 1/11/91 24 3145 Sílvio A2 4 2/10/91 24 Documento 3 3145 Sílvio A2 4 2/10/91 24 6126 José B1 9 3/10/92 18 1214 Carlos A2 4 4/10/92 18 8191 Mário A1 4 1/11/92 12 CÓDIGO DO PROJETO: PAG02 TIPO: Manutenção DESCRIÇÃO: Sistema de RH CÓDIGO DO EMPREGADO NOME CATEGORIA FUNCIONAL SALÁRIO DATA DE INÍCIO NO PROJETO TEMPO ALOCADO AO PROJETO 8191 Mário A1 4 1/05/93 12 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 Tabela Não-Normalizada (ÑN) CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Desenv. 2146 João A1 4 1/11/91 24Sistema de Estoque 3145 Sílvio A2 4 2/10/91 24 4 6126 José B1 9 3/10/92 18 1214 Carlos A2 4 4/10/92 18 8191 Mário A1 4 1/11/92 12 PAG02 Manutenção 8191 Mário A1 4 1/05/93 12Sistema de RH 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 Tabela não-normalizada possui tabelas aninhadas, grupos de repetição ou atributos multivalorados. CódProj Tipo Descr Emp CodEmp Nome Cat Sal DataIni TempAl LSC001 Novo Desenv. 2146 João A1 4 1/11/91 24Sistema de Estoque 3145 Sílvio A2 4 2/10/91 24 Tabela Não-Normalizada (ÑN) 5 6126 José B1 9 3/10/92 18 1214 Carlos A2 4 4/10/92 18 8191 Mário A1 4 1/11/92 12 PAG02 Manutenção 8191 Mário A1 4 1/05/93 12Sistema de RH 4112 João A2 4 4/01/91 24 6126 José B1 9 1/11/92 12 Proj (CodProj,Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) Primeira Forma Normal (1FN) Uma tabela encontra-se na primeira forma normal quando não possui tabelas aninhadas (grupos de repetição, atributos multivalorados). 6 (grupos de repetição, atributos multivalorados). Passagem à 1FN Proj (CodProj,Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) ÑN 7 Proj (CodProj,Tipo, Descr, CodEmp, Nome, Cat, Sal, DataIni, TempAl) 1FN 11 Cada projeto tem vários empregados e cada empregado pode participar de mais de um projeto. Passagem à 1FN Proj (CodProj,Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) ÑN 8 Proj (CodProj,Tipo, Descr) CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl ) 1FN ProjEmp ( CodProj tem que fazer parte da chave pois cada empregado pode participar de mais de um projeto. Proj: CódProj Tipo Descr LSC001 Novo Desenv. Sistema de Estoque PAG02 Manutenção Sistema de RH Passagem à 1FN 9 ProjEmp: CódProj CodEmp Nome Cat Sal DataIni TempAl LSC001 2146 João A1 4 1/11/91 24 LSC001 3145 Sílvio A2 4 2/10/91 24 LSC001 6126 José B1 9 3/10/92 18 LSC001 1214 Carlos A2 4 4/10/92 18 LSC001 8191 Mário A1 4 1/11/92 12 PAG02 8191 Mário A1 4 1/05/93 12 PAG02 4112 João A2 4 4/01/91 24 PAG02 6126 José B1 9 1/11/92 12 Passagem à 1FN ÑN Arq-Candidatos (Cod-Curso,Nome-Curso, Numero-Vagas-Curso, (Cod-Cand, Nome-Cand, Escore-Cand)) 10 1FN Cursos (Cod-Curso, Nome-Curso, Numero-Vagas-Curso) Candidatos (Cod-Curso,Cod-Cand, Nome-Cand, Escore-Cand) Cada candidato participa de apenas um concurso. Dependência Funcional Um atributo C2 depende funcionalmente de um atributo C1 (ou C1 determina C2) quando, em todas as tuplas da tabela, cada valor de C1 está sempre associado ao mesmo valor de C2. 11 está sempre associado ao mesmo valor de C2. Mais formalmente, C1 determina C2, quando para quaisquer duas tuplas X e Y da tabela, se X[C1] = Y[C1] então X[C2] = Y[C2]. Representação: C1 → C2 Dependência Funcional … Cargo … Salário … E1 10 E3 10 12 E1 10 E2 5 E3 10 E2 5 E1 10 Cargo → Salário Dependência Funcional A B C D B 5 2 20 C 4 2 15 B 6 7 20 B 5 2 20 A não determina B: A→ B → 13 B 5 2 20 C 2 2 15 C 4 2 15 A 10 5 18 A 12 3 18 A 10 5 18 B 5 2 20 C 4 2 15 A 10 5 18 C 4 2 15 A determina D: A→ D O par (A,B) determina C: (A,B)→ C Segunda Forma Normal (2FN) ProjEmp: CódProj CodEmp Nome Cat Sal DataIni TempAl LSC001 2146 João A1 4 1/11/91 24 LSC001 3145 Sílvio A2 4 2/10/91 24 14 LSC001 3145 Sílvio A2 4 2/10/91 24 LSC001 6126 José B1 9 3/10/92 18 LSC001 1214 Carlos A2 4 4/10/92 18 LSC001 8191 Mário A1 4 1/11/92 12 PAG02 8191 Mário A1 4 1/05/93 12 PAG02 4112 João A2 4 4/01/91 24 PAG02 6126 José B1 9 1/11/92 12 Dependência Parcial Uma dependência (funcional) parcial ocorre quando um atributo depende de parte da chave primária. 15 chave primária. Nesse caso, a chave primária é composta (formada por mais de um atributo). Dependência Parcial ProjEmp: CódProj CodEmp Nome Cat Sal DataIni TempAl LSC001 2146 João A1 4 1/11/91 24 LSC001 3145 Sílvio A2 4 2/10/91 24 LSC001 6126 José B1 9 3/10/92 18 16 Dependências funcionais parciais: CodEmp → Nome CodEmp → Cat CodEmp → Sal LSC001 6126 José B1 9 3/10/92 18 LSC001 1214 Carlos A2 4 4/10/92 18 LSC001 8191 Mário A1 4 1/11/92 12 PAG02 8191 Mário A1 4 1/05/93 12 PAG02 4112 João A2 4 4/01/91 24 PAG02 6126 José B1 9 1/11/92 12 Segunda Forma Normal (2FN) Uma tabela encontra-se na segunda forma normal quando, além de estar na 1FN, não possui dependências parciais. 17 dependências parciais. ProjEmp: CódProj CodEmp Nome Cat Sal DataIni TempAl LSC001 2146 João A1 4 1/11/91 24 LSC001 3145 Sílvio A2 4 2/10/91 24 LSC001 6126 José B1 9 3/10/92 18 Segunda Forma Normal (2FN) 18 LSC001 6126 José B1 9 3/10/92 18 LSC001 1214 Carlos A2 4 4/10/92 18 LSC001 8191 Mário A1 4 1/11/92 12 PAG02 8191 Mário A1 4 1/05/93 12 PAG02 4112 João A2 4 4/01/91 24 PAG02 6126 José B1 9 1/11/92 12 A tabela ProjEmp não está na 2FN. Segunda Forma Normal (2FN) dependências não parciais (totais) 19 ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl ) 1FN CodProj, CodEmp dependências parciais Passagem à 2FN ProjEmp ( CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl ) 1FN CodProj, CodEmp 20 ProjEmp ( CodProj, CodEmp , DataIni, TempAl ) Emp ( CodEmp , Nome, Cat, Sal ) 2FN Tabelas na 2FN 21 Terceira Forma Normal (3FN) 22 Dependência Transitiva Uma dependência (funcional) transitiva ocorre quando um atributo, além de depender da chave primária diretamente, depende também 23 chave primária diretamente, depende também de forma transitiva. De outra forma, uma dependência transitiva ocorre quando um atributo depende de outro atributo, além da chave primária. Dependência Transitiva 24 Dependência transitiva: CodEmp → Cat CodEmp → Sal CodEmp → Cat → Sal Cat → Sal Terceira Forma Normal (3FN) Uma tabela encontra-se na terceira forma normal quando, além de estar na 2FN, não possui dependências transitivas. 25 dependências transitivas. Terceira Forma Normal (3FN) 26 A tabela Emp não está na 3FN. Terceira Forma Normal (3FN) Emp ( CodEmp, Nome, Cat, Sal ) 27 Emp ( CodEmp, Nome, Cat, Sal ) Sal depende de CodEmp também por transitividade (de forma indireta). Passagem à 3FN Emp ( CodEmp, Nome, Cat, Sal ) 2FN 28 3FNEmp ( CodEmp, Nome, Cat ) Cat ( Cat, Sal ) Tabelas na 3FN 29 ÑN Proj (CodProj,Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) Normalização do Exemplo 30 ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) 2FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal) 3FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal)
Compartilhar