Esse artigo faz parte da revistaSQL Magazine edição 65. Clique aqui para ler todos os artigos desta edição

envolvedores de sistemas de informações lidam com aplicações que gerenciam uma quantidade cada vez maior de dados. Os Sistemas Gerenciadores de Bancos de Dados (SGBDs) fornecem a estrutura necessária para esta tarefa. No entanto, os SGBDs estão começando a serem aplicados em áreas cada vez mais distintas, cujos domínios podem estar associados a uma alta complexidade e a um número cada vez maior de informações.

Os SGBDs provêem capacidades de armazenamento de grande quantidade de informações, além de dispor de ferramentas interativas para manipulação e atualização de dados. Entretanto, esses sistemas são considerados passivos, no âmbito de que as suas principais operações (inclusão de novos dados, remoção, modificação ou consulta dos mesmos) ocorrem devido a requisições da aplicação ou dos usuários que acessam diretamente o banco de dados através de ferramentas oferecidas pelo mesmo.

Os sistemas passivos passaram a não mais atender às necessidades dos usuários e às aplicações emergentes. Nesse contexto surgiram os chamados sistemas gerenciadores de bancos de dados ativos.

Um Sistema Gerenciador de Banco de Dados Ativo (SGBDA) estende as capacidades de um SGBD passivo, tornando-o capaz de responder a eventos gerados interna ou externamente ao sistema, testando determinadas condições e executando ações como conseqüência desse teste.

Em particular, um SGBDA realiza funções que nos bancos de dados tradicionais, aqui denominados passivos, devem estar embutidas em programas de aplicação do usuário. Assim, um SGBDA não apenas armazena dados, mas também executa ações em resposta a eventos. Por isso, são vistos como uma extensão dos SGBDs tradicionais.

Existem diversas implementações de SGBDA, porém nesse artigo serão apresentados os conceitos de regras ativas utilizando o PostgreSQL.

Características dos Sistemas Gerenciadores de Bancos de Dados Ativos (SGBDA)

Apesar de existir uma gama enorme de sistemas que se julgam ativos, ainda não está bem claro o que um SGBD deve possuir para ser assim classificado.

O manifesto sobre banco de dados ativos descreve, entre outras coisas, algumas características essenciais para que um determinado sistema gerenciador de banco de dados seja considerado um SGBDA.

Existem algumas funcionalidades essenciais e outras apenas opcionais para sistemas ativos. Neste artigo serão abordadas apenas aquelas características que se julgam necessárias para um banco de dados ativo.

São três as funcionalidades essenciais de um SGBDA:

· Um SGBDA é um sistema gerenciador de banco de dados;

· Um SGBDA suporta a definição e o gerenciamento de regras ECA (Evento-Condição-Ação);

· Um SGBDA possui um modelo de execução.

A seguir conheceremos um pouco sobre cada funcionalidade.

Um SGBDA é um Sistema Gerenciador de Banco de Dados

Essa característica admite que todo banco de dados ativo deve possuir todas as características de um banco de dados tradicional, ou seja, se ignorarmos todas as suas características ativas, podemos trabalhar com um SGBDA da mesma forma que trabalhamos com um SGBD passivo.

Um SGBDA suporta a Definição e o Gerenciamento de Regras ECA (Evento-Condição-Ação)

O SGBD pode possuir meios implícitos de definição de regras ativas. No entanto, ele deve também oferecer a possibilidade de o usuário definir tais eventos através de comandos SQL simples ou de ferramentas projetadas especificamente para essa definição. Se não são fornecidos tais meios para implementar regras, então não podemos considerar esse sistema como ativo.

Estes sistemas devem possuir a noção de eventos que devem ocorrer para que sejam disparadas ações. Essa é uma característica que diferencia esse tipo de sistema de SGBDs dedutivos, sistemas especialistas, etc.

Além de ter a capacidade de definir regras, ele deve gerenciá-las. Isso é feito guardando as informações sobre regras no catálogo de dados junto com as demais estruturas do banco de dados.

Um SGBDA estende as capacidades de um Sistema Gerenciador de Banco de Dados passivo, tornando-o capaz de responder a eventos gerados interna ou externamente ao sistema, testando determinadas condições e executando ações como conseqüência desse teste. Controle de integridade, controle de acesso, política de segurança e atualização são alguns usos para essa capacidade.

Quando um evento ocorre, uma ou mais regras podem ser disparadas (triggered). O evento é chamado evento disparador das regras. Uma vez disparada uma regra, suas condições são verificadas. Se as condições são satisfeitas, as ações da regra são executadas. O modelo ECA é apresentado resumidamente na Tabela 1.

Evento

É o responsável por ativar uma regra. Esses eventos são normalmente operações de atualização de banco de dados aplicadas explicitamente.

Condição

Ela determina se a ação da regra deve ser executada. Uma vez ocorrido o evento, uma condição opcional pode ser avaliada. Se nenhuma condição for especificada, a ação será disparada pelo evento. Se uma condição for especificada, primeiro ela será avaliada, e somente se seu resultado for verdadeiro a ação da regra será executada.

...

Quer ler esse conteúdo completo? Tenha acesso completo