Pular para o conteúdo principal

Transações: A importância do ACID para um SGBD

Há alguns anos (uns 3 +/-) tenho contato com Banco de Dados SQL, mais precisamente o MySQL, que é um banco de dados livre (software livre), tinha consciência dos tipos de dados, configurações e outras coisas relacionadas, mas ainda não é o suficiente, ainda é necessário aprender muito e sempre. No curso de graduação que faço, Sistemas de Informação – Unesulbahia – estamos estudando conceitos muito importantes sobre os SGBDs, e achei muito interessante a parte das Transações, onde temos as propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Então irei compartilhar o que foi entendido por mim sobre o tema.

Transações
A maioria dos programas desenvolvidos atualmente, são para uso multiusuário, um sistema de controle de estoque por exemplo. Imagine 10 terminais buscando e inserindo informações a cada segundo em um servidor. Todos eles executam um conjunto de comandos que são solicitados de uma só vez. Uma Transação é basicamente isso, um conjunto de comandos SQL em sequência ou não, sendo que, todos os comandos deste conjunto devem ser executados e por completo. Para um bom funcionamento de um SGBD, é necessário que ele tenha um conjunto de propriedades, conhecido como ACID(Atomicidade, Consistência, Isolamento e Durabilidade), onde estas propriedades vão definir como serão executadas as transações. O ACID pode ser descrito com poucas palavras:

Atomicidade: Qualquer operação deve ser executada por completo, caso contrário a ação é desfeita, comando conhecido como “rollback”.

Consistência: Os dados de um Banco de Dados, devem permanecer íntegros após qualquer transação, transação esta que deve respeitar restrições e pré-requisitos impostos pelo SGBD.

Isolamento: As transações devem ocorrer sem que outras interfiram em sua execução, ou seja, uma por vez.

Durabilidade: Qualquer mudança no BD – operação concluída com sucesso – deve permanecer, mesmo que haja qualquer falha no sistema.

A importância do ACID para um SGBD
O ACID é muito importante para um BD, pois é este conjunto de características que garante a qualidade e segurança(contra falhas do sistema) das transações, obtendo assim bons resultados no armazenamento correto das informações. Cada propriedade tem sua importância. Com a Atomicidade, as transações são executadas com sucesso até o final, comando por comando, no caso de erro em qualquer um deles o SGBD deve desfazer o que foi alterado, então temos a garantia de que os cálculos, atualizações, ou outras operações não foram executadas incompletas, e sim até o fim com sucesso. Já a Consistência é importante porque uma operação não pode violar a integridade dos dados, ou seja, após executar uma transação, o banco de dados deve manter a consistência dos dados, mesmo ocorrendo alterações(Update, Insert...). O Isolamento vai evitar que a transação que está sendo executada, seja interferida ou interrompida por outra solicitação, evitando que erros aconteçam. A Durabilidade vai garantir que os dados que foram gravados pelas transações, não sejam perdidos ou danificados, mesmo que ocorra alguma falha no sistema, como travamento e queda de energia (desde que não haja perda de hardware).

Espero que tenha entendido, qualquer dúvida, sugestão ou crítica, deixe um comentário. Até o próximo post.

Postagens mais visitadas deste blog

JDownloader: Corrigir erro Skipped FFMpeg ao baixar do Youtube

Há tempos eu vinha tendo problemas ao baixar vídeos do Youtube.com. Quando instalei a versão 2 do JD, apareceu-me uma janela que eu não tinha visto antes:



Veja o erro que acontecia ao tentar baixar um vídeo do Youtube, na imagem abaixo:

Sem tanta necessidade do download, eu sempre deixei para depois, mas em um momento eu precisei, e muito, então resolvi pesquisar e vi em alguns fóruns, em inglês, que poderia ser algum problema na linha de comando na configuração do JDownloader para o uso do FFMpeg. Mas ao checar o painel de configurações, os comandos estavam certos, mas o caminho do arquivo binário do FFMpeg não estava lá, tinha apenas "null", ou seja, nulo.

Então, para corrigir, se este for o seu problema, encontre o caminho do FFMpeg no seu sistema, seja ele Windows ou Linux. No caso do Windows, o arquivo binário ffmpeg.exe pode estar diretamente no disco C(ou outra unidade onde o S. O. estiver instalado) ou em Arquivos de Programas, se não encontrar, tente fazer uma pesqu…

Instalando placa de vídeo AMD Radeon no Kubuntu 14.04 e 14.10

Como sempre, é recomendado usarmos drivers livres em nossas distribuições, não pelo falo de serem livres, mas principalmente por terem sido melhores testados pela comunidade. Se sua placa de vídeo foi reconhecida pelo Kubuntu(ou qualquer outra distro) e usa o driver livre, recomendo que deixe-o assim, mas pode seguir este tutorial. Como todo fabricante, a AMD disponibiliza um drive para seu produto, e para controlar a placa de vídeo, existe o AMD Catalyst, que é quem faz o controle do sistema híbrido, uma interface na verdade, mas já vem tudo junto num pacote só!

Sistema Híbrido Intel/AMD Radeon
Há alguns anos vi um professor com um sistema híbrido em um notebook, é algo interessante, mas que pode trazer um pouco de dor de cabeça para usuários Linux, quando se trata de placas da AMD. Não vejo muitas reclamações de placas Nvidia em sistemas híbridos, o uso do Bumblebee parece ser simples e sem muito mistério. Não que instalar o AMD Catalyst seja coisa de outro mundo, mas acontece de oc…

Corrigindo erro ao instalar o Netbeans no Linux: UncaughtExceptionHandler in thread "main"

Ao tentar instalar o Netbeans 8.0.2 no Mageia 5, me deparei com um erro, onde ele não abria a tela de instalação, então rodei ele pelo terminal e tive a seguinte saída: 

$ ./netbeans-8.0.2-php-linux.sh
Configurando o instalador ...
Procurando por um JVM no sistema...
Extraindo dados para instalação...
Executando o assistente do instalador...

Exception: java.awt.HeadlessException thrown from the UncaughtExceptionHandler in thread "main"

Então após umas pesquisadas na Internet, cheguei à conclusão que era um problema no caminho do Java JDK que não está configurado corretamente, então basta executar o Netbeans informando o local do JDK:


./netbeans-8.0.2-linux.sh --javahome /usr/java/jdk1.8.0_25/
 No meu caso a localização do JDK foi "/usr/java/jdk1.8.0_25/', verifique o caminho da sua versão do JDK e também para sua versão do Linux. Acredito que esse erro possa acontecer no Windows em alguns casos, mas aí já é coisa pra um futuro tutorial.

Espero ter ajudado. Se te ajudou, com…