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

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…

CSS: ID e Class, o que são e quando usar

Como muita coisa no temido CSS, muitas pessoas tem dúvidas em relação ao ID e Class, o que é normal. Então vamos ver de forma simples o que é cada um deles e quando usar.
ID é um identificador ou seletor para um elemento no HTML, e este deve ser único em todo o corpo do documento, e assim o CSS será aplicado para este elemento em específico. É algo que funciona como o número do documento de identidade, ou seja, é como devemos identificar os elementos como imagens, divs, parágrafos em nossa página. É também a forma mais correta para este fim, mas muitos usam classes – e funciona – mas não é indicado, e podem ter alguns problemas ao usar Javascript por exemplo, pois classe pode ser usada em vários elementos HTML da página, e o ID dever ser usado em apenas um. No CSS ele é identificado pelo sinal # (sharp) e no HTML o nome do ID fica no parâmetro id=”” sem o sinal #.
Exemplo: CSS #meuelemento{ color: #000; }
#meuOutroElemento{ color: #333; margin: auto; }
HTML
<div id=”meuelemento”&g…

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…