SóProvas


ID
695152
Banca
FCC
Órgão
TRF - 2ª REGIÃO
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Sobre transações em SQL, considere:

I. Uma transação é uma série de manipulação de dados em comandos SQL que executa uma unidade de trabalho lógica.

II. Os comandos COMMIT, ROLLBACK e INTERSECT fazem parte do controle de transações do SQL.

III. O comando COMMIT garante que as mudanças efetuadas durante a transação sejam armazenadas de forma permanente no banco de dados, terminando a transação. O comando ROLLBACK garante que as mudanças efetuadas dentro da transação sejam ignoradas, porém não termina a transação até que o comando END TRANSACTION seja executado.

É correto o que consta em

Alternativas
Comentários
  • I. Uma transação é uma série de manipulação de dados em comandos SQL que executa uma unidade de trabalho lógica. Correto

    II. Os comandos COMMIT, ROLLBACK e INTERSECT fazem parte do controle de transações do SQL. INTERSECT é um tipo de união de selects que retorna os valores iquais em ambas

    III. O comando COMMIT garante que as mudanças efetuadas durante a transação sejam armazenadas de forma permanente no banco de dados, terminando a transação. O comando ROLLBACK garante que as mudanças efetuadas dentro da transação sejam ignoradas, porém não termina a transação até que o comando END TRANSACTION seja executado.
  • Apenas complementando o colega:
    "O comando COMMIT garante que as mudanças efetuadas durante a transação sejam armazenadas de forma permanente no banco de dados, terminando a transação. O comando ROLLBACK garante que as mudanças efetuadas dentro da transação sejam ignoradas, porém não termina a transação até que o comando END TRANSACTION seja executado."

    Na verdade, ainda podemos levar em consideração que a questão não fala se os comandos são DML ou DDL.
    Apenas comandos DML (Data Manipulation Language) são considerados dentro da transação. Os comandos DDL (Data Definition Language) são sempre gravados de imediato no banco, independente de transação.

    Pelo menos essa é a características de grandes SGBDs como Oracle e SQL Server.
  • I. (CORRETO) Uma transação é uma série de manipulação de dados em comandos SQL que executa uma unidade de trabalho lógica.
     
    II. (ERRADO) INTERSECT é um tipo de união entre 2 ou mais tabelas o qual retorna os valores iquais em ambas, ou seja, esse comando realiza uma interseção entre essas tabelas.
     
    III. (ERRADO) A transação é persistida no banco e finalizada pelo comando COMMIT. Porém o comando ROLLBACK aborta e finaliza (END TRANSACTION) toda a transação que está em andamento, impedindo que os as alterações nos dados nela realizadas sejam persistidos no banco de dados.
  • Operações de transação:
    BEGIN_TRANSACTION -> marca o início da transação;
    READ ou WRITE -> especifica as operaçõs de leitura e gravação em itens do banco de dados;
    END_TRANSACTION -> especifica que as operações de leitura e gravação da transação terminaram, porém, neste ponto, ainda é necessário verificar se as operações poderão ou não ser persistidas no banco de dados. Após essas verificações uma das duas operações abaixo poderão ser executadas.
    COMMIT_TRANSACTION -> indica que as verificações foram feitas e que deu tudo certo, portanto, a transação poderá ser persistida no banco.
    ROLLBACK -> indica que as verificações foram feitas, mas que algo deu errado e, portanto, a transação será desfeita.
    Conforme visto acima, o END_TRANSACTION é executado antes do COMMIT ou ROLLBACK.
  • I. Uma transação é uma unidade de trabalho composta por vários comandos de leitura ou escrita de dados. Item correto! CERTA

    II. Os comandos COMMIT e ROLLBACK realmente marcam o final de uma transação em SQL. O COMMIT é utilizado quando a transação é executada de forma correta e pode ser gravada permanentemente no banco de dados, enquanto que o ROLLBACK é invocado quando a transação tem problemas e precisa ser revertida.

    Já o comando INTERSECT faz parte da DQL, não tendo nada a ver com a parte de transações da linguagem SQL (TCL). ERRADA

    III. Tanto o comando COMMIT quanto o ROLLBACK encerram a transação no banco de dados. A operação END_TRANSACTION das transações é executada quando não há mais comandos READ e WRITE a executa, mas a transação ainda fica pendente de um COMMIT ou ROLLBACK, caso seus resultados possam ou não ser persistidos no banco de dados. ERRADA

    Gabarito: A