Imagem de fundo

Analise a definição das tabelas “candidato” e “pagamento”...

Analise a definição das tabelas “candidato” e “pagamento”, bem como os registros que foram inseridos. Responda às questões 11, 12, 13 e 14, considerando o script 1.


create table candidato

(

inscricao integer,

nome character varying(50),

nome_social character varying(50),

primary key(inscricao)

);


insert into candidato

values

(1, 'PAULO SILVEIRA', 'CLAUDIA SILVEIRA'),

(2, 'ANDRE CARDOSO', NULL),

(3, 'JOANA GONZALES', 'MARCOS GONZALES'),

(4, 'ALESSANDRA BENERI', NULL),

(5, 'FERNANDO SIQUEIRA', NULL),

(6, 'CARLOS FERNANDEZ', NULL),

(7, 'DANIEL OLIVEIRA', NULL);


create table pagamento

(

id_arquivo integer,

nosso_numero character varying(17),

dt_liquidacao date,

vlr_recebido double precision,

primary key(id_arquivo, nosso_numero)

) ;



insert into pagamento

values

(1, '90293840000000001', '2018-02-11', 90),

(1, '90293849999999991', '2018-02-11', 90),

(1, '90293840000000002', '2018-02-11', 90),

(2, '90293840000000003', '2018-02-12', 90),

(2, '90293840000000004', '2018-02-12', 90),

(3, '90293849999999992', '2018-02-13', 90),

(3, '90293840000000005', '2018-02-13', 90);



Analise a situação a seguir, considerando o contexto da tabela “candidato” no banco de dados PostgreSQL, versão 9.2, que está configurado para executar COMMIT automaticamente.


  1. Desenvolvedor 1 executa as seguintes instruções SQL.


begin transaction isolation level read committed;

update candidato set nome = 'GABRIEL COSTA' where inscricao = 4;


  1. Um minuto após a transação anterior, numa outra sessão de banco, o desenvolvedor 2 executa esta instrução SQL:

update candidato set nome = 'GABRIELA COSTA' where inscricao = 4;


Marque a alternativa que descreve CORRETAMENTE o comportamento esperado pelo banco de dados diante do que foi relatado.


A

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “candidato” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIEL COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


B

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “candidato” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "ALESSANDRA BENERI‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


C

As instruções SQL do desenvolvedor 1 são executadas normalmente, entretanto, devido à ausência do comando COMMIT nesta transação, a tabela “pagamento” permanece bloqueada para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIELA COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


D

As instruções SQL do desenvolvedor 1 são executadas normalmente, não há bloqueio. A tabela “candidato” permanece disponível para outras sessões de banco que queiram modificar sua estrutura. O valor da coluna “nome” é "GABRIELA COSTA‟ se uma terceira sessão executar por último a instrução: select * from candidato where inscricao = 4.


E

As instruções SQL do desenvolvedor 1 falham devido à ausência do comando COMMIT nesta transação. A tabela “candidato” permanece disponível para outras sessões de banco que queiram modificar sua estrutura.