Gabarito da Prova P2. Questão 1) Álgebra e SQL - IME-USPjef/gabarito_P2-BD.pdf · ENDO σ...

3
Gabarito da Prova P2. Questão 1) Álgebra e SQL 1a) ORTO σ especialidade = “ortodontia” (ESPECIALIDADE) ENDO σ especialidade = “endodontia” (ESPECIALIDADE) ORTOENDO ORTO <ORTO.ID_Dentista=ENDO.ID_Dentista> DENTISTA π ID_Dentista (ORTOENDO) PACIENTE CONSULTA * DENTISTA RESPOSTA π ID_Dentista (PACIENTE) Obs.: Também considerei correto os alunos que fizeram ORTOENDO utilizando intersecção. 1a) SELECT ID_Paciente FROM Consulta as C, Especialidade as E1, Especialidade as E2 WHERE E1.ID_Dentista = E2.ID_Dentista AND E1.Especialidade = “ortodontia” AND E2.Especialidade = “endodontia” AND C.ID_Dentista = E1.ID_Dentista 1b) P1 π codigo_Procedimento (PROCEDIMENTO) C1 CONSULTA * PROCEDIMENTO DC π ID_Dentista, codigo_Procedimento (C1) D π ID_Dentista (DC ÷ P1) Dfinal π nome (D * DENTISTA) 1b) vide apostila para implementar divisão em SQL 1c) SELECT E.especialidade, count(distinct C.ID_procedimento) FROM CONSULTA as C, ESPECIALIDADE as E WHERE C.ID_dentista = E.ID_dentista GROUP by E.especialidade; Questão 2) Dependência Funcional 2a) Uma relação está na 3FN se, e somente se, para qualquer dependência funcional X Y numa relação R valer que: I) X é superchave de R ou II) Y é atributo primo de R No caso da FNBC não temos a condição II. Isto faz com a FNBC seja mais restritiva que a 3FN. b) Temos {M, A} como a única chave candidata da relação R, pois MA P,F,C

Transcript of Gabarito da Prova P2. Questão 1) Álgebra e SQL - IME-USPjef/gabarito_P2-BD.pdf · ENDO σ...

Page 1: Gabarito da Prova P2. Questão 1) Álgebra e SQL - IME-USPjef/gabarito_P2-BD.pdf · ENDO σ especialidade = “endodontia ... vide apostila para implementar divisão em SQL 1c) ...

Gabarito da Prova P2. Questão 1) Álgebra e SQL 1a) ORTO � σ especialidade = “ortodontia” (ESPECIALIDADE) ENDO � σ especialidade = “endodontia” (ESPECIALIDADE) ORTOENDO � ORTO <ORTO.ID_Dentista=ENDO.ID_Dentista> DENTISTA � π ID_Dentista (ORTOENDO) PACIENTE � CONSULTA * DENTISTA RESPOSTA � π ID_Dentista (PACIENTE) Obs.: Também considerei correto os alunos que fizeram ORTOENDO utilizando intersecção. 1a) SELECT ID_Paciente FROM Consulta as C, Especialidade as E1, Especia lidade as E2 WHERE E1.ID_Dentista = E2.ID_Dentista AND E1.Especialidade = “ortodontia” AND E2.Especialidade = “endodontia” AND C.ID_Dentista = E1.ID_Dentista

1b) P1 � π codigo_Procedimento (PROCEDIMENTO) C1 � CONSULTA * PROCEDIMENTO DC � π ID_Dentista, codigo_Procedimento (C1)

D � π ID_Dentista (DC ÷ P1)

Dfinal � π nome (D * DENTISTA) 1b) vide apostila para implementar divisão em SQL 1c) SELECT E.especialidade, count(distinct C.ID_procedi mento) FROM CONSULTA as C, ESPECIALIDADE as E WHERE C.ID_dentista = E.ID_dentista GROUP by E.especialidade; Questão 2) Dependência Funcional 2a) Uma relação está na 3FN se, e somente se, para qualquer dependência funcional X� Y numa relação R valer que: I) X é superchave de R ou II) Y é atributo primo de R No caso da FNBC não temos a condição II. Isto faz com a FNBC seja mais restritiva que a 3FN. b) Temos {M, A} como a única chave candidata da relação R, pois MA� P,F,C

Page 2: Gabarito da Prova P2. Questão 1) Álgebra e SQL - IME-USPjef/gabarito_P2-BD.pdf · ENDO σ especialidade = “endodontia ... vide apostila para implementar divisão em SQL 1c) ...

c) A relação REFRIGERADOR está somente na 1FN, pois F depende parcialmente da chave {M.A}. Por outro lado todos os atributos da relação são atômicos. d) As relações são: R1 {M,A,P}, R21 {M,F}, R22 {F, C} Questão 3) Controle de Concorrência 3a) Em S1 temos: r3(x) < w1(x) r3(y) < w2(y) w3(y) < w2(y) r1(z) < w2(z) que gera um grafo acíclico T3�T1; T3�T2; T1� T2 e o escalonamento serial: T3;T1;T2 Em S2 temos: r3(x) < w1(x) r2(y) < w3(y) w3(y) < w2(y) r1(z) < w2(z) que gera um grafo cíclico T3� T2; T2� T3; T3� T1; T1� T2. Como o grafo é cíclico, S2 não é seriável. 3b) O algoritmo de bloqueio bifásico nos diz que devemos ter uma fase de bloqueios (ou promoção) de recursos e a segunda fase de liberação (ou rebaixamento) de recursos. Nenhum recurso liberado pode ser novamente bloqueado. No exercício, temos como base o escalonamento serial T2, T3, T1. Assim, um escalonamento S que respeite tal escalonamento tem a seguinte seqüência de bloqueios: T2-read_lock(Z); T2-read_lock(Y); T3-read_lock(X); T2-write_lock(Z); T3-write_lock(x); T2-write_lock(Y); T3-read_lock (Y); … a primeira liberação (ou rebaixamento) � primeiro recurso desbloqueado.

Page 3: Gabarito da Prova P2. Questão 1) Álgebra e SQL - IME-USPjef/gabarito_P2-BD.pdf · ENDO σ especialidade = “endodontia ... vide apostila para implementar divisão em SQL 1c) ...

Questão 4) Eliminação Árvore B+ 4a)

4b) 4c) delete (null, root (&(17)), 14, null) delete (&(17), P0 (&(5)), 14, null) delete (&(5), P2 (&(14)), 14, null) delete (&(17), P0 (&(5)), 14, &(13)) delete (null, root(&(17)), 14, &(17)) voltando-recursão delete (null, root (&(5)), 29, null) delete (&(5), P3 (&(27)), 29, null) delete (null, root (&(5)), 29, &27)) voltando-recursão

2 3 27 2422

5 17 27 30

5 7 8 16 27 30 3938343327 292 3 27 2422

5 17 27 30

5 7 8 16 27 30 3938343327 29

2 3 27 24 2722

5 17 30

5 7 8 16 33 34 38 39