Exercício resolvido normalização

15,584 views

Published on

Exercício resolvido normalização

  1. 1. Universidade Federal do Ceará Bacharelado em Sistemas e Mídias Digitais Bancos de Dados Multimídia Ticianne DarinIntrodução a Bancos de Dados: NormalizaçãoExercício Resolvido1. Considere o esquema de relação MATRICULA ( D, P, S, H, E, N), onde: D = disciplina; P = professor; S= sala; H = horário (dia e hora); E= Estudante e N = Nota a) Indique todas as FDs que você identifica na relação MATRICULA. Explique o significado de cada FD. b) Encontre as chaves da relação MATRICULA. c) Em qual forma normal se encontra a relação MATRICULA? d) Como você normalizaria a relação MATRICULA? Justifique sua resposta.RESPOSTAS a) Indique todas as FDs que você identifica na relação MATRICULA.  D -> P (Uma Disciplina só pode ser lecionada por um único professor)  E, D -> N (um estudante só pode ter uma nota em uma determinada disciplina)  S, H -> D (uma sala só pode ser alocada para uma disciplina em uma determinada hora)  E, H -> S (um estudante só pode estar em uma única sala em uma determinada hora)  E, H -> D (um estudante só pode estar matriculado em uma única disciplina em uma determinada hora)  S, H -> P (uma dada sala só pode ser alocada para um único professor em um dado horário)  E, H -> P (O estudante só pode ter aula com um professor em um determinado horário)  P, H -> D (O professor só pode ministrar uma disciplina em um determinado horário)  P, H -> S (O professor só pode lecionar em uma sala em um dado horário) b) Encontre as chaves da relação MATRICULA. Para encontrar as chaves da relação devemos observar qual o conjunto mínimo de atributos determinam todos os outros atributos. A primeira dica é observar nas FDs quais atributos não são encontrados por
  2. 2. nenhum outro (os atributos que não estão na “parte direita” de nenhuma FD). Após isso, vamos verificar quais os atributos são candidatos a fazerem parte da chave. No nosso exemplo, vamos iniciar incluindo os atributos não encontrados em nenhuma FD: - HE Vamos agora, encontrar o fecho de (HE) e verificar se achamos todos os atributos (utilizando a cobertura mínima do item anterior): (HE)+ = {H,E, S, D, P, N} De fato, apenas com esses atributos eu consigo encontrar todos os outros. Logo, (HE) é chave da relação MATRÍCULA. Nota: Uma relação pode conter uma ou mais chaves.c) Em qual forma normal se encontra a relação MATRICULA? Podemos dizer que a forma normal de uma relação corresponde ao nível mais alto de normalização em que ela se encontra. Portanto, começamos perguntando: Está em BCNF? Não! Para ser BCNF deve-se satisfazer: - A FD é trivial ou - A1 ... An é uma superchave. Note que apenas a FD4 não viola BCNF, as demais violam BCNF. Então não está em BCNF! Então passamos para a próxima forma normal: Está em 3NF? Não! Uma relação R está em 3NF se para cada FD A1...An → B1...Bm que é válida em R, uma das condições é satisfeita: 1) A1 ... An → B1 ... Bm é trivial (Bi’s Ai’s), 2) A1 ... An inclui uma chave de R, ou 3) Cada Bi ocorre na chave de R. Análogo ao caso de BCNF apenas a FD4 corresponde a condição 2 enquanto que as outras FDs não se enquadram em nenhuma das condições acima. Logo, não está em 3NF! Está em 2NF? Nenhuma das dependências possui é parcial e todos os atributos são atômicos. Logo, MATRICULA está na Segunda Forma Normal.d) Como você normalizaria a relação MATRICULA? Justifique sua resposta. Aplicamos o algoritmos de decomposição em 3NF. PASSO 1: Calcula a cobertura mínima: A: Reescreve todas as FDs com apenas um elemento do lado direito B: Remove FDs redundantes (através do cálculo do fecho dos atributos do lado esquerdo, para ver se – sem utilizar a DF em questão, é possível chegar até o atributo do lado direito): E, H -> D S, H -> P E, H -> P P, H -> D C: Remove os atributos redundantes Não há. D: Reagrupa os atributos do lado direito. Logo, a cobertura mínima é:
  3. 3. FD1: D -> P FD2: E, D -> N FD3: S, H -> D FD4: E, H -> S FD5: P, H -> SPASSO 2: Para cada X do lado esquerdo de uma FD em G, crie um esquema derelação {XA1... An} em D, onde: X -> A1, ..., X -> An são todas as FDs em G comX do lado esquerdo. R1 (D,P) R2 (E,D,N) R3 (S,H,D) R4 (E,H,S) R5 (P,H,S)PASSO 3: Coloque todos os atributos restantes em uma única relação. Todos os atributos foram contemplados.PASSO 4: Se uma chave de R não está contida em nenhum dos esquemas derelação, crie uma relação que contenha os atributos da chave. A chave encontrada (EH) já está contida na relação R4.Após obter a decomposição 3NF para MATRICULA, devemos testar se ela estáem BCNF ou se pode obter uma decomposição BCNF, por ser uma forma maisforte. Caso contrário (isto é, caso se percam dependências funcionais) a relaçãodeve permanecer em 3NF.Para verificar se as DFs resultantes violam BCNF, devemos testar para cada umase o determinante (lado esquerdo da DF) é uma superchave da relação (isto é, apartir do fecho dele é possível encontrar todos os atributos da relaçãoMATRICULA). Percebemos, neste caso, que todas as DFs, exceto EH->S, violama BCNF.Para decompor em BCNF basta escolher uma das DFs que viola a BCNF narelação Matrícula, para decompor Matrícula em duas relações: R1 (contendo todosos atributos da dependência funcional escolhida) e R2 (contendo todos osatributos de Matrícula, exceto o atributo que está sendo determinado na DFescolhida). Repetir isto para a relação R2 gerada, até que não haja mais violaçãoda BCNF no resultado.Escolheremos a DF SH->D. Neste caso, a decomposição de matrícula seria: R1(S,H,D): ok R2(S,H,P,E,N)Decompõe R2 por P,H->S: R21(P,H,S): ok R22(H,P,E,N)
  4. 4. Não é mais possível decompor utilizando as DFs escolhidas, por isso haveria aquiperda de DFs, embora fosse possível fazer uma decomposição sem perda najunção.Iniciando por outra DF, como exemplo:Escolheremos a DF D->P. Neste caso, a decomposição de matrícula seria: R1(DP): ok R2(D,S,H,E,N)Decompõe R2 por S,H>D: R21(S,H,D): ok R22(S,H,E,N): não é possível decompor por mais nenhuma DF que violeBCNFRealizado este teste para as demais DFs, percebe-se que ao decompor em BCNFhá perda de dependências funcionais para esta relação. Por isso, devepermanecer em 3NF.

×