José Malcher Jr.

Eng. Software – Analista de Sistemas

Prova de Projeto e Otimização de Banco de Dados (38 questões)


Questão 01

São informações contidas nos metadados do Banco de Dados, EXCETO:

  1. Estrutura.
  2. Objetos de usuário;
  3. Autorização;
  4. Usuários;
  5. Páginas Web;

Resposta:
Páginas Web.


Questão 02

São estados de uma transação, EXCETO:

  1. Concluída.
  2. Efetivada;
  3. Ativa;
  4. Em processo de efetivação;
  5. Monitorada;

Resposta

Monitorada.


Questão 03

A respeito das CONSTRAINTS na linguagem SQL, marque a opção correta:

  1. FOREIGN KEY: Dados da coluna devem coincidir com os valores da coluna na tabela referenciada.
  2. PRIMARY KEY: Depende da existência de uma FOREIGN KEY.
  3. UNIQUE: Garante a integridade referencial dos dados.
  4. CHECK: Verifica o valor da chave primária.
  5. NOT NULL: Garante que uma linha de uma coluna contem valores únicos.

Resposta

FOREIGN KEY: Dados da coluna devem coincidir com os valores da coluna na tabela referenciada.


Questão 04

A respeito do Gerente de Transações, Concorrência e Recuperação, marque a afirmativa correta:

  1. Responsável pela localização e acesso de blocos em disco.
  2. Responsável pelo log do sistema, mas não tem influência na recuperação do SGBD;
  3. Garante a consistência dos dados sem concorrência de transações;
  4. Componente presente apenas em SGBD não relacional;
  5. Gerência dos bloqueios (LOCKS);

Resposta

Gerência dos bloqueios (LOCKS)

 


Questão 05

Marque a alternativa que corresponde a sentença em SQL para criação do seguinte esquema: ALUNO(MAT CHAR(5) Chave Primária, NOME VARCHAR(50) não nulo, CODCURSO CHAR(2))

  1. CREATE TABLE ALUNO(MAT CHAR(5) primary key, NOME VARCHAR(50) NOT NULL, CODCURSO CHAR(2));
  2. CREATE TABLE ALUNO(MAT CHAR(5) foreign key, NOME CHAR(50) NOT NULL, CODCURSO CHAR(2));
  3. CREATE TABLE ALUNO(MAT VARCHAR primary key, NOME CHAR NOT NULL, CODCURSO INT);
  4. CREATE TABLE ALUNO(MAT VARCHAR(5) primary key, NOME CHAR(50) NULL, CODCURSO CHAR(2));
  5. CREATE TABLE ALUNO(MAT CHAR(5) primary key, NOME VARCHAR NOT NULO, CODCURSO VARCHAR));

Resposta

CREATE TABLE ALUNO(MAT CHAR(5) primary key, NOME VARCHAR(50) NOT NULL, CODCURSO CHAR(2));


Questão 06

Considere o esquema de uma empresa conforme segue:

FUNC (COD_FUNC, NOME, DTA_NASC, SALARIO, NRO_DEPTO, COD_SUPERV)‏;

DEPTO (NRO_DEPTO, NOME)‏;

PROJETO (COD_PROJ, NOME, DURACAO, NRO_DEPTO)‏;

PARTICIPA (COD_PROJ, COD_FUNC, HORAS_TRAB).

Marque a alternativa que contém o comando em SQL para recuperar os nomes dos funcionários e os nomes dos seus respectivos supervisores.

 

  1. SELECT F.NOME, S.NOME FROM FUNC F, FUNC S;
  2. SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_FUNC = S.COD_SUPERV;
  3. SELECT F.NOME, PA.NOME FROM FUNC F, PARTICIPA PA WHERE F.COD_FUNC = PA.COD_FUNC.
  4. SELECT F.NOME, F.NOME_SUPERV FROM FUNC F;
  5. SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_SUPERV = S.COD_FUNC;

Resposta

SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_SUPERV = S.COD_FUNC;


Questão 07

Considere o esquema de uma empresa conforme segue:

Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv)‏;

Depto (nro_depto, nome)‏; Projeto (cod_proj, nome, duracao, nro_depto)‏;

Participa (cod_proj, cod_func, horas_trab).

Marque a opção que corresponde ao comando SQL para remover todas as participações em projetos do funcionário 20.

 

  1. DELETE FROM PARTICIPA;
  2. TRUNCATE TABLE PARTICIPA;
  3. DELETE FROM PARTICIPA WHERE COD_FUNC=20;
  4. DROP TABLE PARTICIPA WHERE COD_FUNC=20;
  5. ALTER TABLE PARTICIPA SET COD_FUNC=20;

Resposta

DELETE FROM PARTICIPA WHERE COD_FUNC=20;


Questão 08

Considere o esquema de uma empresa conforme segue:

Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv); ‏

Depto (nro_depto, nome)‏;

Projeto (cod_proj, nome, duracao, nro_depto)‏;

Participa (cod_proj, cod_func, horas_trab).

A opção que contem o comando em SQL para obter o maior e o menor salário da empresa é:

  1. SELECT MAX(SALARIO), MIN(SALARIO) FROM FUNC;
  2. SELECT MAIOR(SALARIO), MENOR(SALARIO) FROM FUNC;
  3. SELECT MIN(SALARIO), MAX(SALARIO) FROM FUNC;
  4. SELECT COUNT(SALARIO), AVG(SALARIO) FROM FUNC;
  5. SELECT SUM(SALARIO), AVG(SALARIO) FROM FUNC;

Resposta

SELECT MAX(SALARIO), MIN(SALARIO) FROM FUNC;


Questão 09

Considere o esquema de uma empresa conforme segue:

CARGO (COD_CARGO, DESCRICAO, SALARIO_MIN, SALARIO_MAX);‏

FUNCIONARIO (MATRICULA, NOME, COD_CARGO, MAT_CHEFE, DT_NASC, SALARIO);

CONTRATADO (MATRICULA, NOME, COD_CARGO, SALARIO).

Marque a alternativa que contém o comando em SQL para recuperar o nome do funcionário e a descrição do seu cargo, listando os cargos sem funcionários.

  1. SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F FULL OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
  2. SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F LEFT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
  3. SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F INNER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
  4. SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F RIGHT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
  5. SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;

Resposta

SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F RIGHT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;


Questão 10

São ações para melhoria de comandos SQL, EXCETO:

  1. Evitar o comando SELECT;
  2. Analisar e alterar o plano de execução;
  3. Armazenar o plano de execução;
  4. Reestruturar os dados;
  5. Reestruturar os índices envolvidos no comando;

Resposta

Reestruturar os dados;


Questão 11

São operações de controle das transações, EXCETO:

  1. ROLLBACK TO SAVEPOINT.
  2. SAVEPOINT;
  3. ROLLBACK;
  4. CHECKPOINT;
  5. COMMIT;

Resposta:

CHECKPOINT


Questão 12

A respeito da geração de planos de execução no SGBD Oracle, marque a opção CORRETA:

  1. A procedure DBMS_XPLAN é usada para consultar a tabela de planos;
  2. A tabela EXPLAIN PLAN contém o caminho de execução da consulta;
  3. ROWS é o número associado ao comando dentro do plano de execução.
  4. O script ¿utlxpls.sql¿, cria a tabela PLAN_TABLE;
  5. O script ¿utlxplan.sql¿, apresenta o plano de execução formatado;

Resposta:

A procedure DBMS_XPLAN é usada para consultar a tabela de planos;


Questão 13

Em relação aos afirmações abaixo sobre Métodos de Acesso, marque a alternativa INCORRETA:

  1. FULL TABLE SCAN – Leitura de todos os blocos em sequência;
  2. CLUSTER SCAN – Registros de tabelas relacionadas em blocos diferentes;
  3. FULL TABLE SCAN ¿ Usado quando recuperamos um percentual grande de linhas da tabela.
  4. ROWID SCAN – É o método de acesso mais rápido;
  5. HASH SCAN – Índice não é necessário;

Resposta:

CLUSTER SCAN – Registros de tabelas relacionadas em blocos diferentes;


Questão 14

Considere a sua divisão sintática, são subconjuntos de comandos da linguagem SQL, exceto:

  1. DSL
  2. DQL
  3. DDL
  4. DCL
  5. DML

Resposta:

DSL


Questão 15

Considere o esquema de uma empresa conforme segue:

FUNC (COD_FUNC, NOME, DTA_NASC, SALARIO, NRO_DEPTO, COD_SUPERV)‏;

DEPTO (NRO_DEPTO, NOME)‏;

PROJETO (COD_PROJ, NOME, DURACAO, NRO_DEPTO)‏;

PARTICIPA (COD_PROJ, COD_FUNC, HORAS_TRAB).

Marque a alternativa que contém o comando em SQL para recuperar os nomes dos funcionários e os nomes dos projetos dos quais participaram.

  1. SELECT F.NOME, P.NOME FROM PARTICIPA PA, PROJETO P, FUNC F WHERE PA.COD_PROJ=P.COD_PROJ AND PA.COD_FUNC = F.COD_FUNC;
  2. SELECT NOME, NOME FROM PROJETO P, FUNC F WHERE P.COD_FUNC = F.COD_FUNC;
  3. SELECT F.NOME, PA.NOME FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC;
  4. SELECT * FROM PARTICIPA PA, PROJETO P, FUNC F;
  5. SELECT F.NOME, P.NOME FROM PROJETO P, FUNC F;

 

Resposta:

SELECT F.NOME, P.NOME FROM PARTICIPA PA, PROJETO P, FUNC F WHERE PA.COD_PROJ=P.COD_PROJ AND PA.COD_FUNC = F.COD_FUNC;


Questão 16

Considere o esquema de uma empresa conforme segue:

FUNC (COD_FUNC, NOME, DTA_NASC, SALARIO, NRO_DEPTO, COD_SUPERV)‏;

DEPTO (NRO_DEPTO, NOME)‏;

PROJETO (COD_PROJ, NOME, DURACAO, NRO_DEPTO)‏;

PARTICIPA (COD_PROJ, COD_FUNC, HORAS_TRAB).

Marque a alternativa que contém o comando em SQL para eliminar todos os privilégios do usuário Pedro na tabela FUNC.

  1. REVOKE PRIVILEGES ON FUNC FROM PEDRO;
  2. REVOKE ALL ON PEDRO FROM FUNC;
  3. REVOKE ALL ON FUNC FROM PEDRO;
  4. REVOKE ALL FROM PEDRO ON FUNC;
  5. REVOKE PUBLIC ON FUNC FROM PEDRO;

Resposta:

REVOKE ALL ON FUNC FROM PEDRO;


Questão 17

A respeito da estrutura de dados Árvore B+, são verdadeiras as afirmativas, EXCETO:

  1. As chaves são repetidas em nós não-folha formando um índice;
  2. As folhas são ligadas oferecendo um caminho sequencial para percorrer as chaves;
  3. Reorganiza-se automaticamente com pequenas mudanças locais.
  4. Todas as chaves são mantidas em folhas;
  5. Tem como vantagem não gerar sobrecarga de espaço;

Resposta:

Tem como vantagem não gerar sobrecarga de espaço;


Questão 18

Seja uma transação com os seguintes comandos em SQL :

INSERT INTO Cargo (CodCargo, Descricao) VALUES (‘AN’, ‘Analista’);

UPDATE Func SET salario = salario * 1.20 WHERE NRO_Depto = 10; COMMIT;

DELETE FROM Func; ROLLBACK;

Podemos afirmar que:

  1. O cargo de analista é inserido, os funcionários do departamento 10 recebem aumento de 2%, mas nenhum funcionário é excluído;
  2. O cargo de código ‘AN’ é inserido, os salários dos funcionários do departamento 20 são atualizados, mas nenhum funcionário é excluído;
  3. O cargo de analista é inserido, os salários dos funcionários do departamento 10 são atualizados e todos os funcionários são excluídos;
  4. O cargo de analista é inserido, os salários dos funcionários do departamento 10 são atualizados, mas nenhum funcionário é excluído;
  5. O cargo de código ‘AN’ é inserido, os salários dos funcionários do departamento 10 são atualizados, mas o comando ROLLBACK desfaz todas as atualizações anteriores.

Resposta:

O cargo de analista é inserido, os salários dos funcionários do departamento 10 são atualizados, mas nenhum funcionário é excluído;


Questão 19

Considere o esquema de uma empresa conforme segue:

Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv)‏;

Depto (nro_depto, nome)‏;

Projeto (cod_proj, nome, duracao, nro_depto)‏;

Participa (cod_proj, cod_func, horas_trab).

Marque a opção que representa o comando SQL para inserir valores nas tabelas Depto e Projeto:

  1. INSERT PROJETO (1, 3) e INSERT DEPTO (‘WEB’, ‘Nova Intranet’);
  2. INSERT INTO DEPTO, PROJETO VALUES (1, ‘Recursos Humanos’), VALUES (‘WEB’, ‘Nova Intranet’, 100, 1);
  3. INSERT INTO DEPTO VALUES (1, ‘Recursos Humanos’) e INSERT INTO PROJETO VALUES (‘WEB’, ‘Nova Intranet’, 100, 1);
  4. INSERT DEPTO (1, 3) e INSERT PROJETO (‘WEB’, ‘Nova Intranet’);
  5. INSERT INTO DEPTO (1, ‘Recursos Humanos’) e INSERT INTO PROJETO (‘WEB’, ‘Nova Intranet’, 100, 1);

 

Resposta:

INSERT INTO DEPTO VALUES (1, ‘Recursos Humanos’) e INSERT INTO PROJETO VALUES (‘WEB’, ‘Nova Intranet’, 100, 1);

 


Questão 20

Sobre os operadores da álgebra relacional, marque a alternativa incorreta:

  1. O símbolo π representa uma operação de projeção.
  2. O símbolo ← representa uma operação de renomeação;
  3. São funções matemáticas de agregação: SOMA, MÉDIA, MÁXIMO e MÍNIMO;
  4. São exemplos de operadores usuais da teoria de conjuntos da matemática: união, interseção, diferença e produto cartesiano;
  5. O símbolo σ representa uma operação de seleção;

 

Resposta:

O símbolo ← representa uma operação de renomeação;


Questão 21

Considere o esquema de uma empresa conforme segue:

Func (cod_func, nome, dta_nasc, salario, nro_depto, cod_superv)‏;

Depto (nro_depto, nome)‏;

Projeto (cod_proj, nome, duracao, nro_depto)‏;

Participa (cod_proj, cod_func, horas_trab).

Marque a alternativa que contém o comando em SQL para recuperar o nome e o salário dos funcionários do departamento 5, com salário na faixa entre 1000 e 2000.

 

  1. SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
  2. SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
  3. SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
  4. SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
  5. SELECT NOME, SALARIO FROM FUNC WHERE SALARIO = 1000 AND NRO_DEPTO BETWEEN 1 AND 5;

Resposta

SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;

 


Questão 22

Em SQL, a instrução SELECT COUNT(*) FROM TAB1 retorna:

  1. O maior elemento de TAB1;
  2. A média de elementos de TAB1;
  3. A soma de elementos de TAB1;
  4. A descrição dos campos de TAB1;
  5. O número de linhas de TAB1;

Resposta:

 


Questão 23

Podemos classificar os operadores da Álgebra Relacional quanto sua origem em primitivos, derivados e especiais. São operadores primitivos, EXCETO:

  1. seleção; x
  2. junção;
  3. projeção; x
  4. união; x
  5. diferença; x

Resposta:

junção


Questão 24

Em relação a regra de integridade da entidade e referencial, podemos afirmar:

  1. A chave estrangeira não pode ser nula;
  2. A chave estrangeira tem que ser única.
  3. A chave primária não serve como representante de uma entidade;
  4. O valor da chave primária pode ser nulo;
  5. O valor da chave estrangeira deve existir na tabela onde o atributo relacionado é chave primária;

Resposta:

O valor da chave estrangeira deve existir na tabela onde o atributo relacionado é chave primária


Questão 25

São etapas do projeto de Banco de Dados, exceto:

  1. Coleta e análise de requisitos de dados.
  2. Projeto lógico;
  3. Análise de requisitos funcionais;
  4. Projeto físico;
  5. Projeto conceitual;

Resposta:

Análise de Requisitos Funcionais

 


Questão 26

No que se refere aos conceitos do modelo relacional, marque a alternativa correta:

  1. A integridade referencial é garantida através da chave primária;
  2. Um índice é obrigatoriamente uma chave, mas a chave pode ser um índice;
  3. O Domínio de um atributo corresponde ao seu tipo de dado.
  4. A chave estrangeira precisa ser única, mas pode ser nula;
  5. O valor de um atributo de uma linha da tabela é nulo quando o seu valor é desconhecido;

Resposta:

A integridade referencial é garantida através da chave primária;

 


Questão 27

Sabendo que a árvore B+ é uma variação da estrutura de dados da árvore B, marque a alternativa que corresponde a uma de suas características.

  1. Os ponteiros estão distribuídos em todos os níveis da árvore.
  2. Não existem ponteiros entre as folhas;
  3. As chaves não podem ser repetidas em nós não-folha;
  4. Um nó só pode ter uma chave;
  5. Todas as chaves são mantidas em folhas;

Resposta:

Todas as chaves são mantidas em folhas;


Questão 28

O comando SQL para eliminar um índice criado com o nome IDX_PARTICIPA é:

  1. DROP INDEX IDX_PARTICIPA;
  2. DROP INDEX IDX_PARTICIPA(MAT,CODPROJ);
  3. DROP INDEX PARTICIPA AS PARTICIPA(MAT,CODPROJ);
  4. DROP INDEX IDX_PARTICIPA ON PARTICIPA(MAT);
  5. DROP INDEX IDX_PARTICIPA OFF PARTICIPA(MAT,CODPROJ);

Resposta:

DROP INDEX IDX_PARTICIPA;

 


Questão 29

São Regras de Integridade do Modelo Relacional, exceto:

  1. Chave
  2. Referencial
  3. Domínio
  4. Transacional
  5. Entidade

Resposta

Transacional

 


Questão 30

Uma transação não deve sofrer interferências de outras transações executadas concorrentemente. A característica apresentada diz respeito a seguinte propriedade das transações:

  1. Persistência
  2. Durabilidade
  3. Isolamento
  4. Concorrência
  5. Efetivação

Resposta :

Isolamento

 


Questão 31

São componentes envolvidos na execução de uma consulta, EXCETO:

  1. Gerador de registros
  2. Gerente de limpeza de disco;
  3. Otimizador;
  4. Executor de SQL;
  5. Analisador gramatical;

Resposta:

Gerente de limpeza de disco

 


Questão 33

A sentença CREATE INDEX IDX_SAL ON ALUNO (SALARIO DESC) realiza a seguinte operação

  1. Cria o índice IDX_SAL na coluna SALARIO da tabela ALUNO, em ordem crescente;
  2. Cria o índice IDX_SAL na tabela ALUNO, sem ordenação específica;
  3. Cria o índice IDX_SAL na coluna ALUNO da tabela SALARIO, em ordem descendente;
  4. Cria o índice IDX_SAL na coluna SALARIO da tabela ALUNO, em ordem descendente
  5. Cria o índice SALARIO na coluna IDX_SAL da tabela ALUNO, em ordem descendente;

Resposta:

Cria o índice IDX_SAL na coluna SALARIO da tabela ALUNO, em ordem descendente

 


Questão 34

São critérios para criação de índices, EXCETO:

  1. Usar índice em colunas muito alteradas;
  2. Uso frequente na cláusula WHERE;
  3. Uso frequente em JOINS;
  4. Possuir alta seletividade
  5. Uso na chave estrangeira;

Resposta:

Usar índice em colunas muito alteradas

 


Questão 35

Considere o esquema de uma empresa conforme segue:

FUNC (COD_FUNC, NOME, DTA_NASC, SALARIO, NRO_DEPTO, COD_SUPERV)‏;

DEPTO (NRO_DEPTO, NOME)‏;

PROJETO (COD_PROJ, NOME, DURACAO, NRO_DEPTO)‏;

PARTICIPA (COD_PROJ, COD_FUNC, HORAS_TRAB).

Marque a alternativa que contém o comando em SQL para listar o nome e o salário dos funcionários cujo salário é maior que a média salarial da empresa

  1. SELECT NOME, SALARIO FROM FUNC WHERE EXISTS > (SELECT AVG(SALARIO) FROM FUNC);
  2. SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > AVG(SALARIO);
  3. SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT AVG(SALARIO) FROM FUNC);
  4. SELECT NOME, SALARIO>AVG(SALARIO) FROM FUNC;
  5. SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT MEDIA(SALARIO) FROM FUNC);

Resposta:

SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT AVG(SALARIO) FROM FUNC)

 


Questão 36

Um índice é uma estrutura auxiliar associada a uma tabela. Cria ponteiros para os dados armazenados em colunas específicas para acelerar o tempo de acesso às linhas de uma tabela. São exemplos de estruturas de índices, EXCETO:

  1. Índice de agrupamento;
  2. Índice remissivo;
  3. Índices multiníveis;
  4. Índice primário;
  5. Tabelas Hash.

Resposta:

Índice remissivo;

 


 

Questão 37

Seja a tabela participa(mat, codproj, horas_trab).

O comando SQL para criar o índice IDX_PARTICIPA sobre as colunas MAT e CODPROJ da tabela PARTICIPA é:

  1. CREATE INDEX PARTICIPA ON PARTICIPA(MAT);
  2. CREATE INDEX PARTICIPA AS PARTICIPA(MAT,CODPROJ).
  3. CREATE INDEX IDX_PARTICIPA FROM PARTICIPA(MAT,CODPROJ)
  4. ;CREATE INDEX IDX_PARTICIPA ON (MAT,CODPROJ);
  5. CREATE INDEX IDX_PARTICIPA ON PARTICIPA(MAT,CODPROJ);

Resposta:

CREATE INDEX IDX_PARTICIPA ON PARTICIPA(MAT,CODPROJ);


Questão 38

Considerando as afirmações abaixo, não é um problema que ocorre quando transações concorrentes são executadas:

  1. Agregação incorreta;
  2. Leitura não-repetitiva.
  3. Perda de atualização;
  4. Atualização temporária (leitura suja);
  5. Em processo de efetivação;

Resposta:

Em processo de efetivação;

 


Material retirado da WEB

junho 15th, 2017

Posted In: Engenharia de Software, Projeto e otimização de banco de dados

Tags:, ,