Isolamento

Definição – o que significa isolamento?

O isolamento, no contexto de bancos de dados, especifica quando e como as mudanças implementadas em uma operação se tornam visíveis para outras operações paralelas. O isolamento da transação é uma parte importante de qualquer sistema transacional. Ele lida com a consistência e integridade dos dados recuperados por consultas que não afetam os dados de um usuário por outras ações do usuário. Um banco de dados adquire bloqueios nos dados para manter um alto nível de isolamento.

Definirtec explica o isolamento

Vários níveis de isolamento são definidos para controlar o grau de bloqueio de dados. Um alto nível de isolamento pode resultar em sobrecarga de bloqueio para o sistema, criando conflitos. Os quatro principais níveis de isolamento são: Leitura não confirmada: este nível lida com leituras sujas, onde os dados lidos não são consistentes com outras partes da tabela ou consulta e não são confirmados. Aqui, os dados são lidos diretamente dos blocos da tabela, sem qualquer verificação, validação e processamento. Portanto, os dados são tão sujos quanto podem ser. Leitura confirmada: neste caso, as linhas que uma consulta retorna são linhas já confirmadas quando a consulta foi iniciada. Como a confirmação é concluída antes do início da consulta, o resultado não é exibido na saída da consulta. Leitura repetida: as linhas retornadas por uma consulta neste caso são confirmadas quando a transação foi iniciada. As alterações feitas não estão presentes na transação e, portanto, não aparecem no resultado da consulta. Serializável: neste nível, as transações ocorrem de forma completamente isolada, em série uma após a outra. Bancos de dados como Oracle e Postgre SQL às vezes não garantem a ordem serial de transações, mas oferecem suporte ao isolamento de instantâneo, onde todas as leituras em uma transação são instantâneos consistentes do banco de dados e confirmações de transação apenas se nenhuma atualização produzir conflitos com outras atualizações simultâneas feitas desde o instantâneo. Anomalias permitidas por isolamentos de instantâneos podem levar à violação da consistência dos dados intercalando as transações que mantêm a consistência. Essas anomalias podem ser eliminadas pela introdução de conflitos de atualização ou bloqueio artificial. Todos os bancos de dados permitem que os usuários definam seus níveis de isolamento padrão. Os níveis de isolamento perfeitos escolhidos evitam que os aplicativos introduzam erros como leituras sujas, leituras repetíveis e leituras fantasmas. Quando a primeira transação lê as alterações não confirmadas feitas pela segunda transação, isso dá origem a leituras sujas. Quando uma leitura de dados permanece a mesma se for lida novamente durante a mesma transação, é uma leitura repetível. As leituras fantasmas ocorrem quando novos registros adicionados são apontados por transações antes da inserção. Os diferentes níveis de isolamento de bloqueios de banco de dados tratados são: Bloqueios de leitura: os bloqueios de leitura evitam a alteração dos dados lidos durante uma transação até que a transação termine, eliminando casos de leituras repetíveis. Outras transações podem ler esses dados, mas nenhum acesso de gravação ou alteração é fornecido. Bloqueios de gravação: bloqueios de gravação evitam que outras transações alterem os dados até que a transação termine. Bloqueios de gravação exclusivos: O bloqueio de gravação exclusivo evita que outras transações leiam ou alterem dados até que a transação atual termine. Instantâneos: Um instantâneo é uma visão congelada dos dados quando a transação começa. Impede leituras sujas, leituras não repetíveis e leituras fantasmas. Esta definição foi escrita no contexto de bancos de dados