

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Uma empresa de e-commerce utiliza um sistema de banco de dados distribuído para gerenciar seu inventário e as informações financeiras. Para garantir a atomicidade de transações críticas como a compra de um produto que envolve a baixa no inventário em um nó e o débito na conta em outro nó, o SGBD utiliza o protocolo Two-Phase Commit.
Assinale a opção que descreve corretamente o fluxo de comunicação entre o Coordenador e os Participantes durante a primeira fase do protocolo 2PC.
O Coordenador envia a mensagem COMMIT para todos os Participantes, e estes respondem com ACK se a transação foi concluída com sucesso localmente.
O Coordenador envia a mensagem VOTE-REQUEST para todos os Participantes, e estes respondem com VOTE-COMMIT se puderem completar a transação ou VOTE-ABORT se não puderem.
O Coordenador envia a mensagem GLOBAL-COMMIT para os Participantes que votaram VOTE-COMMIT e GLOBAL-ABORT para os demais.
Os Participantes enviam periodicamente mensagens de HEARTBEAT ao Coordenador para sinalizar que estão prontos para receber a decisão final.
O Coordenador notifica o cliente sobre o sucesso ou falha da transação e aguarda a confirmação do cliente antes de iniciar a segunda fase.
Um arquiteto de sistemas de uma instituição financeira gerencia um ambiente de banco de dados distribuído que opera com o protocolo de efetivação em duas fases (2PC) para garantir a consistência ACID. Em um cenário de auditoria, uma transação T1 envolve o débito na conta de um cliente no servidor X e o crédito na conta de uma loja no servidor Y. Durante a execução, o coordenador da transação emite a ordem de preparação e tanto o servidor X quanto o servidor Y respondem afirmativamente (Vote Commit), entrando no estado de prontidão. Imediatamente após receber os votos, o coordenador toma a decisão de efetivar a transação e grava o registro Commit em seu armazenamento estável, mas falha criticamente antes de conseguir transmitir a mensagem de decisão para qualquer um dos servidores participantes. Diante desse cenário de falha do coordenador após o voto de prontidão dos participantes, qual é o comportamento técnico obrigatório do servidor Y?
O servidor deve aplicar um timeout e abortar unilateralmente a transação para liberar os bloqueios dos registros da conta da loja.
O servidor entra em um estado de bloqueio, mantendo os recursos travados indefinidamente até que o coordenador seja restaurado e informe a decisão tomada.
O servidor deve assumir o papel de novo coordenador e reenviar a mensagem de preparação para o servidor X a fim de concluir a transação.
O servidor consulta seus logs locais e, ao verificar que votou sim, executa o Commit da transação baseando-se na probabilidade estatística de sucesso.
O servidor solicita ao cliente que reenvie a requisição da transação para que um novo identificador global seja gerado e o processo reiniciado.
Em ambientes com alta latência ou alto número de falhas, recomenda-se como primeira opção a utilização do protocolo 2PC (Two-Phase Commit), dada a sua eficiência em situações dessa natureza.
Certo
Errado
Assinale a opção correta acerca do protocolo 2PC (two-phase commit).
O protocolo 2PC garante a atomicidade em transações distribuídas ao coordenar commit ou abort entre participantes.
O referido protocolo elimina totalmente o risco de bloqueio em caso de falha do coordenador.
Esse protocolo é utilizado apenas em sistemas baseados em bancos de dados relacionais centralizados.
O uso desse protocolo impede a necessidade de logs nos participantes das transações.
O protocolo 2PC exige que todos os participantes liberem seus bloqueios antes da fase de commit.
Nas transações distribuídas, o processo two-phase commit verifica a prontidão dos gerenciadores de recursos antes de confirmar ou reverter uma transação em caso de falha.
Certo
Errado
Na implementação de bancos de dados distribuídos, assinale a correta distinção/semelhança entre o algoritmo 2-Phase Commit e o algoritmo 2-Phase lock.
O primeiro baseia-se numa memória compartilhada.
O primeiro é aplicado em sistemas distribuídos visando à execução correta das transações distribuídas.
O primeiro é aplicado visando aos conflitos entre transações concorrentes em sistema centralizados.
O segundo é aplicado em sistemas distribuídos visando à execução correta das transações distribuídas.
Tanto o primeiro como o segundo são aplicados visando aos conflitos entre transações concorrentes, tanto centralizadas como distribuídas.
A construção de um data mart antecede a criação de um data warehouse.
Certo
Errado
No jQuery – 3.5, a função que torna o elemento visível, caso ele esteja invisível, e invisível, caso esteja visível, é:
hide()
toggle()
shift()
show()
off()
O mecanismo que permite a implementação de relacionamentos entre tabelas em um banco de dados relacional é a
Considere um diagrama IDEF1X contendo um relacionamento identificador, 1:N, onde do lado 1 está a entidade Empresa e, do lado N, a entidade Filial.
Num banco de dados que implemente esse relacionamento, a restrição de integridade referencial entre as tabelas Empresa e Filial, que correspondem respectivamente às entidades citadas, NÃO é possível que a chave estrangeira na tabela Filial:
faça parte de um índice;
tenha um valor default declarado;
admita valores nulos;
seja alvo de uma operação update do SQL;
possa ser simultaneamente definida como chave estrangeira para outro relacionamento da entidade Filial.
Considere um banco relacional construído sobre os atributos A, B, C e D, para
A -> B
A -> C
A -> D
B -> A
O comando de criação desse banco que garante a decomposição sem perda, preserva as dependências e mantém a normalização do esquema relacional é:
create table T( a char(8) not null primary key,
b int, c int, d int)
create table T( a char(8) not null primary key,
b int not null unique, c int, d int)
create table T1( a char(8) not null primary key,
c int, d int)
create table T2( b int not null primary key,
c int, d int)
create table T1( a char(8) not null primary key,
c int, d int)
create table T2(a char(8) not null primary key,
b int)
create table T1( a char(8) not null primary key,
b int, c int, d int)
create table T2(a char(8) not null primary key,
b int not null unique)
Sobre o Commit em duas fases (Two-phase commit) é correto afirmar que:
refere-se a uma transação que pode utilizar dois ou mais bancos de dados, que podem estar localizados em servidores diferentes.
é um modelo relacional que permite extrair dados de duas tabelas ao mesmo tempo.
é um tipo de consulta onde são passados dois parâmetros para a SQL de forma a filtrar o conteúdo do SELECT.
é um modelo de banco de dados distribuídos que permite criar uma hierarquia em dois níveis.
são modelos de banco de dados relacionais com autenticação em duas fases.
Suponha que se deseja realizar a seguinte busca no banco de dados:
select distinct T.nome_agência from agência as T,
select distinct T.nome_agência from agência as T,
select distinct nome_agência from agência
select distinct nome_agência from agência

No tribunal, durante o levantamento de requisitos, Carla deparou-se com as seguintes situações:
I. Os funcionários possuem matrículas, mas seus dependentes são numerados de 1 a n. Assim, por exemplo, o funcionário André com dois dependentes tem a esposa como dependente 01 e o filho como dependente 02. Marta possui um único filho dependente com o número 01.
II. Os funcionários possuem cargos que necessitam ficar registrados historicamente, isto é, sempre que um funcionário mudar de cargo o sistema deverá manter o registro do cargo anterior e alguns demais atributos inerentes.
Assim, em um modelo relacional normalizado, Carla sabe que para resolver o problema I ela deverá prever a manutenção da unicidade das chaves da entidade Dependente e que para resolver o problema II ela deverá prever o registro histórico dos cargos, identificando a data em que o funcionário passou a exercer o cargo. Entre outras, Carla resolveu corretamente da seguinte forma: no caso I ela criou a entidade
Considere as tabelas relacionais apresentadas na figura a seguir e as afirmativas I, II e III para depois escolher a alternativa correta.
I - A transferência de R$ 500,00 da Conta 001 para a Poupança 003 poderia ser especificada através dos seguintes comandos SQL:
update Conta_Bancária
set saldo = saldo - 500
where Número = 001
update Conta_Bancária s
et saldo = saldo + 500
where Número = 003
II - O comando a seguir permite que o usuário ‘José’ leia os dados da tabela Cliente: REVOKE select on Cliente from José
III - O comando a seguir concede privilégios de seleção, inserção e atualização sobre a tabela Conta_Bancária ao usuário “José”:
GRANT select, insert, update on Conta_Bancária to “José”
- Marque a alternativa que corresponde à resposta certa.
As afirmativas I e II estão corretas.
Apenas a afirmativa II está correta.
As afirmativas I e III estão corretas.
As afirmativas I, II e III estão corretas.
No modelo relacional de bancos de dados, os valores de___________ possibilitam a distinção de cada entidade de forma individual.
um atributo-chave.
todos os relacionamentos.
um atributo não chave.
qualquer campo numérico.
qualquer atributo derivado.