Buscar

AV IMPLEMENTAÇÃO DE BANCO DE DADOS

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

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

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ê 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

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

Prévia do material em texto

Uma loja chamada DVDShop comercializa DVDs em toda a América Latina e utiliza um sistema chamado DVDSystem para controle de estoque e vendas de DVDs. O sistema tem um banco de dados e o gerente da loja precisa consultar SOMENTE o nome do artista principal e o ano de lançamento dos DVDs cadastrados na tabela chamada TabelaDVD, ordenados pelo nome do artista principal dos DVDs em ordem alfabética, diretamente do banco de dados usando um comando em SQL porque a aplicação parou de funcionar. 
Qual é o comando SQL que o gerente deve executar considerando que a TabelaDVD tem a coluna Titulo para armazenar os títulos dos DVDs e a coluna NomeArtistaPrincipal para armazenar os nomes dos artistas principais dos DVDs e a coluna Ano para armazenar os anos de lançamentos dos DVDs?
		
	
	Gabarito: SELECT Titulo, Ano FROM TabelaDVD
ORDER BY NomeArtistaPrincipal
	
	
	
	
	Baseado nas tabelas esporte e atleta ilustradas a seguir, escreva uma consulta SQL que recupere os nomes e sexo dos atletas que praticam natação ordenados alfabeticamente. 
		
	
	
Gabarito: Sugestão:
SELECT a.nome, sexo
FROM atleta a, esporte e
WHERE a.idesporte = e.idesporte AND e.nome = 'natação'
ORDER BY a.nome
	
	
	
	
	Relacione as colunas abaixo:
(1) Tabela bidimensional, composta por linhas e colunas de dados        
(2) Coluna                                                                                          
(3) Linha                                                                                               
(4) Conjunto de valores de um atributo
(5) Nomes das relações seguidas pelos nomes dos atributos, com chaves primária e estrangeiras identificadas
 
( ) Esquema
( ) Atributo
( ) Tupla
( ) Relação
( ) Domínio
 
A sequência correta está representada na opção:
 
		
	
	5,2,1,3,4
	 
	5,2,3,1,4
	
	5,3,2,1,4
	
	4,2,3,1,5
	
	5,2,3,4,1
	
	
	
	
	Os operadores aritméticos, lógicos e de comparação são usados em consultas SQL para?
		
	
	Não é utilizado em Banco de Dados.
	
	Criar novas consultas.
	 
	Realizar tarefas como somar ou agrupar valores, comparar valores.
	
	Fazer uma atualização de dados mais precisa.
	
	Para excluir dados por um procedimento no banco.
	
	
	
	
	De acordo com o modelo de dados definido pelas tabelas a seguir, indique a instrução SQL adequada para:
Apresentar o maior salário pago aos Empregados Agrupados por Departamento, para os Departamentos (11, 21, 22, 31, 42, 51).
		
	
	SELECT MAXIMO(SALARIO) FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 51) GROUP BY ID_DEPTO;
	 
	SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO IN (11, 21, 22, 31, 42, 51) GROUP BY ID_DEPTO;
	
	SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO =11 AND ID_DEPTO =21 AND ID_DEPTO =22 AND ID_DEPTO =31 AND ID_DEPTO =42 AND ID_DEPTO =51;
	
	SELECT MAXIMO(SALARIO) FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 51) GROUP BY ID_DEPTO;
	 
	SELECT MAX(SALARIO) FROM EMPREGADO WHERE ID_DEPTO ON (11, 21, 22, 31, 42, 51) GROUP BY ID_DEPTO;
	
	
	
	
	Para se obter todos as matrículas, nomes e descrições dos departamentos de todos empregados independente de terem ou não códigos de departamento atribuídos (entenda-se por nulo os departamentos não atribuídos) deve-se escrever qual o select:
		
	 
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E LEFT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E RIGHT JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO;
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO != D.ID_DEP_CODIGO;
	 
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, D.VC_DEP_NOME AS DEPARTAMENTO FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.NU_EMP_DEPARTAMENTO = D.ID_DEP_CODIGO WHERE E.NU_EMP_DEPARTAMENTO IS NULL;
	
	
	
	
	Sabendo que a estrutura da tabela é: ID_EMP_MATRICULA, VC_EMP_NOME, NU_EMP_CARGO, NU_EMP_SALARIO, NU_EMP_GRATIFICACAO, NU_EMP_DESCONTO. Pede-se que, exiba a(s) matrícula(s), o(s) nome(s), o(s) salário(s) líquido(s) do(s) maior(es) salário(s) pago(s) aos empregados pela empresa. Qual a alternativa válida:
		
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO > E.NU_EMP_SALARIO;
	 
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO = MAX(E.NU_EMP_SALARIO);
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO HAVING E.NU_EMP_SALARIO IN (SELECT MAX(X.NU_EMP_SALARIO) FROM EMPREGADO X));
	
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO IN MAX(E.NU_EMP_SALARIO);
	 
	SELECT E.ID_EMP_MATRICULA AS MATRICULA, E.VC_EMP_NOME AS NOME, (E.NU_EMP_SALARIO + E.NU_EMP_GRATIFICACAO - E.NU_EMP_DESCONTO) AS LIQUIDO FROM EMPREGADO E INNER JOIN CARGO C ON E.NU_EMP_CARGO = C.ID_CAR_CODIGO WHERE E.NU_EMP_SALARIO IN (SELECT MAX(X.NU_EMP_SALARIO) FROM EMPREGADO X));
	
	
	
	
	Quanto a visões, é correto afirmar:
 I - Pode-se fazer uma consulta a uma view com as cláusulas Having e Group By.
II - Pode-se fazer subconsultas e utilizar operadores de conjunto em uma view.
III - Uma visão pode permitir, com restrições que os dados da tabela sejam manipulados em comando de INSERT, UPDATE e DELETE, porém, não armazena estes dados.
		
	 
	Apenas as afirmações I e II são corretas.
	
	Apenas a afirmação III é correta.
	
	Apenas as afirmações I e III são corretas.
	
	Apenas as afirmações II e III são corretas.
	 
	Todas as afirmações estão corretas.
	
	
	
	
	Qual das opções abaixo NÃO é uma propriedades desejável das transações (Propriedade ACID)?
		
	
	Consistência.
	
	Atomicidade.
	 
	Integridade.
	 
	Isolamento.
	
	Durabilidade.
	
	
	
	
	Sobre algoritmos para o processamento de junções, assinale a alternativa verdadeira.
		
	
	O algoritmo Hash Join, altamente recomendável quando as tabelas envolvidas são pequenas, não possui qualquer relação com os índices hash, nem trabalha com a noção de buckets.
	
	A variação Block Nested-Loop Join do algoritmo Nested-Loop Join não deve ser utilizada na prática, pois sempre leva a uma maior leitura de páginas do disco.
	 
	O algoritmo Nested-Loop Join pode produzir o menor custo de execução possível, desde que uma das duas tabelas possa ser armazenada por inteiro na memória.
	
	O algoritmo Sort Merge Join, baseado no clássico algoritmo Merge Sort, somente pode ser aplicado se as duas tabelas estiverem ordenadas por seus atributos de junção.
	
	Índices primários e secundários podem ser utilizados pelo algoritmo Nested-Loop Join com Índices, mas não o índice hash, pois não é ordenado.

Outros materiais