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

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

Normalização.

Apresentações semelhantes


Apresentação em tema: "Normalização."— Transcrição da apresentação:

1 Normalização

2 Normalização

3 Normalização

4 Normalização (1FN) Proj (CodProj, Tipo, Descr)
ProjEmp (CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl) Observe a tabela ProjEmp. Esta tabela refere-se a tabela aninhada contida na tabela não normalizada de partida. Ela contém as seguintes colunas: Coluna CodProj, que é a chave primária da tabela não normalizada externa a tabela aninhada em questão. Colunas da tabela aninhada em questão. Já a chave primária da tabela ProjEmp é composta pelas colunas CodProj e CodEmp. Isto ocorre pelo fato de o mesmo empregado poder trabalhar em múltiplos projetos. Assim, na tabela ProjEmp aparecem múltiplas linhas para um mesmo empregado e é necessário usar o código do projeto para distinguir entre elas.

5 Normalização (2FN) 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)

6 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)

7 Normalização (3FN) Na passagem à terceira forma normal, elimina-se um outro tipo de redundância. Exemplo Considerando a tabela Emp. Supõe-se que o salário (coluna Sal) de um empregado seja determinado pela sua categoria funcional (coluna Cat). Neste caso, a informação de que salário é pago a uma categoria funcional está representado redundantemente na tabela, tantas vezes quantos empregados possuem a categoria funcional. A passagem à 3FN objetiva eliminar este tipo de redundância de dados.

8 Normalização (3FN)

9 Normalização (3FN) Uma dependência funcional transitiva ou indireta acontece quando uma coluna não chave primária depende funcionalmente de outra coluna ou combinação de colunas não chave primária. A passagem à 3FN consta em dividir tabelas de forma a eliminar as dependências transitivas.

10 Normalização (3FN)

11 Normalização (3FN) Com isso, na 3FN, o modelo referente ao documento sendo normalizado é o seguinte: 3FN Proj (CodProj, Tipo, Descr) ProjEmp (CodProj, CodEmp, DataIni, TempAl) Emp (CodEmp, Nome, Cat) Cat (Cat, Sal)

12 Normalização (3FN)

13 Normalização (3FN) De forma mais precisa, o processo de passagem da 2FN a 3FN é o seguinte: Copiar para o esquema na 3FN cada tabela que tenha menos que duas colunas não chave, pois neste 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)?”

14 Normalização (3FN) Caso a coluna dependa apenas da chave
* Copiar a coluna para a tabela na 3FN Caso a coluna depender 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.

15 Exercício Considere a tabela abaixo
ItemVenda (NúmeroNF,CodigoTipoProd,NumeroProd, DescricaoProd DataVenda, CodReg, CodEmp, QtdeItem,PreçoItem,NomeEmp, DescricaoTipoProd) A tabela apresentada está na primeira forma normal. Apresente a segunda e terceira formas normais.

16 Exercício - Solução A passagem à segunda forma normal (2FN) consta da eliminação de dependências funcionais parciais, isto é, de colunas não-chave que dependem apenas de uma parte da chave primária e não da chave primária completa. No caso do exercício, as dependências funcionais parciais são: (CodigoTipoProd,NumeroProd) → DescricaoProd CodigoTipoProd → DescricaoTipoProd NúmeroNF → DataVenda NúmeroNF → CodReg NúmeroNF → CodEmp NúmeroNF → NomeEmp Observe que o identificador de um produto é a chave composta pelo código do tipo do produto e pelo número do produto.

17 Exercício - Solução A passagem à 2FN resulta nas seguintes tabelas:
ItemVenda (NúmeroNF, CodigoTipoProd, NumeroProd, QtdeItem,PreçoItem) Produto (CodigoTipoProd, NumeroProd, DescricaoProd) TipoProd (CodigoTipoProd, DescricaoTipoProd ) Venda (NúmeroNF, DataVenda, CodReg, CodEmp, NomeEmp)

18 Exercício - Solução A passagem à 3FN consta da eliminação das dependências funcionais transitivas ou indiretas, isto é, de colunas não chave que dependem de outras colunas não chave. No caso do exercício, há uma dependência funcional transitiva na tabela Venda que é CodEmp → NomeEmp. Devido a esta dependência, na passagem à 3FN, é criada a tabela Empregado. O modelo relacional resultante da passagem à 3FN é o seguinte: 3FN ItemVenda (NúmeroNF,CodigoTipoProd,NumeroProd,QtdeItem,PreçoItem) Produto (CodigoTipoProd, NumeroProd, DescricaoProd) TipoProd (CodigoTipoProd, DescricaoTipoProd ) Venda (NúmeroNF, DataVenda, CodReg, CodEmp) Empregado (CodEmp, NomeEmp)

19 Exercício Normalize a seguinte tabela, utilizando a 1FN, 2FN e 3FN:
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)


Carregar ppt "Normalização."

Apresentações semelhantes


Anúncios Google