Resumo banco de dados
4º Semestre
1 Dependência funcional
1.1 Dependência funcional
B é funcionalemente dependente de A se A determina um único valor para B em qualquer momento •
Notação: A → B
B depende funcionalmente de A cliente (nro_cliente, nome, endereço) nro_cliente → {nome, endereço}
1 valor de A
(não existe outro)
somente um único valor do atributo B
1.2 Dependência multivalorados:
A é associado a uma coleção específica de valores para B, independente de qualquer valor C existente. •
Notação: A → → B
A multidetermina B
vendedor ( nro_vend, { cliente (nro_cli, nome_cli) }, { filho (nome_filho_vend, parentesco) }) nro_vend → cliente (nro_cli, nome_cli) nro_vend → filho (nome_filho_vend, parentesco)
2 Normalização
2.1 Normalização por Decomposição:
→ 1FN:
• todo valor em R (relação R) é atômico.
Exemplo:
emp_proj (nro_emp, nome_emp, { projeto ( nro_proj, nome_proj ) })
• Dependências funcionais
– nro_emp → nome_emp
Willian Fagner de Souza Policiano
Base de Dados
4º Semestre
• Dependências multivaloradas
– nro_emp → → projeto (nro_proj, nome_proj)
• Solução: emp (nro_emp, nome_emp)
emp_proj (nro_emp, nro_proj, nome_proj)
→ 2FN
• Está na 1FN
• Qualquer atributo não chave é dependente de TODAS as partes da chave primária.
• Dependencia funcional total.
Exemplo:
emp_proj (nro_emp, nro_proj, nome_proj)
•
Dependencias funcionais:
- nro_emp →
- ¹nro_proj → nome_proj
- ²{nro_emp, nro_proj} →
•
Solução: emp (nro_emp, … )
²emp_proj (nro_emp, nro_proj)
¹proj (nro_proj, nome_proj)
→ 3FN
• Está na 2FN
• Não existe atributo não chave dependente de outro não chave.
• Dependência Transitiva.
Exemplo:
cliente (nro_cliente, nome_cliente, nro_vendedor, nome_vendedor)
•
Dependências Funcionais:
- nro_cliente → {nome_cliente, nro_vendedor, nome_vendedor}
- nro_vendedor → nome_vendedor
Willian Fagner de Souza Policiano
Base de Dados
4º Semestre
•
Solução: cli (nro_cliente,