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:
- Estrutura.
- Objetos de usuário;
- Autorização;
- Usuários;
- Páginas Web;
Resposta:
Páginas Web.
Questão 02
São estados de uma transação, EXCETO:
- Concluída.
- Efetivada;
- Ativa;
- Em processo de efetivação;
- Monitorada;
Resposta
Monitorada.
Questão 03
A respeito das CONSTRAINTS na linguagem SQL, marque a opção correta:
- FOREIGN KEY: Dados da coluna devem coincidir com os valores da coluna na tabela referenciada.
- PRIMARY KEY: Depende da existência de uma FOREIGN KEY.
- UNIQUE: Garante a integridade referencial dos dados.
- CHECK: Verifica o valor da chave primária.
- 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:
- Responsável pela localização e acesso de blocos em disco.
- Responsável pelo log do sistema, mas não tem influência na recuperação do SGBD;
- Garante a consistência dos dados sem concorrência de transações;
- Componente presente apenas em SGBD não relacional;
- 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))
- CREATE TABLE ALUNO(MAT CHAR(5) primary key, NOME VARCHAR(50) NOT NULL, CODCURSO CHAR(2));
- CREATE TABLE ALUNO(MAT CHAR(5) foreign key, NOME CHAR(50) NOT NULL, CODCURSO CHAR(2));
- CREATE TABLE ALUNO(MAT VARCHAR primary key, NOME CHAR NOT NULL, CODCURSO INT);
- CREATE TABLE ALUNO(MAT VARCHAR(5) primary key, NOME CHAR(50) NULL, CODCURSO CHAR(2));
- 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.
- SELECT F.NOME, S.NOME FROM FUNC F, FUNC S;
- SELECT F.NOME, S.NOME FROM FUNC F, FUNC S WHERE F.COD_FUNC = S.COD_SUPERV;
- SELECT F.NOME, PA.NOME FROM FUNC F, PARTICIPA PA WHERE F.COD_FUNC = PA.COD_FUNC.
- SELECT F.NOME, F.NOME_SUPERV FROM FUNC F;
- 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.
- DELETE FROM PARTICIPA;
- TRUNCATE TABLE PARTICIPA;
- DELETE FROM PARTICIPA WHERE COD_FUNC=20;
- DROP TABLE PARTICIPA WHERE COD_FUNC=20;
- 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 é:
- SELECT MAX(SALARIO), MIN(SALARIO) FROM FUNC;
- SELECT MAIOR(SALARIO), MENOR(SALARIO) FROM FUNC;
- SELECT MIN(SALARIO), MAX(SALARIO) FROM FUNC;
- SELECT COUNT(SALARIO), AVG(SALARIO) FROM FUNC;
- 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.
- SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F FULL OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
- SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F LEFT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
- SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F INNER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
- SELECT F.NOME, C.DECRICAO FROM FUNCIONARIO F RIGHT OUTER JOIN CARGO C ON F.COD_CARGO=C.COD_CARGO;
- 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:
- Evitar o comando SELECT;
- Analisar e alterar o plano de execução;
- Armazenar o plano de execução;
- Reestruturar os dados;
- Reestruturar os índices envolvidos no comando;
Resposta
Reestruturar os dados;
Questão 11
São operações de controle das transações, EXCETO:
- ROLLBACK TO SAVEPOINT.
- SAVEPOINT;
- ROLLBACK;
- CHECKPOINT;
- COMMIT;
Resposta:
CHECKPOINT
Questão 12
A respeito da geração de planos de execução no SGBD Oracle, marque a opção CORRETA:
- A procedure DBMS_XPLAN é usada para consultar a tabela de planos;
- A tabela EXPLAIN PLAN contém o caminho de execução da consulta;
- ROWS é o número associado ao comando dentro do plano de execução.
- O script ¿utlxpls.sql¿, cria a tabela PLAN_TABLE;
- 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:
- FULL TABLE SCAN – Leitura de todos os blocos em sequência;
- CLUSTER SCAN – Registros de tabelas relacionadas em blocos diferentes;
- FULL TABLE SCAN ¿ Usado quando recuperamos um percentual grande de linhas da tabela.
- ROWID SCAN – É o método de acesso mais rápido;
- 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:
- DSL
- DQL
- DDL
- DCL
- 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.
- 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;
- SELECT NOME, NOME FROM PROJETO P, FUNC F WHERE P.COD_FUNC = F.COD_FUNC;
- SELECT F.NOME, PA.NOME FROM PARTICIPA PA, FUNC F WHERE PA.COD_FUNC = F.COD_FUNC;
- SELECT * FROM PARTICIPA PA, PROJETO P, FUNC F;
- 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.
- REVOKE PRIVILEGES ON FUNC FROM PEDRO;
- REVOKE ALL ON PEDRO FROM FUNC;
- REVOKE ALL ON FUNC FROM PEDRO;
- REVOKE ALL FROM PEDRO ON FUNC;
- 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:
- As chaves são repetidas em nós não-folha formando um índice;
- As folhas são ligadas oferecendo um caminho sequencial para percorrer as chaves;
- Reorganiza-se automaticamente com pequenas mudanças locais.
- Todas as chaves são mantidas em folhas;
- 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:
- O cargo de analista é inserido, os funcionários do departamento 10 recebem aumento de 2%, mas nenhum funcionário é excluído;
- 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;
- 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;
- O cargo de analista é inserido, os salários dos funcionários do departamento 10 são atualizados, mas nenhum funcionário é excluído;
- 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:
- INSERT PROJETO (1, 3) e INSERT DEPTO (‘WEB’, ‘Nova Intranet’);
- INSERT INTO DEPTO, PROJETO VALUES (1, ‘Recursos Humanos’), VALUES (‘WEB’, ‘Nova Intranet’, 100, 1);
- INSERT INTO DEPTO VALUES (1, ‘Recursos Humanos’) e INSERT INTO PROJETO VALUES (‘WEB’, ‘Nova Intranet’, 100, 1);
- INSERT DEPTO (1, 3) e INSERT PROJETO (‘WEB’, ‘Nova Intranet’);
- 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:
- O símbolo π representa uma operação de projeção.
- O símbolo ← representa uma operação de renomeação;
- São funções matemáticas de agregação: SOMA, MÉDIA, MÁXIMO e MÍNIMO;
- São exemplos de operadores usuais da teoria de conjuntos da matemática: união, interseção, diferença e produto cartesiano;
- 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.
- SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 AND SALARIO BETWEEN 1000 AND 2000;
- SELECT NOME, SALARIO FROM FUNC WHERE SALARIO BETWEEN 1000 AND 2000;
- SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5;
- SELECT NOME, SALARIO FROM FUNC WHERE NRO_DEPTO = 5 OR SALARIO BETWEEN 1000 AND 2000;
- 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:
- O maior elemento de TAB1;
- A média de elementos de TAB1;
- A soma de elementos de TAB1;
- A descrição dos campos de TAB1;
- 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:
- seleção; x
- junção;
- projeção; x
- união; x
- diferença; x
Resposta:
junção
Questão 24
Em relação a regra de integridade da entidade e referencial, podemos afirmar:
- A chave estrangeira não pode ser nula;
- A chave estrangeira tem que ser única.
- A chave primária não serve como representante de uma entidade;
- O valor da chave primária pode ser nulo;
- 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:
- Coleta e análise de requisitos de dados.
- Projeto lógico;
- Análise de requisitos funcionais;
- Projeto físico;
- Projeto conceitual;
Resposta:
Análise de Requisitos Funcionais
Questão 26
No que se refere aos conceitos do modelo relacional, marque a alternativa correta:
- A integridade referencial é garantida através da chave primária;
- Um índice é obrigatoriamente uma chave, mas a chave pode ser um índice;
- O Domínio de um atributo corresponde ao seu tipo de dado.
- A chave estrangeira precisa ser única, mas pode ser nula;
- 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.
- Os ponteiros estão distribuídos em todos os níveis da árvore.
- Não existem ponteiros entre as folhas;
- As chaves não podem ser repetidas em nós não-folha;
- Um nó só pode ter uma chave;
- 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 é:
- DROP INDEX IDX_PARTICIPA;
- DROP INDEX IDX_PARTICIPA(MAT,CODPROJ);
- DROP INDEX PARTICIPA AS PARTICIPA(MAT,CODPROJ);
- DROP INDEX IDX_PARTICIPA ON PARTICIPA(MAT);
- 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:
- Chave
- Referencial
- Domínio
- Transacional
- 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:
- Persistência
- Durabilidade
- Isolamento
- Concorrência
- Efetivação
Resposta :
Isolamento
Questão 31
São componentes envolvidos na execução de uma consulta, EXCETO:
- Gerador de registros
- Gerente de limpeza de disco;
- Otimizador;
- Executor de SQL;
- 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
- Cria o índice IDX_SAL na coluna SALARIO da tabela ALUNO, em ordem crescente;
- Cria o índice IDX_SAL na tabela ALUNO, sem ordenação específica;
- Cria o índice IDX_SAL na coluna ALUNO da tabela SALARIO, em ordem descendente;
- Cria o índice IDX_SAL na coluna SALARIO da tabela ALUNO, em ordem descendente
- 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:
- Usar índice em colunas muito alteradas;
- Uso frequente na cláusula WHERE;
- Uso frequente em JOINS;
- Possuir alta seletividade
- 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
- SELECT NOME, SALARIO FROM FUNC WHERE EXISTS > (SELECT AVG(SALARIO) FROM FUNC);
- SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > AVG(SALARIO);
- SELECT NOME, SALARIO FROM FUNC WHERE SALARIO > (SELECT AVG(SALARIO) FROM FUNC);
- SELECT NOME, SALARIO>AVG(SALARIO) FROM FUNC;
- 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:
- Índice de agrupamento;
- Índice remissivo;
- Índices multiníveis;
- Índice primário;
- 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 é:
- CREATE INDEX PARTICIPA ON PARTICIPA(MAT);
- CREATE INDEX PARTICIPA AS PARTICIPA(MAT,CODPROJ).
- CREATE INDEX IDX_PARTICIPA FROM PARTICIPA(MAT,CODPROJ)
- ;CREATE INDEX IDX_PARTICIPA ON (MAT,CODPROJ);
- 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:
- Agregação incorreta;
- Leitura não-repetitiva.
- Perda de atualização;
- Atualização temporária (leitura suja);
- Em processo de efetivação;
Resposta:
Em processo de efetivação;
Material retirado da WEB