Buscar

Lista2 BD Final 1e6Não são desse semestre mas tem as questoes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

5. Porque designamos uma das chaves candidatas de uma relação para ser uma chave primária?
 
Para facilitar a manipulação da tupla. Essa designação é feita através do critério de identificação da chave candidata que seja mais fácil utilização e única.
10. Liste as operações da álgebra relacional e a proposta de cada uma.
Operações Relacionais Unárias
Seleção: usada para selecionar um subconjunto de tuplas de uma relação que satisfaça uma condição de seleção. Pode ser visto como um particionamento horizontal da relação em dois conjuntos de tupla. Ex:
σ DNO=4 (EMPREGADO)
Projeção: seleciona certas colunas da tabela e descarta outras. Seleciona apenas os atributos desejados para ressaltá-los. Pode ser visto como um particionamento vertical da relação. Ex:
π SEXO, SALARIO (EMPREGADO)
Sequência de Operações: aplicam diversas operações de álgebra relacional, uma após a outra. Com ela pode se criar uma única expressão de álgebra relacional, pelo aninhamento das operações, ou podemos aplicar uma operação por vez e criar relações de resultados intermediários. Ex:
π SEXO, SALARIO (σ DNO=4 (EMPREGADO))
Operação Renomear: utilizada para “rebatizar” os atributos nas relações intermediárias e de resultado. Ex:
R(PRIMEIRONOME, ULTIMONOME, SALARIO) ← π PNOME, UNOME, SALARIO (σ DNO=4 (EMPREGADO))
Operações de álgebra relacional a partir da teoria dos conjuntos
União: produz uma relação que inclui todas as tuplas em R1 ou R2, ou ambas, R1 e R2; R1 e R2 devem ter uma união compatível. Ex:
R1 U R2
Interseção: produz uma relação que inclui todas as tuplas em R1 e R2; R1 e R2 devem ter uma união compatível. Ex:
R1 ∩ R2
Subtração: produz uma relação que inclui todas as tuplas em R1 que não estão em R2; R1 e R2 devem ter uma união compatível. Ex:
R 1 – R2
Produto Cartesiano: produz uma relação que tem os atributos de R1 e R2 e inclui, como tuplas, todas as possíveis combinações de tuplas de R1 e R2. Ex:
R1 x R2
Operações Relacionais Binárias
Junção: usado para combinar as tuplas relacionadas em duas relações dentro de uma tupla única. Ex:
DEPT_GER ← DEPARTAMENTO |X| GERSSN=SSN EMPREGADO
	
Equijunção: junção que o único operador usado for o =. Produz todas as combinações de tuplas de R1 e R2 que satisfazem uma condição uma condição de junção apenas com as comparações de igualdade.
Junção Natural: igual a Equijunção, exceto que os atributos de junção de R2 não estarão incluídos de junção tiverem os mesmos nomes, não precisarão ser especificacados de nenhuma forma.
Divisão: produz uma relação R(X) que inclui todas as tuplas t[X] em R1(Z) que aparecem em R1 em combinação com todas as tuplas de R2(Y), em que Z = X U Z. Ex:
R1(Z) ÷ R2(Y) 
15. 5.10
a) Essa inserção satisfaz todas as restrições, assim, ela é aceitável.
b) Essa inserção satisfaz todas as restrições, assim, ela é aceitável.
c) Essa inserção viola a restrição de chave, porque outra tupla com o mesmo valor de DNUMERO já existe na relação DEPARTAMENTO. Para conseguir inserir, deve mudar o valor de DNUMERO que será cadastrado.
d) Essa inserção viola a restrição de integridade de entidade (null para chave primária PNO), assim, ela será rejeitada. Para inserir, deve colocar um valor válido para o domínio e que não repita uma chave já existente.
e) Essa inserção satisfaz todas as restrições, assim, ela é aceitável.
f) Essa remoção satisfaz todas as restrições, assim, ela é aceitável.
g) Essa remoção não é aceitável, porque há tuplas em EMPREGADO que se referem a essa tupla. Portanto, se a tupla for removida, vão resultar violações de integridade referencial. Para conseguir remover, existe a possibilidade de remoção em cascata (eliminar quem faz referencia a ela). 
h) também não é aceitável, há tuplas em TRABALHA_EM que se referem a essa tupla. Para remoção, seguir os mesmos passos que o primeiro caso.
i) Aceitável.
j) Inaceitável, pois não existe a chave estrangeira informada. Deve informar outra.
k) Aceitável.
 
20. 5.15
25. 6.19. Especifique as seguintes consultas em álgebra relacional no esquema de banco de dados do Exercício 5.13:
a. Liste o Pedido# e Pdata para todos os pedidos remetidos pelo Depósito de número 'W2'.
π Pedido#, Pdata (σ Armazem=’W2’ (Pedido P |X| Remessa R P.pedido = R.repedido))
b. Liste as informações do Depósito do qual o Cliente chamado 'José Lopez' teve seus pedidos fornecidos. Produza uma listagem: Pedido#, Depósito#.
		PEDIDOS ← (σ Cnome = ‘Jose Lopez’ (PEDIDO P |X| cust=cli EMPREGADO)
		DEPOSITO ← (PEDIDOS |X| Pedido=Pedido (REMESSA)
		RESULTADO ← π Pedido, Deposito (DEPOSITO)
c. Produza uma listagem NOMECLI, #D0SPEDID0S, TOTAL_MEDIA_PEDIDO, em que a coluna do meio é o número total de pedidos feitos pelo cliente, e a última coluna é a média dos valores totais dos pedidos desse cliente.
π Cnome, P.Cus, Contador (*), media (tot_ped) (p. cust Fcontador(*), media(tot_ped) (Cliente C |X| cli=cust Pedido P))
d. Liste os pedidos que não foram remetidos até 30 dias da data do pedido.
		π P. * (σ Data_rem <= Pdata +30 (Pedido P |X| Pedido=Pedido Remessa R)) 
e. Liste o Pedido# dos pedidos que foram remetidos de todos os depósitos cuja a empresa seja em Nova York.
		π Pedido# (σ Cidade = ‘Nova York’ (REMESSA R |X| Armazem#=Deposito# DEPOSITO)
		
30. 8.13. Especifique as consultas do Exercício 6.16 em SQL. Mostre o resultado de cada consulta se ela fosse aplicada ao banco de dados EMPRESA da Figura 5.6.
a) SELECT e.nome
FROM Empregado E INNER JOIN Projeto P ON P.dnum= e.dno
INNER JOIN Trabalha_em t ON p.num = t.pno
WHERE e.dno= 5 AND t.horas> 10 AND p.dnome = 'ProdutoX '
b) SELECT e.nome
FROM Empregado E INNER JOIN Dependente D ON e.ssn = d.ssn
WHERE e1.Minicial = d.nomeDependente
c) SELECT e.nome
FROM Empregado E INNER JOIN Empregado e1 ON e1.SUPERSSN = e.SSN
WHERE e1..Minicial = ' Franklin Wong'
d) SELECT p.pjnome, SUM ( T.horas )
FROM Projeto P INNER JOIN Trabalha_em T ON T.pno = P.numero
GROUP BY  P.pjnome
e) SELECT e.nome
FROM Empregado E
HAVING count (*) = ( select count (*) FROM Projeto )
f) SELECT e.nome
FROM Empregado E
HAVING count (*) =0
g) SELECT p.nome, AVG ( e.salario )
FROM Empregado E INNER JOIN Departamento D ON
d.numero = e.dno
GROUP BY d.nome
h) SELECT AVG ( e.salario )
FROM Empregado E INNER JOIN Departamento D ON
d.numero = e.dno
WHERE e.sexo = ' Feminino '
i)   SELECT e.nome, e.endereço
FROM Empregado E, DepartamentoLocalização D, Projeto P
WHERE e.dno = d.numero AND d.numeor = p.numero AND p.localização = 'Houston ' AND
d.localização < > ' Houston'
j) SELECT e.Unome
FROM Empregado E INNER JOIN Departamento D ON
d.Gerssn = e.ssn LEFT JOIN Dependente DE ON DE.essn = E.ssn
35. 8.18. Especifique as consultas e as atualizações dos Exercícios 6.17 e 5.11, os quais se referem ao banco de dados COMPANHIA AÉREA (Figura 5.8), em SQL.
a) SELECT numero_voo,  codAeroportoPart, codAeroportoCheg
FROM Trajeto_voo
b) SELECT t.numero_voo, it.data
FROM Trajeto_voo T  INNER JOIN Instancia_Trajeto IT ON
t.numero_voo = it. numero_voo
WHERE t.codAeroportoCheg = ' LAX ' AND t.codAeroportoPart = ' IAH'
c)  SELECT t.numero_voo, t.codAeroportoPart, t.horarioAgenCheg, it.data
FROM Trajeto_voo T INNER JOIN Aeroporto A ON
a.codAeroporto= t.codAeroporto INNER JOIN Instancia_Trajeto IT ON
it.numero_voo = t.numero_voo
WHERE a.cidade = 'Houston' AND a.cidade = 'Los Angeles'
d) SELECT λ
FROM ReservaAssentos
WHERE numero_voo = ' CO197'
e) SELECT t.numAssentosDisp
FROM Instancia_Projeto IP
WHERE numero_voo = ' CO197' AND data = ' 1999-10-09'

Continue navegando