Exercicios de Revisao de Banco de Dados – professora Vania Bogorny- INE/UFSC Cada linha da tabela abaixo mostra 2 consultas em SQL, Algebra ou Calculo. Na terceira coluna responda SIM se as consultas são equivalentes e NAO se não forem equivalentes. Lembre-se que duas consultas são equivalentes se elas sempre retornam exatamente a mesma resposta sobre qualquer conjunto de tuplas. Todas as consultas se referem as relações R(A, B) e/ou S(A, B). 1) Em ambas as relações R e S, A é o atributo chave e B não é chave 2) Nenhum atributo terá valor nulo 3) Não imagine outras coisas sobre os dados, são 2 tabelas, cada qual com 2 atributos Sim ou nao? Select A from R Where B In (Select B From S) Select R.A From R,S Where R.B = S.B Select A From R Where B In (Select B From S) Select distinct R.A From R,S Where R.B = S.B Select B From R Where A In (Select A From S) Select R.B From R,S Where R.A = S.A Select B From R Where A In (Select A From S) Select distinct R.B From R,S Where R.A = S.A Select A From R Where A not in (Select A From S) Select A From R Select B From R Select distinct B From R Select B From R Where A In (Select A From S) Select B From R Where B In (Select B From S Select max(A),B From R Group by A,B Π A(R) – Π A(S) Select R.A From R,S Where R.A <> S.A Select A From R Group By Select B From R Group By Select B From R Group By Select Distinct R.B From R,S Where R.A = S.A Select Distinct R.B From R,S Where R.B = S.B Select max(A),B From R Group by B {t.A|R(t) ∧ NOT((x)S(x) Select R.A From R, S Where R.A=S.A Select R.A From R, S Where R.A=S.A Π A(R) Π A(S) Π A,B(R) / Π A(S) Select A From R Union Select A From S Select A from R Intersects Select A from S {t.A|R(t) ∧ ((x)S(x) ∧ t.A=x.A)} {t.B |R(t) ∧ ((x)(S(x) ∧ (x.A=t.A)))} Select B From R Where B not in (select B from S) Select A From R Where A in (select A from S) Π B(R) – Π B(S) Select R.A From R, S Where R.A = S.A A B B ∧ t.A=x.A)} Considere a relação R(A) contendo valores inteiros únicos. Assuma que R contem 3 tuplas. É possível escrever uma consulta em SQL que retorne o terceiro maior inteiro de R? ( ) Sim ( ) NAO Considere as relações R(A,B) e S(A,B) onde A é chave primária em ambas as relações. 1) Crie um usuário U 2) Dê ao usuário U permissão para consultar apenas a coluna A da relação R 3) Dê ao usuário U permissão para consultar as tuplas de R cujo valor de A exista na coluna A da relação S. 4) Crie um usuário U1, U2 e U3 5) Crie um papel P que tenha permissão para inclusão e exclusão em S e de as permissões do papel aos usuários U1, U2 e U3 Considere as relações R(A,B) e S(Y,A,z) onde A é chave primária de R e chave estrangeira de S, Y é a chave primária de S e z é um atributo numérico. Escreva uma consulta em SQL que retorne todos os valores de B em R onde a soma dos valores de z em S seja maior que 1000.