Baixe o app para aproveitar ainda mais
Prévia do material em texto
Questões – Linguagem de programação de Banco de Dados Módulo 1 Analise as afirmações abaixo: I – Os comandos Alter e Update do SQL permitem a modificação de dados em tabelas II – Os comandos Create e Drop do SQL são utilizados para, respectivamente, criar uma nova tabela e eliminar uma tabela existente no banco de dados III – Para se eliminar uma tabela existente no banco de dados pode-se utilizar o comando Drop ou o comando Delete Escolha a alternativa correta abaixo: Apenas a afirmação II é verdadeira Analise as afirmações abaixo: I – O comando SQL Alter table Empregado add (constraint C01 foreign key (cod_cargo) references Cargo(codigo)) define a coluna cod_cargo como chave estrangeira na tabela Empregado II – O comando SQL Alter table Pessoa add (constraint C02 unique (nome) ) garante que na tabela Pessoa não poderá haver repetição de Nome III – A restrição Not Null tem que ser utilizada obrigatoriamente em todas as colunas que sejam definidas como chave estrangeira Escolha a alternativa correta abaixo: Apenas a afirmação III é falsa Em um banco de dados está definida a tabela: Pessoa ( Codigo number(5) primary key, Nome char (30), sexo char (1) ) Analise as afirmações abaixo: I – O comando SQL Alter table Pessoa add check (sexo = 'M' or sexo = 'F') garante que os únicos valores válidos para Sexo sejam M e F II – O comando SQL Alter table Pessoa modify (nome char (50) ) somente poderá ser executado se a tabela Pessoa estiver vazia (sem nenhuma linha) III – O comando Update Pessoa modify Codigo > 0 garante que os únicos valores para Codigo serão números inteiros positivos Escolha a alternativa correta abaixo: Apenas a afirmação I é verdadeira Em um banco de dados estão definidas as tabelas: Departamento (Codigo number (3) primary key, nome char (40)) e Empregado ( Codigo number(5) primary key, Nome char (30), Depto number (3) references Departamento (codigo), sexo char (1) not null, salario number (9,2) ) Analise as afirmações abaixo: I – O comando SQL Alter table Empregado modify (Depto not null); torna obrigatório todo empregado pertencer a um departamento II – O comando SQL Alter table Empregado modify (Codigo > 0); garante que o código de empregado seja sempre positivo III – O comando SQL Alter table Empregado drop (sexo); dará um erro ao ser executado por que o campo sexo é obrigatório (not null) Escolha a alternativa correta abaixo: Apenas a afirmação I é verdadeira 5) Qual das cláusulas abaixo não pode ser utilizada em um comando de criação de tabela em um banco de dados relacional: is null 6) Em um banco de dados está definida a tabela Pessoa (Codigo char(3) primary key, Nome char(10)) onde já foi incluída a linha ('ABC', 'Maria Jose'). Assinale, se houver, qual dos comandos de modificação abaixo não pode ser executado: Alter table Pessoa modify column (Nome char(8)) 7) Em um banco de dados está definida a tabela Pessoa (Codigo char(3) primary key, Nome char(10)) onde já foi incluída a linha ('ABC', 'Maria Jose'). Assinale, se houver, qual dos comandos de modificação abaixo não pode ser executado: Todos os quatro comandos de alteração podem ser executados com êxito 8) Em um banco de dados está definida a tabela Cliente (Codigo char(3) primary key, Nome char(10), LimiteCredito numeric (9.2)) onde já foram incluídas as linhas ('ABC', 'Maria Jose', 1000.00) e ('XYZ', 'Carolina', null). Assinale, se houver, qual dos comandos de modificação abaixo não pode ser executado: Alter table Cliente modify column (LimiteCredito not null) 9) Em um banco de dados está definida a tabela Cliente (Codigo char(3) primary key, Nome char(10), LimiteCredito numeric (9.2)) onde já foram incluídas as linhas ('ABC', 'Maria Jose', 1000.00) e ('XYZ', 'Carolina', 0). Assinale, se houver, qual dos comandos de modificação abaixo não pode ser executado: Todos os quatro comandos de alteração podem ser executados com êxito 10) Em um banco de dados relacional está definida a tabela Produto (Codigo char(3) primary key, Nome char(30), PrecoUnitario decimal (7.2), UnidadeMedida char(5)). Nessa tabela já foram incluídas as linhas ('P01', 'Refrigerante', 3.50, 'LITRO') ('P02', 'Cerveja', 4.00, 'LATA'). Para garantir integridade dos valores de UnidadeMedida, foi criada a tabela TabUnidMedida (Nome char(5) primary key), na qual ainda não foram incluídos valores. O que se pode afirmar sobre a execução do seguinte comando SQL: alter table Produto add foreign key UnidadeMedida references TabUnidMedida (Nome) O comando está correto porém não poderá ser executado por não haver integridade entre os valores da chave estrangeira e da chave primária referenciada Módulo 2 Considere as tabelas Empregado (Cod_emp, Nome_emp, Salario_emp, Cod_depto_emp) e Departamento (Codigo, Nome), onde Cod_depto_emp é uma chave estrangeira que referencia Departamento: Indique o comando SQL que seleciona todos os empregados do Departamento ADM: select * from Empregado where Cod_depto_emp = 'ADM'; Considere a tabela Empregado (Cod_emp, Nome_emp, Salario_emp, Cod_depto_emp). Indique o comando SQL que seleciona o Nome e o Salario todos os empregados com Salario maior que 1.000: select Nome_emp, Salario_emp from Empregado where Salario_emp > 1000 Considere a tabela Empregado (Cod_emp, Nome_emp, Salario_emp, Cod_depto_emp). Indique o comando SQL que seleciona o Código, o Nome e o Salário de todos os empregados do departamento ADM com Salario maior que 1.000: select Codigo, ,Nome and Salario from Empregado where Cod_depto_emp = 'ADM' and Salario_emp > 1000 Considere a tabela Empregado (Cod_emp, Nome_emp, Salario_emp, Cod_depto_emp). Indique o comando SQL que seleciona todos os empregados do departamento ADM com Salario maior que 500 ou do departamento RH com salario menor que 1.000: elect * from Empregado where Cod_depto_emp = 'ADM' and Salario_emp > 500 or Cod_depto_emp = ´RH´ and Salario_emp < 1000 Considere a tabela Empregado (Cod_emp, Nome_emp, Salario_emp, Comissao_emp, Cod_depto_emp) contendo os dados dos empregados de uma empresa. Somente empregados do departamento VENDAS recebem comissão e entre esses alguns obtiveram zero de comissão. Indique o comando SQL que soluciona o problema de encontrar os empregados que receberam comissão acima da média do valor de todas as comissões: select * from Empregado where comissao > (select avg(comissao) from empregado) 6) Uma empresa que armazena os dados dos seus empregados em uma tabela conforme abaixo, deseja saber qual o impacto que ocorrerá sobre o total dos salários em cada departamento se for aplicado um aumento de 10% a todos os salários. Considere a tabela Empregado (Cod_emp, Nome_emp, Salario_emp, Comissao_emp, Cod_depto_emp). Indique o comando SQL que soluciona o problema proposto: select Cod_depto_emp, sum(salario)*0.1 from Empregado group by Cod_depto_emp 7) A execução de um comando select do SQL acessando os dados de uma tabela resultou as seguintes três linhas de valores: Nome Salario Cargo -------- ------- ------------- ADRIANA 1500 Analista JR JULIANA 1800 Analista PL ANANIAS 1990 Analista SR Qual das opções abaixo não pode ser parte do comando select executado: where Salario < 2000 and Nome like 'ANA%' 8) A execução de um comando select do SQL acessando os dados de uma tabela resultou as seguintes três linhas de valores: Nome Salario Cargo -------- ------- ------------- ADRIANA 1500 Analista JR JULIANA 1800 Analista PL ANANIAS 1990 Analista SR Qual das opções abaixo não pode ser parte do comando select executado: where nome like 'ANA%' 9) A execução de um comando select do SQL acessando os dados de uma tabela resultou as seguintes três linhas de valores: Nome Salario Cargo -------- ------- ------------- ADRIANA 1500 AnalistaJR JULIANA 1800 Analista PL ANANIAS 1990 Analista SR Qual das opções abaixo não pode ser parte do comando select executado: here Nome like '%ANA%' and Salario > 1600 10) Considere a tabela VEICULO cujos dados estão apresentados abaixo: VEICULO PLACA CIDADE MARCA ANO COR DONO ------- ---------- ------- ---------- ---------- ---------- AAB4132 134 VW 2005 AZUL 1 AAB9252 134 GM 2006 VERDE 1 ACX4981 134 FIAT 1997 PRETO 3 BAB7852 134 VW 2002 VERDE 3 BAQ7351 245 FIAT 2003 VERDE 7 BAQ5418 245 VW 2006 BRANCO 7 BAQ2350 245 FORD 2005 PRATA 7 BAQ2178 245 GM 2004 PRATA 8 DDY2198 103 GM 2003 PRETO 10 DDY3218 103 VW 2004 PRATA 10 DDY5716 103 FORD 2004 AZUL 9 DDY3321 103 VW 2005 VERMELHO 9 DDY2156 103 FIAT 2004 VINHO 10 AZK5556 356 FIAT 2003 PRETO 11 AZK1267 356 FIAT 2000 PRATA 11 AZK3455 356 VW 2004 VINHO 5 AZK5236 356 GM 2003 VERDE 5 AZK5676 356 FIAT 2001 AZUL 4 Responda qual a quantidade de linhas resultantes do seguinte comando SQL: select Placa, Marca, Ano, Cor from Veiculo where marca = ´VW` or ano = 2006 and cor = ´VERDE`; 7 linhas selecionadas 11) Considere a tabela VEICULO cujos dados estão apresentados abaixo: VEICULO PLACA CIDADE MARCA ANO COR DONO ------- ---------- ------- ---------- ---------- ---------- AAB4132 134 VW 2005 AZUL 1 AAB9252 134 GM 2006 VERDE 1 ACX4981 134 FIAT 1997 PRETO 3 BAB7852 134 VW 2002 VERDE 3 BAQ7351 245 FIAT 2003 VERDE 7 BAQ5418 245 VW 2006 BRANCO 7 BAQ2350 245 FORD 2005 PRATA 7 BAQ2178 245 GM 2004 PRATA 8 DDY2198 103 GM 2003 PRETO 10 DDY3218 103 VW 2004 PRATA 10 DDY5716 103 FORD 2004 AZUL 9 DDY3321 103 VW 2005 VERMELHO 9 DDY2156 103 FIAT 2004 VINHO 10 AZK5556 356 FIAT 2003 PRETO 11 AZK1267 356 FIAT 2000 PRATA 11 AZK3455 356 VW 2004 VINHO 5 AZK5236 356 GM 2003 VERDE 5 AZK5676 356 FIAT 2001 AZUL 4 Responda qual a quantidade de linhas resultantes do seguinte comando SQL: select Placa, Marca, Ano, Cor from Veiculo where marca = ´FORD` or ano = 2005 and cor = ´PRATA`; linhas selecionadas 12) No banco de dados de uma empresa que realiza projetos para clientes, além de tabelas com dados de empregados e dados de projetos, está definida a tabela EmpProj (CodEmp, CodProj, HrMes), onde CodEmp é o código de um empregado, CodProj é o código de um projeto e HrMes é a quantidade de horas que o empregado dedica mensalmente ao projeto. Deseja-se identificar os projetos para os quais o total de horas dedicadas por mês seja maior que 1.000. Para esses projetos o resultado deve apresentar o código do projeto e o total de horas dedicadas. Para resolver a solicitação acima, foi escrito um comando Select do SQL, conforme abaixo: Select CodProj, sum(HrMes) from EmpProj (1) ____________________________ group by CodProj (2) ____________________________ Escolha a opção que completa o comando acima: (1) linha em branco; (2) having sum(HrMes) > 1000 Módulo 3 Uma empresa definiu um banco de dados para armazenar os seus dados organizacionais, já tendo definido as tabelas: Departamento (Codigo, Nome) e Empregado (Cod_emp, Nome_emp, Salario_emp, Cod_depto_emp) onde Cod_depto_emp é uma chave estrangeira que referencia Departamento. Os dados ainda estão sendo incluídos nas tabelas, mas já foram cadastrados vários departamentos e vários empregados. Para saber quantos empregados já estão cadastrados em cada departamento foram escritos dois comandos SQL: I) select D.Nome, (select count(*) from Empregado where cod_depto_emp = D.Codigo) as Qtde from Departamento D II ) select D.Nome, count(*) as Qtde from Departamento D inner join Empregado E on D.Codigo = E.Cod_depto_emp group by D.Nome Sobre os dois comandos acima pode-se afirmar: O comando I apresenta o resultado mais completo por que, além de apresentar tudo que o comando II apresenta, também apresenta os Departamentos com zero empregados, se houver No banco de dados de uma empresa estão definidas as tabelas: Departamento (Codigo, Nome) e Empregado (Codemp, Nomeemp, Salario, Coddeptoemp) onde Coddeptoemp é uma chave estrangeira que referencia Departamento e identifica o departamento onde o empregado trabalha. Analise o dois comandos SQL abaixo que tem como objetivo mostrar, para cada empregado, o seu nome e o código e o nome do departamento onde trabalha: I) select E.Nome, (select D.Codigo, D.Nome from Departamento D where D.Codigo = E.Coddeptoemp) from Empregado E II ) select E.Nome, E.Coddeptoemp, (select D.Nome from Departamento D where D.Codigo = E.Coddeptoemp) from Empregado E Sobre os dois comandos acima pode-se afirmar: O comando II apresenta o resultado esperado. O comando I não é executável por erro No banco de dados de uma empresa estão definidas as tabelas: Departamento (Codigo, Nome) e Empregado (Codemp, Nomeemp, Salario, Coddeptoemp) onde Coddeptoemp é uma chave estrangeira que referencia Departamento e identifica o departamento onde o empregado trabalha. Analise o dois comandos SQL abaixo que tem como objetivo mostrar os nomes dos departamentos onde trabalham empregados com salário menor do que a média salarial da empresa: I) Select D.Nome from Departamento D where exists (select * from empregado E where E.Coddeptoemp = D.codigo and E.salario < (select avg(salario) from empregado)) order by D.nome II ) select distinct D.Nome from Departamento D, Empregado E where D.codigo = E.Coddeptoemp and E.salario < (select avg(salario) from empregado) order by D.nome Sobre os dois comandos acima pode-se afirmar: Os dois comandos apresentam resultados iguais, em qualquer situação dos dados No banco de dados de uma empresa estão definidas as tabelas: Departamento (Codigo, Nome, Codgerente) e Empregado (Codemp, Nomeemp, Salario, Coddeptoemp) onde Coddeptoemp é uma chave estrangeira que referencia Departamento e identifica o departamento onde o empregado trabalha e Codgerente é uma chave estrangeira que referencia Empregado e identifica o gerente do departamento. Analise o dois comandos SQL abaixo que tem como objetivo mostrar os nomes e salários dos empregados e o nome do seu departamento, para os empregados que tem salário maior do que o salário do gerente do departamentos onde trabalham: I) select E.Nome, E.Salario, D.Nome frpom Empregado E, Empregado G, Departamento D where ECoddeptoem = D.Codigo and D.CodGerente = G.Codemp and E.salario > G.salario II ) select E.Nome, E.Salario, D.Nome from Empregado E inner join Departamento D on E.Coddeptoemp = D.Codigo inner join Empregado G on D.CodGerente = G.codemp where E.salario > G.salario Sobre os dois comandos acima pode-se afirmar: Os dois comandos apresentam resultados iguais, em qualquer situação dos dados Uma empresa de comércio eletrônico possui depósitos de produtos em diferentes regiões do país. Os dados dos produtos comercializados e estoques disponíveis estão armazenados nas seguintes tabelas: Produto (Codigo, Nome, UnidMedida, PrecoUnit) Deposito (Codigo, Nome, Cidade) EstoqueProd (CodProd,CodDeposito, QtdeEstoque), onde CodProd e CodDeposito são chaves estrangeiras referenciando as tabelas Produto e Deposito, respectivamente. Para fazer uma análise da situação de estoque dos produtos foi solicitado um relatório organizado por nome de depósito e código de produto, que apresente os depósitos e produtos onde o estoque está com menos do que 10 unidades. O seguinte comando SQL está sendo montado, mas ainda está incompleto. Select D.Codigo, D.Nome, P.Codigo, P.Nome, E.QtdeEstoque from Deposito D, Produto P, EstoqueProd E (1) _______________ (2) _______________ Escolha a opção que completa as linhas identificadas por (1) e (2) no comando acima de modo que ele retorne o resultado solicitado: (1) where D.Codigo = E.CodDeposito and P.Codigo = E.CodProd and E.QtdeEstoque < 10 (2) order by D.Nome, P.Codigo Uma empresa de comércio eletrônico possui depósitos de produtos em diferentes regiões do país. Os dados dos produtos comercializados e estoques disponíveis estão armazenados nas seguintes tabelas: Produto (Codigo, Nome, UnidMedida, PrecoUnit) Deposito (Codigo, Nome, Cidade) EstoqueProd (CodProd, CodDeposito, QtdeEstoque), onde CodProd e CodDeposito são chaves estrangeiras referenciando as tabelas Produto e Deposito, respectivamente. Para a venda de um produto de código P103, deseja-se saber os nomes dos depósitos que possuem tal produto em estoque. O seguinte comando SQL está sendo montado, mas ainda está incompleto. Select D.Nome, E.QtdeEstoque (1) _______________ (2) _______________ Escolha a opção que completa as linhas identificadas por (1) e (2) no comando acima de modo que ele retorne o resultado solicitado: (1) from Deposito D, EstoqueProd E (2) where D.codigo = E.CodDeposito and E.CodProd = 'P103' Uma empresa de comércio eletrônico possui depósitos de produtos em diferentes regiões do país. Os dados dos produtos comercializados e estoques disponíveis estão armazenados nas seguintes tabelas: Produto (Codigo, Nome, UnidMedida, PrecoUnit) Deposito (Codigo, Nome, Cidade) EstoqueProd (CodProd, CodDeposito, QtdeEstoque), onde CodProd e CodDeposito são chaves estrangeiras referenciando as tabelas Produto e Deposito, respectivamente. Para realizar uma grande venda de um produto de código AB902 deseja-se saber o total de estoque de tal produto em todos os depósitos. Para obter esse resultado foram escritos dois comandos SQL: I) Select P.nome, sum(E.QtdeEstoque) TotalEstq from EstoqueProd E, Produto P where P.Codigo = E.CodProduto and P.Codigo = 'AB902' group by P.nome II) Select (Select P.nome from Produto P where P.Codigo = 'AB902') Nome, sum(E.QtdeEstoque) TotalEstq from EstoqueProd E where E.CodProduto = 'AB902' Sobre os dois comandos acima pode se afirmar: Os dois comandos apresentam resultados iguais, em qualquer situação dos dados Módulo 4 Uma empresa definiu um banco de dados para armazenar os seus dados organizacionais, já tendo definido as tabelas: Departamento (Codigo, Nome, CodGerente) e Empregado (CodEmp, NomeEmp, Salario, CodDeptoEmp) onde CodDeptoEmp é uma chave estrangeira não nula que referencia Departamento e CodGerente é uma chave estrangeira que referencia Empregado. Os dados ainda estão sendo incluídos nas tabelas, mas já foram cadastrados alguns departamentos e vários empregados. Verifique quais dos comandos abaixo e em que ordem devem ser executados para criar um novo departamento de Contas a Pagar e registrar um novo empregado de nome João da Silva contratado para ser o seu gerente, com salário de 3000. I) insert into Departamento (codigo, nome) values ('CP', 'Contas a Pagar') II) insert into Departamento values ('CP', 'Contas a Pagar', 05) III) Insert into Empregado values (05, 'João da Silva', 3000, 'CP') IV) Insert into Empregado values (05, 'João da Silva', 3000, null) V) Update Departamento set CodGerente = 05 where Codigo = 'CP' VI) Update Empregado set CodDeptoEmp = 'CP' where CodEmp = 05 I, III, V Uma empresa definiu um banco de dados para armazenar os seus dados organizacionais, já tendo definido as tabelas: Departamento (Codigo, Nome, CodGerente) e Empregado (CodEmp, NomeEmp, Salario, CodDeptoEmp) onde CodDeptoEmp é uma chave estrangeira não nula que referencia Departamento e CodGerente é uma chave estrangeira que referencia Empregado. Os dados ainda estão sendo incluídos nas tabelas, mas já foram cadastrados alguns departamentos e vários empregados. A tabela Departamento já possui as linhas ('RH', 'Recursos Humanos', 01) ('CP', 'Contas a Pagar', 05) ('CR', 'Contas a Receber', null) Foi contratado um novo empregado, José Oliveira, para ser o gerente do departamento de Contas a Pagar, com salário 5000 e o atual gerente de contas a pagar passará a gerente de contas a receber. Verifique quais dos comandos abaixo e em que ordem devem ser executados para refletir essa modificação. I) update Empregado set CodDeptoEmp = 'CR' where CodEmp = 05 II) Update Departamento set CodGerente = 05 where Codigo = 'CR' III) Insert into Empregado values (06, 'José Oliveira', 5000, 'CP') IV) Insert into Empregado values (06, 'José Oliveira', 5000, null) V) Update Departamento set CodGerente = 06 where Codigo = 'CP' VI) Update Empregado set CodDeptoEmp = 'CP' where CodEmp = 06 I, II, III, V Uma empresa pretende aumentar em 10% o preço unitário dos seus produtos com preço menor do que 20. Os dados dos produtos estão armazenados na tabela: Produto (Codigo, Nome, UnidMedida, PrecoUnit) Para isso está sendo montado o seguinte comando de atualização, ainda incompleto Update Produto (1) _______________ (2) _______________ Escolha a opção que completa as linhas identificadas por (1) e (2) no comando acima de modo que dele resulte o resultado solicitado: (1) set PrecoUnit = PrecoUnit * 1.1 (2) where PrecoUnit < 20 Uma empresa de comércio eletrônico possui depósitos de produtos em diferentes regiões do país. Os dados dos produtos comercializados e estoques disponíveis estão armazenados nas seguintes tabelas: Produto (Codigo, Nome, UnidMedida, PrecoUnit) Deposito (Codigo, Nome, Cidade) EstoqueProd (CodProd, CodDeposito, QtdeEstoque), onde CodProd e CodDeposito são chaves estrangeiras referenciando as tabelas Produto e Deposito, respectivamente. O produto de código P103 passará a ser armazenado no depósito 04, ambos já incluídos nas tabelas Produto e Estoque, respectivamente. O estoque inicial será de 300 unidades. O seguinte comando SQL está sendo montado, mas ainda está incompleto. Insert into EstoqueProd (1) _______________ (2) _______________ Escolha a opção que completa as linhas identificadas por (1) e (2) no comando acima de modo que dele resulte o resultado solicitado: (1) values ( 'P103', 04, 300) (2) linha em branco Módulo 5 Sobre as propriedades das transações lógicas de atualização de banco de dados, é INCORRETO afirmar que: A propriedade de Isolamento não garante que a execução simultânea de transações resulte na mesma situação do banco de dados que seria obtida caso as transações tivessem sido executadas uma de cada vez Analise as afirmações abaixo sobre transações lógicas de atualização de banco de dados: I - Transação é um conjunto de comandos de atualização de dados definidos como uma unidade de execução para garantir a integridade dos dados II - Uma transação, após ser iniciada, tem sempre que ser efetivada III - Uma transação, mesmo que seja encerrada de forma anormal, sempre deixa o banco de dados em um estado de estabilidade Escolha a alternativa correta abaixo: Apenas a afirmação II é falsa Analise as afirmações abaixo sobre transações lógicas de atualização de banco de dados: I - Várias transações distintas podem estar em execução simultânea no sistema II - O controle de concorrência de um SGBD (Sistema Gerenciador de Banco de Dados) garante que nenhuma transação seja abortada durante sua execução III - Uma transação só se inicia quando todas as outras forem concluídasEscolha a alternativa correta abaixo: Apenas a afirmação I é verdadeira Analise as afirmações abaixo sobre transações lógicas de atualização de banco de dados: I – O comando COMMIT do SQL, encerra a transação corrente e efetivando as atualizações realizadas II – O comando ROLLBACK do SQL, encerra a transação corrente desfazendo todas as atualizações realizadas III - Se uma transação falhar no meio de sua execução, o usuário precisará executar comandos para desfazer seus efeitos e garantir a integridade do banco de dados Escolha a alternativa correta abaixo: Apenas a afirmação III é falsa Seja a tabela Empregado(Codigo, Nome, Cargo, Salario) contendo a linha (01, 'Joao da Silva', 'Programador', 2000.00). Qual será o conteúdo da linha após a sequência de comandos: update Empregado set salario = salario * 1.2 where codigo = 01; commit; update Empregado set salario = salario+2000, cargo = 'Analista' where codigo = 01; rollback; (01, 'Joao da Silva', 'Programador', 2400.00) Seja a tabela Empregado (Codigo, Nome, Cargo, Salario) contendo a linha (01, 'Joao da Silva', 'Programador', 2000.00). O que pode-se dizer se forem executados os seguintes comandos SQL: update Empregado set salario = salario * 1.1 where codigo = 01; update Empregado set cargo = 'Programador Senior' where codigo = 01; delete Empregado where cargo = 'Programador'; commit; O conteúdo da linha da tabela será (01, 'Joao da Silva', 'Programador Senior', 2200.00) Sejam as seguintes afirmações sobre a recuperação de bancos de dados: I - A recuperação de um banco de dados significa restaurá-lo a um estado consistente, após a ocorrência e detecção de alguma falha II - A redundância da informação é uma característica necessária e obrigatória para a recuperação de um banco de dados II - Em um banco de dados, todas as transações executadas devem preservar a consistência dos dados Sobre as afirmações, pode-se dizer que: Apenas a afirmação II é falsa Sobre o mecanismo de recuperação de banco de dados baseado em log, podemos dizer que: I - O uso de log permite recuperar o banco de dados em caso de falhas II - O uso de log tem por objetivo principal identificar o responsável por cada modificação no banco de dados III - O log armazena em seu conteúdo informações sobre as atualizações realizadas na base de dados Sobre as afirmações, pode-se dizer que: Apenas a afirmação II é falsa Sobre o mecanismo de recuperação baseado em log, podemos dizer que: I - O registro de uma atualização no log deve ser realizado antes da modificação ser feita no banco de dados II - Ficam registrados no log eventos como COMMIT e ROLLBACK de transações III - O mecanismo de recuperação em log está relacionado com a propriedade de atomicidade de uma transação Sobre as afirmações, pode-se dizer que: Todas as afirmações apresentadas são verdadeiras Seja a tabela Empregado (Codigo, Nome, Cargo, Salario) contendo 1.000 linhas referentes a dados de mil empregados, sobre a qual será aplicada a seguinte transação de atualização: update Empregado set salario = salario * 1.1; commit; Se durante a execução do comando update, após terem sido atualizadas 500 linhas da tabela, ocorrer uma falha que desative o computador onde está o banco de dados, o que o sistema gerenciador de banco de dados fará quando for reinicializado? Restaurará todos os valores originais, anteriores ao início da transação Módulo 6 Em um banco de dados estão definidas as tabelas: Departamento (Codigo integer (3), nome char (40), primary key (Codigo)) e Empregado ( Codigo integer(5) primary key, Nome char (30), Depto integer (3) not null, salario numeric (9,2), foreign key (Depto) references Departamento (codigo) on delete cascade, ) Analise as afirmações abaixo: I – Na execução do comando SQL Delete from Departamento where Codigo = 39; além de uma linha com Codigo = 39 na tabela Departamento, também serão excluídas todas as linhas da tabela Empregado com Depto = 39, se houver II – O comando SQL Insert into Empregado (Codigo, nome) values (432, 'Jose Oliveira') será executado com sucesso não existir uma linha na tabela Empregado com Codigo = 432 III – A execução do comando SQL Update Empregado set Depto = 50 where Depto is null não modificará nenhuma linha na tabela Empregado, independente de quais sejam os dados que estejam nela gravados Escolha a alternativa correta abaixo: Apenas a afirmação II é falsa Em um banco de dados estão definidas as tabelas: Departamento (Codigo integer (3), nome char (40), primary key (Codigo)) e Empregado ( Codigo integer(5) primary key, Nome char (30), Depto integer (3) not null, salario numeric (9,2), foreign key (Depto) references Departamento (codigo) on delete cascade, ) Analise as afirmações abaixo: I – Toda linha na tabela Empregado possui valor no campo Depto II – Pode existir linha na tabela Empregado com o campo Depto nulo III – Na execução do comando SQL Delete from Departamento where codigo = 101 todos as linhas da tabela Empregado com o campo Depto = 101 também serão excluídas Escolha a alternativa correta abaixo: Apenas a afirmação II é falsa Considere as seguintes tabelas: Departamento (codigo, nome, primary key(codigo)); Cargo (codigo, nome, primary key(codigo)); Empregado (Codigo, nome, cod_cargo, cod_depto, primary key(Codigo), foreign key (cod_cargo) references Cargo(codigo), foreign key (cod_depto) references departamento(codigo) on delete set null); Dependente (Id_dep, Cod_Responsavel, primary key(Id_dep), foreign key (Cod_Responsavel) references Empregado (codigo) on delete cascade, nome); Projeto (Codigo, nome, primary key(Codigo) ); EquipeProjeto (Cod_Proj, Cod_emp, primary key (Cod_Proj, Cod_emp), foreign key (Cod_Proj) references Projeto (codigo) on delete cascade, foreign key (Cod_emp) references empregado (codigo) on delete cascade); Analise as afirmações abaixo: I – Se um Empregado for excluído todos as linhas em Dependentes e e em EquipeProjeto que o referenciam serão automaticamente excluídas II – Um departamento não pode ser excluído se estiver referenciado em alguma linha da tabela Empregado III – Um projeto não pode ser excluído se estiver referenciado em alguma linha na tabela EquipeProjeto Escolha a alternativa correta abaixo: Apenas a afirmação I é verdadeira Considere as seguintes tabelas: Departamento (codigo, nome, primary key(codigo)); Cargo (codigo, nome, primary key(codigo)); Empregado (Codigo, nome, cod_cargo, cod_depto, primary key(Codigo), foreign key (cod_cargo) references Cargo(codigo), foreign key (cod_depto) references departamento(codigo) on delete set null); Dependente (Id_dep, Cod_Responsavel, primary key(Id_dep), foreign key (Cod_Responsavel) references Empregado (codigo) on delete cascade, nome); Projeto (Codigo, nome, primary key(Codigo) ); EquipeProjeto (Cod_Proj, Cod_emp, primary key (Cod_Proj, Cod_emp), foreign key (Cod_Proj) references Projeto (codigo) on delete cascade, foreign key (Cod_emp) references empregado (codigo) on delete cascade); Analise as afirmações abaixo: I – Se um Dependente for excluído o Empregado de quem ele depende também será automaticamente excluído II – Se um departamento for excluído , todas as linhas na tabela Empregado que o referenciam ficarão com cod_depto nulo III - Se um cargo for excluído, todas as linhas na tabela Empregado que o referenciam ficarão com cargo nulo Escolha a alternativa correta abaixo: Apenas a afirmação II é verdadeira Considere as seguintes tabelas: Departamento (codigo, nome, primary key(codigo)); Cargo (codigo, nome, primary key(codigo)); Empregado (Codigo, nome, cod_cargo, cod_depto references departamento(codigo) on delete set null, primary key(codigo) foreign key (cod_cargo) references Cargo(codigo), foreign key (cod_depto)references departamento(codigo) on delete set null ); Estas tabelas possuem dados já gravados, entre eles as seguintes linhas: Cargo ('AN01', 'Analista Jr') Empregado (154, 'Jose', 'AN01', null) Deseja-se excluir o cargo AN01, deixando com cargo nulo os empregados que tenham esse cargo, como o empregado José acima. Analise os comandos SQL abaixo e indique quais e em que ordem devem ser executados: I – Delete from Cargo where codigo = 'AN01' II – Update Empregado set cod_cargo = null where cod_cargo = 'AN01' III - Delete from Empregado where cod_cargo = 'AN01' IV – Delete from Cargo where codigo in (select cod_cargo from Empregado where cod_cargo = 'AN01') Escolha a alternativa correta abaixo: II, I Módulo 7 Em um sistema gerenciador de bancos de dados, normalmente é possível criar gatilhos (triggers), cujo disparo pode ocorrer em decorrência de alguma operação de exclusão, modificação ou inserção de um registro em uma tabela do banco de dados. AOCP - 2012 - BRDE - Analista de Sistemas - Administrador de Banco de Dados Sobre Triggers em SQL, analise as assertivas e assinale a alternativa que aponta a(s) correta(s). I. Em alguns casos, é conveniente especificar um tipo de ação a ser tomada quando certos eventos ocorrem e quando certas condições são satisfeitas em um banco de dados. Podemos criar esses mecanismos através do comando CREATE TRIGGERS. II. Triggers permitem a junção entre n tabelas em um banco. III. Triggers são especialistas na conversão e adaptação de comandos SQL de um SGBD para outro. IV. Um típico Triggers possui três componentes: evento(s), condição e ação. Apenas I e IV. Prova: CONSULPLAN - 2012 - TSE - Analista Judiciário - Análise de Sistemas Disciplina: Banco de Dados | Assuntos: Gatilhos (Triggers); CONSULPLAN - 2012 - TSE - Analista Judiciário - Análise de Sistemas Um recurso poderoso é empregado em bases de dados Cliente/Servidor, executado em resposta a determinados eventos numa tabela ou visão, com o objetivo de manter a integridade das informações no banco de dados. Por exemplo, quando um novo registro, representando um novo funcionário, é adicionado à tabela empregados, novos registros também são criados nas tabelas de impostos, férias e salários. Esse recurso é usado normalmente para realizar tarefas relacionadas com validações e consistência de dados, segurança e restrições de acesso. Esse recurso denomina-se trigger. FCC - 2011 - TRT - 19ª Região (AL) - Técnico Judiciário - Tecnologia da Informação Para uma dada tabela, foram criados 4 triggers utilizando-se PL/SQL, conforme abaixo: I. Trigger1 - BEFORE <statement> II. Trigger2 - BEFORE <for each row> III. Trigger3 - AFTER <statement> IV. Trigger4 - AFTER <for each row> A sequência correta em que os triggers acima serão disparados é: I, II, IV e III. FCC - 2010 - AL-SP - Agente Técnico Legislativo Especializado - Admin e Arquitetura de Dados Triggers são procedimentos armazenados cuja execução é disparada antes ou depois da ocorrência de um evento em uma tabela com o qual estão relacionados. FCC - 2010 - DPE-SP - Agente de Defensoria - Administrador de Banco de Dados NÃO se trata de uma característica das stored procedures: utilizar somente comandos SQL padronizados. FUMARC - 2012 - TJ-MG - Técnico Judiciário - Administrador de Banco de Dados A linguagem PL/SQL permite o uso de comandos SELECT diretamente dentro do programa. A seguir são apresentados trechos PL/SQL para obter o salário (coluna Salario) do empregado (tabela EMPREGADO) de matrícula (coluna Matricula) 4050. Considere que existe um único empregado com a Matricula 4050. Está CORRETO o seguinte trecho: DECLARE v_sal EMPREGADO number; BEGIN select salario into v_sal from EMPREGADO where matricula = 4050; END; Módulo 8 Qual das alternativas abaixo é FALSA? A inserção e remoção de registros não requer atualização do índice Sobre a organização de arquivos com base na técnica de hashing é INCORRETO afirmar que: Uma função hash sempre resulta em procuras eficientes A estrutura de índice em árvore-B+ é a mais utilizada das diversas estruturas de índices que mantêm sua eficiência, mesmo em casos onde ocorram inserções ou remoções de dados. Podemos dizer que: A afirmação acima está correta Analise as afirmações abaixo: I - Índices são estruturas que agilizam o acesso aos dados armazenados no banco de dados II - A escolha e implementação dos índices em um banco de dados normalmente são tarefas do Administrador de Banco de Dados III - Algumas das estruturas mais comuns para a implementação de índices são as árvores-B+ e árvores-B Escolha a alternativa correta abaixo: TODAS as afirmações apresentadas são verdadeiras Analise as afirmações abaixo: I - Árvores-B+ são estruturas de árvores balanceadas, bastante utilizadas para implementar índices II - Cada nó da árvore-B+ contém valores e ponteiros para outros nós da árvore III - Árvores-B e árvores-B+ são estruturas similares e com o mesmo objetivo IV - Atualizações nos valores dos dados armazenados no banco de dados não afetam o conteúdo dos índices Apenas a afirmação IV é falsa 6) Considere as seguintes afirmações sobre hashing: I) As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição. II) No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada. III) Considerando que uma tabela hash (tabela de espalhamento) possua cinco posições numeradas 0, 1, 2, 3 e 4 e que nela esteja armazenada uma sequência de quadrado de valores inteiros definida como, 1, 4, 9, 16, etc, segundo a função f(x) = x mod 5, ou seja, resto da divisão de x por 5, pode-se afirmar que a tabela hash terá colisões em suas posições. Pode-se afirmar que: I e III estão corretas 7) Considere as seguintes afirmações sobre hashing: I) As colisões ocorrem na utilização de tabela hash porque várias chaves podem resultar na mesma posição. II) No uso de estruturas de transformação de chave (hashing), a solução de colisões usando encadeamento tem como principal característica o fato de nunca transbordar. Adicionalmente, o tempo de busca na lista ligada pode ser reduzido se uma lista duplamente encadeada for utilizada. III) Considerando que uma tabela hash (tabela de espalhamento) possua cinco posições numeradas 0, 1, 2, 3 e 4 e que nela esteja armazenada uma sequência de quadrado de valores inteiros definida como, 1, 4, 9, 16, etc, segundo a função f(x) = x mod 5, ou seja, resto da divisão de x por 5, pode-se afirmar que a tabela hash terá colisões em suas posições. Pode-se afirmar que: I e III estão corretas 2010 CESGRANRIO ELETROBRAS Analista de Sistemas - Suporte Basis SAP R3 Um órgão público, que disponibilizou recentemente um sistema Web, recebe reclamações de seus usuários sobre lentidão. Um analista de sistemas identificou que não existem determinados índices no banco de dados. No SGBD relacional, que comando é utilizado para criar índices? CREATE INDEX ......... 2010 FCC AL-SP Agente Técnico Legislativo Especializado - Admin e Arquitetura de Dados Sua utilização tem como finalidade principal agilizar a consulta, possibilitando a localização ágil de um registro na tabela. Esta descrição refere-se a Index 2013 VUNESP MPE-ES Agente Especializado - Analista de Banco de Dados O comando SQL para excluir o índice de nome Phone é DROP INDEX Phone 2012 FUNCAB MPE-RO Analista de Sistemas Na criação de uma tabela em um banco de dados relacional, o parâmetro UNIQUE do comando CREATE INDEX: garante a unicidade da coluna indexada ou conjunto de colunas indexadas. 2016 FCC TRT - 23ª REGIÃO (MT) Técnico Judiciário - Tecnologia da Informação A constraint SQL que garante que umvalor NÃO possa se repetir em uma coluna da tabela, podendo ser nulo, é UNIQUE.
Compartilhar