Execução concorrente de transações em um banco de dados significa que várias
pessoas podem acessar e modificar informações ao mesmo tempo. O controle de concorrência é necessário para garantir que todas as mudanças feitas pelas pessoas não interfiram umas com as outras e não causem problemas nos dados. Um exemplo disso seria se duas pessoas tentassem atualizar a mesma informação ao mesmo tempo, isso poderia causar erros. 2. Falha de hardware: Quando um componente físico do sistema falha, como uma unidade de disco rígido ou um processador. Falha de software: Quando ocorre um erro no software do sistema, como um problema de programação ou um bug. Falha de rede: Quando ocorre um problema com a conexão de rede, como uma queda de conexão ou lentidão na transferência de dados. Falha humana: Quando um usuário do sistema comete um erro ao inserir ou manipular dados, ou quando um administrador comete um erro na configuração do sistema. Desastre natural: Quando ocorre um desastre natural, como um terremoto ou incêndio, que afeta o sistema de banco de dados. Falha catastrófica é um tipo extremo de falha que pode ocorrer em um sistema de banco de dados. É caracterizada por uma falha em que o sistema deixa de funcionar completamente ou se torna inoperável, exigindo uma recuperação completa do sistema e, possivelmente, a perda de dados. 3. ler_item: Essa operação é usada para ler um item específico em um banco de dados. A ação que ocorre quando essa operação é executada é a leitura dos dados do item especificado do banco de dados. A operação ler_item não modifica os dados do item lido, apenas lê e retorna os dados. escrever_item: Essa operação é usada para atualizar um item específico em um banco de dados. A ação que ocorre quando essa operação é executada é a gravação dos novos dados do item especificado no banco de dados. A operação escrever item modifica os dados do item no banco de dados, substituindo os dados antigos pelos novos. 4. O log do sistema é um registro das atividades que ocorrem em um banco de dados. Ele é usado para garantir que os dados sejam mantidos de forma precisa e confiável em caso de falhas ou interrupções inesperadas. O log contém informações sobre as transações, como quando começam e terminam, bem como detalhes sobre as operações realizadas durante a transação, como leituras e gravações de dados. 5. 6. Atomicidade: uma transação é uma operação atômica, o que significa que é uma única unidade de trabalho que deve ser executada como um todo ou não deve ser executada de forma alguma. Se uma transação for interrompida antes da conclusão, ela deve ser desfeita e o banco de dados deve ser restaurado ao seu estado anterior à transação. Durabilidade: após a conclusão bem-sucedida de uma transação, todas as alterações no banco de dados devem ser permanentes e sobreviver a falhas de sistema, como quedas de energia, panes de hardware ou software, e outros eventos. Isolamento: as transações devem ser executadas de forma isolada e sem interferência de outras transações simultâneas. Isso significa que cada transação deve ser executada independentemente das outras, e cada uma deve produzir resultados consistentes e corretos. Consistência: as transações devem preservar a consistência do banco de dados. Isso significa que as transações não podem violar as restrições de integridade do banco de dados, tais como chaves estrangeiras, valores nulos ou outras restrições impostas pelo esquema do banco de dados. 7. Um plano ou histórico é a sequência de operações executadas em uma transação em um banco de dados. O plano restaurável é aquele que pode ser desfeito, ou seja, todas as suas operações podem ser desfeitas em ordem reversa. O plano livre de cascata é aquele em que as operações de uma transação não podem afetar outra transação, ou seja, não há efeito cascata. Já o plano restrito é aquele em que uma transação não pode ler dados que foram modificados por outra transação que ainda não foi confirmada. Em termos de restaurabilidade, o plano restaurável é o mais seguro, pois garante que as transações possam ser desfeitas completamente e voltar a um estado anterior em caso de falhas. O plano livre de cascata é menos restritivo e pode permitir que os efeitos de uma transação se propaguem para outras transações, o que pode ser problemático em caso de falhas. Já o plano restrito é o mais restritivo, pois impede a leitura de dados de outras transações, o que pode levar a bloqueios e conflitos de acesso. 8. Um plano serial é uma sequência de transações que são executadas uma após a outra, sem nenhum paralelismo. Isso significa que cada transação deve ser concluída antes de outra começar. Um plano serial é considerado correto porque preserva a consistência do banco de dados. Um plano serializável é um plano que pode ser executado em uma ordem equivalente a uma ordem serial, mas com a possibilidade de paralelismo. Essa equivalência é garantida pelo controle de concorrência, que impede que operações conflitantes sejam executadas simultaneamente. Um plano serializável é considerado correto porque preserva a consistência do banco de dados e permite uma maior eficiência por permitir paralelismo.
9. A seriabilidade é uma técnica para garantir a correção da execução de transações
concorrentes em um sistema de banco de dados. Ela garante que o resultado da execução de transações concorrentes é equivalente ao resultado que seria obtido se as transações fossem executadas em série. Para garantir a seriabilidade, é necessário controlar a ordem de execução das transações. Uma maneira de fazer isso é usar um bloqueio de transação, que impede que outras transações acessem os mesmos dados enquanto uma transação está em execução.