• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

softklin

Ajuda com formas normais numa relação

6 mensagens neste tópico

Está é uma das matérias que mais tenho dificuldade em Base de Dados. Trata-se das formas normais, chaves, dependências funcionais, etc. Tentei aprender por mim próprio, e tentei resolver um exercício, o qual gostava que me dessem algum aconselhamento.

Enunciado:

Considere a relação R(A,B,C,D,E,F), assumindo-a na 1ºFN com as dependências funcionais {AB->DE, D->E}

Se achar necessário, normalize a relação de modo a ficar na FNBC (Boyce Codd).

O que tentei

2ª FN

    R(A,B,C,D,E,F)

    {AB->DE, D->E, ABC->F}

3ª FN

    Já está na 3ª FN, pois os atributos não chave são independentes entre si (não existem dependências entre atributos não chave)

FNBC

    Está na FNBC, pois cada determinante do conjunto de dependências funcionais é super-chave de R

Estará correcta esta minha resolução? Incluindo as justificações?

Cumps.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso não está bem logo na 2ªFN, porque na 2ªFN, todos os atributos não pertencentes a qualquer chave candidata devem depender da totalidade da chave, e tu tens todos os atributos a depender parcialmente da chave.

Tendo em conta que ABC -> F (que não está explícito no enunciado), então decompunhas R nas seguintes relações:

R(A,B,C,F)

R1(A,B,D,E)

em que {ABC->F, AB->DE, D->E}. Agora já se encontra na 2ªFN.

Para colocar na 3ªFN, não devem existir dependências funcionais entre atributos não-chave. No entanto D->E, logo temos de decompor a relação R1 em duas:

R11(A,B,D)

R12(D,E)

Para estar na BCFN, todos os atributos devem depender funcionalmente da chave, de toda a chave e nada mais do que a chave. Então já se encontra na BCFN. Ficas assim com as seguintes relações:

R(A,B,C,F)

R11(A,B,D)

R12(D,E)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, Baderous, obrigado pela resposta.

No entanto, a relação ABC -> F não consta no enunciado, fui eu que "inventei" ao tentar solucionar o problema. Isso muda muita a solução?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que também cheguei a essa conclusão aqui. Obrigado mais uma vez pela explicação, foi bastante detalhada e explicita! :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora