Questões de Concurso
Sobre banco de dados
Foram encontradas 15.698 questões
Resolva questões gratuitamente!
Junte-se a mais de 4 milhões de concurseiros!
Considere as afirmações abaixo sobre as vantagens de procedimentos armazenados (stored procedures) em Sistemas de Gerência de Banco de Dados (SGBDs).
I - Desempenho: a maioria dos SGBDs compilam os procedimentos armazenados, gerando uma representação interna que pode ser executada de forma bastante eficiente no SGBD, com desempenho bem melhor do que o de comandos equivalentes invocados a partir de um programa de aplicação, por exemplo, através de uma API (Application Programing Interface).
II - Reusabilidade: um procedimento armazenado definido para uma função específica pode ser invocado de múltiplas formas, por exemplo, por diferentes aplicações, procedimentos armazenados ou gatilhos.
III - Segurança: um procedimento armazenado precisa ser testado e homologado pelo DBA (administrador do banco de dados), garantindo assim que não irá gerar erros de execução.
IV - Redução do tráfego de rede: em uma configuração cliente/servidor, invocar um procedimento armazenado a partir de uma aplicação no cliente, recebendo os resultados, gera bem menos tráfego do que invocar um conjunto equivalente de comandos SQL a partir de uma lógica controlada em um programa de aplicação.
Quais estão corretas?
Observe as tabelas FUNCIONARIOS, PROJETOS e PARTICIPACOES definidas abaixo, usando SQL, que representam funcionários e a participação destes em projetos.
Create table PROJETOS
(codp char(2) not null primary key,
cliente varchar(100) not null,
orcamento numeric(15,2) not null,
pais char(2) not null);
create table FUNCIONARIOS
(matr char(2) not null primary key,
nomef varchar(100) not null,
salario numeric(8,2) not null,
pais char(2) not null);
create table PARTICIPACOES
(codp char(2) not null,
matr char(2) not null,
horas integer not null,
primary key (codp, matr),
foreign key (codp) references PROJETOS,
foreign key (matr) references FUNCIONARIOS);
Considere a consulta SQL abaixo.
O que essa consulta SQL recupera?
Observe as tabelas FUNCIONARIOS, PROJETOS e PARTICIPACOES definidas abaixo, usando SQL, que representam funcionários e a participação destes em projetos.
create table PROJETOS
(codp char(2) not null primary key,
cliente varchar(100) not null,
orcamento numeric(15,2) not null,
pais char(2) not null);
create table FUNCIONARIOS
(matr char(2) not null primary key,
nomef varchar(100) not null,
salario numeric(8,2) not null,
pais char(2) not null);
create table PARTICIPACOES
(codp char(2) not null,
matr char(2) not null,
horas integer not null,
primary key (codp, matr),
foreign key (codp) references PROJETOS,
foreign key (matr) references FUNCIONARIOS);
Observe as instâncias destas tabelas.
Considere a consulta SQL abaixo, que segue o padrão SQL2.
SELECT cliente
FROM projetos natural left join participacoes natural join funcionarios
GROUP BY codp, cliente
HAVING count(*) > 1;
A consulta SQL acima recuperará
update tabela_a set coluna_a = ‘X’ where coluna_b = ‘Y’;
create trigger trg_01 before delete on tabela_a begin insert into tabela_b values (‘W’, ‘K’); end;
create procedure proc_01 (p_matricula in number, p_perc in number, p_promocao in varchar2) as declare n_salario number; begin update func set salario = salario * 1 + (p_rec / 100) where matricula = p_matricula; if p_promocao is not null then select salario into n_salario from func where matricula = p_matricula; insert into historico values (p_matricula, sysdate, n_salario); end if; commit; end;
Considerando as tabelas
após a execução do comando SQL
insert into acessos (
select 2, a1.cod_acesso
from acessos a1, usuarios u
where a1.cod_usuario = u.cod_usuario
and u.usuario = ‘J’
and not exists (select 1 from acessos a2 where a1.cod_acesso = a2.cod_acesso));
a tabela ACESSOS terá o seguinte conteúdo:
SERT SERVEROUTPUT ON DECLARE e_codigo_invalido EXCEPTION; v_cod_motorista MOTORISTA.num_pessos_pf%type := cod_motorista; BEGIN UPDATE MOTORISTA SET data_validade_habilitacao = ‘&nova_data_habilitacao’ WHERE num_pessoa_pf = v_cod_motorista; IF SQL%NOTFOUND THEN RAISE e_codigo_invalido; ENDIF; EXCEPTION WHEN e_codigo_invalido THEN DMS_OUTPUT.PUT_LINE(‘O motorista não está cadastrado’); END;
Para atualizar a data de validade da carteira de habilitação de um motorista, a instrução acima implementa uma exceção
I - Restrições de domínio especificam o conjunto de valores possíveis associados a um atributo. Tais regras podem também proibir o uso de valores nulos para atributos. II - Restrições de integridade referencial asseguram que um valor que apareça em uma relação para um dado conjunto de atributos também apareça para um certo conjunto de atributos em outra relação. III - Dependências funcionais são a generalização de chave de dependência. Elas exigem que os valores de um certo conjunto de atributos determine, de modo unívoco, os valores para outro conjunto de atributos.
Quais estão corretas?
GRANT SELECT ON scott.emp TO primeiro;
A instrução acima cria um usuário com o privilégio de
1. SELECT nome_pessoa 2. FROM PESSOA_FISICA 3. WHERE data_nascimento = (SELECT data_nascimento 4. FROM PESSOA_FISICA 5. WHERE nome_pessoa = ‘João’)
Sobre essa consulta, considere as afirmações abaixo.
I - A consulta retorna nomes de pessoas físicas que fazem aniversário no mesmo dia que João. II - A subconsulta que inicia na linha 3 será realizada antes, para que o seu resultado seja utilizado na comparação data_nascimento = (SELECT ...). Em seguida, será realizada a consulta principal, que inicia na linha 1. III - A subconsulta que inicia na linha 3 poderá ter mais de uma linha com resultado.
Quais estão corretas?