Buscar

Lista2 BD Final 4e9Não são desse semestre mas tem as questoes

Prévia do material em texto

05. Discuta as características das relações que as fazem diferentes de tabelas e arquivos
comuns. 
Uma relação se esforça para representar fatos em um nível lógico ou abstrato. Logo, podemos avaliar que diferente de tabelas e arquivos, as relações não apenas disponibilizam espaço para armazenamento de dados, mas “criam” um ambiente lógico como meio de solução de um fato. Além disso, elas estabelecem “sentido” aos dados aleatórios registrados, permitindo extração de informação através do relacionamento entre os dados. Muitas ordens lógicas podem ser especificadas em uma relação. Quando uma relação é implementada como um arquivo ou exibida como uma tabela, uma ordenação em particular pode ser especificada nos registros do arquivo ou linhas da tabela, proporcionando muita flexibilidade na extração de informações. 
10. Discutir os vários tipos de operações de JUNÇÃO INTERNA. Por que a JUNÇÃO
THETA é necessária?
Theta: Permite o uso de qualquer operador de comparação.
Equijunção: Permite apenas a condição de igualdade.
Natural: Tipo de equijunção onde os atributos com nomes idênticos são usados na comparação (igualdade).
Uma operação JUNÇÃO com uma condição de junção geral é chamada JUNÇÃO THETA (THETA JOIN). As tuplas, cujos atributos de junção são null não aparecem no resultado. Nesse sentido, a operação JUNÇÃO não preserva, necessariamente, todas as informações das relações participantes.
 O uso mais comum de JUNÇÃO envolve as condições de junção apenas em comparações de igualdade. Assim, uma JUNÇÃO em que o único operador de comparação usado for o = é chamada EQUIJUNÇÃO.
 Como um, de cada par de atributos com valores idênticos, é supérfluo, uma nova operação, chamada JUNÇÃO NATURAL foi criada, livrando o segundo atributo (supérfluo) da condição de EQUIJUNÇÃO. 
Mas por que a JUNÇÃO THETA é necessária?
Para criar uma junção, por mais simples que seja, é necessário equiparar um atributo identificador da primeira entidade a outro atributo identificador da segunda entidade. Além disso, para criar qualquer tipo de cláusula que filtre valores através de condições, é preciso utilizar uma comparação. Logo, se precisamos utilizar operadores de comparação, como: =, <,<,>, > e *, estamos condicionando valores. Neste ponto, podemos entender o quanto a JUNÇÃO THETA é necessária, uma vez que ela permite que seja realizada essas condições a junção. 
15. Exercício 6.19 (Elmasri e Navathe – 4ª. Edição – Página 134)
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'.
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#.
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.
d. Liste os pedidos que não foram remetidos até 30 dias da data do pedido.
e. Liste o Pedido# dos pedidos que foram remetidos de todos os depósitos cuja a empresa seja em Nova York.
a)
b)
�
c) 
d)
e)
20. Exercício 8.13 (Elmasri e Navathe – 4ª. Edição – Página 180)
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'
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 '
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
25. Exercício 8.18 (Elmasri e Navathe – 4ª. Edição – Página 181)
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'
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'
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