SóProvas


ID
1215157
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens a seguir, acerca de modelagem multidimensional, DataWarehouse e DataMarts.

A captura de dados baseada na técnica Timestamp é inadequada para capturar estados intermediários, nas situações em que os dados operacionais são transientes.

Alternativas
Comentários
  • Não se trata de técnica, é um protocolo. Serve para que o sistema de banco de dados faça o controle da execução quando existem transações que estão concorrendo entre si, para garantir a consistência do banco de dados. Podemos considerar isso como sendo um controle de concorrência.


  • Apesar do artigo do Pedro Paulo indicar que timestamp é um protocolo, vejo como uma técnica ou algoritmo.


    Protocolo de timestamp está relacionado ao TCP: http://en.wikipedia.org/wiki/Time_stamp_protocol

    Existe um algoritmo para esta questão: http://en.wikipedia.org/wiki/Timestamp-based_concurrency_control

    A questão se refere ao fato que timestamp apenas indica qual dado é mais novo. Assim, se um dado passar de A (08:00) para B(08:03), o algoritmo sabe que B é mais novo. Se próximo dado for C (08:01), o A se perdeu.

  • Um modo de prevenir deadlocks, é utilizar o conceito de registro de timestamp da transação, normalmente são baseados na ordem em que as transações são iniciadas. Portanto, se a transação T1 inicia antes da transação T2, então T1 terá o menor valor de registro de timestamp.

  • No timestamp, você captura um dado e associa à um rótulo de tempo quando ocorre o commit. Como os dados do ambiente operacional variam muito, pode ocorrer deles variarem bastante entre 2 commits, ou seja, essa variação intermediária é perdida, sendo inadequado o uso de timestamps.

  • Gabarito: Certo.

    É como se cada transação do banco de dados recebesse um "carimbo" com o horário de quando aconteceu. Como os dados são transientes, o dado vai ser perdido quando a transação acabar. Em função disso, o timestamp não é muito adequado.

    Caso esteja equivocado, mandem mensagem.

    Deixo, como contribuição, um artigo do DevMedia que fala um pouco sobre o controle de concorrência por meio do timestamp: https://www.devmedia.com.br/protocolo-com-base-em-timestamp-controle-de-concorrencia-em-bancos-de-dados/27810.

    Bons estudos!

  • Acrescentando:

    As principais técnicas de controle de concorrência são:

    • bloqueio (locking);
    • ordenamento de registro de timestamp;
    • multiversão;
    • validação ou certificação (protocolos otimistas). 

    Com registros de timestamp, pode ocorrer starvation(Starvation é quando um processo não consegue ser executado) se uma transação for continuamente abortada e reiniciada.

    O algoritmo básico pode provocar rollback em cascata.

    Logo, para dados transitórios, não é viável o uso dessa tecnica, sendo que continuamente os dados terão seu tempo esgotado e logo em seguida serão adicionados outros.

    Um registro de timestamp (TS) é um identificador único criado pelo SGBD para identificar uma transação. Os registros são gerados por um contador incremental ou utilizam o valor corrente do relógio do sistema (data/hora/minuto/segundo/milissegundo).