Base de Dados, 2016/2017 Universidade do Algarve Soluções dos problemas 1–4, Aula 5 Fernando Lobo Problema 1 A melhor maneira de resolver esta pergunta é responder às alı́neas por ordem inversa. 3. Sim. BC é chave porque BC determina funcionalmente A (que é o único atributo restante da relação R), e nenhum subconjunto próprio de BC é uma superchave de R. (B+ = B e C + = C) 2. Sim, R está em BCNF. As duas DF’s não triviais de R são AB → C e BC → A. Em ambos os casos, o lado esquerdo da DF é superchave de R. 1. Sim, R está na 3a FN porque estar em BCNF implica estar na 3FN. Problema 2 • A única chave de R é FI (verifiquem porquê). • R não está em BCNF porque F → M viola a condição de BCNF. • R não está na 3NF porque F → M viola a condição de BCNF, e M não pertence a uma chave de R. • Decompomos R em R1 e R2 . Para tal, calcula-se F + . F+ = F M R1 fica com F e M, sendo que F é chave. R2 fica com F mais todos os atributos de R que não pertencem a F + . Ou seja, R2 (F, I, P). R1 fica com a dependência funcional F → M. R2 fica com a dependência funcional FI → P. Nenhuma das dependências viola a condição de BCNF, logo R1 e R2 estão ambos em BCNF. 1 Problema 3 A existência da DMV A B, implica que para um dado valor fixo de A, os componentes de B devem aparecer em todas as combinações possı́veis com os restantes atributos da relação (no nosso caso, apenas C). Logo, os seguintes tuplos também terão de existir: (5,7,2) (5,7,8) (5,8,1) (5,8,8) (5,2,1) (5,2,2) Problema 4 1. Temos as seguintes DF’s: número → nome número → dataNascimento número → nome dataNascimento (esta é derivada das outras duas) 2. DMV’s: número disciplina número desporto Pela regra da promoção, obtemos ainda: número nome número dataNascimento número nome dataNascimento E pela regra do complemento (aplicada às 5 DMV’s anteriores) ainda obtemos mais estas 5: número nome dataNascimento desporto número nome dataNascimento disciplina número dataNascimento disciplina desporto número nome disciplina desporto número disciplina desporto E ainda há mais que seriam obtidas por regras que não demos (regra da União: Se X Y e X Z, então X (Y ∪ Z)). 3. A chave de Alunos é {número, disciplina, desporto}. Justificação: {número, disciplina, desporto}+ = todos os atributos 2 e o fecho de nenhum subconjunto próprio dá todos os atributos: {número, disciplina}+ = todos menos desporto {número, desporto}+ = todos menos disciplina {disciplina, desporto}+ = {disciplina, desporto} Alunos não está na 4FN. Reparem que Alunos nem sequer está em BCNF. Logo, nunca poderia estar na 4FN (visto que 4FN ⇒ BCNF). Torna-se mais fácil resolver o exercı́cio se fizermos a decomposição de Alunos para BCNF em primeiro lugar. Vamos começar por pegar numa DF que viole BCNF, por exemplo: número → nome dataNascimento. Calcula-se o fecho de {número}. {número}+ = {número, nome, dataNascimento} Alunos dá origem a Alunos1 e Alunos2: Alunos1( número, nome, dataNascimento ) Alunos2( número, disciplina, desporto ) Ambas estão em BCNF. Alunos1 está na 4FN (as suas DMV contêm no lado esquerdo uma superchave). Alunos2 não está na 4FN. Tem DMVs não triviais cujo lado esquerdo não é superchave: número disciplina número desporto Decompomos Alunos2 em Alunos3 e Alunos4. Alunos3( número, disciplina ) Alunos4( número, desporto ) Agora as DMVs de Alunos3 e Alunos4 passaram a ser triviais. (A união dos atributos do lado esquerdo e lado direito dá todos os atributos da relação). 3