A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Dependência Funcional  Para entender as duas formas normais que serão apresentadas a seguir é necessário compreender o conceito de dependência funcional.

Apresentações semelhantes


Apresentação em tema: "Dependência Funcional  Para entender as duas formas normais que serão apresentadas a seguir é necessário compreender o conceito de dependência funcional."— Transcrição da apresentação:

1 Dependência Funcional  Para entender as duas formas normais que serão apresentadas a seguir é necessário compreender o conceito de dependência funcional.  Em uma tabela relacional, diz-se que uma coluna C2 depende funcionalmente de uma coluna C1 (ou que a coluna C1 determina a coluna C2) quando, em todas linhas da tabela, para cada valor de C1 que aparece na tabela, aparece o mesmo valor de C2.

2 Dependência Funcional  O conceito fica mais fácil de se entender, se considerarmos um exemplo:

3 Dependência Funcional  Para denotar esta dependência funcional, usa-se uma expressão na forma Código → Salário.  A expressão denota que a coluna Salário depende funcionalmente da coluna Código.  Portanto, a coluna Código é o determinante da dependência funcional.  De forma geral, o determinante de uma dependência funcional pode ser um conjunto de colunas e não somente uma coluna.

4 Dependência Funcional  Exemplo: Coluna C depende das colunas A e B. Coluna D depende da coluna A Dependências funcionais: (A,B) → C A → D

5 Normalização (2FN)  A passagem à segunda forma normal (2FN) objetiva eliminar um certo tipo de redundância de dados.  Exemplo (Tabela ProjEmp) Os dados referentes a empregados (Nome, Cat e Sal) estão redundantes, para os empregados que trabalham em mais de um projeto. Um exemplo é o do empregado de código “8191”.  A passagem à segunda forma norma objetiva eliminar este tipo de redundância de dados.

6 Normalização (2FN)

7  Uma tabela encontra-se na segunda forma normal (2FN) quando, além de encontrar-se na primeira forma normal, cada coluna não chave depende da chave primária completa.  Uma tabela que não se encontra na segunda formal contém dependências funcionais parciais, ou seja, contém colunas não chave que dependem apenas de uma parte da chave primária.

8 Normalização (2FN)

9  Uma tabela encontra-se na segunda forma normal (2FN) quando, além de encontrar-se na primeira forma normal, cada coluna não chave depende da chave primária completa.  Uma tabela que não se encontra na segunda formal contém dependências funcionais parciais, ou seja, contém colunas não chave que dependem apenas de uma parte da chave primária.  Assim, toda tabela que está na 1FN e que possui apenas uma coluna como chave primária já está na 2FN.

10 Normalização (2FN)  No caso do exemplo, a tabela Proj encontra-se na 2FN por possuir uma chave primária simples (composta de apenas uma coluna).  Já a tabela ProjEmp deve ser examinada para procurar dependências parciais, pois possui uma chave primária composta de mais de uma coluna.  As colunas Nome, Cat e Sal dependem, cada uma, apenas da coluna NumEmp, já que nome, categoria funcional e salário são determinados tão somente pelo número do empregado.  Por sua vez, as colunas DataIni e TempAl dependem da chave primária completa (para determinar a data em que um empregado começou a trabalhar em um projeto, bem como para determinar o tempo pelo qual ele foi alocado ao projeto é necessário conhecer tanto o código do projeto quanto o número do empregado).

11 Normalização (2FN)

12

13  Para passar à 2FN, isto é, para eliminar as dependências de parte da chave primária é necessário dividir a tabela ProjEmp em duas tabelas com o seguinte esquema: ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal)

14 Normalização (2FN)  Assim o modelo relacional correspondente ao arquivo em questão, na 2FN é o seguinte: 2FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal)

15 Normalização (2FN)  De forma mais precisa, o processo de passagem da 1FN a 2FN é o seguinte: 1.Copiar para a 2FN cada tabela que tenha chave primária simples ou que não tenha colunas além chave. No caso do exemplo, é o que acontece com a tabela Proj. 2.Para cada tabela com chave primária composta e com pelo menos uma coluna não chave (no exemplo, a tabela ProjEmp):  Criar na 2FN uma tabela com as chaves primárias da tabela na 1FN (no exemplo, trata-se da tabela ProjEmp na 2FN).  Para cada coluna não chave fazer a seguinte pergunta: “a coluna depende de toda a chave ou de apenas parte dela?”

16 Normalização (2FN)  Caso a coluna dependa de toda a chave (as colunas DataIni e TempAl da tabela ProjEmp): Criar a coluna correspondente na tabela com a chave completa na 2FN (a coluna DataIni e TempAl da tabela ProjEmp na 2FN)  Caso a coluna dependa apenas de parte da chave (as colunas Nome, Sal e Cat da tabela ProjEmp na 2FN): Criar, caso ainda não existir, uma tabela na 2FN que tenha como chave primária a parte da chave que é determinante da coluna em questão (a tabela Emp na 2FN). Criar a coluna dependente dentro da tabela na 2FN (as colunas Nome, Sal e Cat da tabela Emp na 2FN).

17 Normalização ÑN Proj (CodProj, Tipo, Descr, (CodEmp, Nome, Cat, Sal, DataIni, TempAl)) 1FN Proj (CodProj, Tipo Descr) ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempoAl) 2FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat, Sal)

18 Exercício  Normalize a seguinte tabela, utilizando a 1FN e 2FN: Empregado (Nro_Empregado, Nome_Emp, Nro_Depto, Nome_Depto, Nro_Gerente, Nome_Gerente, Nro_Proj, Nome_Proj, Dt_Ini_Proj, Num_Hr_Trab_Proj)

19 Exercício (resposta) 1FN Empregados (Nro_Empregado, Nome_Emp, Nro_Depto, Nome_Depto, Nro_Gerente, Nome_Gerente) Projeto(Nro_Proj, Nome_Proj, Dt_Ini_Proj, Num_Hr_Trab_Proj, Nro_Empregado) 2FN Empregados (Nro_Empregado, Nome_Emp, Nro_Depto, Nome_Depto, Nro_Gerente, Nome_Gerente) Projeto (Nro_Proj, Nro_Empregado) Detalhes_Projeto (Nro_Proj, Nome_Proj, Dt_Ini_Proj, Nro_Hr_Trab_Proj)

20 Exercício  Normalize a seguinte tabela, utilizando a 1FN e 2FN: Ordem_Compra (Cod_Ordem_Compra, Dt_Emissao, Cod_Fornecedor, Nro_Fornecedor, Endereço_Forn, Cod_Material, Desc_Material, Qtd_Comprada, Vlr_Unit, Vlr_Total_Item, Vlr_Total_Ordem)

21 Exercício (resposta) 1FN Ordem de Compra(Cod_Ordem_Compra, Dt_Emissão, Cod_Fornecedor, Nro_Fornecedor, Endereço_Forn) Material(Cod_Material, Desc_Material, Qtd_Comprada, Vlr_Total_Item, Vlr_Unit, Vlr_Total_Ordem, Cod_Ordem_Compra) 2FN Ordem de Compra(Cod_Ordem_Compra, Dt_Emissão, Cod_Fornecedor, Nro_Fornecedor, Endereço_Forn) Material(Cod_Material, Qtd_Comprada, Vlr_Total_Item, Vlr_Total_Ordem, Cod_Ordem_Compra) Detalhes Material (Desc_Material, Vlr_Unit, Cod_Material)

22 Exercício  Normalize a seguinte tabela, utilizando a 1FN e 2FN: Tabela de NF (Numero da NF, Série, Data de Emissão, Cod. Cliente, Nome Cliente, Endereço Cliente, CGC Cliente, Código Mercadoria, Descrição Mercadoria, Quantidade Vendida, Preço de Venda, Total da Venda da Mercadoria, Total Geral da NF)

23 Exercício (resposta) 1FN Notas Fiscais(Num_NF, Série, Dt_Emissão, Cod_Cliente, Nome_Cli, End_Cliente, CGC_Cli) Mercadoria(Cod_Mercadoria, Desc_Mercadoria, Qtd_Vendida, Preco_Venda, Total_Venda_Merc, Total_Geral, Num_NF) 2FN Notas Fiscais(Num_NF, Série, Dt_Emissão, Cod_Cliente, Nome_Cli, End_Cliente, CGC_Cli) Mercadoria(Cod_Mercadoria, Qtd_Vendida, Total_Venda_Merc, Total_Geral, Num_NF) Detalhes Mercadoria(Cod_Mercadoria, Desc_Mercadoria, Preco_Venda)


Carregar ppt "Dependência Funcional  Para entender as duas formas normais que serão apresentadas a seguir é necessário compreender o conceito de dependência funcional."

Apresentações semelhantes


Anúncios Google