Questões de Conceitos Básicos em Banco de Dados (Banco de Dados)

Limpar Busca

Considere a tabela EMPREGADOS definida abaixo em SQL.


Create table EMPREGADOS

(CODEMP INT PRIMARY KEY,

NOMEEMP VARCHAR(300) NOT NULL UNIQUE,

FUNCAO INT CHECK(FUNCAO BETWEEN 1 AND 5),

SALARIO FLOAT NOT NULL,

DEPTO INT NOT NULL);


Sobre esta tabela, foi definido um índice primário (codemp – chave primária), e dois índices secundários, um sobre nomeemp, e outro sobre funcao


Uma pessoa do desenvolvimento reclamou à DBA que algumas de suas consultas sobre essa tabela estavam muito demoradas, e pediu apoio para melhoria do desempenho. A DBA examinou o plano de execução das consultas e, em vez de uma solução sobre o esquema da base de dados, sugeriu a reescrita das consultas. 


Imagem relacionada à questão do Questões Estratégicas


Qual, dentre as consultas reescritas, melhorou o desempenho da consulta original porque resultou, no plano de consulta, em uma operação (mais eficiente) sobre um índice? 

  • A Apenas I.
  • B Apenas II.
  • C Apenas III.
  • D Apenas I e II.
  • E I, II e III.

Um histórico (schedule) S de n transações ordena uma sequência de operações sobre objetos do banco de dados, entre elas, de leitura (r) ou gravação (w). Dado um histórico parcial Si: rj(A), wk(A), pode-se dizer que ele ordena duas operações, onde rj(A) representa operação de leitura sobre o objeto A na transação Tj, seguida da operação wk(A) representando uma operação de escrita sobre o objeto A na transação Tk. Considere um banco de dados com objetos X e Y, duas transações T1 e T2, e os históricos parciais S1, S2, e S3 descritos abaixo.  
S1: r2(X), r1(X), r2(Y), r1(X), r2(Y), w2(Y) ... S2: r2(X), r2(Y), r1(X), r1(Y), w1(X) ... S3: r2(Y), r2(Y), r1(X), r1(Y), w1(X), w2(X) ...
Quais históricos apresentam operações conflitantes?

  • A Apenas S3.
  • B Apenas S1 e S2.
  • C Apenas S1 e S3.
  • D Apenas S2 e S3.
  • E S1, S2 e S3.

Considere a tabela ALUNOS criada usando o comando SQL (padrão SQL99 ou superior) abaixo.  
Create table Alunos (pk int not null primary key, nomea varchar(100), idade int, nascimento date not null);
Assinale qual, dentre as instruções ALTER TABLE listadas abaixo, representa um comando SQL INVÁLIDO, que causa um erro de execução.

  • A alter table Alunos add constraint adulto check(idade >= 18);
  • B alter table Alunos drop column nascimento;
  • C alter table Alunos add unique(nomea) ;
  • D alter table Alunos add index idx_idade on idade;
  • E alter table Alunos rename to discipulos;

Considere a tabela PILOTOS e a visão PILOTOSA320 definidas pelos comandos SQL abaixo (padrão SQL99 ou superior). 
Imagem relacionada à questão do Questões Estratégicas

Considere os comandos SQL abaixo no mesmo padrão, em que cada comando corresponde a uma transação. Assinale com V, se o comando executa corretamente, ou com F, se o comando resulta em erro. 
( ) insert into PILOTOSA320(codp, nomep, companhia, aviao) values (1, 'jose', 'gol', 'A320'); ( ) insert into PILOTOSA320(codp, nomep, companhia, aviao) values (2, 'maria', 'tam', '777'); ( ) insert into PILOTOSA320(codp, nomep, aviao) values (2, 'jose', 'A320');
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

  • A V – V – V.
  • B V – F – V.
  • C V – F – F.
  • D F – V – V.
  • E F – F – F.

Considere as tabelas criadas com os comandos SQL abaixo, e os comandos de inserção de tuplas SQL (padrão SQL99 ou superior). 
Create table A (pka int primary key, a1 integer); Create table B (pkb int primary key, b1 integer); Create table C (pkc int primary key, c1 integer); insert into A values (1,10); insert into A values (2, 10); insert into A values (3, 2); insert into A values (4, 3); insert into B values (10,0); insert into C values (100,0);
Suponha a criação dos gatilhos T1 e T2 definidos abaixo cujas cláusulas estão de acordo com padrão, e cujo código disparado foi escrito conforme sintaxe PL/SQL (Oracle).
Imagem relacionada à questão do Questões Estratégicas

Considere que os três comandos SQL de remoção de tuplas abaixo foram executados sem erro:
I. delete from A where a1>=10; II. delete from A where a1<10; III. delete from A where a1 is null;
Finalmente, foram executadas as duas consultas SQL abaixo, cada qual retornando uma única tupla:
(1) SELECT b1 FROM B; (2) SELECT c1 FROM C;
Selecione a alternativa que representa, nesta ordem, o valor do atributo b1 resultante da consulta (1), e o valor do atributo c1 resultante da consulta (2). 

  • A 2 – 2.
  • B 2 – 3.
  • C 2 – 4.
  • D 3 – 2.
  • E 3 – 4.