BANCOS DE DADOS
ATIVOS
Weyler M Lopes ©
Especialização em Banco de Dados
Página 1
O que é...
É um SGBD ativo que pode automaticamente reagir a
eventos, em contraste aos SGBD tradicionais.
Um banco de dados que suporta ECA (EventoCondição-Ação).
Sistemas de Banco de Dados focados em mecanismos
de evento-resposta.
Banco de Dados que permite a especificação e
implementação de comportamentos reativos.
Weyler M Lopes ©
Especialização em Banco de Dados
Página 2
Aspectos Importantes
Tópico muito explorado e estudado nos últimos anos.
A qualidade “ativa” em SGBD ainda não está definida
com precisão. Há um manifesto com esta finalidade.
Assim como outras tecnologias relacionadas com
banco de dados, a grande fator motivador para a
implementação de um SGDBA (SGBD Ativo) é a
aplicação a que se destinará.
Características genéricas são comumente definidas,
enquanto características específicas dependem da
natureza da aplicação
SGBDA é, na verdade, uma extensão de um SGBD
Weyler M Lopes ©
Especialização em Banco de Dados
Página 3
Regras-ECA
Consistem de evento, condições e ações;
Significado de uma regra: quando um evento ocorre, a condição é
checada, caso seja verdadeira, uma ação é executada;
Outros termos são usados como referência a regras-ECA:
Triggers, gatilhos;
A SQL foi estendida para suportar a definição de regras-ECA;
Eventos ocorrem dentro de transações e ações são executadas
por de transações (triggered transactions);
Uma transação de uma trigger (triggered transaction) pode ser
executada antes ou depois da transação que a disparou (triggering
transaction).
Weyler M Lopes ©
Especialização em Banco de Dados
Página 4
Características dos BD Ativos
Definição de regras-ECA
Um SGBDA é um SGBD;
Possui um modelo de regras-ECA, capaz de definir eventos,
condições e ações;
Deve suportar o gerenciamento, incremento e decremento do
conjunto de regras;
Weyler M Lopes ©
Especialização em Banco de Dados
Página 5
Características dos BD Ativos
Execução de regras-ECA
Deve possuir um modelo de execução que englobe: a detecção da
ocorrência de um evento; ligue um evento a um item de dado;
avalie a condição, execute a ação;
Deve prover múltiplos de modos para execução da ação, no
tangente a ocorrência do evento
Deve gerenciar o histórico dos eventos
Deve implementar resolução de conflitos
Weyler M Lopes ©
Especialização em Banco de Dados
Página 6
Características dos BD Ativos
Usabilidade e Aplicação
Deve suportar ambiente de programação
Deve ser configurável
Weyler M Lopes ©
Especialização em Banco de Dados
Página 7
Classificação dos SGBDA
Para monitoração em sistemas de informação
homogêneos
Para controle em sistemas de informação
homogêneos
Para controle em sistemas de informação
heterogêneos
Weyler M Lopes ©
Especialização em Banco de Dados
Página 8
Exemplos de Regras-ECA
SQL Server
/* Trigger para inclusão de um movimento
mediante a inclusão de um pedido */
create trigger inclui_cta_movto
on pedido
for insert
as declare @cod numeric
declare @matr numeric
declare @ped numeric
declare @comissão float
declare @perc float
select @perc = região.perc_vendendor from vendedor, região
where vendedor.cod_região = região.cod_região and
vendedor.matrícula = (select matrícula from inserted)
select @comissão = (@perc/100)* vl_pedido from inserted
select @cod = max(cod_movto) from cta_movto
if @cod is null
select @cod = 1
else
select @cod = @cod + 1
select @matr = inserted.matrícula from inserted
select @ped = inserted.cod_pedido from inserted
insert into cta_movto
values (@cod, @matr, @ped, @comissão, getdate(), "C", "B")
Weyler M Lopes ©
Especialização em Banco de Dados
Página 9
Exemplos de Regras-ECA
SQL Server
/* Trigger para o desbloqueio do movimento
mediante o pagamento de uma compra */
create trigger altera_sit_movto
on pedido
for update
as declare @sit varchar(1)
if update(situação)
select @sit = situação from inserted
if @sit = "A"
update cta_movto
set situação = "D"
from inserted
where cta_movto.cod_pedido = inserted.cod_pedido
if @sit = "C"
update cta_movto
set situação = "C"
from inserted
where cta_movto.cod_pedido = inserted.cod_pedido
Weyler M Lopes ©
Especialização em Banco de Dados
Página 10
Exemplos de Regras-ECA
SQL Server
/* Trigger para o desbloqueio do movimento
mediante o pagamento de uma compra */
create trigger altera_sit_movto
on pedido
for update
as declare @sit varchar(1)
if update(situação)
select @sit = situação from inserted
if @sit = "A"
update cta_movto
set situação = "D"
from inserted
where cta_movto.cod_pedido = inserted.cod_pedido
if @sit = "C"
update cta_movto
set situação = "C"
from inserted
where cta_movto.cod_pedido = inserted.cod_pedido
Weyler M Lopes ©
Especialização em Banco de Dados
Página 11
Exemplos de Regras-ECA
PostgreSQL
CREATE TRIGGER if_dist_exists
BEFORE INSERT OR UPDATE ON films
FOR EACH ROW
EXECUTE PROCEDURE check_primary_key ('did', 'distributors', 'did');
CREATE FUNCTION one() RETURNS integer AS 'SELECT 1 AS RESULT;' LANGUAGE SQL;
Weyler M Lopes ©
Especialização em Banco de Dados
Página 12
Exercício
Considerando o documento com um manifesto
referente a SGBDA, compare o SQLServer e o
PostgreSQL no tangente às características
relacionadas no manifesto.
Weyler M Lopes ©
Especialização em Banco de Dados
Página 13
Download

banco de dados em sistemas de informações geográficas