SóProvas



Questões de Concorrência em Banco de Dados


ID
5794
Banca
CESGRANRIO
Órgão
EPE
Ano
2006
Provas
Disciplina
Banco de Dados
Assuntos

Para as técnicas de controle de concorrência em Bancos de Dados, assinale a afirmativa INCORRETA.

Alternativas
Comentários
  • Incorreta: (e)O correto seria: Diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a PRIMEIRA operação de desbloqueio na transação.
  • A)Segundo Navathe(2011,p.529),O deadlock(impasse) ocorre quando cada transação T em um conjunto de duas ou mais transações está esperando por algum item que está bloqueado por alguma outra transação T' no conjunto.

    B)Segundo Navathe(2011,p.531),"Um modo simples de detectar um estado de deadlock é que o sistema construa e mantenha um grafo de espera."

    C)Segundo Navathe(2011,p.531),"A inanição(starvation)[...]  pode ocorrer se o esquema de espera para itens bloquados for injusto, dando prioridade a algumas transações em relação a outras."

    D)Segundo Navathe(2011,p.532),"As técnicas de controle de concorrência baseadas na ordenação por rótulo de tempo não usam bloqueios; logo, deadlocks não podem ocorrer."

    E)Segundo Navathe(2011,p.527)," Diz-se que uma transação segue o protocolo de bloqueio em duas fases se todas as operações de bloqueio (read_lock, write_lock) precedem a primeira operação de desbloqueio na transação."

    Bibliografia:

    SISTEMAS DE BANCO DE DADOS-6 EDIÇÃO 2011- NAVATHE



ID
7324
Banca
ESAF
Órgão
CGU
Ano
2004
Provas
Disciplina
Banco de Dados
Assuntos

Quando um sistema utiliza um Banco de Dados, o SGBD é responsável por controlar os acessos concorrentes aos dados compartilhados, prover meios para acesso aos dados e implementar mecanismos por meio dos quais seja possível manter a consistência dos dados em caso de falhas. Com relação ao controle do acesso a um Banco de Dados, é correto afirmar que os bloqueios

Alternativas
Comentários
  • a) Errada - Atualização só com Bloqueio Exclusivo

    b) Errada - Atualização só com Bloqueio Exclusivo, e somente pode ser feito por UMA Transação

    c) Errada - Bloqueio Exclusivo só pode ser feito por UMA Transação

    d) Correta - Bloqueio Compartilhado é usado para a leitura e nenhum Bloqueio Exclusivo pode ser concedido até que o bloqueio Compartilhado seja Liberado

    e) Errada -  Mistura Bloqeio Exclusivo com Bloqueio de Atualização

ID
8236
Banca
ESAF
Órgão
Receita Federal
Ano
2005
Provas
Disciplina
Banco de Dados
Assuntos

Analise as seguintes afirmações relacionadas às capacidades que devem ser atendidas pelos bancos de dados orientados a objetos:

I. Concorrência: o SGBD orientado a objetos não necessita nem implementa controle de concorrência, que deve ser feita pelas transações solicitadas pelo aplicativo conectado ao banco.

II. Transações: unidades executadas inteiramente ou não. Se um conjunto de atualizações ocorreu dentro de uma transação, todas ou parte delas devem ser visíveis ao mundo exterior, independentemente do estado fi nal da transação.

III. Recuperação: o SGBD deve garantir que os resultados parciais ou atualizações parciais de transações que falharam não sejam propagados para o banco de dados persistente.

IV. Persistência: capacidade de objetos persistirem através de diferentes chamadas do programa. Dados manipulados por bancos de dados orientados a objetos devem ser persistentes ou transientes. Dados transientes são somente válidos dentro de um programa ou transação; eles são perdidos uma vez que o programa ou transação termine. Dados persistentes são armazenados fora de uma transação e sobrevivem às atualizações.

Indique a opção que contenha todas as afirmações verdadeiras.

Alternativas

ID
29011
Banca
CESGRANRIO
Órgão
CAPES
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

No âmbito de banco de dados, considere os comportamentos:

I - Dirty Read;
II - Phantom Read;
III - Nonrepeatable Read.

No nível de isolamento REPEATABLE READ do padrão SQL- 92, é(são) possível(eis) o(s) comportamento(s)

Alternativas
Comentários
  • Este tipo de isolamento segura os registros para a conexão na leitura até o fim da transação, nenhum usuário pode alterar ou apagar estes registros até que a conexão encontre um commit ou rolback (implícito ou explicito), Os Dirty´s Read´s e NonRepeatable Read´s não ocorrem, porém podem ocorrer os phantons. Só utilizar este tipo de isolamento quando estritamente necessário.
  • Os níveis de isolamento permitem ou não inconsistências como: # Dirty readÉ quando minha conexão está lendo informações que ainda não foram comitadas, ou seja, a informação que li pode não existir ou mesmo ter sido modificada. # Nonrepeatable readOcorre quando eu tenho uma transação e nesta transação eu leio a informação mais de uma vez, na primeira leitura veio uma informação e na segunda e demias vieram outras informações, ou seja, não garanto a consistência da informação dentro da mesma transação # Phanton readEste tipo de inconsistência ocorre quando eu busco uma informação dentro de uma transação por exemplo por um determinado cep, o sistema me retorna 100 registros, quando dou update apenas 99 são atingidos, entre a leitura e o update 1 registro foi modificado e saiu da clausula WHERE ou foi apagadodependendo do tipo de isolamento o grau de concorrência será muito baixo, o que pode provocar muitos deadlock´s e block´s. READ COMMITEDEste é o isolation level default usado pelo SQL no Read Commited os registros são bloqueados quando se está fazendo a leitura do mesmo, por isto o tipo de inconsistência Dirty Read não existe, leio somente informações comitadas.REPEATABLE READEste tipo de isolamento segura os registros para a conexão na leitura até o fim da transação, nenhum usuário pode alterar ou apagar estes registros até que a conexão encontre um commit ou rolback (implícito ou explicito), Os Dirty´s Read´s e NonRepeatable Read´s não ocorrem, porém podem ocorrer os phantons.SERIAZABLEEste é o tipo de isolamento mais restrito, este não permite a leitura (select), atualização (update), inserção (insert) ou remoção (delete) de nenhum registro que está sendo lido, até que encontre o commit ou rollback (implícito ou explicito). Os Dirty Read´s, NonRepeatable Reads e Phanton não ocorrem.

  • Para ajudar a resolver a questão, veja a tabela:
    Tabela 12-1. Níveis de isolamento da transação no SQL

    Nível de isolamento Dirty Read Nonrepeatable Read Phantom Read
    Read uncommitted Possível Possível Possível
    Read committed Impossível Possível Possível
    Repeatable read Impossível Impossível Possível
    Serializable Impossível Impossível Impossível

    Fonte:http://pgdocptbr.sourceforge.net/pg80/transaction-iso.html

ID
61225
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

O armazenamento e a recuperação de grandes quantidades de dados é um trabalho importante e muito explorado em um sistema
gerenciador de banco de dados (SGBD). Com relação aos conceitos que envolvem esse sistema, julgue os itens que se seguem.

A execução de transações de maneira concorrente possibilita o surgimento de inconsistências dos dados armazenados em um banco de dados. A responsabilidade pela consistência dos dados é única e exclusiva do banco de dados, mais especificamente, do componente de controle de concorrência.

Alternativas
Comentários
  • Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback).Uma transação é uma unidade que preserva consistência. Requeremos, portanto, que qualquer escalonamento produzido ao se processar um conjunto de transações concorrentemente seja computacionalmente equivalente a um escalonamento produzindo executando essas transações serialmente em alguma ordem. Diz-se que um sistema que garante esta propriedade assegura a seriabilidade.Fonte: http://pt.wikipedia.org/wiki/Banco_de_dados
  • C.J. Date esina:

    O componente do sistema que fornece essa atomicidade é chamado gerenciador de transações (também conhecido como monitor de processamento de transações ou monitor TP), e as operações COMMIT e ROLLBACK são a chave para se entender o modo como ele funciona[...]

    (Introdução a sistemas de banco de dados, Date, C.J., pág 389)

  • O livro do Silberschatz trás tudo que esta questão pediu bem explicadinho:

    "É tarefa do Banco de Dados garantir que qualquer schedule executado deixe o banco de dados em um estado consistente. O Componente de controle de concorrência do sistema de banco de dados executa esta tarefa."

    Silberschatz (2006), pg 416

    Abraços

  • Errei a questão porque achei que o certo seria SGBD e não BD que garante isso.
  • Discordo do gabarito. Ao dizer "A responsabilidade pela consistência dos dados é única e exclusiva do banco de dados (...)", a questão é totalmente contrária à lição do Navathe: "A preservação da consistência é geralmente considerada responsabilidade do programador que codifica os programas de banco de dados, ou do módulo do SGBD que garante as restrições de integridade." (Elmasri & Navathe, 4ed, pg.405)
    O banco de dados só terá responsabilidade exclusiva da consistência durante a execução da transação, visto que não há como o programador interferir nisso. Isso, porém, não está explícito na questão.
    Basta pensar em um exemplo de lógica de programação. Se em uma transação de depósito bancário o programador faz besteira na implementação e codifica retirar(X) de uma conta e inserir(X+10) em outra, o banco de dados é inconsistente pq não vai atender às regras do negócio.
  • Também discordo do gabarito, principalmente quando se fala da consistência semântica dos dados.
  • Definicao dos autores:

    Navathe afirma q "a preservacao da consistencia geralmente eh de responsabilidade dos programadores ou do modulo de SGBD q impoe restricoes de integridade.

    Silberchatz afirma q "garantir a consistencia para 1 transacao individual eh de responsabilidade do programador de aplicacao.
    Ou seja, tanto o modulo do sistema de banco de dados qto o programador sao responsaveis pela consistencia. Sendo q, no caso de concorrencia de transacoes, a responsabilidade eh unicamente do proprio sistema, pois nao ha como o programador prever q transacao vao executar intercaladamente com outra.
    Questao maldosa e cruel, pq nao basta 1 conhecimento superficil sobre transacoes, mas a meu ver esta' correta. ant!
  • Outra questão semelhante do Cespe, onde considera que o SGDB não
    é responsável exclusivo pela restrição de integridade do banco de dados.
    Um peso duas medidas.

    http://www.questoesdeconcursos.com.br/questoes/d0964d18-6f
  • Será que não teve alteração de gabarito de uma dessas questões, e essa alteração não foi atualizada aqui no QC? As duas questões STF e TJ-DF são praticamente idênticas e com gabaritos opostos, e ainda são do mesmo ano. Já vi isso em outras questões, mas não de forma tão explícita...

  • A questão está errada. Em nenhum momento se falou em controle de consistência entre transações concorrentes como apontado por um colega acima. O SGBD não é capaz sozinho de manter a consistência dos dados, em muitas situações o desenvolvedor tem que programar para que algumas restrições sejam estabelecidas.

  • Do apanhado de todos os comentários aqui, concluí o seguinte:

    1- Nosso amigo Sérgio mandou muito bem quando observou que na questão está escrito BG, e não SGBD, o que por si só, já tornaria o gabarito ERRADO.

    2- Um erro do programador, pode sim tornar o banco inconsistente, caso a aplicação venha com um erro de somar à conta da pessoa um valor, quando esta faz um saque em dinheiro, por exemplo.

    3- Outra coisa, o SGBD não trabalha sozinho, mas sim, faz parte de um sistema, o qual involve hardware, sistema operacional...ele pode até, em caso de falha, em última instância garantir o controle de falhas e inconsistência, mas dizer que a responsabilidade é única e exclusiva dele, é um atentado.

    Com certeza o gabarito deve ter sido mudado...

  • Pessoal, a questão apresentada pelo colega trata de integridade, e não de inconsistência. Já vi o conceito de integridade sendo dado como a preservação dos dados no quesito segurança, por exemplo, quando este trafega de uma rede para a outra. 

  • Gente, mas isso é um grande absurdo. Questão flagrantemente errada. Veja o que diz[1]

    "A preservação da consistência geralmente é considerada uma responsabilidade dos programadores que escrevem os programas de banco de dados ou do módulo de SGBD que impõe restrições de integridade. Lembre-se de que um estado de banco de dados é uma coleção de todos os itens de dados armazenados (valores) no banco de dados em determinado ponto no tempo. Um programa de banco de dados deve ser escrito de modo que garanta que, se o banco de dados estiver em um estado consistente antes de executar a transação, ele estará em um estado consistente depois de concluir a execução da transação, supondo que não haja interferência em outras transações".

    Ou seja, o próprio autor afirma que é responsabilidade de ambos, programadores e SGBD, e o CESPE me vem com esse papelão.

    Ninguém entrou com recurso. Engoliram essa?

    Fonte:

    [1] SBD, E&N, pg 508

  • tranquilidade! Quem errou, acertou!

  • Só faltam o Chapolim, o Poucas Trancas e o Tripa Seca...

  • Que desânimo essa banca...

  • Esse gabarito tá errado, não é possível, os programadores não têm responsabilidade?

  • Pedir comentário do Professor.


ID
121612
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Acerca dos mecanismos de segurança e controle de concorrência
dos sistemas de banco de dados, julgue os itens que se seguem.

Um update lock insere um bloqueio no objeto para impedir que outros usuários façam alterações, porém não é ativado quando já existe um shared lock ou um exclusive lock no mesmo objeto.

Alternativas
Comentários
  • Só não é ativado apenas quando já existe um exclusive lock. Pode ser ativado quando há um ou mais shared locks.

    Fonte: http://www.imartins.com.br/informix/artigos/entendendo-trabalhar-com-concorrencia-dados-locks


ID
121615
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Acerca dos mecanismos de segurança e controle de concorrência
dos sistemas de banco de dados, julgue os itens que se seguem.

Uma transação do tipo dirty read lê todos os registros, não importando se estão sendo modificados ou se ainda não houve um commit.

Alternativas
Comentários
  • Dirty read é quando uma conexão faz a leitura de informações que ainda não foram comitadas, ou seja, a informação que foi lida pode não existir ou mesmo ter sido modificada.
  • dirty read - Leitura suja: leitura de dados não confirmados de uma linha existente, podendo ocasionar a leitura de uma informação nunca confirmada.
    Para esclarecer melhor, imagine duas transações ocorrendo em paralelo T1 e T2, T2 lê um item de dado A que T1 alterou, porém ainda não comitou. T1 apresenta falha e dá um rollback, o item de dado A volta ao seu valor original, T2 fica com aquele valor de A sujo, incorreto.
    Abraços, vamo que vamo.
  • Leitura suja: Ocorre qdo a transacao atualiza o item de dados, mas falha em seguida. Nesse caso, todos os seus efeitos deveriam ser desfeitos(respeitando a atomicidade). Porem, nesse meio tempo, antes do rollback, a transacao T2 le o seu valor incorreto(antes deste voltar a seu valor oringinal). Esse valor eh chamado de dado sujo, pois foi criado por uma transacao q nao foi concluida, nem confirmada.
    Em outras palavras, so ocorre leitura suja de valores alterados, cuja transaçao ainda não realizou o commit.
  • Estranho... dirty read é o nome de uma violação/problema, e não um tipo de transação...
  • Quem não tem acesso:  - -> Certo


ID
137056
Banca
FGV
Órgão
Senado Federal
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

No que diz respeito às técnicas de controle de concorrência em bancos de dados, é correto afirmar que:

Alternativas
Comentários
  • 16.6.3.1 Deadlock Detection

        Deadlocks can be described precisely in terms of a directed graph called a wait-for graph.


    Fonte: Pag 618 - Chapter 16 - Concurrency Control - Silberschatz−Korth−Sudarshan: Database System
  •  a) sempre que duas ou mais transações simultâneas tentam acessar o mesmo item de dados, elas provocam um deadlock no sistema de gerenciamento de banco de dados.  As transações têm que ser concorrentes e não simultâneas.  b) uma das técnicas para se detectar um estado de deadlock é construir um grafo wait-for. OK c) o problema de espera indefinida associado a uma transação (starvation) ocorre sempre que o seu esquema de espera para itens bloqueados atribui prioridade maior aos requisitos de outras transações simultâneas cujas execuções provoquem repetidos aborts na execução de suas atualizações. aborts é uma características das técnicas de timestamp não de bloqueio, que é onde ocorrem os starvations d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks. Não há deadlock nesta técnica, assim não há como diminuí-los. e) diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a última operação de desbloqueio na transação. Devem preceder as primeira de unlock, pois esta é que determina a mudança de fase. 
  • Gabarito D também correto. "d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks."

    O ivaneide está certo ao afirmar que não existe deadlock na técnica timestamp. Mas é uma mera questão de raciocício lógico: vamos supor que haveriam 10 casos de deadlock por hora usando-se outro tipo de protocolo. Se usarmos o timestamp eliminamos esse problema. Seria correto inferir que o número de casos de deadlock foi reduzido de 10 para 0 casos?

    Claro! Reduzir uma chance a 0% é o mesmo que eliminá-la.

  • Todos os créditos a @Ivaneide de Sousa Lucio, mas precisei organizar para a melhor compreensão.

    a) sempre que duas ou mais transações simultâneas tentam acessar o mesmo item de dados, elas provocam um deadlock no sistema de gerenciamento de banco de dados.

    As transações têm que ser concorrentes e não simultâneas.  

    b) uma das técnicas para se detectar um estado de deadlock é construir um grafo wait-for. OK [GABARITO] 

    c) o problema de espera indefinida associado a uma transação (starvation) ocorre sempre que o seu esquema de espera para itens bloqueados atribui prioridade maior aos requisitos de outras transações simultâneas cujas execuções provoquem repetidos aborts na execução de suas atualizações. 

    aborts é uma características das técnicas de timestamp não de bloqueio, que é onde ocorrem os starvations 

    d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks. 

    Não há deadlock nesta técnica, assim não há como diminuí-los. 

    e) diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a última operação de desbloqueio na transação. 

    Devem preceder as primeira de unlock, pois esta é que determina a mudança de fase.


ID
164671
Banca
FGV
Órgão
BADESC
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de Sistema de Banco de Dados, analise as afirmativas a seguir.

I. Os dados e a descrição correspondente são armazenadas na base e gerenciadas pelo SGBD.

II. A representação conceitual é feita por meio de um modelo de dados que só usa conceitos lógicos.

III. O controle de concorrência garante que o resultado de várias modificações à base de dados seja correto.

Assinale:

Alternativas
Comentários

  • I. Os dados e a descrição correspondente são armazenadas na base e gerenciadas pelo SGBD.

    CORRETO. Metadados e Dados são armazenados em tabelas (relacoes, relvars) e são gerenciados pelo SGBD.

    II. A representação conceitual é feita por meio de um modelo de dados que só usa conceitos lógicos.
    CORRETO
    Visao externa -> Conceitual (logica) -> Interna (Fisica)

    Ok... a frase da questão não foi muito clara, mas vamos dar um desconto né? O cara que escreveu não deve entender muito de Banco! Por ser FGV, não dá pra ser muito radical nas definições. Se fosse CESPE até que ia...

    III. O controle de concorrência garante que o resultado de várias modificações à base de dados seja correto.
    CORRETO
    Mais uma frase vazia. De fato, controle de concorrência garante integridade dos dados mas faz muito mais que isso.
  • Eu marcaria o item II errada devido a questão está mal formulada
  • A representação conceitual é feita por meio  de um modelo de dados que usa conceitos lógicos ? Pode isso Arnaldo?

    Essa definição, no meu ponto de vista, esta inconsistente, pois para mim modelo conceitual e lógico são coisas diferentes.
  • Acho que cabe recurso... Se eles não apresentarem bibliografia onde isso é afirmado

  • No meu ponto de vista a questão III está incorreta:

    É possível ter a concorrência implementada, mas a mesma não irá garantir que o resultado de várias modificações esteja correto, pois as modificações podem ser realizadas apenas por um acesso, sem concorrência e ainda sim causar problemas nos resultados devido a uma manipulação fora da semântica do banco.

    Muito mal formulada !!!

  • I - correto - sgdb administra processador e otimizador de consultas

    II - correto - modelo conceitual origina modelo logicl

    III - correto - entre as funções do sgdb estão segurança, manutenção do dicionario de dados, dados em varios formatos, backup, manipulação e ,o qual linguagem de acesso e controle de acesso simultâneo, o que garante integridade e consistencia

     

  • Embora tenha passado bastante tempo, a questão está correta. A banca usou a professora Marta Mattoso ( https://www.cos.ufrj.br/~marta/ ) como fonte bibliográfica veja:

    I. Extraído da página 11

    II. Extraído da página 11

    III. Extraído da página 20

    Fonte: https://www.cos.ufrj.br/~marta/BdRel.pdf

    GABARITO ALTERNATIVA E

  • I. O SGBD armazena em bancos de dados tanto os dados quanto os metadados, ou seja, aqueles dados que descrevem as estruturas do banco. Esses metadados são armazenados em um banco de dados especial chamado catálogo. CERTO

    II. O modelo conceitual só usa conceitos lógicos, como entidades e relacionamentos, não conceitos relacionados a aspectos fisicos, concretos do SGBD. CERTO

    III. O controle de concorrência visa garantir que as transações concorrentes respeitem o isolamento, ou seja, produzam resultados corretos, como se estivessem sendo executadas de forma sequencial. CERTO


ID
172627
Banca
FCC
Órgão
MPU
Ano
2007
Provas
Disciplina
Banco de Dados
Assuntos

Um mecanismo de controle de concorrência utilizado pelos sistemas gerenciadores de bancos de dados é denominado

Alternativas
Comentários
  • Controle de Concorrência Baseado em Bloqueio

    -  Protocolo de bloqueio estrito de duas fases (Strict 2PL):
    ? Cada transação deve obter:

    • bloqueio compartilhado (S): sobre o objeto antes de sua leitura
    • bloqueio exclusivo (X): sobre o objeto antes de sua escrita

    -  Todos os bloqueios feitos por uma transação são liberados quando a
    transação é completada.
    -   Se uma transação obtém um bloqueio do tipo exclusivo sobre um
    objeto, nenhuma outra transação pode obter um bloqueio (seja do tipo
    compartilhado ou exclusivo) sobre aquele objeto.

    http://www.ic.unicamp.br/~geovane/mo410-091/Ch16-GerTrans_pt.pdf
    • a) dependência sem commit.
    • Problema de concorrência, ocorre quando a transação tem permissão para ler ou atualizar uma tupla que foi atualizada por outra transação, mas sem validação dessa outra transação.
    •  b) deadlock.
    • Famoso IMPASSE, quando dois(ou mais) processos tentam acessar ao mesmo tempo a mesma área de memória por exemplo e ficam bloqueados.
    •  c) atualização perdida.
    • Ocorre quando dois processos leem os mesmos dados do banco de dados, e tentam atualizar os dados com base no que foi lido antes de uma das atualizações terem êxito
    •  d) bloqueio.(CERTA)
    •  Sincronizar o acesso de vários usuários à mesma parte dos dados simultaneamente.(Ex. LOCK do mysql)
    •  e) análise inconsistente.
    • Ocorre análise inconsistente quando uma segunda transação acessa a mesma linha várias vezes e lê dados diferentes a cada vez.

ID
215833
Banca
IF-SE
Órgão
IF-SE
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Sobre os protocolos de bloqueio em duas fases é CORRETO afirmar que:

Alternativas
Comentários
  • A – O protocolo livre de deadlock é o 2PL conservador;
    B – O conceito dado na resposta é sobre 2PL conservador;
    C – Gabarito. O 2PL rigoroso garante planos de execução estrito;
    D – O bloqueio em duas fases básico garante planos de execução seriável (serializável);
    E – O 2PL estrito não utiliza bloqueio binário (usa bloqueio exclusivo e compartilhado).
     

    Fernando Novaes

  • Conceitos:

    Bloqueio em duas fases basico(2PL): Ocorre se todas as operacoes de bloqueio precedem a primeira operacao de desbloqueio na transacao, podendo ser dividida em 2 fases:
    - expansao: novos bloqueios podem ser adquiridos, mas nenhum liberado;
    - encolhimento: bloqueios existentes pdem ser liberados e nenhum adquiridos.

    Variaçoes do 2PL
    - conservador: requer q 1 transacao bloqueie tdos os itens q ela acessa antes q ela inicie a execuacao. Se qqr 1 dos itens nao pder ser bloqueado, a transacao nao bloqueia item algum, ficando na espera. Eh livre de deadlock.
    - Estrito: uma transacao T nao libera nenhum de seus bloqueios exclusivos ate dpois de confirmar ou abortar. Pde ocorrer deadlock.
    - Rigoroso: variacao do estrito, onde 1 transacao T nao libera seus bloqueios(X ou S) ate dpois de confirmar ou abortar, sendo mais facil de implementar q o estrito.

    Com base nos conceitos, analisemos as alternativas:
    a) O bloqueio em duas fases estrito é um protocolo deadlockfree, ou seja, impede a ocorrência de deadlocks. Pode ocorrer deadlock, pois, se a transacao nao libera nenhum de seus recursos ate abortar, se outra transacao esperar por um recurso dessa transacao pra continuar, o deadlock ocorrera'.  b) O bloqueio em duas fases básico requer que uma transação bloqueie todos os itens que ela acessa antes de iniciar sua execução. No 2PL, tdas as operacoes de bloquio devem vir antes dos desbloqueiso, apenas. O conceito apresentado eh o 2PL conservador. c) O bloqueio em duas fases rigoroso garante planos de execução estritos. Sim, pois eh 1 variacao do 2PL estrito. d) O bloqueio em duas fases básico não garante seralização de planos de execução. garantir a serializacao de planos de execucao significa q duas transacoes T1 e T2, cujas operacoes sejam intercaladas, o resultado final deve ser o msm q se elas executassem uma apos outra, de forma serial. Isso o 2PL garante. e) O bloqueio em duas fases estrito utiliza bloqueio binário. A resposta ta na propreia questao. O bloqueio em duas fases estrito usa o bloqueio em duas fases. O bloqueio binario associa 1 ou 0 a bloqueio ou desbloqueio de operacoes sobre 1 item de dados, respectivametne.

ID
236266
Banca
FCC
Órgão
TCE-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

De acordo com C. J. Date, as coisas podem dar errado caso não se tome alguma providência pelos mecanismos de controle de concorrência e o problema está em

Alternativas
Comentários
  • São os 3 problemas clássicos de concorrência:

    Atualização perdida - 2 transações A e B lêem o mesmo registro R, ambas recuperam o mesmo valor. A transação A faz um update R, e em seguida B também faz um update R, mas com base no valor recuperado antes do update de A. Com isso, a atualização executa por A será perdida, pois B não a considerou.

    Dependência de transação não confirmada - 2 transações A e B são iniciadas. B faz um update R, e em seguida A lê o valor de R (com valor atualizado por B). Mas, ocorre um problema na transação B, que faz um rollback restaurando o valor anterior de R. Com isso, a transação A considerou em seu processamento um valor de R que na prática nunca existiu, pois não foi confirmado.

    Análise inconsistente - 2 transações A e B são iniciadas. A transação A lê o registro R, em seguida a transação B lê o valor de R e faz um update R, que é confirmado com commit. Como A possui o valor anterior de R, este será usado em seu processamento, um valor inconsistente pois não considerou a atualização de B.

    Esses 3 problemas são tratados via mecanismo de bloqueios, registros utilizados por uma transação tem seus acessos de leitura e escrita bloqueados para outras transações.
  • Segundo Date, setima edição pg 412, dependência sem COMMIT também é conhecido como leitura suja (dirty read).
  • Problemas da concorrência de transações

    Caso estejam duas ou mais transações do banco de dados efetuando alterações em determinada informação no mesmo instante, de acordo com a forma que o SGBD irá tratar estas transações poderemos ter os seguintes problemas:

    ·         Atualizações perdidas;

    ·         Dependência sem Commit – “Leituras Sujas”;

    ·         Análise Inconsistente – “Leituras não repetidas”;

    ·         Leituras Fantasmas.


ID
236272
Banca
FCC
Órgão
TCE-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Quanto à concorrência, considere uma transação T que precise atualizar um objeto para o qual existem réplicas em n sites remotos. Se cada site é responsável por bloqueios sobre objetos armazenados nele (no site, na hipótese de autonomia local), então uma implementação direta exigirá pelo menos xn mensagens, conforme:

Alternativas
Comentários
  • Fonte é o Date.
    Tenho uma versão bem antiga, tradução da 4a edição, no capítulo 24 sobre Sistemas Distribuídos, Concorrência.
    É uma cópia literal do livro!
     
    Enfim, o autor fala bem sucintamente sobre concorrência para ambientes distribuídos e cita esses 5 passos, além de falar que é mais oneroso que nos sistemas centralizados.

ID
239620
Banca
CESPE / CEBRASPE
Órgão
ABIN
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

No que se refere a SGBD associado para suporte a aplicações web,
inclusive com suporte ao processamento de transações e acesso
concorrente e simultâneo de diversos usuários, julgue os itens de
76 a 78.

A implementação de mecanismo de controle de concorrência é necessária para garantir a atomicidade das transações. Esse controle é efetuado de forma mais eficiente pela linguagem hospedeira na qual o aplicativo é desenvolvido, como é o caso de PHP com os bancos de dados por ele utilizados.

Alternativas
Comentários
  • A implementação de mecanismo de controle de concorrência é necessária para garantir a atomicidade das transações.

    Controle de concorrência garante ISOLAMENTO das transações.

  • A meu ver o segundo período também está incorreto, uma vez que o controle de transações é mais eficientemente realizado pelo SGBD e não pela linguagem hospedeira no qual o aplicativo é desenvolvido.
  • O controle de concorrência é responsável por garantir a integridade de uma transação, que é composta pelas quatro propriedades: ACID.
    Referências:
    1 - http://im.ufba.br/pub/MATA60/SemestreLetivo20062/banco-dados-concorrencia.pdf
    2 - http://pt.wikipedia.org/wiki/Banco_de_dados

    O Controle de concorrência é realizado pelos SGBDs.
    Assim o erro está na realização do controle pela linguagem da aplicação.
  • O erro da questão está em:  Esse controle é efetuado de forma mais eficiente pela linguagem hospedeira na qual o aplicativo é desenvolvido, como é o caso de PHP com os bancos de dados por ele utilizados.

    Lembrando que as propriedades de uma transação são ACID, e segundo Navathe:

    Atomicidade
    :  É responsabilidade do subsistema de recuperação de transação de um SGBD garantir essa propriedade, e não a linguagem hospedeira.


    Consistência:  É geralmente responsabilidade dos programadores  e do módulo do SGBD  que impõem as restrições de integridada.

    Isolamento:  É responsabilidade do subsistema de controle de concorência de um SGBD garantir essa propriedade.

    Durabilidade:  É responsabilidade do subsistema de recuperação de transação de um SGBD garantir essa propriedade.

  • Amigos vejam o que eu encontrei no livro do Navathe.

    Segundo Navathe(2011,p.508),"A propriedade de atomicidade exige que executemos uma transação até o fim. É responsabilidade do subsistema de recuperação de transação de um SGBD garantir a Atomicidade."

    Segundo Navathe(2011,p.508),"A propriedade de isolamento é imposta pelo subsistema de controle de concorrência do SGBD."

    **Portanto, A implementação de mecanismo de controle de concorrência é necessária para garantir O ISOLAMENTO das transações. Esse controle é efetuado de forma mais eficiente PELO SUBSISTEMA DE CONTROLE DE CONCORRÊNCIA DO SGBD.

    Bibliografia:

    SISTEMAS DE BANCO DE DADOS- NAVATHE-6 EDIÇÃO 2011


  • O erro se encontra na primeira sentença.

    Como já citado abaixo, o mecanismo de controle de concorrência é responsável por garantir o isolamento das transações.

    O conceito de atomicidade envolve apenas uma transação, não sendo influenciado pelo mecanismo de controle de concorrência.

  • Eu também usei a logica que a responsabilidade é do SGBD e não do Aplicativo PHP.

  • Prezados,

    Que o controle de concorrência é fundamental para garantir a atomicidade das transações (não só a atomicidade, mas a consistência , isolamento e durabilidade) isso não temos dúvida, mas esse controle é mais eficiente quando realizado no próprio SGBD e não na aplicação hospedeira, afinal de contas a aplicação hospedeira não tem conhecimento de todas as requisições que o dado sofre, para garantir a atomicidade das transações.

    Portanto a questão está errada.
    Gabarito: ERRADO.
  • O controle de concorrência é responsável por Garantir a propriedade de Isolamento das transações !

  • Propriedades das transações >> Responsáveis:

    ATOMICIDADE >> Subsistema de recuperação

    ISOLAMENTO >> Subsistema de controle de concorrência.

    DURABILIDADE >> Subsistema de recuperação.

    CONSISTÊNCIA >> Programador ou módulo de restrições de integridade.

    Fonte: Ramom Souza - Exponencial

  • GABARITO ERRADO!

    .

    .

    CESPEZADA

    As transações em um banco de dados devem possuir propriedades que são definidas pelo controle de concorrência e pelos métodos de restauração do SGDB. A propriedade do tipo isolamento permite que a transação seja executada sem que haja interferência das demais transações concorrentes.

    CORRETO

  • Ano: 2010 Banca: CESPE/CEBRASPE Órgão: PC-ES:

    "Em bancos de dados multiusuário, o controle de concorrência é um mecanismo utilizado no processamento de transações para garantir a propriedade da atomicidade. (Gab.: ERRADO).


ID
315718
Banca
FCC
Órgão
TRE-RN
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

No âmbito dos bancos de dados, quando cada transação em um conjunto de duas ou mais transações espera por algum item que esteja bloqueado por alguma outra transação no conjunto, o que ocorre é

Alternativas
Comentários
  • Segundo o Wikipedia:
    "O deadlock ocorre com um conjunto de processos e recursos não-preemptíveis, onde um ou mais processos desse conjunto está aguardando a liberação de um recurso por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo."
    Não foi dito que a transação que está bloqueando o recurso está esperando por outro recurso de outra transação e que certo recurso está sendo bloqueado por outra transação e precisa esperar, logo vem a ocorrência de Starvation.
    Fonte:
    http://pt.wikipedia.org/wiki/Deadlock
  •  

    • a) commit. Comando que grava definitivamente os efeitos dos comandos de uma transação (insert, delete e update).

    • b) timestamp. é uma seqüência de caracteres, que utiliza data e / ou a hora em que um evento é registrado por um computador, não o tempo do evento em si. O momento em que um evento é gravado por um timestamp (por exemplo, entrou em um arquivo de log) deve ser muito, muito perto da hora da ocorrência do evento registrado.

    • c) deadlock. caracteriza uma situação em que ocorre um impasse e dois ou mais processos ficam impedidos de continuar suas execuções, ou seja, ficam bloqueados. Ainda especificamente para que o deadlock (travamento mortal) ocorra os recursos solicitados por um processo devem estar alocados a outro processo o qual também solicite simultaneamente um recurso.

    • d) rollback. Comando que desfaz os efeitos dos comandos da transação (insert, delete e update)

    • e) starvation.   ocorre quando um processo nunca é executado ("morre de fome"), pois processos de prioridade maior sempre o impedem de ser executado.  

  • a) commit  --> Grava os efeitos de uma transação.
    b) timestamp --> Log de registro de um evento.
    d)
    rollback --> Desfaz os efeitos dos comandos da transação


    A dúvida ficaria entre a C e E.


    A alternativa é a C, sendo que a questão foi um copy/paste do livro do Navathe, 4a edição:

    .18.1.3 - Lidando com Deadlock (Impasse) e Starvation (Inanição)

    O deadlock ocorre quando cada transação em um conjunto de duas ou mais transações espera por algum item que esteja bloqueado por alguma outra transação T' no conjunto. Portanto, cada transação no conjunto está em uma fila de espera, aguardando por uma das outras transações do conjunto para liberar o bloqueio em um item.


    Starvation (Inanição). Um outro problema que pode ocorrer quando usamos bloqueio é a starvation, que ocorre quando uma transação não pode continuar por um período indefinido de tempo, enquanto outras transações no   sistema continuam normalmente. Isso pode ocorrer se o esquema de espera para itens bloqueados for parcial, dando prioridade a alguma transações sobre outras.
  • As informações oferecidas não são suficientes para caracterizar a ocorrência de um dead-lock. O problema é que essa bancas retiram partes de textos que estão inseridos num contextos nos livros, e aí aparecem essas questões toscas sem pé nem cabeça.
  • Mas o que mais poderia ser, além de Deadlock? Starvation, talvez?

     

    Mas Starvation está relacionado ao fato de um processo não ser selecionado pelo escalonador do SO. E as outras alternativas não condizem com o enunciado.

  • DEADLOCK
    •É uma situação em que duas ou mais transações estão em estado simultâneo de espera, cada uma aguardando que uma das demais libere um bloqueio para ela poder prosseguir.


ID
392179
Banca
Aeronáutica
Órgão
CIAAR
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às técnicas de controle de concorrência em sistemas de banco de dados, analise as assertivas e assinale a alternativa que aponta as corretas.

I. A granularidade é um indicador único criado pelo sistema de gerenciamento de banco de dados para cada transação.

II. Um bloqueio binário pode ter dois estados: bloqueios e desbloqueios. Quando um item está bloqueado (lock), um item não poderá ser acessado por uma operação que o solicite.

III. O deadlock ocorre quando cada transação em um conjunto de duas ou mais transações esperam por algum item bloqueado por alguma outra transação no mesmo conjunto.

IV. Um bloqueio compartilhado (ou de leitura) permite que outras transações leiam um item, enquanto que um bloqueio exclusivo (ou de escrita) limita o acesso ao item apenas a uma transação.

Alternativas
Comentários
  • gaba: a


    Quanto mais granular um software, mais quebrado em "partes menores" ele é. Um banco de dados altamente granular, estaria completamente normalizado, sem haver duplicação de dados em absolutamente nenhum campo. 

    Granularidade diz respeito ao nível de detalhe ou de resumo contido nas unidades de dados existentes no data warehouse. Quanto maior o nível de detalhes, menor o nível de granularidade. O nível de granularidade afeta diretamente o volume de dados armazenado no data warehouse e ao mesmo tempo o tipo de consulta que pode ser respondida.



ID
399955
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a banco de dados, julgue os itens a seguir.

Em um sistema gerenciador de banco de dados, o controle de concorrência consegue monitorar as modificações simultâneas de forma física e lógica, podendo a forma lógica ser feita por meio de linguagem de consulta.

Alternativas
Comentários
  • Correto.

    O controle de concorrência pode ser executado, de forma lógica por meio de linguagem de consulta, basta informar comandos próprios, tais como commit e roolback




  • E o controle físico?
  • ?  O bloqueio pode ser lógico ou físico.
    Lógico: linguagem de consulta.
    Físico: registro, página ou tabela

ID
459091
Banca
CESPE / CEBRASPE
Órgão
HEMOBRÁS
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Com base nos conceitos de uso de métricas de desempenho e a
gerência de falhas em bancos de dados, analise os itens a seguir.

A execução concorrente de diferentes tipos de transações pode levar a um desempenho pobre em função da ocorrência de locks. Outra problema derivado dessa execução concorrente é a saturação muito rápida do log, o que pode ser solucionado diminuindo-se o número de transações concorrentes em um intervalo de tempo.

Alternativas
Comentários
  • Você pode ter apenas duas transações concorrentes e ainda assim gerar locks que impactarão no desempenho. Diminuir o número de transações concorrentes, não irá, por si só, solucionar isso.

     

    Gabarito: Errado


ID
486568
Banca
FCC
Órgão
TCE-AL
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Uma transação executará qualquer operação somente depois que o gerenciador de banco de dados conceder o bloqueio do dado por meio do

Alternativas
Comentários
  • É responsabilidade do gerenciador de controle de concorrência controlar as interações entre transações concorrentes de modo a garantir a consistência dos dados.

    Livro: Sistemas de Banco de dados - cap 1 Introdução pag 13 (3ª Edição)

ID
704194
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de integridade e concorrência em banco de dados, julgue os itens subsecutivos

Devido ao fato de a concorrência de acessos a um banco de dados diminuir conforme aumenta a importância do controle da concorrência, os registros de acessos em memória, com o intuito de manter a integridade dos dados, geram um despejo na fila de acesso

Alternativas
Comentários
  • Questao de logica: se a concorrência de acessos a um banco de dados diminui, a importancia do controle de concorrencia seria menor, e nao maior.
  • Roger, eu prefiro dizer que não uma relação direta da importância com o aumento/diminuição concorrência. Entendo que o controle de concorrência serve para garantir o isolamento das transações. 

    Há mecanismos de controle de concorrência que aumentam a concorrência (como a escrita de thomas). há outros que diminuem (como o timestamp). 

    Entendo que o erro da questão está em afirmar que existe essa relação.


ID
704197
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de integridade e concorrência em banco de dados, julgue os itens subsecutivos

Em banco de dados relacionais, o controle de concorrência é ilimitado para leituras de dados. Entretanto, modificações simultâneas disparadas ao mesmo dado por diferentes usuários são garantidas, pois, sempre que um dado estiver em modo protegido, o acesso restrito ao dado somente será permitido após autenticação.

Alternativas
Comentários
  • O modo protegido garante acesso exclusivo a um usuário da cada vez, impedindo anomalias de atualização. O erro está em dizer que o acesso só será permitido após autenticação. Na verdade, o acesso só será permitido após o usuário que detêm o uso exclusivo finalize a atualização e o dado saia do modo protegido.
  • A questao tentou fazer uma confusao, ao estabelecer o controle de concorrencia por usuario, o q nao  tem nada haver. A questao afirma q, se o usuario estiver autenticado, nao havera inconsistencia nos dados devido a acessos concorrentes.
    Acontece q o controle de concorrencia nao eh feito por usuario e sim por transacao. Imagine vc autenticado no banco e realizando atualizaçoes em varios itens de dados, por exemplo, comprando varios exemplares do mesmo livro..se nao houver controle de concorrencia por transacao, pode ocorrer de vc comprar 2 livros, sendo q havia apenas 1 no estoque(cada transacao realiza uma operacao no banco, e a transacao T2 nao viu quando a T1 deu baixa no livro), e pode ter q  pagar pelos 2 livros e so receber um.
    Imagine a confusao.. e cabeças de analistas rolando ladeira abaixo.
  • Pra mim tem muito erro na questão:
    - Concorrência para leitura ilimitado? Não é. Para isto temos o bloqueio compratilhado (leitura)
    - Modificações no mesmo dado simultaneamente não acontece.
    - A autenticação não tem referencia com controle de concorrência.

  • Misturou o PROTEGIDO de Controle de Concorrência com o PROTEGIDO de Segurança da Informação, atribuindo um conceito ao outro.


ID
704248
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de administração de banco de dados relacionais;
administração de usuários e perfis de acesso; controle de proteção,
integridade e concorrência; restauração de dados; tolerância a falhas
e continuidade de operação e otimização de desempenho, julgue os
itens de 85 a 87.

A garantia de consistência do banco de dados, na ocorrência de uma queda de sistema enquanto uma transação T, para transferência de 50 dólares de uma conta A para uma conta B, estiver sendo executada, após o débito em A e antes do crédito em B, que resulte em perda dos conteúdos de memória, requer a manutenção das informações de modificações em um sistema de armazenamento estável.

Alternativas
Comentários
  • ..."requer a manutenção das informações de modificações em um sistema de armazenamento estável." está falando dos logs de modificações, que servem entre outras funções para recuperar um bd em caso de falhas.
    Abraços, vamo que vamo.
  • So lembrando q os logs sao quase indestrutiveis, sempre podendo ser recuperado(apenas em casos de desastres fatais, ou disco corrompido, eles nao podem mais ser recuperados, porem, nesses casos, se nao houver plano B, como espelhamento ou backup, nem mesmo a base poderia ser recuperada, quando mais a consistencia!).
    Outro detalhe: ao contrario do q se poderia supor, o log nao eh gravado depois do commit, mas imediatamente antes da transacao ser confirmada(se fosse gravado depois da confirmacao, se houvesse uma queda de energia, o log poderia nao ser gravado e um possivel rollback tbm nao seria possivel. Entao, o log precisa ser gravado no intervalo entre o final das operacoes de uma transacao e seu commit.
  • Todas as alterações em uma transação ativa são gravados no log de UNDO (arquivo em memória estável), pois caso aconteça o que a questão citou (falha na memória), a transação será desfeita (desfeita pois ainda não foi dado COMMIT). Quando a transação for dado COMMIT, as alterações desta transação serão transferidos para uma outra área, também em memória estável (disco), chamado REDO. Nesta área, se houver alguma falha no banco, a transação poderá ser refeita.
  • A questão está correta (inclusive gabarito). O que está errado é o assunto: estamos tratando de recuperação e controle de transação.
  • A questão é boa, mas pra mim incompleta, e realmente não dá pra entender que tipo de conhecimento o avaliador quer testar.

    Pra ficar legal, teria que especificar que tipo de abordagem de recuperação está sendo utilizada. No caso ESPECÍFICO do problema, a técnica de recuperação baseada em Atualização Adiada (mesmo sem log, ou qualquer "sistema de armazenamento estável") garantiria o banco de dados consistente(lembrando que esta técnica só utiliza o Log para REDO em falhas durante a gravação física após o ponto de efetivação(Navathe 4ed. p443), o que não ocorre no caso). Visto que o débito da conta origem (A) não seria gravado no físico e após o restart a operação de débito seria descartada, e como a atualização do saldo de A só seria permanente após a transação alcançar o ponto de efetivação(o que não ocorreu no exemplo), naturalmente o saldo de A retornaria igual ao início da operação e o de B nem se fala, pois, nenhuma operação alterou seu valor.

    Resumindo, apenas o descarte do Buffer seria suficiente para manter o BD consistente, neste problema(ou qualquer outra similar), então, NÂO requer o tal "sistema de armazenamento ...etc... etc...."

    Na minha opinião claro. Gabarito Errado

  • Coloquei errado pois interpretei que "requer a manutenção das informações de modificações em um sistema de armazenamento estável." se referia a um ambiente estável, ou seja, em que seja raro quedas de sistemas. Mas ao que parece o tal do "sistema de armazenamento estável" se refere à volatilidade dos dados, ou seja, um disco rígido (onde ficaria o log), e não um buffer.


ID
770257
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A utilização de SGBD permite o gerenciamento do acesso concorrente, ou seja, permite atualizações simultâneas nos dados para aumento do desempenho do sistema como um todo e para melhores tempos de resposta.

Alternativas
Comentários
  • Questao muito generica; essa funçao e', especificamente, do  gerenciador de controle de concorrencia, que e' um modulo do SGBD.
    Toda vez q uma transacao T1 precisa acessar um item de dados, ela, antes, envia uma solicitacao ao gerenciador de controle de concorrencia(GCC). Se o item nao estiver bloqueado por outra transacao, ou se o bloqueio mantido por alguma outra transacao for compativel com o bloqueio solicitado, o GCC concede o bloqueio a T1; caso contrario, ela tem q esperar.
    E tudo isso, obviamente, sob controle geral do SGBD, por meio do GCC.
  • "atualizações simultâneas" mas item não é bloqueado antes de ser alterado para que outra transação não acesse ele??
  • Sem complicar nem extrapolar a questão.
    1º O gerenciador de concorrência faz parte do SGBD. Dessa forma, não há equívoco ao dizer que o SGBD permite o gerenciamento de acesso concorrente.
    2º A questão afirma "atualizações simultâneas nos dados", do ponto de vista dos dados como um todo. Em nenhum momento a questão restringe dizendo que serão atualizados os mesmos dados, ou seja, os que estariam sujeitos ao lock. A questão trata de atualização dos dados do BD de maneira simultânea, e.g., duas aplicações que atualizam duas tabelas distintas simultaneamente em um mesmo BD.
    Como essas características tendem a aumentar odesempenho, pois não é preciso esperar a realização serial das operações, o item está correto em sua totalidade.
  • Então, na minha visão é preciso cuidado com esse tipo de questão. Realmente, ele fala de atualizações em considerações gerais. Mas isso é um erro de expressão. Pois um caso é geral quando um caso específico não nega a verdade do caso.

    No caso da questão, se você considerar o controle de concorrência como sendo o bloqueio, um caso específico negaria a verdade do caso, pois ao escrever, o item é bloqueado. O caso só funcionaria se fosse atualizações em duas tabelas diferentes.

    Porém, se considerarmos outro controle de concorrência, como o timestamp, a questão se torna correta. Pois ele não usa o bloqueio. O controle se dá por uso de uma variável incrementada e as atualizações ocorrem em várias versões do dado. O controle se dá pelo timstamp da transação, que vai verificar qual das versões dos dados tem o timestamp mais recente e considera ele. 

    Esse é o protocolo de multi-versão com uso de timestamp. Ele é feito para eliminar o aumento da concorrência causado pela escrita de thomas (forma de timestamp que ao perceber um timestap da transação mais antigo que o timestamp do itme, não descarta a transação. Apenas não a executa, causando maior concorrência) e do impedimento de atualização simultânea do timestamp, pois ao perceber que a transação tem um timestamp da transação é menor que o do item, ele descarta a transação.

  • CERTO


ID
770380
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca das técnicas de controle de concorrência, julgue os itens subsequentes.


Consta do protocolo de bloqueio com granularidade múltipla (MGL – multiple granularity locking) a seguinte regra: a raiz da árvore precisa ser bloqueada primeiro, em qualquer modo.

Alternativas
Comentários
  • De acordo com Navathe, o protocolo de bloqueio de granularidade múltipla(MGL - multiple granularity locking) consiste das seguintes regras:

    1. A compatibilidade de bloqueio deve ser aderente.
    2. A raiz da árvore deve ser bloqueada primeiro, em qualquer modo.
  • O MGL permite que os itens de dados sejam de vários tamanhos e define uma hierarquia de granularidades de dados, onde as granularidades pequenas são aninhadas dentro das maiores. Agrupar vários itens de dados e tratá-los como uma unidade de sincronismo individual. Podem ser representadas graficamente como uma árvore. Quando uma transação bloqueia um nó na árvore explicitamente, ela implicitamente bloqueia os descendentes do nó no mesmo modo. Ao invés de bloquear um item de dados, podemos bloquear tuplas, tabelas, blocos de disco ou DBs. Granularidade do bloqueio (nível na árvore onde o bloqueio é feito)
    :- granularidade menor(mais baixo na árvore): alta concorrência, alta sobrecarga de bloqueio
    - granularidade maior(mais alto na árvore): baixa sobrecarga de bloqueio, baixa concorrência
  • O protocolo de bloqueio com granularidade múltipla (MGL), é util quando um banco de dados faz uma consulta em um grande volume de dados e ao mesmo tempo em "pequenas transacoes concorrentes". Assim, o protocolo garante que ao se bloquear um "Objeto" do banco, seus "sub-objetos" (filhos) serão também bloqueados. Já que o Objeto inicial é considerado a raiz de uma arvore (a hierarquia vai se formando) a questão esta correta em dizer que ela precisar ser bloqueada primeiro. []s
  • Copy-paste do livro do Navathe, página 432, 4ed (traduzida).
    "2. A raiz da árvore deve ser bloqueada primeiro, em qualquer modo."
    Examinador preguiçoso. Deve ter aberto o livro e procurado qualquer coisa esdrúxula p/ copiar
  • Essa é uma das regras do protocolo de bloqueio múltiplo. Seguem as outras:
    1) A matriz de compatibilidade precisa ser observada
    2) A raiz da árvore precisa ser bloqueada primeiro e pode ser bloqueada em qq modo
    3) Um item Q pode ser bloqueado por Ti no modo S ou I apenas se o pai de Q está bloqueado no modo IX ou IS
    4) Um item Q pode ser bloqueado por Ti no modo X, IX ou SIX apenas se o pai de Q está bloqueado no modo IX ou SIX
    5) Ti pode bloquear um item apenas se ele não desbloqueou nenhum item antes (i.e. 2PL)
    6) Ti pode desbloquear um item Q apenas se nenhum dos filhos de Q estão corretamente bloqueados por Ti

ID
794062
Banca
FCC
Órgão
TST
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Um SGBD normalmente suporta a concorrência, ou seja, vários usuários podem acessar simultaneamente um mesmo banco de dados, podendo gerar várias transações simultâneas. De forma a prevenir a perda de consistência do banco de dados, há um mecanismo nos SGBD de dados que visa prevenir esse tipo de problema, garantindo acessos exclusivos a certos tipos de itens de dados. Esse mecanismo é conhecido como

Alternativas
Comentários
  • O bloqueio é um mecanismo usado pelo banco de dados para sincronizar o acesso de vários usuários à mesma parte dos dados simultaneamente.
    Antes que uma transação adquira uma dependência de uma parte dos dados no estado atual, como por ler ou modificar os dados, ela deve se proteger contra os efeitos de outra transação que modifique os mesmos dados. A transação faz isso, solicitando um bloqueio na parte dos dados. Os bloqueios têm modos diferentes, como compartilhado ou exclusivo. O modo de bloqueio define o nível de dependência que a transação tem nos dados. Nenhuma transação pode receber um bloqueio que conflite com o modo de um bloqueio já atribuído àqueles dados por outra transação. Se uma transação requisitar um modo de bloqueio que conflite com um bloqueio que já tenha sido atribuído aos mesmos dados, a instância do Mecanismo de Banco de Dados fará uma pausa na transação requerida até que o primeiro bloqueio seja liberado.
    Quando uma transação modifica uma parte dos dados, ela mantém o bloqueio protegendo a modificação até o fim da transação. O tempo que uma transação mantém os bloqueios adquiridos, para proteger as operações de leitura, depende da configuração do nível de isolamento da transação. Todos os bloqueios mantidos por uma transação são liberados quando a transação for concluída (confirma ou reverte).


    Fonte: http://msdn.microsoft.com/pt-br/library/ms190615(v=sql.105).aspx

  • a)bloqueio
    Complemento ao colega, só para tornar mais rico as fontes. 


    Segundo Navathe(2011,p.553),"[...] a técnica de bloqueio de itens de dados para impedir que múltiplas transações acessem os itens ao mesmo tempo."


    em outro trecho do livro


    Segundo Navathe(2011,p.553),"Algumas das principais técnicas usadas para controlar a execução concorrente de transações são baseadas no conceito de bloqueio de itens de dados."


    Bibliografia:

    SISTEMAS DE BANCO DE DADOS- EDIÇÃO 2011-NAVATHE



  • O mecanismo que tem o condão de fornecer um acesso exclusivo a um determinado item de dados para uma transação é um bloqueio. Os bloqueios implementados nos SGBDs costumam ser do tipo compartilhado/exclusivo, que permitem que múltiplas transações acessem o mesmo recurso, desde que o façam somente para leitura de dados.

    Gabarito: A


ID
893965
Banca
CESPE / CEBRASPE
Órgão
TRT - 10ª REGIÃO (DF e TO)
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a sistemas de gerenciamento de banco de dados,
julgue os itens seguintes.

O protocolo de bloqueio é utilizado para resolver problemas relacionados à concorrência.

Alternativas
Comentários
  • Os protocolos de bloqueio são especialmente usados para garantir isolamento de transações, condição essencial para que seja serializável. Os protocolos variam conforme a arquitetura e algoritmo usado - eventualmente, podem também prevenir deadlocks.

    O link traz uma excelente transparência sobre controle de concorrência: http://www.inf.ufsc.br/~frank/BDD/BDDConcorrencia.pdf
  • Protocolos de bloqueios são responsáveis por posicionar as operações de bloqueios com o objetivo de garantir a serialização de planos de execução. Os protocolos mais conhecidos são:
    Protocolo em duas fases -> a transação tem duas fases: uma de expansão (os bloqueios vão sendo adquiridos à medida que são necessários, mas não podem ser liberados) e a outra de encolhimento (os bloqueios existentes podem ser liberados à medida que deixam de ser necessários, mas novos bloqueios não podem ser adquiridos).
    Protocolo Conservador ou estático -> na fase de expansão, a transação bloqueia todos os itens dos quais precisará durante a sua execução, executa, e depois vai liberando os locks à medida que deixam de ser necessários.
    Protocolo Estrito ou severo -> na fase de expansão, a transação bloqueia todos os itens dos quais precisará, porém, na fase de encolhimento, ela somente libera os locks de escrita após o commit ou abort.
    Protocolo Rigoroso -> semelhante ao Estrito, porém, na fase de encolhimento, tanto os locks de leitura quanto os de escrita somente são liberados após o commit ou abort.
  • Certo.

     

    "Algumas das principais técnicas usadas para controlar a execução concorrente de transações são baseadas conceito de bloqueio de itens de dados. Um bloqueio é uma variável associada a um item de dados que descreve o status do item relação a possíveis operações que ser aplicadas a ele. Em geral, existe um bloqueio para cada item de dados no banco de dados."


    Navathe, 6 ed, capítulo 22.


ID
960877
Banca
IADES
Órgão
EBSERH
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Uma das formas de se controlar o acesso concorrente das transações ao banco de dados, é a utilização do protocolo com base em bloqueio. Em relação a este protocolo, assinale a alternativa correta.

Alternativas
Comentários
  • O protocolo de bloqueio em duas fases exige que na fase de expansão, uma transação pode obter bloqueios, mas não pode liberar qualquer bloqueio.

  • Já na fase de encolhimento, uma transação pode liberar bloqueios, mas não pode obter qualquer bloqueio.


ID
961060
Banca
Marinha
Órgão
Quadro Técnico
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Qual das opções abaixo corresponde a uma técnica de controle de concorrência em banco de dados?

Alternativas
Comentários
  • Protocolo com Base em Timestamp

    Em uma situação onde o acesso a um determinado item do Banco de Dados é realizado apenas um por vez, ou seja, existe apenas uma única transação utilizando aquele item de dado, é bem simples entender o funcionamento do SGBD sobre essa operação. A dificuldade começa a ocorrer quando temos mais de uma operação tentando fazer uso do mesmo item de dado, pois será necessário que de alguma forma isso seja organizado de maneira justa e coerente.



    Leia mais em: Protocolo com Base em Timestamp: controle de concorrência em bancos de dados http://www.devmedia.com.br/protocolo-com-base-em-timestamp-controle-de-concorrencia-em-bancos-de-dados/27810#ixzz3D6O4UQwa

  • Técnicas de recuperação no caso de falhas:

    Algoritmo ARIES,  atualização adiada, atualização imediata e paginação shadow.

    Técnica de controle de concorrência em banco de dados:

    Principais protocolos: Bloqueio (tranca) de itens de dados, Pré-ordenação (timestamp), Multiversão e Otimista


ID
1035946
Banca
CESPE / CEBRASPE
Órgão
IPEA
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Com relação aos SGBDs, julgue os itens de 81 a 85.

O controle de concorrência é um método que visa o controle e a correção de uma atualização de resultados de transações realizadas simultaneamente.

Alternativas
Comentários
  • Gabarito: Certo

    Questão parecida cobrada pela própria banca

    A utilização de SGBD permite o gerenciamento do acesso concorrente, ou seja, permite atualizações simultâneas nos dados para aumento do desempenho do sistema como um todo e para melhores tempos de resposta Q256750

  • GABARITO CORRETO!

    .

    .

    DEIXA COMIGO....

    .

    O SGBD precisa incluir um software de controle de concorrência para garantir que vários usuários tentando atualizar o mesmo dado faça isso de uma maneira controlada, de modo que o resultado dessas atualizações seja correto.

    Por exemplo, quando vários agentes de viagem tentam reservar um assento em um voo de uma companhia aérea, o SGBD precisa garantir que cada assento só possa ser acessado por um agente de cada vez para que seja atribuído a um único passageiro.

    .

    SISTEMAS DE BANCO DE DADOS, NAVATHE, 6ª EDIÇÃO

  • O controle de concorrência é um método que visa o controle ( até aqui sem dúvidas ) e a correção ( aqui pode gerar dúvidas) de uma atualização de resultados de transações realizadas simultaneamente.

    Exemplo de correção de um atualização no banco de dados é quando uma transação não ocorre por completo e precisa-se voltar ao estado inicial (nome técnico: Roll Back), nesse caso o controle de concorrência que é uma software deve prover as caracteristicas ACID.

    Se tiver errado, favor notificar para correção !


ID
1044121
Banca
CETRO
Órgão
ANVISA
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Leia as afirmações abaixo relativas a banco de dados que consideram a transação “Somente Leitura” na técnica de controle de concorrência conhecida como Leitura Multiversão.

I. Nunca retarda as atualizações.
II. Nunca necessita efetuar o rollback.
III. Nunca é retardada por outra transação.

É correto o que se afirma em:

Alternativas
Comentários
  • Na Leitura Multiversão, escritas não bloqueiam atualizações e vice-versa.


    I. Nunca retarda as atualizações. (CORRETO)
    II. Nunca necessita efetuar o rollback. (CORRETO - escritas não precisam de rollback porque não modificam dados)
    III. Nunca é retardada por outra transação. (CORRETO)


    http://pt.wikipedia.org/wiki/Controle_de_concorr%C3%AAncia_multivers%C3%A3o

  • [...] técnica de controle de concorrência conhecida como bloqueio multiversão (também conhecida como leitura multiversão, e agora implementada em vários produtos comerciais). A maior vantagem da técnica é que as operações de leitura nunca precisam esperar - qualquer número de leitores e um único escritor podem operar sobre o mesmo objeto lógico simultaneamente. Para ser mais específico:

    - As leituras nunca são retardadas.

    - As leituras nunca retardam as atualizações.

    - Nunca é necessário fazer o rollback de uma transação somente leitura.

    - O impasse só é possível entre transações de atualização.

     

     

    Fonte:

    DATE, C. J., 1941-. Introdução a sistemas de bancos de dados / C. J. Date; tradução por Daniel Vieira - Rio de Janeiro : Elsevier, 2003 - 9ª reimpressão. Tradução de Introduction to database systems, 8th ed. - Pág.: 422 e 423.


ID
1047259
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Com relação ao controle de concorrência e à alta disponibilidade de banco de dados, julgue os itens a seguir.

Quando o protocolo 2PL é utilizado para fazer o controle de concorrência, o desfazimento de uma transação pode levar ao desfazimento de outras transações, em um efeito cascata.

Alternativas
Comentários
  • Pode-se provar que, se toda transação em um escalonamento segue o

    protocolo 2PL, então a transação é serializável. Embora o protocolo 2PL garanta

    a serializabilidade, bloqueios podem gerar dois problemas: impasse (deadlock) e

    inanição (livelock).

    Deadlock ocorre quando, existem duas transações bloqueando o mesmo

    item e cada uma das duas está esperando que a outra libere este bloqueio. A

    solução mais comum para este problema de impasse é abortar uma das

    transações envolvidas. Existem diversas implementações diferentes para decidir

    qual transação deve ser interrompida no caso de um impasse, geralmente é

    escolhida a transação mais nova. Isso pode causar o livelock (quando o sistema

    não consegue decidir qual das transações deve ser abortada), então é introduzida

    uma prioridade para as transações (por exemplo, maior prioridade para

    transações que já foram abortadas anteriormente).

    Variação do protocolo 2PL

    Além do protocolo básico, existem duas variações comumente adotadas do

    protocolo 2PL:

    2PL conservador (ou estático) – requer que todos os itens a serem usados por

    uma transação (lidos ou escritos) sejam bloqueados antes do início da transação.

    Esta variação do protocolo evita que sejam gerados deadlocks.

    2PL estrito – a transação não libera seus bloqueios até que tenha sido

    comprometida ou abortada (diminui o grau de concorrência do sistema, mas evita

    ter que desfazer transações).

    http://www.cpdee.ufmg.br/documentos/PublicacoesDefesas/636/bd2.pdf

  • A questão exige do candidato a compreensao do funcinamento do protocolo 2 Phase Lock no modo Básico. Vamos aos comentários:

     

    O 2PL (2 phase lock) é um protocolo baseado em bloqueio para evitar inconsistencias na transacao. O funcionamento do protocolo no modo Básico (padrao) pressupoe que itens da mesma transacao podem estar no estado LOCK e UNLOCK. É nessa caracteristica de funcionamento que podemos observar semanticamente o comportamento descrito na assertiva, ou seja, um item da transacao inicial que ja foi liberado (UNLOCK) pode ser requisitado por uma nova transacao. Caso a transacao inicial(que ainda nao tinha sido finalizada em todos os seus itens) precise ser desfeita, a transacao subsequente (que estava utilizando o item liberado anteriormente) tambem será impactada pelo desfazimento.

     

    Gabarito, CERTO.

     

    FFF


ID
1095139
Banca
FUMARC
Órgão
Prefeitura de Belo Horizonte - MG
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Em relação ao controle de concorrência em banco de dados, analise os itens a seguir, identificando com (V) a assertiva verdadeira e com (F) a assertiva falsa.

( ) No bloqueio compartilhado/exclusivo, um item pode assumir 4 (quatro) estados em relação aos bloqueios: bloqueado para leitura, bloqueado para escrita, bloqueado para leitura/escrita e desbloqueado.

( ) No bloqueio compartilhado/exclusivo, um bloqueio compartilhado permite que mais de uma transação possa ler um item bloqueado.

( ) No bloqueio compartilhado/exclusivo, um item bloqueado exclusivamente pode ser acessado para escrita apenas pela transação dona do bloqueio.

( ) Deadlock é um tipo de método de prevenção de bloqueios.

A sequência CORRETA, de cima para baixo, é:

Alternativas
Comentários
  • LETRA A

    Não existe bloqueado para leitura/escrita no bloqueio compartilhado
    Deadlock é um tipo de erro, onde uma transação espera recurso da outra e vice-versa

  • (F) No bloqueio compartilhado/exclusivo, um item pode assumir 3 (três) estados em relação aos bloqueios: bloqueado para leitura (compartilhado), bloqueado para escrita (exclusivo), bloqueado para leitura/escrita (não existe) e desbloqueado

    (V) No bloqueio compartilhado/exclusivo, um bloqueio compartilhado permite que mais de uma transação possa ler um item bloqueado. 

    (V ) No bloqueio compartilhado/exclusivo, um item bloqueado exclusivamente pode ser acessado para escrita apenas pela transação dona do bloqueio. 

    (F) Deadlock é uma situação em que duas ou mais transações estão em estado simultâneo de espera, cada uma aguardando que uma das demais libere um bloqueio para ela poder prosseguir


ID
1131637
Banca
CS-UFG
Órgão
UEAP
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

O protocolo de bloqueio de duas fases (2PL) é importante para o controle de concorrência entre transações. O emprego do 2PL, em todas as suas variações, garante que os escalonamentos produzidos são

Alternativas
Comentários
  • Segundo Navathe(2011,p.531),"O uso de bloqueios,combinado com o protocolo 2PL,garante a serialização de schedules."

    Bibliografia:

    SISTEMAS DE BANCO DE DADOS-6 EDIÇÃO 2011-NAVATHE

  • Ainda segundo Navathe(2011,p.527), "Pode ser provado que, se cada transação em um schedule seguir o protocolo de bloqueio em duas fases, o schedule é garantidamente serializável, evitando a necessidade de testar a serialização dos schedules. O protocolo de bloqueio, ao impor as regras de bloqueio em duas fases, também impõe a serialização."

  • Protocolo de bloqueio de duas fases :

    Fase de crescimento: Transação pode obter bloqueios, mas não pode liberar

    Fase de encolhimento: Transação pode liberar bloqueios, mas não pode obter

     

    Bloqueios de duas fases previnem que transações concorrentes interfiram em outras. Isso para garantir a seriabilidade. Entretanto, isso não garante que não haja deadlock.


ID
1176049
Banca
CESPE / CEBRASPE
Órgão
TC-DF
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens subsecutivos, com relação a Data Mining, desempenho de sistemas de bancos de dados e controle de concorrência.

Em se tratando de controle de concorrência, pode-se usar o protocolo de intenção de bloqueio para lidar com as dificuldades de verificação de conflitos nos bloqueios no nível de variável de relação.

Alternativas
Comentários
  • Alguém explica?

  • Segundo Date p.413:


    O Protocolo de intenção de bloqueio é aquele em que nenhuma transação  está autorizada a adquirir um bloqueio sobre uma tupla, sem antes adquirir um bloqueio (ou ao menos uma intenção), minimizando, dessa maneira, os conflitos de bloqueio no nível de variável da relação. (RelVal)


  • Em bloqueios de intenção, a transação deve indicar, ao longo do caminho da raiz até o nó desejado, qual o tipo de bloqueio (compartilhado ou exclusivo) que ela requisitará de um dos descendentes do nó.

  • nenhuma transação está autorizada a adquirir um bloqueio sobre uma tupla sem primeiro

    adquirir um bloqueio sobre a RelVar QUE A CONTÉM


ID
1190392
Banca
FGV
Órgão
DPE-RJ
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

O controle de concorrência para transações de banco de dados que garante que resultados intermediários de uma transação T não afetem outras transações até que T tenha sido totalmente executada, ou rejeitada, é usualmente implementado em bancos de dados por meio de

Alternativas
Comentários
  • Quem não tem acesso:  - -> B

  • Two phase commit: para BD distribuídos;

    Two phase lock: para controle de concorrência;

    .

    .

    At.te

    Foco na missão ❢

  • Two-phase lock = Garante Isolamento

    - Fase de expansão ou crescimento (primeira), durante a qual novos bloqueios em itens podem ser adquiridos, mas nenhum pode ser liberado;

    - Fase de encolhimento, durante a qual os bloqueios existentes podem ser liberados, mas nenhum novo bloqueio pode ser adquirido.

    Two-phase commit = Garante Atomicidade

    Arquivos de log que provêm redundância = Garante Durabilidade


ID
1224082
Banca
VUNESP
Órgão
DESENVOLVESP
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Assinale a alternativa correta com relação aos bloqueios, utilizados para implementar a concorrência em bancos de dados relacionais.

Alternativas
Comentários
  • Bizu rápido pra nunca errar questões de bloqueio

    Compartilhado

    • transação pode ler mas não alterar o dado
    • Acesso simultâneo

    Exclusivo

    • Transação pode ler e alterar dado
    • Apenas 1 acesso


ID
1233088
Banca
VUNESP
Órgão
COREN-SP
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

O controle de concorrência em sistemas gerenciadores de bancos de dados pode levar a situações em que uma transação, por exemplo T1, esteja aguardando a liberação de algum item de dados que esteja sendo bloqueado, por exemplo, pela transação T2. Concomitantemente, a transação T2 está aguardando pela liberação de outro item de dados bloqueado por T1. Tal tipo de situação recebe a denominação de

Alternativas
Comentários
  • Impasse ou deadlock.

  • Recursos para se evitar o bloqueio:

    • Exclusão mútua
    • Aquisição gradativa de recursos: processos têm alguns recursos e pedem outros.
    • Sem preempção
    • Espera circular: existe um conjunto {P1,... Pn-1} tal que:
    • Pi precisa de um recurso obtido por Pi+1%n

    Muito bom o conteúdo abaixo:

    https://homepages.dcc.ufmg.br/~scampos/cursos/so/aulas/aula9.html


ID
1272112
Banca
MPE-RS
Órgão
MPE-RS
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Assinale a alternativa que preenche corretamente as lacunas do enunciado abaixo, na ordem em que aparecem.

Algumas das principais técnicas utilizadas para controle de execução concorrente de transações em bancos de dados são baseadas no conceito de bloqueio de itens de dados. Um exemplo de bloqueio pode ser assim caracterizado: enquanto uma transação ________ um item de dado, ________outra transação pode ___________.

Alternativas
Comentários
  • ❝ Enquanto uma transação acessa um item de dado, nenhuma outra transação pode modificá-lo.❞ (Silberschartz)

    .

    .

    At.te

    Foco na missão ❢


ID
1335178
Banca
Quadrix
Órgão
DATAPREV
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A lógica de banco de dados inclui ações, reações e proteções às informações gerenciadas. Das alternativas a seguir, qual melhor define o controle de concorrência, programa usualmente incluído nos sistemas baseados em banco de dados?

Alternativas
Comentários
  • Letra b... por eliminação você consegue chegar na resposta certa.


ID
1389961
Banca
VUNESP
Órgão
TJ-PA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Uma das formas de se implementar um controle para o acesso concorrente de usuários a um banco de dados é por meio da utilização de bloqueios, sobre os quais é correto afirmar que

Alternativas
Comentários
  • Duas maneiras de bloquear(lock) os dados são:


    Bloqueio Compartilhado: quando uma transação recebe este tipo de bloqueio e a instrução é de leitura, então, mais de uma transação poderá acessar o mesmo dado. Se a instrução for de gravação, então ela não poderá participar de um bloqueio compartilhado, ou seja, é permitido que várias transações acessem um mesmo item "A" se todas elas acessarem este item "A" apenas para fins de leitura.


    Bloqueio Exclusivo: quando uma transação recebe este tipo de bloqueio, ela fica exclusivamente reservada para a instrução que compõe a transação, não permitindo que outra transação faça uso do dado que está sendo utilizado, logo, um item bloqueado para gravação é chamado de bloqueado exclusivo, pois uma única transação mantém o bloqueio no item.


    Resposta = D


    Att

    Fabiano Fernandes

  • Bizu rápido pra nunca errar questões de bloqueio

    Compartilhado

    • transação pode ler mas não alterar o dado
    • Acesso simultâneo

    Exclusivo

    • Transação pode ler e alterar dado
    • Apenas 1 acesso

ID
1395907
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Na implementação do controle de concorrência na execução de transações concomitantes de bancos, o dirty read é um dos fenômenos a evitar.

Essa situação caracteriza-se sempre que

Alternativas
Comentários
  • quando a transação é commitada ( read commited ) resolve o problema de consistência dirty read

  • 4 problemas de consistência (por ordem crescente de dificuldade para seu tratamento pelos níveis de isolamento nos SGBD):

     

    Perda de atualização: duas transações que ocorrem simultaneamente atualizam o mesmo dado. Isto pode ocorrer em uma seqüência segundo a qual uma das atualizações é perdida.

     

    Leitura Suja: leitura de dados não confirmados de uma linha existente, podendo ocasionar a leitura de uma informação nunca confirmada.

     

    Leitura Não-Repetida: duas leituras de dados na mesma transação não se repetem. Na segunda leitura, dados não existem ou foram modificados.

     

    Leitura Fantasma: na leitura de um conjunto de dados (função de agregação), surgem novas informações no conjunto que podem gerar um conflito. Apesar das transações não acessarem tuplas em comum, diz-se que as transações entraram em conflito em uma tupla fantasma.

  • Uma dirty read ou leitura suja ocorre quando uma transação lê uma alteração não confirmada realizada por outra transação. Assim, no caso de falhas, a transação é revertida e a transação realizou operações com base em um valor temporário que acabou sendo retornado ao original.

    Gabarito: D


ID
1395910
Banca
FGV
Órgão
PROCEMPA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

A ideia do uso da serialização (serializable isolation) para conflitos entre transações concorrentes em um banco de dados está baseada no aumento do throughput em ambientes em que a probabilidade de conflito é pequena.

Uma transação T1 serializável gera um erro de conflito quando há uma tentativa de

Alternativas
Comentários
  • O nível Serializable fornece o isolamento de transação mais rigoroso. Este nível emula a execução serial das transações, como se todas as transações fossem executadas uma após a outra, em série, em vez de simultaneamente. Entretanto, os aplicativos que utilizam este nível de isolamento devem estar preparados para tentar executar novamente as transações, devido a falhas de serialização.

    Quando uma transação está no nível serializável, o comando SELECT enxerga apenas os dados efetivados antes da transação começar; nunca enxerga dados não efetivados ou alterações efetivadas durante a execução da transação por transações simultâneas (Entretanto, o comando SELECT enxerga os efeitos das atualizações anteriores executadas dentro da sua própria transação, mesmo que ainda não tenham sido efetivadas). É diferente do Read Committed, porque o comando SELECT enxerga um instantâneo do momento de início da transação, e não do momento de início do comando corrente dentro da transação. Portanto, comandos SELECT sucessivos dentro de uma mesma transação sempre enxergam os mesmos dados.

    Os comandos UPDATE, DELETE e SELECT FOR UPDATE se comportam do mesmo modo que o comando SELECT para encontrar as linhas de destino: somente encontram linhas de destino efetivadas até o momento do início da transação. Entretanto, alguma linha de destino pode ter sido atualizada (ou excluída ou marcada para atualização) por outra transação simultânea no momento em que foi encontrada. Neste caso, a transação serializável aguarda a transação de atualização que começou primeiro efetivar ou desfazer as alterações (se ainda estiver executando). Se a transação que começou primeiro desfizer as alterações, então seus efeitos são negados e a transação serializável pode prosseguir com a atualização da linha original encontrada. Porém, se a transação que começou primeiro efetivar (e realmente atualizar ou excluir a linha, e não apenas selecionar para atualização), então a transação serializável é desfeita com a mensagem

    ERRO: não foi possível serializar o acesso devido a atualização simultânea

    porque uma transação serializável não pode alterar linhas alteradas por outra transação após a transação serializável ter começado.


  • Não entendi ainda  =/

  • Na questão, poderá ocorrer o erro independente do tipo de operação (leitura/escrita) da transação T1 (que é a serializável).

    O erro acontecerá se a transação concorrente (T2 e não a T1) efetivar seus comandos depois de T1 iniciar, porque se acontecer antes, os comandos já estão confirmados, não afetando as operações de T1.

  • Achei a redação das alternativas muito mal feita


ID
1443787
Banca
FCC
Órgão
TJ-AP
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Considerando o controle de concorrência em bancos de dados, há diversos protocolos que podem ser utilizados. Dentre eles há o denominado bloqueio de duas fases. Em uma dessas fases, uma transação pode liberar bloqueios, porém não pode obter novos bloqueios. Tal fase denomina-se

Alternativas
Comentários
  • Alguém comenta?

  • Transação A, libera o bloqueio no registro, neste instante a transação B realiza o bloqueio neste registro, enquanto a transação A aguarda a liberação do bloqueio pela B. Para melhor ilustrar imagine que varias pessoas tenham uma tara por trocarem lampadas, mas só uma pessoa pode subir a escada e trocar a lampada por vez, então a pessoa A sobe a escada e troca a lampada bloqueando o acesso para a pessoa B, depois a pessoa A desce a escada liberando o acesso, então a pessoa B sobe a escada para trocar a lampada bloqueando o acesso novamente fazendo com que a pessoa passe a ocupar a posição da B. Seguindo o raciocínio a transação A terá que aguardar até a liberação.do bloqueio que pode ser vários.

  • https://www.passeidireto.com/arquivo/16774666/webaula-2---banco-de-dados/3

  • Protocolo - BLOQUEIOS DE DUAS FASES  tem dois momentos:

    1. Antes de operar sobre qualquer objeto, a transação primeiro adquire um bloqueio sobre aquele objeto – fase de expansão
    2. Após liberar o bloqueio, a transação não adquire mais bloqueios – fase de encolhimento

  • Em 2 fases (2PL) é dividida em:
    - Fase de expansão ou crescimento (primeira), durante a qual novos bloqueios em itens podem ser adquiridos, mas nenhum pode ser liberado;
    - Fase de encolhimento, durante a qual os bloqueios existentes podem ser liberados, mas nenhum novo bloqueio pode ser adquirido.

  • Se todas as transações obedecerem ao protocolo do bloqueio de duas fases, então todos

    os escalonamentos intercalados possíveis serão seriáveis.

  • O bloqueio de duas fases ou two-phase lock prevê duas fases:

    - Na fase de crescimento, a transação pode adquirir novos bloqueios (ou realizar upgrade dos existentes, quando possível), mas não pode liberar nenhum.

    - Na fase de encolhimento, que é a descrita pela questão, a transação pode liberar bloqueios existentes (ou realizar downgrades, quando possível), mas não pode adquirir nenhum novo.

    Gabarito: C


ID
1527994
Banca
IDECAN
Órgão
Banestes
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Vários tipos de bloqueios são utilizados no controle de concorrência. São tipos de bloqueios utilizados no controle da concorrência, EXCETO:

Alternativas
Comentários
  • Esse link menciona todos os bloqueios das letras a) c) d) e) - como se a banca tivesse criado a questão a partir dele.

     

    http://www.decom.ufop.br/luiz/site_media/uploads/arquivos/bcc321/slides11_bdi.pdf

     

    Gabarito: b)


ID
1565326
Banca
Exército
Órgão
EsFCEx
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Em relação à teoria de concorrência em banco de dados, associe a segunda coluna de acordo com a primeira e, a seguir, assinale a alternativa com a sequência correta.


Nível de Isolamento de Transação


1. READ UNCOMMITTED

2. READ COMMITTED

3. REPEATABLE READ

4. REPEATABLE UNREAD

5. SERIALIZABLE 


Características


( ) Não permite a Leitura Fantasma no banco de dados.

( ) Permite a ocorrência de Leituras Sujas.

( ) Não permite a ocorrência de Leituras Sujas, porém permite a ocorrência de Leitura Não-Repetível e Leitura Fantasma.


Alternativas
Comentários
  • Nível de isolamento                        Leitura                    Leitura não-repetível                   Fantasma              

     

    Leitura não confirmada (RU)                 sim                                  sim                                         sim

    Leitura confirmada (RC)                        não                                  sim                                         sim

    Leitura repetida     (RR)                         não                                  não                                         sim 

    Instantâneo                                           não                                  não                                         não 

    Serializável                                           não                                  não                                         não

     

    Fonte:https://docs.microsoft.com/pt-br/sql/connect/jdbc/understanding-isolation-levels?view=sql-server-2017

  • Resumo dos Níveis de Isolamento de Transação:

    https://uploaddeimagens.com.br/imagens/banco-de-dados-2-controle-de-concorrncia-22-638-jpg

    #CursoAdonai


ID
1602880
Banca
FAPERP
Órgão
SeMAE
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

O controle de concorrência é uma estratégia muito comum em computação e pode ser aplicado em diversas áreas, como sistemas operacionais, redes de computadores, banco de dados, entre outras. No contexto de banco de dados, pode-se dizer que um controle de concorrência bem definido, destaca-se como de grande importância, especialmente para garantir a viabilidade de acesso e gravação de informações. Sabe-se que o banco dados é composto por uma série itens de dados nomeados que podem ser: um registro do banco de dados, um valor de campo de um registro, um bloco de disco, entre outros. É bem conhecido que um fator que pode afetar o desempenho do controle de concorrência e recuperação em um banco dados é o tamanho dos itens de dados e isto é classificado como:

Alternativas
Comentários
  • Quanto mais detalhado for o item de dados, menor será a granularidade;

    Quanto menos detalhado for o item de dados, maior será a granularidade;

     .

     O detalhamento e a granularidade são inversamente proporcionais;

     

     

    At.te,

    Foco na missão

  • Tá certo isso? Granularidade não seria a aplicação de bloqueios implícitos, a partir de um bloquei explícito em um nó de uma hierarquia em árvore?


ID
1643311
Banca
CESPE / CEBRASPE
Órgão
TCU
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considere as seguintes configurações de servidores de banco de dados (SBD):

I O controle de concorrência do servidor X foi configurado para o tipo bloqueio de modo múltiplo.

II- Especificamente na tabela T do servidor X, foram criados, em dois campos distintos, dois índices (IdxA e IdxB) contendo apenas um campo para cada um: o primeiro, IdxA, do tipo primário, e o segundo, IdxB, do tipo secundário, em um campo não chave.

III- Dois servidores foram configurados para trabalhar de forma distribuída do tipo SBDF (sistemas de banco de dados federado), com intuito primordial de garantir mais disponibilidade, no caso de falha de um dos servidores.

IV- O servidor Z foi configurado com um sistema do tipo orientado a objeto.

Com base nessas configurações, julgue o item abaixo.

Caso a finalidade do acesso seja a leitura, o modo descrito na configuração I permitirá que várias transações acessem o mesmo item. Logo, esse modo é menos restritivo que o bloqueio binário, no qual, no máximo, uma transação pode manter um bloqueio em determinado item.

Alternativas
Comentários
  • O bloqueio múltiplo possui o modo exclusivo e compartilhado. Já o bloqueio binário tem dois estados: bloqueado e não bloqueado. Quando utilizado o bloqueio múltiplo compartilhado, várias transações podem acessar o mesmo dado, pois somente será leitura. Diferente do modo exclusivo que o item fica acessível para apenas uma transação, visto que provavelmente haverá uma escrita. O mesmo não acontece com o bloqueio binário. Neste bloqueio, o item será de apenas uma transação, independente se houver apenas leitura ou escrita. Isso dimininui a concorrência.

  • "O esquema de bloqueio binário é muito restritivo para itens de banco de dados porque, no máximo, uma transação pode manter um bloqueio em determinado item. ...Para essa finalidade, um tipo diferente de bloqueio, chamado bloqueio de modo múltiplo, é utilizado...."

    [Fonte : Sistemas de Banco de Dados - Navathe - 6ºed, pág. 525]

     

    O bloqueio múltiplo traz os modos de bloqueio compartilhado (apenas leitura) e o bloqueio exclusivo (leitura e escrita).

  • Para quem não entende os comentários sem o gabarito e não tem acesso a resposta.

    Gaba: CERTO

  • Bloqueio de modo múltiplo é a mesma coisa que bloqueio compartilhado/exclusivo. Nesse caso, a assertiva é verdadeira, pois os bloqueios de modo múltiplo permitem que várias transações detenham bloqueios sobre determinado item ao mesmo tempo, desde que a finalidade desses bloqueios seja somente leitura.

    Gabarito: C


ID
1785412
Banca
CESPE / CEBRASPE
Órgão
TCE-RN
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de arquitetura para desenvolvimento de sistemas, de programação orientada a aspectos (POA) e de banco de dados distribuídos, julgue o item subsecutivo.

No controle de concorrência fundamentado em votação, existe uma cópia distinta de cada banco de dados pertencente ao catálogo do banco de dados distribuído.

Alternativas
Comentários
  •  No método de votação não há copia distinta e cada solicitação de bloqueio é enviada a todos os pontos que tenham uma cópia do elemento de informação. Cada cópia mantém seu próprio bloqueio e pode conceder ou negar a solicitação. Se a maioria das cópias fornece um bloqueio para a transação que a solicita, esta obterá o bloqueio e informará a todas as cópias que o mesmo foi concedido. Se uma transação não recebe a maioria dos votos durante certo período de tempo pré-definido, a solicitação será cancelada e informada a todos os pontos. O método de votação se considera um método de controle verdadeiramente distribuído, já que a responsabilidade da decisão cai sobre todos os pontos envolvidos. Estudos de simulação indicam que a votação tem um tráfego maior de mensagens entre os pontos do que o método de cópia distinta. Se o algoritmo leva em conta as possíveis falhas dos pontos durante o processo de votação, este se torna extremamente complexo.

    Questão Errada

    Fonte:

    http://www.lisha.ufsc.br/teaching/os/ine651600-2008-2/work/deggau.pdf 

  • quantos controle de concorrencia existem afinal? nunca havia falado nesse, alguém me indica uma bibliografia?

  • CONTROLE DE CONCORRÊNCIA :

    1.3.4 Compartilhamento de Dados e o Processamento de Transação Multiusuários.

    Um SGBD multiusuário, como o nome implica, deve permitir que diversos usuários acessem o banco de dados ao mesmo tempo. Isso é essencial se os dados para as várias aplicações estão integrados e mantidos em um único banco de dados. O SGBD deve incluir um software de controle de concorrência para garantir que muitos usuários, ao tentar atualizar o mesmo dado, o façam de um modo controlado, para assegurar que os resultados das atualizações sejam corretos. Por exemplo, quando muitos atendentes tentam reservar um lugar em um vôo, o SGBD deve garantir que cada assento possa ser acessado somente por um atendente de cada vez, para fazer a reserva de apenas um passageiro. Esses tipos de aplicações são, normalmente, denominados aplicações de processamento de transações on-line — online transaction processing (OLTP). Uma regra fundamental do software do SGBD multiusuário é garantir que as transações concorrentes operem corretamente

    Fonte :Navathe Página = 8 em sistema de banco de dados .


ID
1812448
Banca
FGV
Órgão
Câmara Municipal do Recife-PE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Sistemas gerenciadores de bancos de dados processam requisições em paralelo que, quando operam sobre as mesmas instâncias de dados, podem provocar erros do tipo lost update e dirty read. Usualmente, o controle de concorrência nesses sistemas segue um mecanismo conhecido como:

Alternativas
Comentários
  • Two phase commitment: protocolo usado em BDs distribuídos.

    Two phase lock: protocolo de controle de concorrência. (Gabarito)

    .

    .

    At.te

    Foco na missão ❢


ID
1853188
Banca
CESPE / CEBRASPE
Órgão
FUNPRESP-EXE
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Com relação ao controle de concorrência em sistemas gerenciadores de banco de dados relacionais, julgue o item subsecutivo.

Cada transação possui uma sequência de leituras e(ou) escritas delimitada por comandos begin e commit, ou com o comando abort.

Alternativas
Comentários
  • Correto, porém incompleto. As operações de uma transação são: begin_transaction
    read ou write
    end_transaction
    commit_transaction
    rollback ou abort

    Na questão, faltou falar do end_transaction. O end_transaction especifica que as operações READ e WRITE da transação terminaram e marca o fim da execução da transação. Caso tenha ocorrido tudo ok, executa-se o commit. Caso haja algum erro, executa-se o rollback
  • Dentro dos sistema gerenciadores de banco de dados uma das funcionalidades oferecida é um mecanismo de controle de transação. Uma transação é iniciada pela operação de begin transaction que a leva para o estado ativo. Neste estado as operações de leitura e escrita são executadas. Ao final das operações, caso todas sejam executadas com sucesso, a transação é então efetivada por meio do comando commit. Durante o estado ativo, caso aconteça algum erro, a transação sobre um abort e as operações já executadas sofrem rollback. Veja que é basicamente isso que a questão afirma. Ou a transação possui um begin e commit, caso ocorra um erro no meio da execução teremos o comando de abort. Concordo que o texto ficou um pouco confuso, mas a afirmativa está correta.


    http://www.estrategiaconcursos.com.br/blog/prova-da-semana-comentario-da-prova-da-funpresp-especialista-tecnologia-da-informacao-bd-e-bi/
  • Errei porque considerei o ABORT e não tinha ROLLBACK. Realmente tá incompleto esse enunciado

  • Correto! Embora vários autores apontem que as transações são iniciadas de forma implícita, os dialetos SGBD sempre implementam o comando BEGIN TRANSACTION, BEGIN, BEGIN TRAN, START TRANSACTION, etc, para marcar o começo de uma transação.

    Essa transação ficará em execução até que seja encerrada através de um comando COMMIT (caso em que finalizou com sucesso e terá seus resultados gravados no banco de dados) ou ABORT (caso tenha havido algum erro ou a transação não possa ser confirmada por algum outro motivo).

    Gabarito: C

  • Nilton, incompleto, mas correto. E é isso q interessa.


ID
1906096
Banca
Exército
Órgão
EsFCEx
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considerando a teoria de concorrência em banco de dados, que nível de isolamento de transação abaixo permite a ocorrência de Leituras Sujas:

I. Read Uncommitted

II. Read Committed

III. Repeatable Read

IV. Serializable

V. Unbreakable

Das alternativas acima:

Alternativas
Comentários
  • _________________________________________________________________

    /Nível de isolamento / Dirty Read  /  Nonrepeatable Read /  Phantom Read  /

    /Read uncommitted  /   Possível     /  Possível                /          Possível   /

    /Read committed      /    Impossível  /   Possível               /          Possível    /

    /Repeatable read     /    Impossível  /    Impossível           /          Possível    /

    /Serializable           /    Impossível  /    Impossível           /         Impossível   /

    ------------------------------------------------------------------------------------------------------------------

    dirty read (leitura suja)

    A transação lê dados escritos por uma transação simultânea não efetivada (uncommitted). 

    nonrepeatable read (leitura que não pode ser repetida

    A transação lê novamente dados lidos anteriormente, e descobre que os dados foram alterados por outra transação (que os efetivou após ter sido feita a leitura anterior). 

    phantom read (leitura fantasma)

    A transação executa uma segunda vez uma consulta que retorna um conjunto de linhas que satisfazem uma determinada condição de procura, e descobre que o conjunto de linhas que satisfazem a condição é diferente por causa de uma outra transação efetivada recentemente. 

     

    Fonte: https://pt.wikipedia.org/wiki/Transa%C3%A7%C3%A3o_em_base_de_dados

  • Nível de Isolamento x Fenômeno em Transação:

     

    https://uploaddeimagens.com.br/imagens/whatsapp_image_2018-06-23_at_12-21-39-jpeg 


ID
2066458
Banca
Aeronáutica
Órgão
CIAAR
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

A ocorrência de travamento ou impasse são situações indesejadas em um Banco de Dados. O deadlock (impasse) ocorre quando cada transação T em um conjunto de duas ou mais transações está esperando por algum item que está bloqueado por alguma outra transação T' no conjunto. Sobre protocolos de prevenção e detecção de deadlock analise as alternativas abaixo e assinale a alternativa correta.

Alternativas
Comentários
  • O gabarito é a letra C.

     

    Um deadlock acontece quando duas ou mais tarefas bloqueiam uma à outra permanentemente, sendo que cada uma tem o bloqueio de um recurso, que a outra tarefa está tentando bloquear. Por exemplo:

     

    A transação A adquire um bloqueio compartilhado da linha 1.

    A transação B adquire um bloqueio compartilhado da linha 2.

    A transação A agora solicita um bloqueio exclusivo na linha 2 e é bloqueado até que a transação B termine e libere o bloqueio compartilhado que tem na linha 2.

    A transação B agora solicita um bloqueio exclusivo na linha 1 e é bloqueado até que a transação A termine e libere o bloqueio compartilhado que tem na linha 1.

    A transação A não pode terminar até que a transação B termine, mas a transação B está bloqueada pela transação A. Essa condição é também chamada de dependência cíclica: a transação A tem uma dependência da transação B, e a transação B fecha o círculo tendo uma dependência da transação A.

     

    Ambas as transações em um deadlock esperarão indefinidamente, a menos que o deadlock seja quebrado por um processo externo. O monitor de deadlock verifica periodicamente as tarefas que estão em um deadlock. Se o monitor detectar uma dependência cíclica, ele escolhe uma das tarefas como vítima e termina sua transação com um erro (SELEÇÃO DA VÍTIMA). Isso permite que a outra tarefa complete sua transação. O aplicativo com a transação que terminou com um erro pode repetir a transação, a qual normalmente é concluída depois que a outra transação em deadlock é encerrada.

  • Lacrou! Ótima observação.

  • mas direito de propriedade é um direito de 1º geração

  • B = Wait-die (esperar-morer) - se a transação que solicitou o bloqueio é a mais antiga, pode aguardar. Se for a mais nova, sofre rollback e recomeça mais tarde com mesmo timestamping.

    Wound-wait (ferir-esperar) – se uma transação mais nova solicitar o bloqueio e o item estiver bloqueado por uma transação mais antiga, a transação mais nova pode aguardar. Se for a mais antiga que estiver solicitando, então ela interrompe a mais nova, a qual sofre rollback e recomeça mais tarde com mesmo timestamping.

    Inverteram

    C = Se o sistema estiver em um estado de deadlock, algumas das transações que causam o deadlock precisam ser abortadas. A escolha de quais transações abortar é conhecida como seleção de vítima. O algoritmo para a seleção de vítima geralmente deve evitar a seleção de transações que estiveram em execução por muito tempo e que realizaram muitas atualizações, e deve tentar, em vez disso, selecionar transações que não fizeram muitas mudanças (transações mais novas).

    Navathe.


ID
2213458
Banca
Marinha
Órgão
Quadro Técnico
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Concorrência se refere ao fato de que os SGBDs (Sistemas Gerenciadores de Bancos de Dados), em geral, permitem que muitas transações tenham acesso ao mesmo Banco de Dados ao mesmo tempo, sendo necessário algum tipo de mecanismo de controle para assegurar que transações concorrentes não interfiram umas com as outras. Qual é o nome do mecanismo, muito utilizado na prática, para lidar com o problema de controle de concorrência?

Alternativas
Comentários
  • D) Seriabilidade. 

  • A resposta correta é letra C

  • Na alternativa , "assegurar que transações concorrentes não interfiram umas com as outras." = ISOLAMENTO = bloqueiro.

    Bloqueio de duas fases é uma técnica utilizada pelos SGBD para a garantia da propriedade de isolamento das transações.

    Questão c

    Fonte . Banco de dados Navathe Sistemas de Banco de Dados.


ID
2330134
Banca
CESPE / CEBRASPE
Órgão
SEDF
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item a seguir, a respeito de banco de dados, organização de arquivos, métodos de acesso e banco de dados textuais.

Em sistemas de gerenciamento de banco de dados, por motivos de desempenho, o tratamento de concorrência pode resultar em intercalações de ações realizadas sobre o banco de dados.

Alternativas
Comentários
  • Diversas ações realmente podem ser intercaladas umas com as outras a fim de aumentar o desempenho, conceito de concorrência.

  • imagina se em uma tabela de um BD só pudesse haver um select por vez

  • ERRADO

    Acesso a tabelas é Concorrente.

    Instruções de Leitura podem ser concorrentes.

  • Em sistemas de gerenciamento de banco de dados, por motivos de desempenho, o tratamento de concorrência pode resultar em intercalações de ações realizadas sobre o banco de dados.

    CERTO. Se não fosse isto, não teríamos, por exemplo, deadlock

    O objetivo do SGBD é tratar operações concorrentes de forma intecalada, mas que pareçam ter sido executadas em série. 

  • por razões de desempenho?

  • Pessoal, em tunning de banco de dados, uma das propriedades que o DBA pode utilizar para aumentar o desempenho é limitar a quantidade de transações em uma mesma tabela(recurso). Note que o intuito é serializar o acesso ao recurso, pois, se fossem permitidas muitas transações simultâneas o desempenho poderia ser prejudicado.

     

    Opções semelhantes são encontradas em sistemas operacionais, quando o admin define a quantidade máxima de processos que podem compartilhar um mesmo recurso, como por exemplo o acesso ao disco. (Neste caso, quanto mais processos disputam o acesso ao disco, menor será as taxas de transferências que cada processo poderá utilizar.)

  • Aumentar o throughput

  • Para otimizar o tempo ocioso do processador e permitir a execução de múltiplas transações simultâneas, os sistemas de gerenciamento de bancos de dados fazem uso de concorrência. De modo a manter a propriedade de isolamento dessas transações, é necessário um efetivo controle de concorrência.

    Gabarito: C


ID
2382685
Banca
ESPP
Órgão
MPE-PR
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Quando diversas transações são executadas de modo concorrente em um banco de dados, é necessário que o sistema controle a interação entre transações concorrentes; esse controle é alcançado por meio de uma larga gama de mecanismos chamados esquemas de controle de concorrência. Um meio de garantir a serialização é obrigar que o acesso aos itens de dados seja feito de maneira mutuamente exclusiva; isto é, enquanto uma transação acessa um item de dados, nenhuma outra transação pode modificá-lo. O método mais usado para sua implementação é permitir o acesso a um item de dados somente se ele estiver bloqueado. Infelizmente, o uso de bloqueios pode causar situações indesejáveis, como por exemplo o aparecimento de:

Alternativas
Comentários
  • kkkkkk Quanta criatividade! 

  • Quem não tem acesso:  - -> E


ID
2630821
Banca
FAURGS
Órgão
TJ-RS
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Diversos problemas podem ocorrer quando transações concorrentes são executadas de maneira descontrolada. Considere as seguintes afirmações sobre controle de concorrência.


I - O problema da atualização perdida ocorre quando duas transações que acessam os mesmos itens no banco de dados tiverem suas operações intercaladas, de forma que tornem incorretos o valor de alguns itens do banco de dados.

II - O problema do sumário incorreto ocorre quando uma transação atualiza um item do banco de dados e, a seguir, falha por alguma razão. O item atualizado será acessado por uma outra transação antes que retorne ao seu valor original.

III - O problema da atualização temporária ocorre quando uma transação aplica uma função agregada para sumário de um número de registros, enquanto outras transações estiverem atualizando alguns desses registros. A função agregada calculará certos valores antes que estes valores sejam atualizados e, de outros, depois de feita a atualização.


Quais estão corretas?

Alternativas
Comentários
  • Prezados,

    Vamos analisar os itens.

    Item I : Correto, a atualização perdida ocorre quando 2 transações (T1 e T2) tentam alterar o mesmo dado. Com isso, T1 por exemplo faz a alteração , e T2 em seguida altera também, sobrescrevendo a alteração de T1. Esse tipo de problema pode ser solucionado com o controle de concorrência.
    Item II : Errado, no sumário incorreto não acontece erro, e sim 2 consultas com valores diferentes. Exemplo, T1 quer pegar o total de vendas, e T2 também, só que, por não haver controle de concorrência, uma atualização é feita nas vendas por outra transação, de forma que o valor de T1 e T2 são diferentes.
    Item III : Errado, o problema de atualização temporária ocorre quando uma transação altera um item de dados e depois ela falha por alguma razão. O item de dados é acessado por outra transação antes que o valor original seja restabelecido, ou seja , a segunda transação lerá os dados de uma transação que deu erro, e deveria ter seus efeitos restabelecidos aos valores originais.

    Vemos que eles inverteram as descrições no item 2 e 3. O item 2 fala da atualização temporária enquanto o item 3 fala do sumário incorreto.

    Portanto a alternativa correta é a letra A

  • Os conceitos das alternativas II e III estão trocados, corrigindo ficará assim:

    II - O problema do sumário incorreto ocorre quando uma transação aplica uma função agregada para sumário de um número de registros, enquanto outras transações estiverem atualizando alguns desses registros. A função agregada calculará certos valores antes que estes valores sejam atualizados e, de outros, depois de feita a atualização

    III - O problema da atualização temporária ocorre quando uma transação atualiza um item do banco de dados e, a seguir, falha por alguma razão. O item atualizado será acessado por uma outra transação antes que retorne ao seu valor original.

     

    GABARITO: A

     

     

    .

  • Letra A correta.

    ll - Trata-se do fenômeno de Leitura-suja.

    lll - Trata-se de Sumário Incorreto.


ID
2767813
Banca
FAURGS
Órgão
TJ-RS
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Um rótulo de tempo é um identificador exclusivo para cada transação, gerado pelo sistema. Os valores de rótulos de tempo são gerados na mesma ordem que os tempos de início e fim das transações. Qual é o protocolo de controle de concorrência que utiliza ordenação por rótulo de tempo para garantir a serialização das transações?

Alternativas
Comentários
  • Timestamp

    Existem duas formas de implementar:

    1)Usar a hora do relógio do sistema (clock) como timestamp, isto é, o timestamp de uma transação é igual à hora

    em que a transação entra no sistema.

    2)Usar um contador lógico que é incrementado sempre que se usa um novo timestamp, isto é, o timestamp da transação é igual ao valor do contador no momento em que a transação aparece no sistema.


ID
3046726
Banca
FCC
Órgão
Câmara Legislativa do Distrito Federal
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Para garantir algumas das propriedades ACID de um Sistema Gerenciador de Banco de Dados (SGBD), um Analista de Sistemas, verificou que:

I. os protocolos de Controle de Concorrência garantem a consistência dos dados por meio de acessos concorrentes; e
II. os protocolos de Recuperação de Falhas garantem a consistência dos dados após falhas do sistema.

Correspondem corretamente aos protocolos I e II, respectivamente, as propriedades ACID:

Alternativas
Comentários
  • Questão ligada às propriedades ACID

     

    A tomicidade - Subsistema de recuperação de transação de um SGBD. Exige que a transação deve ser até o fim. Tudo ou nada.

    C onstência - Restrições de integridade

    solamento - Imposta pelo subsistema de contrple de concorrência do SGBD

    D urabilidade - ou permanência: Mudanças não devem ser perdidas

     

    Letra C

     

  • Isolação ou Isolamento?

  • I. Esta propriedade diz respeito ao gerenciamento das múltiplas transações que ocorrem de forma concorrente no SGBD. Ou seja, ela determina que os resultados das operações devem ser corretos, como se elas tivessem ocorrido de forma sequencial, mesmo que haja mais de um usuário tentando modificar ou ler o mesmo dado ao mesmo tempo. Essa propriedade é conhecida como isolamento. A FCC, aqui, a chamou de isolação.

    II. Essa propriedade diz que, mesmo que as transações falhem, o SGBD devem mantê-lo em um estado consistente. Essa tolerância a falhas é dada pela propriedade da atomicidade, que determina que uma transação deve ocorrer por completo ou então não produzir efeitos intermediários no BD.

  • Isolação?????

  • isolação: estado de quem vive isolado; isolamento.


ID
3575947
Banca
VUNESP
Órgão
Prefeitura de Presidente Prudente - SP
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

A implementação do controle de concorrência em bancos de dados normalmente é feita por meio dos chamados bloqueios. Há um tipo de bloqueio no qual certa transação pode efetuar leituras, mas não escritas sobre itens do banco de dados. Esse bloqueio é do tipo

Alternativas
Comentários
  • Bloqueio exclusivo: bloqueia o usuário de leitura e escrita

    Bloqueio compartilhado: apenas leitura !

  • A = Posso apenas LER

    B = Posso LER e Escrever

    C, D, E = Lhufas.

    GAB A.

                Bloqueio Compartilhado/Bloqueio para leitura = A transação pode apenas ler o dado. Mais de uma transação podem ter esse bloqueio sobre o mesmo dado ao mesmo tempo.

                Bloqueio Exclusivo/Bloqueio de escrita = A transação pode ler e escrever sobre o dado. Apenas uma transação pode ter este bloqueio em um período de tempo.


ID
3623512
Banca
CESGRANRIO
Órgão
TERMOAÇU
Ano
2007
Disciplina
Banco de Dados
Assuntos

Durante a utilização de um banco de dados, diversos problemas podem ocorrer devido à concorrência entre transações.


Sobre os níveis de isolamento, tem-se que o nível

Alternativas
Comentários
  • A) CORRETA GABARITO DA QUESTÃO;

    B) Incorreta, Serializable evita Phanton Read, mas não evita Deadlock;

    C) Incorreta, Repeatable Read evita leitura suja;

    d)Incorreta, Read commited não evita Phantom Read e também não provoca Deadlock;

    e)Incorreta, Read Uncommited é o pior tipo de isolamento entre transações;


ID
3864511
Banca
AJURI
Órgão
Desenvolve - RR
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de processamento de transações, controle de concorrência e recuperação, pode-se afirmar que:

Alternativas
Comentários
  • SÃO PROPRIEDADES CLÁSSICAS DOS BANCOS DE DADOS (ACID):

    1.Atomicidade: transação será feita completamente ou não será feita.

    2.Consistência: A transação cria um novo estado válido dos dados, em caso de falha, retorna-se ao estado inicial.

    3.Isolamento: uma transação em andamento deve permanecer isolada de qualquer outra operação;

    4.Durabilidade: dados são registrados de tal forma que mesmo no caso de falha ou reinício do sistema, os dados estarão disponíveis em seu estado correto.

    .

    Corrigindo a questão:

    A) exigir que a transação seja executada em sua totalidade ou, então, ela não será realizada de forma alguma é uma característica da propriedade de consistência da transação. Errada, se refere a Atomicidade, não consistência.

    B) a transação em bloqueio de duas fases é dividida em fase de crescimento ou expansão, onde novos bloqueios podem ser adquiridos, e a de encolhimento, onde os bloqueios ficam retidos. Errada, acho que o examinador inventou essa.

    C) a propriedade de durabilidade da transação significa que as mudanças aplicadas ao banco de dados pelas transações confirmadas precisam persistir e não devem ser perdidas por qualquer falha. CERTA

    D) e uma transação for executada do início ao fim sem a interferência de outras transações e o banco de dados mantiver seu estado consistente antes e depois da sua execução, é uma característica da sua propriedade de isolamento. Errada, se refere a consistência, não isolamento.

    E) durante a execução de uma transação, podem ocorrer falhas por diversos motivos impactando diretamente o resultado final de sua execução, contudo, é possível recuperar o estado do banco de dados abortando aquela transação executada mesmo com sua confirmação. Errada, fere a consistência.

  • Só complementando a resposta do Ednaldo, na letra b o correto seria: na fase de encolhimento os bloqueios são liberados

  • Complementando o COLEGA REGINALDO

    Sobre a B

    - TWO - PHASE LOCK/ BLOQUEIO EM DUAS FASES = Garante ISOLAMENTO

     - Fase de Expansão/Crescimento = NOVOS BLOQUEIOS PODEM SER OBTIDOS, MAS NENHUM PODE SER LIBERADO

     - Fase de Encolhimento = BLOQUEIOS PODEM SER LIBERADOS, MAS NENHUM NOVO PODE SER OBTIDO.

    GAB C


ID
4867564
Banca
INSTITUTO AOCP
Órgão
MJSP
Ano
2020
Provas
Disciplina
Banco de Dados
Assuntos

O sistema de bloqueio, utilizado pelo SGBD para controle de concorrência, dependendo da forma como é implementado, pode gerar alguns problemas.
Um deles é uma situação em que determinada transação não pode prosseguir por um período indefinido enquanto outras transações continuam normalmente, por terem maior prioridade. Assinale a alternativa que aponta o nome desse problema.

Alternativas
Comentários
  • GABARITO: LETRA B

  • Inanição, do inglês Starvation

  • É a mesma coisa que acontece com processos em sistemas operacionais, conceitualmente falando.


ID
4867567
Banca
INSTITUTO AOCP
Órgão
MJSP
Ano
2020
Provas
Disciplina
Banco de Dados
Assuntos

Um SGBD que não possui um controle de concorrência efetivo pode apresentar problemas na integridade de seus dados. Suponha que uma transação T1 atualiza determinado registro de uma tabela e, nesse meio tempo, outra transação T2 utiliza esse mesmo registro para suas operações. Contudo a transação T1 falha e é desfeita pelo SGBD. Esse problema é conhecido como

Alternativas
Comentários
  • GABARITO: LETRA E

  • Problema da atualização temporária (ou leitura suja): ocorre quando uma transação atualiza um item no banco de dados e depois a transação falha por algum motivo. Nesse meio tempo, o item atualizado é acessado por outra transação, antes de ser alterado de volta para o seu valor original.

    Problema de resumo incorreto: se uma transação está calculando uma função de resumo de agregação em uma série de itens de banco de dados, enquanto outras transações estão atualizando alguns desses itens, a função de agregação pode calcular alguns valores antes que eles sejam atualizados e outros, depois que eles foram atualizados.

    Problema de atualização perdida: ocorre quando duas transações que acessam os mesmos itens do banco de dados tem suas operações intercaladas de modo que isso torna o valor de alguns itens do banco de dados incorreto.

    Alternativa: E


ID
4867570
Banca
INSTITUTO AOCP
Órgão
MJSP
Ano
2020
Provas
Disciplina
Banco de Dados
Assuntos

Muitos SGBD’s modernos estão utilizando um mecanismo conhecido como MVCC (Controle de Concorrência de Versão Múltipla) para controlar a concorrência entre as transações, em vez de simplesmente implementar técnicas de bloqueio. Sobre o MVCC, é correto afirmar que

Alternativas
Comentários
  • GABARITO: LETRA A

  • PostgreSQL mantém a consistência dos dados utilizando o modelo multiversão (Multiversion Concurrency Control, MVCC). Isto significa que ao consultar o banco de dados, cada transação enxerga um instantâneo (snapshot) dos dados (uma versão do banco de dados) conforme estes dados eram há algum tempo atrás, sem levar em consideração o estado corrente dos dados subjacentes. 


ID
4954417
Banca
CESPE / CEBRASPE
Órgão
EMBASA
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Acerca das técnicas de administração de usuários, perfis de acesso, tolerância a falhas e continuidade de operação em bancos de dados, julgue o item subsequente.


As técnicas de certificação ou validação para o controle de concorrência de validação permitem que todas as verificações sejam feitas durante a execução da transação.

Alternativas
Comentários
  • Controle de concorrência é um método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras . Os SGBD devem ser capazes de assegurar que nenhuma ação de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações abortadas (rollback).

    Gab E

  • Controle de concorrência é quando, em um banco de dados, usuários distintos tentam acessar a mesma informação e então é feito um controle entre essas transações. Garantindo a não interferência entre uma operação ou o isolamento das transações executadas ao mesmo tempo.

  • Gabarito: Errado - nenhuma verificação é realizada enquanto a transação está sendo executada, nas técnicas de validação

    Em técnicas de controle de concorrência de validação (ou técnicas otimistas), nenhuma verificação é realizada enquanto a transação está sendo executada, diminuindo um custo adicional durante a execução da transação.

    • Atualizações na transação não são aplicadas diretamente aos itens do banco de dados até que a transação atinja seu final.

    Ao final de uma transação, a fase de validação verifica se qualquer uma das atualizações da transação viola a serialização.

  • Eu jamais seria analista de sistemas kkkkkkkkkk


ID
4954420
Banca
CESPE / CEBRASPE
Órgão
EMBASA
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Acerca das técnicas de administração de usuários, perfis de acesso, tolerância a falhas e continuidade de operação em bancos de dados, julgue o item subsequente.


As técnicas de bloqueio são fundamentais para que transações múltiplas não acessem os itens de dados de maneira concorrente. Assim como a granularidade dos itens de dados, elas são elementos de controle de concorrência e auxiliam na tolerância a falhas em um SGDB.

Alternativas
Comentários
  • Em vez de bloquear um banco de dados inteiro uma transação pode bloquear apenas os itens de dados que ela acessa. Sobre tal política, a transação precisa manter bloqueios por tempo suficiente para garantir a serializabilidade, mas por um período curto o suficiente para não prejudicar o desempenho excessivamente.

  • Uma das características do banco de dados é o compartilhamento de dados e processamento de transação multiusuário, em que o SGBD precisa incluir um software de controle de concorrência para garantir que vários usuários interajam simultaneamente com o banco de dados sem problemas. GAB. "C"

  • Achei as duas respostas já postadas insuficientes. Alguém teria uma resposta mais completa por favor?


ID
5509750
Banca
VUNESP
Órgão
Semae de Piracicaba - SP
Ano
2021
Provas
Disciplina
Banco de Dados
Assuntos

O controle de concorrência em bancos de dados conta com uma técnica conhecida como validação ou técnica de certificação. Tal técnica utiliza um protocolo que conta com três fases cuja ordem de execução sequencial é:

Alternativas
Comentários
  • Ao final da execução da transação, uma fase de validação verifica se qualquer uma das atualizações da transação viola a serialização. Algumas informações necessárias à fase de validação precisam ser mantidas pelo sistema.

    Existem três fases para esse protocolo de controle de concorrência:

    1. Fase de leitura. Uma transação pode ler valores dos itens de dados confirmados com base no banco de dados. Porém, as atualizações são aplicadas apenas a cópias locais (versões) dos itens de dados mantidos no espaço de trabalho da transação.

    2. Fase de validação. A verificação é realizada para garantir que a serialização não será violada se as atualizações da transação forem aplicadas ao banco de dados.

    3. Fase de gravação. Se a fase de validação for bem-sucedida, as atualizações da transação são aplicadas ao banco de dados; caso contrário, as atualizações são descartadas e a transação é reiniciada. 

    Navathe.

    GAB D.