Home
Regras Activas Dirigidas pelos Dados para a Manutenção de
Contents
1. As regras activadas s o executadas em modo diferido no fim da transac o imediatamente antes de commit ou quando explicitamente invocado o processamento de regras com o comando process rules Em qualquer dos casos as regras activadas s o executadas sequencialmente incluindo no mesmo ciclo as regras activadas em cascata regras activadas em resultado da execu o doutras regras Em cada itera o escolhida do conjunto de regras activadas que inclui as regras activadas em cascata uma regra para execu o de acordo com a prioridade relativa e a ordem de cria o das regras conforme se explicou acima A execu o duma regra consiste na avalia o da condi o seguida da execu o da ac o no caso do condi o ser verdadeira Se uma regra invoca rollback o processamento de regras interrompido e a transac o desfeita rolled back Z Quando uma regra executada as suas tabelas de transi o descrevem o efeito l quido das altera es inser es elimina es e actualiza es de tuplos ocorridas desde o in cio da transac o no caso da 1 execu o da regra nessa transac o ou desde o in cio da ltima execu o da mesma regra no caso contr rio at ao in cio da execu o corrente da regra Para produzir o efeito l quido as altera es transi es elementares s o combinadas da seguinte forma e se um tuplo inserido e depois actualizado o efeito l quido a inse
2. ssssececececeseeseneeaececececeeeesenneaeeeeeeeenees 19 5 7 3 Seguir a ordem de cria o das regras cr errrereereaeaeeeererenaaa 19 5 7 4 Minimizar o conjunto de vari veis de realimenta o ci iii 19 e AL PIVCTIO Sc LOCAIS ante o pd De a a a id AAEE EAR OEE 79 6 TERMINACAO DETERMINISMO E VELOCIDADE DE TERMINACAO DO PROCESSAMENTO DE REGRAS ssnsssssssscsassssuecwessisensteswousvisssccasetsvegebsassssucaussssbsnsscede 81 0 1 TERMINA O catia soecui vias tensos ao acao E a E adnes sis ge cale CEL CER S O RUAS EE EREEREER TS 81 6 1 1 An lise conservadora baseada no grafo de activaGao eeeesesececececeeeenenneceeeeeeeeeens 81 6 1 2 An lise refinada baseada no grafo de activa o produtiva cc eeeeeeeeneeeeeeeeeeeeees 83 6 1 3 An lise interm dia baseada no grafo de activa o da condi o 85 6 1 4 Detec o din mica de actualiza es contradit rias que impedem a termina o 86 6 2 DETERMINISMO ie ari bo vee coh ses en OR a 87 6 22 Grafo de EXECU O cp ssses ap Beko arrastam Side Oe add eDee a E a e Rida eee a e ta LE 87 6 2 2 No es de determinismo e conflu ncia 2 0 0 0 eee eeeeenecececeeeeeesneaececeeeceseenenaeeeeeeeeeeeees 89 6 2 3 Grafo de execu o parametrizado e ereerrreraraeaereererenaaa 90 6 2 4 Regras comutatiyaS lu dia ica cade GAGS ae a capas pap Heer tea ns eae aeS 92 6 2 5 Pares de
3. fn tem se F FMA DIF D lt o operador relacional de jun o natural ri completaem U amp n Fi m F T o operador relacional de projec o Ordena o das regras 71 Note se que uma regra redundante em rela o a qualquer regra completa que refira as mesmas ou mais vari veis Teorema 5 3 Seja R um conjunto de regras puramente incondicionais tal que para qualquer conjunto m nimo U de vari veis restringidas estaticamente por R existe pelo menos uma regra re R que referencia exactamente U completa em U e n o auto recursiva Ent o qualquer ordena o total O de R com um conjunto m nimo de entradas ideal Demonstra o Seja uma ordena o O de R com um conjunto m nimo M de entradas Suponhamos que M restringido estaticamente por R Seja U um subconjunto m nimo de M que ainda restringido estaticamente por R De acordo com as condi es do teorema acerca de R existe uma regra reR que referencia apenas U completa em U n o auto recursiva e puramente incondicional Sejam X e Y as vari veis de entrada e sa da de r Uma vez que r n o auto recursiva tem se que Y U X Uma vez que r puramente incondicional define o valor final de Y como fun o do valor inicial de X Seja O a ordena o que se obt m a partir de O movendo r para a 1 posi o Esta desloca o n o aumenta as entradas da ordena o porque as entradas de r X est o contidas nas entradas de O M Em vez d
4. As caracter sticas fundamentais do modelo de regras proposto entendido no quadro das regras activas e que justificam o t tulo deste cap tulo s o e o facto de as mesmas serem dirigidas pelos dados isto o facto dos eventos serem inferidos pelo sistema e o facto de at mesmo a parte de condi o poder ser omitida e o facto das regras terem sem ntica de ponto fixo no sentido de que uma regra deve ser executada desde que da possa resultar uma altera o do estado dos dados Um modelo de regras deve contemplar as seguintes componentes DGG95 que ser o objecto dos cap tulos seguintes e um modelo de conhecimento i e um formalismo para definir ou representar regras em conjunto com um formalismo para definir ou representar dados modelo de dados e um modelo de execu o que define como que as regras s o executadas Embora os requisitos do modelo de regras proposto provenham de um dom nio de aplica o bem definido formul rios de ecr simples o modelo definido de forma relativamente gen rica e abstracta para e potenciar a sua aplica o a outros dom nios e facilitar a compreens o e o racioc nio e facilitar a sua compara o e cruzamento com outros modelos de regras 3 2 Modelo de dados Qualquer modelo de regras pressup e um modelo de dados isto um formalismo para descrever dados e opera es sobre esses dados Para tornar o modelo de regras gen rico e abstracto considera se um modelo de
5. As express es apresentados neste teorema podem ser lidas da seguinte forma e Uma vari vel y faz parte de min o vars r se e s se o valor de y alterado em termos l quidos por compara o dos valores iniciais e finais quando r executada para pelo menos um estado inicial e Uma vari vel x faz parte de min i vars r se e s se existem dois estados iniciais s e t diferentes apenas em x tal que os estados finais correspondentes no fim da execu o de r diferem no valor de pelo menos uma vari vel y e o valor dessa vari vel y alterado para pelo menos um dos estados niciais digamos s No caso de vari veis x e y distintas a condi o r s y s y redundante e a defini o bvia basicamente o que se diz que o valor final de y depende funcionalmente do valor inicial de x No caso de x e y serem a mesma vari vel a defini o mais subtil Este teorema importante porque estabelece uma ponte entre a sintaxe neste caso as vari veis referenciadas para leitura ou escrita e a sem ntica de uma regra neste caso o seu efeito l quido descrito por uma fun o no espa o de estado servindo mais adiante para demonstrar propriedades que s o baseados nessas vari veis Activa o das regras 51 4 1 5 Grafo de depend ncias entre regras e vari veis grafo r v As rela es de entrada e sa da entre regras e vari veis podem se representar graficamente atrav s de um grafo de depend ncias entre regra
6. Mais precisamente as prioridades num ricas din micas equivalentes a uma ordena o total das regras resultam da conjuga o dos seguintes crit rios dispostos por for as decrescentes Implementa o de um motor de regras activas dirigidas pelos dados 139 e Se existe um caminho de r para r e nenhum caminho em sentido contr rio no grafo de depend ncias ent o r deve ter prioridade sobre r Este crit rio corresponde ao crit rio 5 1 ordena o das regras pelo princ pio calcular antes de usar do cap tulo 5 s que baseado num grafo de depend ncias que n o corresponde exactamente ao grafo r r e Ordenar as regras por forma a induzir um conjunto m nimo de arestas de realimenta o inverter um conjunto m nimo de arestas no grafo de depend ncias Este crit rio corresponde ao crit rio 5 5 do cap tulo 5 s que baseado num grafo de depend ncias que n o corresponde exactamente ao grafo rr Este crit rio e o anterior complementam se sem contradi o Os dois crit rios equivalem se quando o grafo de depend ncias ac clico Quando o grafo de depend ncias tem ciclos este crit rio serve para ordenar as regras dentro dos componentes fortemente conexos CFC s n o triviais e Ordenar as regras de acordo com as suas prioridades num ricas est ticas Este crit rio interessa quando os crit rios anteriores n o s o suficientes para ordenar totalmente as regras A utilidade de prioridades num ricas est
7. Regras que derivam um valor para uma vari vel no final da execu o da regra usando o valor da mesma vari vel no in cio da execu o da regra s o chamadas recursivas ou mais precisamente auto recursivas Exemplos de regras auto recursivas teis e regras para convers o ou correc o de entradas do g nero da regra rs na figura 3 1 e regras usadas em m todos iterativos tal como ris y exp y Regras activas dirigidas pelos dados com sem ntica de ponto fixo 43 Conjuntos de duas ou mais regras que em conjunto derivam um valor para uma vari vel usando o valor da mesma vari vel pelo menos aparentemente s o chamadas mutuamente recursivas Exemplos de regras mutuamente recursivas teis e regras com condi es mutuamente exclusivas tais como rg x 0 gt y z e ro X O gt z y e regras que imp em a mesma restri o de v rias maneiras tais como as regras rs e ro na figura 3 1 Defini es mais precisas de regras recursivas e conflituosas ser o apresentadas no cap tulo 4 3 3 2 Defini o de regras de restri o As regras que obrigam a repor um estado anterior consistente quando uma restri o de integridade violada s o designadas regras de restri o Estas regras devem ser sempre condicionais em que a condi o precisamente a viola o de uma restri o de integridade Tamb m s o chamadas abort rules por alguns autores ZCF 97 Estas regras imp em uma restri o de integridade de
8. regras ECA Encontram se em SGBD s mas n o em ferramentas de desenvolvimento de aplica es Note se que quando o modo de acoplamento entre a condi o e a ac o imediato caso mais comum uma regra ECA praticamente equivalente a uma regra EA porque a condi o pode ser embebida na parte de ac o Servem para especificar de forma flex vel regras de imposi o de restri es de integridade e de c lculo de dados derivados regras EA Encontram se nas ferramentas de desenvolvimento de aplica es e em SGBD s Os eventos suportados s o muito vari veis Servem tamb m para especificar de forma flex vel regras de imposi o de restri es de integridade e de c lculo de dados derivados e regras dirigidas pelos dados com eventos de manipula o de dados impl citos regras C Especifica es declarativas de restri es de integridade com eventos e ac es impl citos o caso de asser es e check constraints em SQL restri es sem estabilizadores no sistema PARDES restri es sem handlers no sistema Ode e regras de valida o no Microsoft Access A condi o define sempre uma restri o de integridade A ac o implicitamente abortar e desfazer a transac o ou a opera o que viola a restri o regras A Especifica es declarativas no sentido de n o ser necess rio especificar os eventos de dados derivados Caso de deriva es no projecto PARDES e f rmulas de c lculo de dados derivado
9. 4 Iterated vertex sequences Assume we represent verte x orderings as vertex sequences Theorem 5 Let Land L be any two G equivalent orderings of the vertices of a directed graph G V E represented as vertex sequences Let D be the maximum distance between any two strongly connected vertices in G or O in case there are no strongly connected vertices in G Then there exist vertex sequences A and B and integer h with O lt h lt D such that for any natural N the vertex sequence L L iterated N h times may be transformed into the vertex sequence ALB by repeatedly interchanging consecutive vertices that are not joined by cyclic edges of G Proof 1 We will use a method similar to the one exposed in the proof of the previous theorem to transform L into an ordering L that differs from L at most by a rotation by interchanging pairs of circularly consecutive vertices that are not joined by cyclic edges of G At the same time we give a method to transform the vertex sequence L into a vertex sequence of the form ALB by interchanging pairs of consecutive vertices not circularly consecutive that are not joined by cyclic edges of G 2 Instead of the circular representation used in the previous theorem we use iterated graphs defined as follows 2 1 Given G and L we define a corresponding acyclic iterated graph G V Ei as follows 2 1 1 To each vertex ve V with position p in L lt p lt n there correspond verti
10. 9 10 11 12 13 14 15 16 17 18 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases S Ceri and J Widom Deriving production rules for incremental view maintenance In Proc of the 17th VLDB Conference pp 577 589 Barcelona Spain September 1991 O Eztion PARDES A Data Driven Oriented Active Database Model In SIGMOD RECORD Vol 22 No 1 March 1993 O Eztion A Gal and A Segev Data driven and temporal rules in PARDES In Proc of the First International Workshop on Rules in Database Systems pp 92 108 Edinburgh Scotland August 1993 A Gal and O Eztion Maintaining Data driven Rules in Databases IEEE Computer 28 1 28 38 January 1995 E Hanson Rule condition testing and action execution in Ariel In Proc of the ACM SIGMOD International Conference on Management of Data pp 49 58 San Diego California June 1992 J Faria Data driven rules for the maintenance of derived data and integrity constraints in user interfaces to databases INESC Technical Report RI 1 99 Porto Portugal May 1999 url http www fe up pt jpf research tr3 ps zip A Aiken J Widom and J Hellerstein Behavior of Database Production Rules Termination Confluence and Observable Determinism In Proc ACM SIGMOD International Conference on Management of Data pp 59 68 USA June 1992 E Baralis S Ceri and S Paraboschi Impro
11. Conjunto m nimo de vari veis restringidas Regras que imp em a restri o afc coffe o No quadro seguinte indicam se as ordena es com conjuntos m nimos de entradas Para cada conjunto de entradas em vez de se enumerarem todas as ordena es totais indicam se apenas as Ordena o das regras 13 preced ncias relativas a que as ordena es totais obedecem Indicam se as regras redundantes entre par ntesis rectos Todas as ordena es s o ideais apesar da restri o em x e z n o ser imposta directamente por nenhuma regra Ordena o com conjunto Entradas Ordena o ideal Efeito l quido m nimo de entradas entradas n o restringidas ri gt rs gt ra n gt trl YSA A r gt r r gt ra xf Az aty razr gt Irib re gt ni YEE AEO 5 4 4 Combina o com outros crit rios Na aus ncia de regras recursivas e de regras conflituosas o crit rio 5 4 produz o mesmo efeito que o crit rio 5 1 Em geral no entanto n o substitui o crit rio 5 1 pelo que deve ser usado em combina o com o crit rio 5 1 mas com menos for a Em geral existem v rias ordena es que satisfazem ao crit rio 5 4 Para escolher uma de entre essas ordena es pode se usar o princ pio de preservar os valores introduzidos pelo utilizador Isto o conjunto de entradas escolhido deve ser o que cont m as vari veis que interessa preservar 5 5 Ordens de execu o justas 5 5 1 Ordens de execu o justas
12. LIVIA IED p D lt X AVi IEl cu 1 lt 1Val lEpl cu 1 T Consequently theorem 3 still applies as an upper bound Algorithm 1b may save a significant work If the sub SCC s are linked sequentially p x xp cn cycles are inspected by algorithm la while only p p paths or cycles are inspected by algorithm 1b Complexity bound Algorithm 2 still does redundant work because it finds the paths that connect the start to the stop vertices while we only need to know what edges belong to those paths However we cannot improve it dramatically because even the following elementary sub problem is NP complete as we shall see Problem 3 connecting edge Given a directed graph G V a start vertex s a distinct stop vertex and an edge v w not incident on s or t that is with distinct s t v and w is there some path connecting s and t and traversing vw We next show that this problem is equivalent to the following well known problem Problem 4 distinct connecting paths 4 Given a graph G V E and a collection of disjoint vertex pairs 81 17 8242 Spt does G contain k mutually vertex disjoint paths one connecting s and t for each i 1 lt i lt k We assume here the particular case where k 2 and G is directed Problem 3 may be transformed into problem 4 for the same graph in linear time since any path connecting s and and traversing v w is the union of the edge v w with two vertex dis
13. SU u end Este ltimo algoritmo pode ser implementado em tempo O IVI I EI usando por exemplo um crit rio last in first out pilha ou um crit rio first in first out fila para as inser es e elimina es em S O segundo algoritmo mais gen rico porque permite gerar todas as ordens topol gicas atrav s de diferentes escolhas no ponto de escolha sublinhado Em contrapartida o primeiro algoritmo com os pontos de escolha tamb m sublinhados n o permite gerar todas as ordens topol gicas Exemplo No caso do grafo 146 Implementa o de um motor de regras activas dirigidas pelos dados OD o primeiro algoritmo apenas permite gerar as ordens topol gicas 1 2 3 e 3 1 2 mas n o a ordem topol gica 1 3 2 Assim o segundo algoritmo mais til para combinar com outros crit rios nomeadamente com prioridades conforme veremos na sec o seguinte Em contrapartida o primeiro algoritmo tem a vantagem de poder ser aplicado a um grafo com ciclos o que n o acontece com o segundo com o seguinte resultado Teorema 8 1 A ordena o dos v rtices de um grafo G V E produzida pelo algoritmo 8 3 inverte um conjunto m nimo de arestas em G Demonstra o Seja v gt u uma aresta invertida Essa aresta corresponde a uma chamada recursiva DFS v gt DFS u em que u se encontra na pilha de chamada de DFS AU92 Sejam u Wi Wm V U OS v rtices que se encontram na pilha de chamada nesse momento Esta sequ
14. l utilisateur de visualiser et de manipuler des donn es emmaganis es dans un banc de donn es au moyen d une interface avec Putilisateur bas e sur des formulaires des rapports et des graphiques Dans le domaine du D veloppement Rapide d Applications on utilise galement des r gles actives pour la validation des donn es introduites par l utilisateur pour le calcul automatique de donn es d riv es par exemple des champs de formulaires ou de rapports calcul s en fonction d autres champs pour le contr le dynamique des propri t s des champs pour extension et la red finition de comportements automatiques encapsul s dans les outils de d veloppement etc Une r gle active command e par les donn es est une r gle active ayant des v nements implicites d un type restreint v nements de modifications de donn es qui peuvent tre inf r s partir de la condition et ou de action de la r gle selon certains pr suppos s Les r gles actives command es par les donn es different des r gles actives avec des v nements explicites dans leur mode de d finition mais pas dans leur mode d ex cution qui lui est command par des v nements pour des raisons d efficacit et d int gration Des formules de calcul de donn es d riv es dans des tableurs ou dans des outils de d veloppement rapide d applications et assertions g n rales en SQL sont des exemples d entit s qui peuvent tre trait es comm
15. o abortada at terminar efectivamente momento em que desaparece da pilha de transac es O atributo interrupted indica se a transac o foi interrompida ver adiante Este atributo interessa porque pode mediar algum tempo desde que uma transac o interrompida at terminar efectivamente momento em que desaparece da pilha de transac es A opera o startrans inicia uma nova transac o de n vel de topo ou sub transac o que passa a ser a nova transac o corrente A opera o endtrans termina a transac o corrente Normalmente endtrans chamado pela mesma opera o que iniciou a transac o Se a transac o n o tiver sido abortada ou interrompida primeiro invocado o processamento de regras que pode originar sub transac es e o abortamento ou interrup o da transac o corrente Quando uma transac o de n vel de topo termina com sucesso sem ter sido abortada as altera es registadas no log de altera es s o tornadas duradoiras e o log esvaziado ver opera o commit changes adiante Quando uma sub transac o termina com sucesso sem ter sido abortada as altera es ocorridas desde o in cio da sub transac o permanecem registadas no log de altera es como se fossem herdadas pela transac o invocadora porque podem ter de ser desfeitas mais tarde caso uma transac o invocadora seja abortada mais tarde A opera o abort aborta a transac o corrente O processame
16. pode alterar o valor l gico da condi o de r de falso para verdadeiro e Um lacete rr significa que a execu o de r pode n o desactivar a condi o de r isto pode terminar num estado em que a condi o de r continua a ser verdadeira Uma regra sem a parte de condi o tratada com se tivesse uma condi o sempre verdadeira E ent o aplicado o seguinte algoritmo Algoritmo 6 1 algoritmo de redu o de regras BCP95 Repetir at n o ser poss vel efectuar mais elimina es Se n o existe nenhuma aresta dirigida a r no grafo de activa o ou n o existe nenhuma aresta dirigida a r no grafo de activa o da condi o Eliminar r de R do grafo de activa o e do grafo de activa o da condi o Prova se ent o que Teorema 6 4 Se um conjunto R de regras reduzido a um conjunto vazio pelo algoritmo de redu o de regras ent o o processamento de R termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras BCP95 No entanto no caso espec fico de regras activas dirigidas pelos dados as condi es deste teorema s o mais conservadoras do que as do teorema 6 3 conforme se demonstra no teorema que se deriva a seguir Lema 6 2 Se uma regra r n o tem um lacete no grafo de activa o da condi o ent o tamb m n o tem um lacete no grafo de activa o produtiva Demonstra o Se r n o tem um lacete no grafo de activa o da condi o a condi o de r semp
17. rule LINHA FACTURA r2hb on create modify QUANTIDADE modify PRE O UNIT RIO modify PRE O TOTAL PRE O TOTAL QUANTIDADE PRE O UNIT RIO 1 TAXA IVA Para a manuten o incremental da restri o R4 unicidade de C DIGO ARTIGO em LINHAS FACTURA define se a seguinte regra rule LINHA FACTURA r4 on create modify C DIGO ARTIGO if exists select from LINHAS FACTURA L where L lt gt this and L C DIGO ARTIGO this C DIGO ARTIGO then abort 7 3 3 Imposicao de restri es inter objecto que interessam a parte dos objectos envolvidos Em certos casos uma restri o de integridade R interessa s a um objecto o mas depende do estado doutro objecto o2 de que o cliente Nesses casos n o faz sentido sobrecarregar o objecto 02 com a manuten o da restri o R O objecto o sozinho deve manter a restri o Ry para o que tem de monitorar os eventos de altera o de o2 A restri o R pode ser mantida por uma regra localizada no objecto 07 que activada por altera es de estado ocorridas em o ou 02 Exemplo As regras de integridade R5 a R8 da figura 7 3 interessam s ao formul rio de preenchimento de facturas e n o s tabelas de artigos e fornecedores nela referenciadas Supondo que os dados dessas tabelas ou pelo menos os dados dessas tab
18. vari vel seguinte Sen o o processamento de regras n o termina seja qual for a sequ ncia de execu o das regras compat vel com o crit rio 5 1 Repetindo o racioc nio para todas as vari veis chega se conclus o que para qualquer estado inicial ou o processamento nunca termina ou termina sempre no mesmo estado final para qualquer sequ ncia de execu o das regras compat vel com o crit rio 5 1 Portanto o conjunto de regras determin stico em sentido forte A 6 2 9 Imposicao do determinismo atrav s de ordens de execu o justas Outra forma de for ar o determinismo do processamento de um conjunto R de regras que n o obedece s condi es do teorema 6 13 atrav s da execu o das regras por uma ordem justa ver sec o 5 5 compat vel com um conjunto P de prioridades isto por uma ordem de execu o traduzida pela express o de controlo O em que O uma ordena o total de R compat vel com P Por exemplo dado o conjunto de regras R r r2 r3 r4 e o conjunto de prioridades P r gt r2 r gt r3 r3 gt ra as ordena es totais de R compat veis com P s o Oj rirarsra O2 F1r3r2r4 O3 r r3rar2 As ordens de execu o justas compat veis com P s o O O2 e O3 Relembre se que 100 Termina o determinismo e velocidade de termina o do processamento de regras a ocorr ncia de uma regra r nas express es de controlo n o significa necessariamente que a regra executada mas apenas
19. 1 0 psi o soja Assim conclui se que a altera o de y efectivamente torna a execu o da regra r1 produtiva apesar de y n o ser referenciado em r1 Em geral o problema ilustrado no exemplo anterior prende se com as regras que efectuam actualiza es de estado contradit rias por si s ou por interm dio de regras nelas encaixadas Mais precisamente prende se com as regras que mesmo em estados consistentes em sentido l quido geram mudan as de estado que s o anuladas por regras encapsuladas nos sub objectos ou geram por si s mudan as de estado que se cancelam mutuamente havendo regras associadas aos sub objectos que s o executadas em estados interm dios As actualiza es contradit rias n o podem simplesmente ser proibidas Um caso evidente o de rollback local ilustrado no exemplo seguinte Exemplo Sejam as seguintes regras rule t rl update this set x 1 rule r r2 if x gt y abort Suponhamos que a actualiza o de cada registo por r1 efectuada numa sub transac o de forma que a invoca o de abort em r2 apenas cancela a actualiza o de um registo e n o impede a actualiza o de outros registos A regra r2 imp e a mesma restri o x lt y que no exemplo anterior mas de maneira diferente No caso do estado inicial e do comando do utilizador do exemplo anterior a situa o em tudo semelhante O exemplo seguinte ilustra o caso das regras que geram por si s mudan
20. 58 San Diego Calif rnia Junho de 1992 Eric N Hanson The Ariel Project In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 63 86 Morgan Kaufmann 1996 Yannis E Ioannidis Timos K Sellis Conflict Resolution of rules assigning values to virtual attributes In Proceedings of the ACM SIGMOD International Conference on the Management of Data pp 205 214 1989 Donald E Knuth The Art of Computing Programming Volume 1 Fundamental Algorithms Third Edition Addison Wesley 1997 Krishna Kulkarni Nelson Mattos e Roberta Cochrane Active Database Features in SQL3 In Active Rules in Database Systems N Paton editor pp 197 219 Springer Verlag 1998 Brian W Kernighan e Dennis M Ritchie The C Programming Language Second edition Prentice Hall 1988 Robert J Muller Oracle Developer 2000 Handbook Second Edition Osborne McGraw Hill 1997 Vladimiro Miranda Jo o P Faria e Jo o V Ranito Alguns Par metros de Qualidade no Desenvolvimento e Utiliza o de Aplica es Inform ticas Encontro da Associa o Portuguesa de Qualidade Dezembro de 1989 182 MLF 89 OF93 P97 PD99 PS96 R91 R98 RNN77 RS98 RSS90 S97 SK96 SM96 SMBB93 TS92 U88 UML97 Refer ncias Vladimiro Miranda Jo o C Lopes Jo o P Faria Joao C Ferreira Eduardo Silva Jo o V Ranito e Jorge Serro
21. es que induzem conjuntos m nimos de arestas de realimenta o no grafo r r Indicam se de seguida algumas propriedades de grafos que fundamentam um crit rio de ordena o baseado nas observa es anteriores Lema 5 3 Dadas duas ordena es topol gicas O e O dos v rtices de um grafo dirigido G V E poss vel passar de uma ordena o a outra digamos de O a O9 pela troca de v rtices consecutivos que n o s o ligados por qualquer aresta de G Demonstra o Sem qualquer perda de generalidade seja O v v2 Vn Se O v rtice v n o est j na primeira posi o em O move se v para a primeira posi o em O por trocas sucessivas com os v rtices que o precedem em O Cada vez que se troca v com um v rtice v que o precede em O os dois v rtices n o podem estar ligados por qualquer aresta de G n o pode existir uma aresta vi vz porque v est na 1 posi o em O e O uma ordena o topol gica n o pode existir uma aresta v v porque nesse caso O n o seria uma ordena o topol gica Tendo deslocado v para a 1 posi o de O elimina se v do grafo e procede se da mesma forma com vz a passar para a 2 posi o de O Vn Lema 5 4 Dadas duas ordena es O e O dos v rtices de um grafo dirigido G V E que induzem o mesmo conjunto F de arestas de realimenta o poss vel passar de uma ordena o a outra digamos de O a O9 pela troca de v rtices consecutivos que n o s o ligados por q
22. lt identifier gt NEW TABLE AS lt identifier gt lt trigger action gt lt SQL procedure statement gt lt SQL procedure atomic block gt Os gatilhos seguem o paradigma das regras ECA e evento obrigat rio a execu o duma opera o de manipula o de dados espec fica INSERT DELETE ou UPDATE numa tabela espec fica e condi o opcional um predicado SQL arbitr rio podendo conter interroga es SELECT e ac o obrigat ria uma instru o ou bloco at mico de instru es SQL estendido com facilidades procedimentos excluindo instru es relativas a esquemas conex es sess es e transac es n o se pode invocar ROLLBACK mas pode se assinalar uma excep o E poss vel associar v rios gatilhos mesma opera o e tabela Se um gatilho lan ar uma excep o a opera o activadora desfeita rolled back mas a transac o em que ela ocorre n o abortada O tempo de activa o do gatilho indica o momento em que o gatilho activado executado em rela o execu o da opera o activadora e BEFORE o gatilho activado executado antes da execu o da opera o activadora ou mais precisamente depois de ter sido calculado o efeito da opera o activadora conjunto de linhas afectadas com valores antigos e novos sempre que aplic veis mas antes desse efeito ser reflectido no estado corrente da base de dados e AFTER o gatilh
23. o da restri o e cuja ac o rollback Esta abordagem pouco pr tica no entanto para exprimir deriva es incondicionais semelhantes s que se encontram nas folhas de c lculo e no projecto PARDES devido necessidade de se especificar a parte de condi o quando os eventos s o omitidos Regras activas dirigidas pelos dados com sem ntica de ponto fixo 39 3 1 3 Abordagem preconizada Embora estas tr s ltimas abordagens sejam complementares as duas ltimas s o as que oferecem um melhor equil brio entre a natureza declarativa com eventos impl citos e procedimental com ac es expl citas e servem de ponto de partida para a abordagem preconizada aqui As regras dirigidas pelos dados do projecto PARDES sofrem no entanto de limita es muito semelhantes s encontradas nas folhas de c lculo limita es essas que s o eliminadas no modelo aqui proposto Para suportar de forma uniforme deriva es condicionais e incondicionais preconizam se regras condicionais com um significado ligeiramente diferente do habitual em SGBDA s Enquanto que habitualmente se considera que a ac o deve ser executada sempre que a condi o verdadeira no modelo proposto a ac o deve ser executada sempre que a condi o verdadeira e a execu o da ac o pode resultar na altera o do estado dos itens de dados isto s faz sentido claro em regras destinadas manuten o de dados derivados e restri es de integridade
24. o das asser es IMMEDIATE ou DEFERRED passa a estar dispon vel em todos os tipos de restri es Foram tamb m introduzidas na defini o das asser es algumas das op es existentes na defini o de gatilhos nomeadamente e poss vel especificar asser es do n vel do tuplo FOR EACH ROW e poss vel especificar as opera es de manipula o de dados que desencadeiam a verifica o imediata da asser o Revis o do estado da arte 21 2 3 2 Gatilhos em SQL3 Uma das novidades principais da norma SQL3 em rela o norma SQL 92 a introdu o de gatilhos A descri o que se segue baseada em KMC98 A sintaxe da defini o de um gatilho lt SQL3 trigger definition gt CREATE TRIGGER lt trigger name gt trigger activation time gt trigger event gt ON lt table name gt REFERENCING lt old or new values alias list gt lt trigger granularity gt WHEN lt condition gt lt trigger action gt lt lt GI lt trigger activation time gt BEFORE AFTER lt trigger granularity gt FOR EACH ROW FOR EACH STATEMENT lt trigger event gt INSERT DELETE UPDATE OF lt column name list gt lt old or new values alias gt OLD AS lt identifier gt NEW AS lt identifier gt OLD TABLE AS
25. o que viola aquele pressuposto Para evitar isso importante for ar o determinismo nem que seja atrav s de uma ordena o total das regras escolhida pelo sistema Alguns refinamentos do crit rio de activa o anteriormente considerados para regras orientadas a conjuntos associadas a objectos do tipo conjunto podem deixar de ser v lidos quando os objectos componentes t m regras neles encapsuladas conforme ilustram os exemplos a seguir Exemplo Seja um tipo de tabela t constitu da por registos do tipo r com campos x e y Sejam as seguintes regras rule t rl update this set x 1 rule r r2 if x gt y x y As regras r1 e r2 s o potencialmente contradit rias embora de uma forma especial pois encontram se em n veis diferentes da hierarquia de objectos O efeito l quido completo da regra r1 entrando em conta com a poss vel execu o encaixada de r2 pode ser expresso por update this set x min l y Pelo crit rio de activa o b sico a regra r1 seria activada de forma segura por qualquer altera o da tabela alvo da regra o que pode ser explicitado por rule t rl on create modify update this set x 1 Se n o existisse a regra r2 bastaria considerar os seguintes eventos activadores para r1 rule t rl on create cria o da tabela insert inser o de linha na tabela update x actualiza o de x numa linha da tabela update this set x 1
26. 140 Implementa o de um motor de regras activas dirigidas pelos dados do passo 1 1 do algoritmo 8 1 i21 G RE grafo de depend ncias entre regras v lido para esse PPR no mesmo momento utiliza se o ndice i porque o grafo de depend ncias pode variar no decurso do PPR FS fecho transitivo de um conjunto S de regras pelo grafo G ou seja conjunto de regras que podem ser atingidas a partir de S por caminhos de comprimento 0 ou mais do grafo G incluindo portanto S Ci conjunto de regras cujas prioridades din micas s o calculadas no mesmo momento D conjunto de regras cujas prioridades din micas s o calculadas ao longo das itera es 1 i Tem se ent o que D Ci F A D 1 Di s Dj Di1 UC As prioridades calculadas numa itera o s o combinadas com as prioridades calculadas nas itera es anteriores da seguinte forma as prioridades calculadas na i sima itera o come am em sentido crescente na prioridade mais alta calculada at ao momento nas itera es anteriores Isto feito por facilidade de implementa o e porque normalmente o grafo de depend ncias n o muda Se o grafo de depend ncias n o mudou desde a 1 itera o n o existem caminhos em G de regras j prioritizadas D para as novas regras a prioritizar C pelo que a atribui o de prioridades crescentes consistente com os 2 primeiros crit rios que se pretendem seguir Al m disso tamb m consistent
27. A A B B and L Q by interchanging pairs of consecutive vertices that are not joined by cyclic edge of G as wanted This concludes the proof A On the equivalence of vertex orderings modulo the number of backward edges per cycle 225 A similar theorem may be applied to undirected graphs Theorem 6 reordering vertex orderings for undirected graphs Let L and L be two a equivalent orderings of the vertices of an undirected graph G represented as vertex sequences Let D be the maximum distance between any two connected vertices in G or O in case G has no edges Then there are vertex sequences A and B and integer h with O lt h lt D such that for any natural N the vertex sequence L L repeated N h times may be transformed into the vertex sequence ALB by interchanging pairs of consecutive vertices that are not adjacent in G Proof Let G be the directed graph obtained from G by replacing each undirected edge of G by a pair of symmetric directed edges Let L and L be two o equivalent vertex orderings with respect to G According to lemma B1 Land L are still equivalent with respect to G4 The maximum distance between any two strongly connected vertices of Gz is the same as the maximum distance D between any two connected vertices in G According to theorem B3 L may be tranformed into AL B by interchanging pairs of consecutive vertices that are not joined by cyclic edges of G4 To say that two vertices are not j
28. A vertex ordering that breaks a cycle by degree 1 is said to preserve that cycle A vertex ordering that preserves all the cycles is called a cycle preserving vertex ordering CPVO for short CPVO s are important for efficient bottom up fixpoint evaluation of logic programs 1 A CPVO has a corresponding feedback edge set with one edge per cycle F also called here a cycle preserving feedback edge set CPFES for short in the sense that every cycle of G has exactly one edge in F Notice that a CPFES is minimal unless it has edges that are not contained in cycles Usually one is interested in minimal CPFES s and in the corresponding CPVO s Also notice that a CPVO may not exist and may not be unique For example graph G in Fig 1 has a CPVO e g 1 2 3 4 while graph G4 has not The rest of this paper addresses the problem left open in 1 of finding an efficient algorithm to solve the following problem Problem 1 Given a directed graph G V E check if it has a CPFES F or equivalently a CPVO L and if so produce it 2 Basic algorithm In this section we introduce a basic iterative algorithm to solve problem 1 Since cycles are contained in non trivial SCC s the idea is to cut a minimal set of edges from each non trivial SCC excluding edges belonging to cycles already cut in order to be able to decompose it and then to proceed in the same way with the resulting sub SCC s More precisely it is proposed the followin
29. O TOTAL Para obedecer aos pressupostos de encapsulamento as opera es de cria o altera o ou elimina o de linhas de factura devem ser englobadas em opera es de altera o ou cria o da factura As regras de integridade R1 R2 R5 e R6 ver figura 7 3 s o claramente internas s linhas da factura pelo que se podem associar aos objectos do tipo LINHA FACTURA A regra r1 pode escrever se j com os eventos explicitados inferidos a partir do corpo da regra rule LINHA FACTURA rl on create modify PRE O UNIT RIO if PRE O UNIT RIO lt 0 abort A regra r2 pode escrever se rule LINHA FACTURA r2 on create modify QUANTIDADE modify PRE O UNIT RIO modify PRE O TOTAL PRE O TOTAL QUANTIDADE PRE O UN T R Ou A regra r3 continua a escrever se de forma semelhante mas agora associada explicitamente a objectos do tipo FACTURA rule FACTURA r3 on create modify TOTAL modify LINHAS FACTURA TOTAL select sum PRE O TOTAL from LINHAS FACTURA Trata se de uma regra orientada a conjuntos porque se aplica a um conjunto de inst ncias da classe LINHA FACTURA e ao mesmo tempo orientada a inst ncias porque se aplica a uma inst ncia da classe FACTURA Podem aplicar se as optimiza es referidas anteriormente
30. R amp R U r R r pode ser activada de forma produtiva por alguma regra r e R er gt re P para algum me R2 er rj Ro R2 U r R r pode ser activada de forma produtiva por alguma regra r2 R2 er gt r e P para algum re R er rj Ent o para qualquer par de regras r e R e r2 Ro r e rz t m de comutar Os refinamentos em rela o ao requisito original de AWH92 s o e Em AWH92 aparece dito por outras palavras r pode ser activada por onde aqui aparece r pode ser activada de forma produtiva por O refinamento introduzido aqui est relacionado com o facto de no grafo de execu o aqui considerado n o se inclu rem execu es de regras n o produtivas Os conjuntos R e Rz que se obt m com este refinamento podem ter menos regras pelo que o requisito de conflu ncia mais facilmente satisfeito e Em AWH92 a comutatividade em rela o a estados de execu o que incluem informa o adicional para al m do estado das vari veis de estado conforme explicado na sec o 6 2 1 enquanto que aqui apenas se considera o estado das vari veis de estado A comutatividade considerada aqui por conseguinte mais facilmente satisfeita e Em AWH92 n o aparece o caso 1 As regras nas condi es do caso 1 s o tratadas da mesma forma que no caso 2 obtendo se R r e R5 r2 pelo que se exige que r e r2 sejam 98 Termina o determinismo e velocidade de termina o do processamento de regras co
31. Rules may trigger each other in cascade indefinitely causing non termination of rule processing We next give sufficient conditions on rule sets that guarantee termination of rule processing for any initial state and any order of rule execution i e any order by which rules are selected for execution when there are multiple triggered rules Such conditions are useful in termination analysis of particular rule sets and in the development of ordering criteria to prevent non termination 7 1 Conservative termination analysis based on the triggering graph Conservative termination analysis of active rules is usually based on the construction of a triggering graph 12 The triggering graph 7G for a rule set R is defined as follows e The vertices of the TG are the rules in the rule set R e A directed edge rr possibly with i j in the TG means that r may generate an event that triggers r It is known that if the TG for a rule set R is acyclic then rule processing always terminates for any initial state and any order of rule execution 12 The TG for a set of data driven active rules processed according to the triggering criteria presented in section 6 is trivially obtained from the triggering variables and the output variables of each rule as follows e A rule r may trigger itself only if st vars r e A rule r may trigger a distinct rule r only if o vars r Net vars r With the basic triggering criterion the
32. ae vgb e Vyf N GL wyatt vertices corresponding to Q 7 1 4 Since all the vertices in the first N iterations of G are already mapped to vertices that are not after v in Gr we conclude that c gt b and again the pair v v is not a valid candidate for interchanging 7 2 Since v cannot be the first element of Q and v cannot be the last element of Q all the occurrences of v and v in Q exist in pairs that can be interchanged After interchanging all the occurrences of v and v in Q Q will be the resulting sequence except possibly for the exclusion of the first and or the last element in the following cases If v is the first element of Q and the following v is not mapped to an element of G this occurrence of v is excluded from Q and included in A we get A A v otherwise we get A A If v is the last element of Q and the preceding v is not mapped to an eEment of Gz this occurrence of v is excluded from Q and included in B we get B v B otherwise we get B B The vertices in the first N iterations of G will still be mapped to vertices in the first N h iterations of Gz at most 8 Vertices are interchanged as explained until there remain no intersecting lines The final vertex ordering say L will differ from L at most by a rotation At that point we must have Q I Hence we have transformed L with O lt h lt D into a vertex sequence of the form ALB with
33. da classe seguido do caracter e do nome do atributo A seguinte constru o especial iterador permite percorrer os objectos de uma ou mais classes as partes opcionais s o indicadas entre par ntesis rectos foreach lista de classes where condi o order by lista de atributos do express o As listas referidas s o nomes separados por v rgulas S o seleccionadas as combina es de objectos das classes referidas na parte de Eoreach que obedecem condi o especificada na parte de where com a ordem indicada na parte de order by Para cada combina o de objectos seleccionada avaliada a express o indicada na parte de do Essa express o pode conter a instru o break para interromper o ciclo foreach Nessa express o a refer ncia para leitura ou escrita a um atributo intra objecto de uma classe mencionada na parte de foreach refere se ao objecto correntemente seleccionado Esta constru o usada principalmente para aceder a tabelas da base de dados caso em que processada atrav s de uma express o de selec o em SQL e um cursor Quando inserida dentro de chavetas operador de constru o de listas retorna a lista de valores constitu da pelos valores da express o a seguir a do Existe um conjunto de fun es pr definidas s quais se podem acrescentar outras fun es atrav s de um interface em C As fun es podem receber argumentos avaliados constantes ou por avaliar express es Na
34. doesn t contain v By the definition of SCC there is a path from x to tin H Since there are paths from w to x the edge w x and from x to w through in H not traversing v x and w must belong to the same SCC of level k 1 that is H Since this contradicts the definition of x and w we must conclude that P cannot intersect H Hence the path P concatenated with any path P in H constitutes a cycle contained in H but not in H that is constitutes a cycle of k Now assume the case where n k 1 and H is the decomposing vertex v In this case x y v Since there is at least one cycle crossing any vertex namely v of a non trivial SCC and all the cycles inside a SCC of level k Hx in this case that cross its decomposing vertex v in this case have the same level k we conclude that P that reduces to v in this case is part of at least one cycle of level k Now assume the case where n gt k 1 Let H be the ancestor SCC of level k corresponding to H Then x and y are also gates of level k of Hk and the paths that connect x and y in H also connect x and y in Hz 7 So the same conclusion holds To prove the second part of the theorem notice that the cycles of level k that cross an SCC of level n gt k must enter and leave it through in gates and out gates of levels between k and n If n k 1 this reduces to k A An algorithm to find feedback edge sets with on edge per cycle 201 Appendix C Proof of theorem 8 Pro
35. eventos t m sido propostas diversas abordagens para a manuten o de dados derivados e restri es de integridade de que se destacam as seguintes e A gera o autom tica de regras activas ECA a partir de restri es e deriva es expressas numa linguagem declarativa de alto n vel tal como proposto no sistema Starbust CW90 CW91 Esta abordagem foi concebida principalmente para a manuten o incremental de vistas materializadas armazenadas e restri es de integridade sendo a manuten o de restri es de integridade essencialmente reduzida manuten o de vistas materializadas e A defini o directa de deriva es prontas a executar como regras dirigidas pelos dados tal como proposto no projecto PARDES conforme vimos no cap tulo 2 Estas regras podem ser vistas como regras activas incondicionais s com a parte de ac o com eventos impl citos inferidos pelo sistema a partir da parte de ac o o que s poss vel devido a esta ter uma finalidade estabelecida e uma sintaxe simples Esta abordagem especialmente adaptada para a manuten o de atributos derivados e restri es nos valores dos atributos e A defini o de regras activas da forma condi o ac o CA com eventos impl citos inferidos pelo sistema a partir da parte de condi o como acontece no sistema Ariel H92 Restri es de integridade s o impostas de forma muito simples atrav s de regras cuja condi o a viola o nega
36. indicado por event expression se torna verdadeiro nesse momento a sua ac o escalonada para execu o conforme o modo Existem dois tipos de gatilhos once only e perpetual Um gatilho once only automaticamente desactivado cada vez que dispara enquanto que um gatilho perpetual mant m se activado apenas necess rio activ lo explicitamente a primeira vez A linguagem de eventos do sistema Ode muito rica Os eventos b sicos s o do tipo before op ou after op em que op pode ser 34 Revis o do estado da arte e create cria o dum objecto chamada do construtor e delete destrui o dum objecto chamada do destrutor e update actualiza o dum objecto chamada de fun o membro p blica com permiss o para alterar o objecto e read leitura dum objecto chamada de fun o membro p blica que acede ao objecto s para leitura e access acesso a um objecto chamada de fun o membro p blica e tbegin inicio de transac o e tcomplete fim da execu o do c digo da transac o antes de commit e tcommit e tabort e qualquer fun o membro Existem v rios operadores para combinar eventos Pode se tamb m combinar um evento com uma express o booleana mask predicate no estado do objecto ou nos argumentos do evento no caso do evento corresponder a uma chamada de fun o com argumentos obtendo assim o mesmo efeito duma regra ECA Exemplo A restri o hard exemplifica
37. n mero grande de objectos atrav s de regras parciais associadas a cada um dos objectos envolvidos violando os pressupostos de encapsulamento definidos na sec o anterior Uma regra intra objecto parcial r associada a um objecto o destinada a impor uma restri o Rs deve ser executada em todas as opera es de altera o cria o ou elimina o de o que possam violar R Para impor Ry a regra tem em geral que aceder para consulta ou altera o aos outros objectos envolvidos Regras intra objecto deste tipo s o preconizadas no sistema Ode ver a sec o 2 3 6 4 N o existem dificuldades a considerar em rela o ao modelo de regras definido no cap tulo 3 quando se verificam as seguintes condi es as regras de um objecto acedem aos outros objectos envolvidos apenas para consulta e n o para altera o e s est alterado um objecto de cada vez Nestas condi es os outros objectos acedidos podem ser tratados como constantes Quando uma regra de deriva o associada a um objecto altera o estado doutros objectos exteriores ao objecto alvo da regra essas altera es podem ser vistas como efeitos laterais que n o podem ser ignorados na defini o de estados consistentes com a regra o que contraria um dos pressupostos considerados no cap tulo 3 Assim o crit rio de activa o diferente Normalmente basta activar uma regra desse tipo quando as vari veis de estado intra objecto lidas pela regra s o al
38. n o excede o n mero de regras para as quais s um ponto fixo e portanto n o excede o n mero de regras em R Demonstra o O crit rio de activa o b sico e a pol tica de efeito l quido garantem que se uma regra r executada de forma n o produtiva a partir de um estado s o que equivale a dizer que s um ponto fixo para r ent o n o gerado nenhum evento de altera o de dados e por conseguinte n o activada nenhuma regra Assim r s pode voltar a ser executada depois de ser executada outra regra r de forma produtiva No limite podem ser executadas consecutivamente todas as regras de R de forma n o produtiva para as quais s n o um ponto fixo uma vez cada regra se essas regras estiverem inicialmente activadas A Teorema 6 3 Se o grafo de activa o produtiva para um conjunto R de regras ac clico ent o o processamento desse conjunto de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras Al m disso o n mero total de execu es de regras produtivas n o excede 2 1 e o n mero total de execu es de regras produtivas ou n o produtivas n o excede n2 em que n o n mero de regras em R Demonstra o Sup e se que seguida uma pol tica de efeito l quido que garante que quando uma regra r executada a partir de um ponto fixo para r n o gerado nenhum evento de altera o de dados e consequentemente nenhuma regra activada Se o gra
39. o verificada quando os objectos referenciados s o actualizados As restri es suportadas pelo sistema Ode s o intra objecto principalmente por raz es de obedi ncia filosofia de orienta o a objectos Mesmo assim reconhecida a import ncia das restri es inter objecto Uma solu o sugerida para tratar restri es inter objecto a convers o de cada restri o inter objecto para v rias restri es intra objecto equivalentes automaticamente ou pelo programador Exemplo O seguinte peda o de c digo especifica que o sal rio de um empregado n o pode exceder o sal rio do respectivo chefe manager Trata se de uma restri o inter objecto envolvendo dois objectos um empregado e um chefe Esta restri o inter objecto implementada por duas restri es intra objecto uma associada ao empregado e outra ao chefe class manager class employee persistent manager mgr float sal public g oat salary const return sal constraint sal lt mgr gt salary class manager public employee Revis o do estado da arte 33 persistent employee emp lt MAX gt lt MAX gt conjunto int sal greater than all employees constraint sal_greater_than_all_employees int manager sal greater than all employees persistent employee e for e in emp for iterador if e gt salaray gt salary return 0 return 1 2 3 6 5 G
40. o correspondem s sequ ncias de execu o de regras conforme se esclarece e demonstra no lema seguinte Lema 6 4 Para qualquer estado inicial sg os caminhos no grafo de execu o que partem de so mais precisamente as etiquetas das arestas que constituem esses caminhos representam as poss veis sequ ncias de execu o de regras a partir de so uma vez retiradas dessas sequ ncias as execu es de regras n o produtivas No caso de estarem definidas prioridades entre as regras isto continua a ser verdade desde que as prioridades sejam transitivas Demonstra o Consideremos primeiro o caso em que n o est o definidas prioridades entre as regras Suponhamos que na constru o de um caminho no grafo de execu o se escolhe uma aresta a sair de um estado s com etiqueta r Tal aresta existe se r s s O mecanismo de activa o garante que para qualquer estado s e regra r se r s s ent o r est activada no estado s Portanto r pode ser a pr xima regra a ser executada de forma produtiva Reciprocamente suponhamos que uma regra r executada de forma produtiva no estado s Devido forma como o grafo de execu o definido existe uma aresta a sair do estado s com etiqueta r no grafo de execu o Portanto essa aresta pode ser a pr xima aresta escolhida Consideremos agora o caso em que est o definidas prioridades entre as regras Suponhamos que na constru o de um caminho no grafo de execu o se escolhe uma aresta a
41. rio de activa o b sico c ll erre A E eraat 53 4 2 2 Optimiza es est ticas baseadas na minimiza o dos conjuntos de vari veis activadoras 54 4 2 3 Optimiza es din micas baseadas no valor da condi o iii 57 4 2 4 Optimiza es din micas baseadas na monitoriza o de eventos de leitura e escrita 58 4 2 5 Activa o apenas por altera o de vari veis de entrada iii 59 4 2 6 Pol tica de efeito l quido cer erre ana aenecearerenanaanada 60 5 ORDENA O DAS REGRAS siissssssasssssocessriessceustsasesversseonsavsosesossceasssbeodensayenensncsseveuees 61 Soil INTRODU O ss oo aches aa AEDES ER SE DVD E a SRD den BR 61 5 2 ORDENA O PELO PRINC PIO CALCULAR ANTES DE USAR cccccsesesecesecececececececeeeeeeeeeeeees 62 5 2 1 Rela o com ordem topol gica de componentes fortemente conexos do grafo r r 63 5 2 2 Ordena o de regras mutuamente recursivas serrana 64 5 3 PRESERVA O DAS ALTERA ES PRODUZIDAS PELO UTILIZADOR ccccccceeseseeeseeeeeeeeaes 64 5 3 1 Preserva o das altera es produzidas na mesma transac o 64 5 3 2 Preserva o das altera es produzidas em transac es mais recentes 66 5 3 3 Combina o com o princ pio calcular antes de usar 67 5 4 ORDENA O DE REGRAS REDUNDANTES PURAMENTE INCONDICIONAIS c 67 5 4 1 Regras redundantes que imp em as m
42. the two approaches are equivalent as lemma 1 will show 214 On the equivalence of vertex orderings modulo the number of backward edges per cycle vertex orderings and number of backward edges per O cycle cycles clockwise 1 2 3 4 1 2 4 3 1 3 2 4 d 4 2 3 Gy KS oriented oS a 2 3 a 3 4 2 C C 3 4 1 Definition 2 a equivalence Two orderings L and L of the vertices of a graph G V E directed CEE E RR E O E or undirected are o equivalent if they induce the same number of backward edges on any cycle of G For instance in examples 1 and 2 vertex orderings in the same column are o equivalent Definition 3 amp operation An operation that transforms any vertex ordering L into a a amp equivalent vertex ordering L is called a operation Definition 4 B eguivalence Two graphs G V E and G V E with the same vertex set are B equivalent if any two vertex orderings L and L that are o equivalent with respect to one of the graphs are also ot equivalent with respect to the other graph For instance the graphs of example 1 and 2 are B equivalent Definition 5 B operation An operation that transforms any graph G V E into a B equivalent graph G V E is called a B operation 2 B equivalence and P operations Lemma 1 B equivalence between undirected and directed graphs Any undirected graph G V E is B equivalent to the directed graph G V E4 obtained from G by
43. um ponto fixo para todas as regras um estado final do processamento de regras Assim existe pelo menos um estado inicial s a partir do qual podem ser atingidos dois estados finais diferentes pelo que o conjunto de regras n o determin stico em sentido fraco e portanto n o confluente A Teorema 6 11 Se duas regras r e r s o idempotentes e apenas uma das regras digamos r pode activar a outra r de forma produtiva ent o s o confluentes se e s se rje r e rj pr Demonstra o Se r e r obedecem s condi es indicadas as poss veis sequ ncias de execu o de regras produtivas s o rjrirj rirj Fjfi Fi rj e a sequ ncia vazia Assim n o h caminhos infinitos no grafo de execu o pelo que a conflu ncia equivalente conflu ncia local hi J Suponhamos que rj r rj rj rj e que existem duas arestas divergentes s gt s e s s j nO grafo de execu o Ent o executando rja partir de s o que corresponde a executar r e rj a partir de s obt m se o mesmo estado que executando r e r r seguido de r a partir de s o que corresponde a executar rje rio rj a partir de s Portanto as duas regras s o localmente confluentes Suponhamos que rj e r rj ri rj Uma vez que se sup e que r e rj s o idempotentes e n o se activam mutuamente de forma produtiva o estado que se atinge ao executar quer rje r e rj quer rj r um ponto fixo para todas as regras um estado final do process
44. veis de estado ver figura7 7 a A ordena o das regras pelo princ pio calcular antes de usar tamb m mais precisa A an lise de comutatividade e conflu ncia claramente facilitada N MERO Legenda inser o de tuplo elimina o de tuplo NOME FORNECEDOR 4 p amp OR altera o de tuplo Cea C DIGO ARTIGO o Crs s Gh eee ek vari vel coluna x NOME_ARTIGO G7 4 C DIGO FORNECEDOR QUANTIDADE A GD PRE O UNIT RIO e x e CE TOTAL Fig 7 8 Grafo r v anotado com algumas vari veis de estado correspondentes a colunas 7 2 3 Regras incrementais Em alguns casos o efeito de uma regra r orientada a conjuntos pode ser obtido de forma mais eficiente se for conhecido e poder ser referenciado na express o de r um estado passado especial 112 Refinamentos para o tratamento de dados complexos das vari veis de estado com poucas diferen as em rela o ao estado corrente das vari veis de estado Regras desse tipo dizem se incrementais ou diferenciais Podem interessar estados passados nos seguintes instantes de tempo especiais e no in cio da transac o Este estado tem interesse porque consistente com todas as regras existentes no in cio da transac o e j tem de ser conhecido para efeito de rollback e no fim da ltima execu o de r ou no in cio da transac o conforme o que
45. where mgr no in select emp no from deleted ote se que a regra se activa a si pr pria quando um empregado eliminado manager doutro Not t d do el do doutr departamento obrigando a nova execu o da regra ap s a execu o anterior terminar 2 3 5 Regras dirigidas pelos dados no projecto PARDES No projecto PARDES E93 EGS93 e suas evolu es GE95 G95 proposta uma abordagem de mais alto n vel comparativamente s abordagens baseadas em regras ECA ou EA para a manuten o de regras dirigidas pelos dados Uma regra dirigida pelos dados data driven rule definida como uma regra que activada pela modifica o de itens de dados numa base de dados S o apontadas tr s aplica es principais de regras dirigidas pelos dados e Manuten o de dados derivados armazenados Itens de dados derivados podem ser mantidos atrav s de regras de deriva o dirigidas pelos dados que calculam os valores de itens de dados derivados em fun o dos valores doutros itens de dados e s o activadas pela modifica o de qualquer item de dados que participa na deriva o 28 Revis o do estado da arte e Imposi o de restri es de integridade Uma restri o de integridade pode ser mantida por uma regra de restri o dirigida pelos dados que desencadeia uma ac o de repara o apropriada abortar derivar o valor de itens de dados etc quando uma condi o violada e activada p
46. 0 then INSERTRAW v HEAPIFY while H gt 0 do v DELETEMAX for u such that root u v por ordem de num v antigo decrescente do num u n renumera nen for we Succ u do if root w root u then indegree root w indegree root w 1 if indegree root w 0 then INSERT root w end visita em profundidade a partir do v rtice v procedure DFSSCCFESPRI v begin ic HI lowlink v 1 visited v lt true isroot v lt true pending v lt true old_S_size v lt ISI foru Succ v do if visited v then DFSSCCFESPRI u if spending u then indegree root u indegree root u 1 Implementa o de um motor de regras activas dirigidas pelos dados 153 if pending u A lowlink u lt lowlink v then isroot v lt false lowlink v lowlink u push v S if isroot v then retira v e sucessores de v do topo de S n amp n ISl old S size v in repeat u lt pop S num u lt i ie il root u lt v pending u lt false until S old_S_size v indegree v 0 Ce CUflv end Fun o de compara o de dois elementos do heap usada pelas rotinas de gest o do heap Retorna gt 0 0 ou lt 0 conforme o 1 elemento maior igual ou menor do que o segundo function COMPARE u v begin if priority u priority v then return num u num v else return priority u priority v end Seguir se iam rotinas de gest o do heap como em TOPSORTPRI Em consequ ncia dos res
47. 1 do HEAPIFYDOWN i end Extrai e retorna o 1 elemento do heap e reorganiza o heap function DELETEMAX begin e lt Hy H Hm m amp m 1 HEAPIFYDOWN 1 return e end Insere um novo elemento no fim e reorganiza o heap procedure INSERT e begin me m l Hn lt e HEAPIFY UP m end Sobe elemento no heap em direc o a ndice 1 por trocas com o pai procedure HEAPIFYUP begin while i gt l A COMPARK H Hip gt 0 do Hi amp Hip ic Lip end Desce elemento no heap em direc o a ndice m por trocas com o filho procedure HEAPIFY DOWN i be gin while true k amp 2i if k gt m then return ifk lt m A COMPARE Hk Hy gt 0 thenk k 1 if COMPARE H Hy 0 then return H Hy swap ick end sabido AU92 que INSERT e DELETMAX t m complexidade temporal O log m que HEAPIFY tem complexidade temporal O m e bvio que INSERTRAW tem complexidade temporal O 1 Na constru o inicial do heap usa se uma sequ ncia de INSERTRAW s seguido de HEAPIFY em vez Implementa o de um motor de regras activas dirigidas pelos dados 149 duma sequ ncia de INSERT s porque a complexidade temporal O k no 1 caso e O k log k no 2 caso em que k o n mero de elementos inseridos Como as opera es INSERT ou INSERTRAW que ainda melhor e DELETEMAX s o efectuadas uma vez para cada v rtice e o tamanho m ximo do heap IVI o algoritmo completo tem comp
48. KR88 Activa o das regras 49 void r Cy e Pep we Sy Ler I Notar que a vari vel y acedida para leitura Mesmo quando as regras n o s o escritas em forma can nica os conjuntos de vari veis de entrada e sa da que interessa considerar no processamento e an lise de regras s o os conjuntos m nimos necess rios para obter o mesmo efeito l quido Duas medidas complementares que podem ser usadas para obter os conjuntos m nimos de vari veis de entrada e sa da nesses casos s o e Efectuar uma an lise de fluxo de dados durante a compila o das regras para detectar opera es de leitura e escrita que poderiam ser evitados pela rescrita dessas regras o caso da leitura de uma vari vel depois da escrita na mesma vari vel porque poderia ser evitada com o recurso a uma vari vel local auxiliar e Colocar ao dispor do programador mecanismos para os explicitar 4 1 4 Unicidade e significado dos conjuntos m nimos de entradas e sa das 2 A forma can nica para obter um determinado efeito l quido n o nica mas felizmente os conjuntos m nimos de vari veis de entrada e sa da necess rios para produzir um determinado efeito l quido j o s o sendo fun o apenas do efeito l quido em causa como n o podia deixar de ser de acordo com o teorema seguinte Teorema 4 1 Os conjuntos m nimos de vari veis de entrada e sa da de uma regra r que podem ser obtidos rescrevendo r mantendo o seu efeito l quido s
49. O sistema Starbust um prot tipo de SGBD extens vel desenvolvido na IBM e que tem influenciado a evolu o do SGBD comercial DB2 tamb m da IBM O sistema Starbust suporta regras activas orientadas a conjuntos com a seguinte sintaxe WF90 W96 lt Starbust rule gt create rule lt rule name gt on lt table name gt when lt triggering operations gt if lt condition gt then lt action list gt precedes lt rule list gt follows lt rule list gt lt triggering operation gt inserted deleted updated lt column names gt lt condition gt lt SQL select statement gt lt action gt lt any database operation gt Uma regra em Starbust tem as tr s partes essenciais duma regra ECA e evento a execu o duma das opera es de manipula o de dados especificadas na parte de when inserted corresponde opera o insert etc sobre a tabela indicada na parte de on e condi o opcional instru o de selec o em SQL indicada na cl usula if que se considera falsa quando o resultado da selec o vazio ac o a execu o de uma sequ ncia de comandos SQL especificados na cl usula then incluindo possivelmente comandos de defini o de dados e rollback 26 Revis o do estado da arte Al m disso poss vel especificar prioridades ou preced ncias relativas entre as regras atrav s das cl usulas precedes e follows Se duas regras r1 e r2 se encontram ac
50. SIGMA Gest o Municipal em UNIX C e Bases de Dados em Implanta o na Regi o Norte In ENDIEL 89 Porto 1989 Oracle Forms Reference Manual Version 4 0 Volume 1 Oracle Corporation 1993 Roger S Pressman Software Engineering A Practitioner s Approach Fourth Edition McGraw Hill 1997 Norman Paton e Oscar Diaz Active Database Systems To be published in ACM Computing Surveys url http www cs man ac uk norm papers surveys ps Spyros Potamianos e Michael Stonebreaker The POSTGRES Rule System In Active Database Systems Triggers and Rules for Alvanced Database Processing J Widom e S Ceri editores pp 43 61 Morgan Kaufmann 1996 J Rumbaugh et al Object Oriented Modeling and Design Prentice Hall 1991 Raghu Ramakrishnan Database Management Systems McGraw Hill 1998 E M Reingold J Nieverge e D Narsingh Combinatorial Algorithms Theory and Practice Prentice Hall 1977 Tore Risch e Martin Sk ld Monitoring Complex Rule Conditions In Active Rules in Database Systems N Paton editor pp 81 102 Springer Verlag 1998 R Ramakrishnan D Srivastava e S Sudarshan Rule ordering in Bottom up Fixpoint Evaluation of Logic Programs In Proceedings of the 16th VLDB Conference pp 359 371 Brisbane Austr lia 1990 Bjarne Stroustrup The C Programming Language Third Edition Addison Wesley 1997 Eric Simon e Jerry Keirnan The A RDL System In Active Database Systems Triggers and Rules fo
51. SQL 92 A norma SQL 92 define v rios tipos de restri es de integridade constraints que se podem classificar nas seguintes categorias segundo CW96 Revis o do estado da arte 19 e restri es em tabelas e restri es de integridade referencial e asser es gen ricas Estas restri es de integridade s o chamadas declarativas para distinguir das restri es de integridade mantidas de forma mais procedimental atrav s de gatilhos s dispon veis em SQL3 ou em SGBD s comerciais 2 3 1 1 Restri es em tabelas Como parte da instru o CREATE TABLE podem especificar se restri es dos seguintes tipos e NOT NULL a coluna especificada n o aceita valores nulos e UNIQUE a coluna ou combina o de colunas especificada constitui uma chave unique key da tabela no sentido de que n o podem existir duas linhas com a mesma combina o de valores nessas colunas exceptuando linhas com valores nulos em todas as colunas da chave e CHECK lt condi o gt o valor da condi o especificada tem de ser verdadeiro ou desconhecido devido a valores nulos em qualquer linha da tabela e PRIMARY KEY a coluna ou combina o de colunas especificada constitui uma chave prim ria da tabela uma chave prim ria combina as propriedades de UNIQUE e NOT NULL cada tabela s pode ter uma chave prim ria por omiss o as refer ncias para uma tabela s o para a chave prim ria
52. actualizada por r inicialmente falsa a primeira execu o de r tamb m redundante nessa vari vel z Em todos os casos relativamente a todas as vari veis de sa da de rj a 1 execu o de r redundante isto rjerierj Tie rj Note se que a condi o iv do teorema anterior verifica se trivialmente se r n o auto recursiva A condi o iii verifica se trivialmente se todas as vari veis actualizadas por r o s o incondicionalmente caso em que a condi o sempre verdadeira Intuitivamente o problema das regras que actualizam vari veis condicionalmente que podem reagir a situa es transit rias que deixam de se verificar m final A condi o iii tamb m se verifica trivialmente se r n o actualiza vari veis referenciadas na condi o ou condi es pelas quais vari veis s o actualizadas por r Exemplo Seja o conjunto de regras da figura 3 1 Pelo teorema 6 9 os pares de regras comutativas s o tamb m confluentes Assim basta analisar a conflu ncia dos pares de regras n o comutativas assinalados na figura 6 3 Os seguintes pares de regras n o comutativas est o nas condi es do teorema 6 12 com a regra correspondente a r do lado esquerdo pelo que s o confluentes rs y lyl e ro Z xX y re x20 gt y x e ro Z xX y rs y lyl e re y l gt w 1 rs y lyl e rg u max x y A v min x y re x20 y x e rg u max x y A v min x y rz a 1 e rs b a c rz a 1 e
53. algumas regras s podem ser executadas em alguns PPR s Por exemplo as regras com other rpps false s podem ser executadas nos PPR s indicados explicitamente pela associa o On RPP 142 Implementa o de um motor de regras activas dirigidas pelos dados e O facto de se considerarem tamb m as altera es produzidas por regras executadas de forma encaixada introduz uma dificuldade acrescida Normalmente n o existe informa o suficiente para determinar que sub transac es podem ocorrer durante a execu o de uma regra A nica pista nesse sentido tem a ver com o facto de altera es intra objecto terem de ocorrer em sub transac es intra objecto Mesmo supondo que certas altera es ocorrem em sub transac es pode n o ser poss vel prever com rigor a transac o a que uma regra activada por uma dessas altera es acoplada e Embora isso seja desaconselhado uma regra pode criar ou eliminar outras regras directamente ou indirectamente atrav s de opera es invocadas fisicamente atrav s de register e unregister ou logicamente atrav s de enable e disable Em consequ ncia disso o grafo de depend ncias associado a um PPR pode variar no decurso do PPR Estas dificuldades levam a que o grafo seja obtido de forma aproximada e de passagem Isto o grafo apenas calculado e nunca armazenado O c lculo efectuado atrav s de um fun o visitsucc r visitfunc que dada uma regra r e uma fun o visitfunc c
54. apenas para o registo corrente da vista mestre Assim as regras que relacionam registos de uma vista mestre com registos de uma vista de detalhe devem referenciar apenas um registo da vista mestre que se considera implicitamente ser o registo corrente da vista mestre Por essa raz o a regra fica a depender adicionalmente do atributo record current da vista mestre para ser executada quando muda o registo corrente da vista mestre no sentido de ficar outro registo corrente e n o no sentido de ser modificado o conte do do registo Neste caso o mbito por omiss o da regra vista Fora esse caso o mbito por omiss o de uma regra que referencia atributos ou opera es intra registo relativamente a um registo n o especificado n o instanciado sempre registo Os eventos activadores s o gerados automaticamente conforme foi explicado no cap tulo 8 9 3 3 Exemplos Indicam se de seguida alguns exemplos de aplica o t picos Ver tamb m os exemplos da figura 9 1 1 Express o geral de regra para definir um campo calculado incondicionalmente campo express o No caso de um campo intra registo a regra executada quando criado um registo por load query ou insrec ou modificado o valor dum campo referenciado na express o do lado direito A regra n o executada se o valor do campo do lado esquerdo for alterado directamente pelo utilizador mas existe uma propriedade est tica de cada campo para impedir essas al
55. as de estado que se cancelam mutuamente havendo regras associadas aos sub objectos que s o executadas em estados interm dios Exemplo Seja um tipo de tabela t constitu da por registos do tipo r com campos x y e z Sejam as seguintes regras rule t rl update this set x 1 update this set x 0 rule r r2 if x 1 z y A regra r1 gera duas actualiza es contradit rias admiss veis se a no o de consist ncia for entendida em sentido l quido O efeito l quido completo da regra r1 entrando em conta com a poss vel execu o encaixada de r2 pode ser expresso por update this set y 1 x 0 Considere se um registo com estado inicial x y z 0 0 0 Este estado consistente com a regra r2 e tamb m consistente com a regra r1 porque o efeito l quido da aplica o de r1 a partir desse estado nulo apesar da execu o de r1 causar altera es de estado contradit rias Suponhamos agora que submetido o seguinte comando do utilizador Refinamentos para o tratamento de dados complexos 121 ul update t set y 1 em que t uma tabela do tipo t O estado do registo com estado inicial x y 2Z 0 0 0 evolui da forma esquematizada no seguinte grafo de execu o instanciado em resposta a este comando do utilizador 1 0 0 Gir i i r2 bode uti du p E O SOS sq Assim conclui se que a altera o de y efectivamente torna a execu o da regra r1 produtiva apesar de y n o ser ref
56. campos H neste caso uma mistura de conhecimento tamb m prejudicial de um ponto de vista de Engenharia de Software Se for admitida uma rela o de muitos para muitos entre eventos e gatilhos estes problemas desaparecem A gera o de gatilhos como mecanismo de implementa o a partir de especifica es de mais alto n vel tamb m fica facilitada e Normalmente a ac o de um gatilho executada imediatamente quando o evento ocorre Este modo de execu o imediata simplifica o processamento de gatilhos mas pode originar inefici ncias Por exemplo se tivermos um campo calculado da forma c c2 c3 em que c2 e c3 s o por sua vez calculados em fun o de um campo c4 e se todos os c lculos forem processados atrav s de gatilhos uma nica altera o de c4 pode originar duas actualiza es de c uma quando cz actualizado em fun o de c4 e outra quando c3 actualizado em fun o de c4 Estes problemas seriam evit veis com mecanismos de execu o diferida em maior ou menor grau Para resolver as limita es relacionadas com os tipos de gatilhos suportados basta transpor para as ferramentas de DRA alguma da tecnologia de regras activas ou gatilhos desenvolvida na rea de SGBD s comerciais ou de investiga o J o mesmo n o acontece com as limita es que se referem ao suporte de especifica es declarativas de restri es de integridade e dados derivados 1 2 Contribui es A principal contribui o
57. campos correspondentes do resultado s o preenchidos com valores nulos O m todo completo de obten o das condi es de jun o que envolve alguns detalhes e restri es que seria fastidioso estar aqui a descrever os quais podem ser encontrados em F93b faz com que as jun es sejam definidas segundo uma cadeia de jun es por extens o U88 partindo da tabela alvo Numa cadeia deste tipo o n mero de registos linhas do resultado nunca aumenta medida que se efectua a jun o com a tabela seguinte da cadeia Assim garante se efectivamente uma correspond ncia de zero ou um para um entre os registos duma vista e os registos da sua tabela alvo Diferentemente do que se passa com a tabela alvo a cada registo da vista pode corresponder zero ou um registo de cada tabela de extens o Em sentido inverso consoante as condi es de jun o h casos em que a um registo de uma tabela de extens o pode corresponder mais do que um registo da vista e h casos em que a um registo de uma tabela de extens o n o corresponde mais do que um registo da vista Por omiss o apenas permitido actualizar atrav s da vista a tabela alvo e as tabelas de extens o que se enquadram no segundo caso as outras tabelas podem tamb m ser actualizadas com seguran a se a sincroniza o com a base de dados for a um registo da vista de cada vez Os m todos exactos de actualiza o n o interessam aqui porque n o s o tratados atrav s de regras Ex
58. cido otra enero eae a ha GA eh Teia Rad eae 151 9 INTEGRA O NUMA FERRAMENTA DE DESENVOLVIMENTO DE APLICACO ES piu pos series ide asia patas nr das a agia 155 9 1 CARACTER STICAS GERAIS DA FERRAMENTA ssccesssscesssecessnecesseeceseeecessaeceseeeseseeeoes 155 9 1 1 Portabilidade e conectividade c rrenan A e aaa 155 xiv Indice 0 12 VASTAS ai tia E E EE E cv sage shecbashe due shee eeskidisecouebsesterbasSecess 156 03 MRE BTAS a seis ni Sa ias eaten ee hh etl Seale a Sa edad 156 9 1 4 Integra o de ambientes de desenvolvimento e execu o de aplica es 157 9 2 DEFINI O E MANIPULA O DE VISTAS 0scccccceceeesseseeeececececeaseseeeeeeseeeseaseasseseeeeeeeeaea 157 9 2 1 Estrutura de dados b sica de uma vista cccccececececececececececeeeeeeeeeeeeeeeeeeeeeeeeneeeeens 157 9 2 2 Mapeamento para a base de dados e eerererereeeaaeaenea 158 0 2 3 Vistas com SUD ViIStAS c 5 scssaessstecsiassesuseassesatbabecsusbassthediarsesudbscsesetbabecsnsbeeetecaie 160 9 2 4 Vistas com secc es hierArquicas sssescceccceceessseseecececeeeseenenueaeceeeeeceesesnaeaeeeees 161 9 2 5 Restri es de integridade e de acesso i cr rrrrereereaeaeaea 161 9 20 OPCLAC OE Sns e aaa aa E E E oud eS Oa tAE EAE TO EAE EEES Dans ear acaba sia san Sta caad s 162 0257 ITANSAC ES 5 eor E AKEE E EEO ES REEE EEEE NT Pl aa USER arte 162 9D 82 Classes atr DUtOs c
59. com a base de dados registo a registo Nesse caso quando um registo da vista fica corrente re seleccionado nesse momento a partir da base de dados com base apenas no seu rowid e os registos da base de dados pass veis de serem alterados atrav s da vista s o bloqueados locked Quando o registo vai deixar de ficar corrente as altera es s o salvas na base de dados e os bloqueios locks s o retirados Apesar de poder come ar logo a seguir outra transac o se outro registo ficar corrente n o h necessidade de transferir recursos nomeadamente locks de uma transac o para a seguinte Um ponto de conflito menos importante tem a ver com o facto de o SAGA permitir trabalhar em v rias vistas ao mesmo tempo na mesma sess o de trabalho mais precisamente podem existir altera es por salvar em mais do que uma vista O suporte adequado para este modo de funcionamento seria dado por transac es encadeadas concorrentes solicitadas a partir da mesma sess o de trabalho 9 2 7 2 Transac es nas vistas Todas as altera es nas vistas s o englobadas em transac es ou sub transac es locais a cada sess o de trabalho na sua mem ria de trabalho apenas com as propriedades de atomicidade e preserva o de consist ncia conforme o conceito de transac o descrito no cap tulo 8 Estas transac es interessam principalmente para estabelecer um contexto adequado para o processamento de regras e recupera o de err
60. cycles in the marked edges of H fail If possible test this during step 5 4 5 7 Move from H to F either the incoming or the outgoing edges of a vertex possibly an in gate or an out gate respectively without those edges marked 6 Obtain the non trivial sub SCC s H of H without the edges moved to F determine and mark as new the respective in gates and out gates of level k and insert each Hs j into W 7 Goto step 3 A Examples are given in Fig 1 All the graphs presented are strongly connected Hence there is initially a single working non trivial SCC the entire graph In all the cases vertex is initially selected and its incoming edges are cut The remaining non trivial nested SCC s processed by algorithm 1c are shown in the figure In the case of graphs G and Gz the analysis of in gates and out gates is sufficient In the case of G H has a single out gate vertex 4 and H has a single in gate vertex In the case of G2 H has a single out gate vertex 4 and Hz has two new bi gates vertices 7 and 3 hence G2 doesn t have a CPFES In the case of G3 Hs has neither a single in gate both vertices 2 and 3 are in gates nor a single out gate both vertices 3 and 4 are out gates hence the edges traversed by external cycles have to be found and marked edges 2 3 and 3 4 the remaining non trivial nested SCC Hg has a single in gate vertex 4 In the case of graph G4 H7 has neither a single in gate
61. da associa o Writes e se granularity object e para cada ocorr ncia de RPP da mesma classe do atributo e da regra com time after type create e granularity object cria uma ocorr ncia em On RPP com granularity object e se granularity class e seo atributo global e para cada ocorr ncia de RPP da mesma classe do atributo com time after type create e granularity class cria uma ocorr ncia em On RPP com granularity class e seo atributo intra objecto 132 Implementa o de um motor de regras activas dirigidas pelos dados e para cada ocorr ncia de RPP da mesma classe do atributo com time after type create e granularity object cria uma ocorr ncia em On RPP com granularity class Em todos os casos considera se self triggering false O modo de acoplamento imediato quando granularity object e diferido no caso contr rio Em On RPP sempre mandatory true e repeatable true No caso de colis o entre v rias ocorr ncias em On RPP ou On Modify Attribute prevalece a granularidade mais alta class sobre object Sup e se existir em cada classe pelo menos um PPR de cada um dos tipos indicados 8 3 M dulo de processamento de transac es TransProc Este m dulo coordena a imposi o das propriedades de atomicidade A e preserva o de consist ncia C de transac es na mem ria de trabalho da aplica o em colabora o com a aplica o O termo transac o usado de forma um pouco abusiva porque n o est o em cau
62. dados tamb m gen rico e abstracto Assim para efeitos de processamento de regras os itens de dados controlados pelas regras s o representados abstractamente por vari veis de estado Pressup e se que o conjunto de vari veis de estado finito As vari veis de estado podem representar campos de formul rios e propriedades desses campos vari veis dinamicamente como a possibilidade e obrigatoriedade de preenchimento mas tamb m podem representar dados mais complexos como registos de ecr tabelas de ecr ficheiros etc A estrutura interna das vari veis de estado ignorada de momento O refinamento do modelo de regras no sentido de levar em conta a estrutura interna de vari veis de estado complexas ser abordado no cap tulo 7 O conjunto de valores poss veis das vari veis de estado chamado espa o de estados As vari veis de estado s o as dimens es do espa o de estados Formalmente utiliza se a seguinte nota o V designa o conjunto de vari veis de estado 40 Regras activas dirigidas pelos dados com sem ntica de ponto fixo S designa o espa o de estados x y Z designam vari veis de estado Sx designa o conjunto de valores estados poss veis da vari vel de estado x Tem se ent o que S SX Sy X SX isto S o produto cartesiano dos conjuntos de valores poss veis das vari veis de estado Para efeito de processamento de regras as opera es primitivas sobre vari veis de estado qu
63. das regras cuja necessidade largamente reconhecida em todos os sistemas de regras activas ver por exemplo PD99 Os instrumentos de an lise e resultados dos cap tulos 4 a 7 teriam a lugar importante com as devidas extens es Um aspecto que coloca desafios interessantes para o futuro pr ximo tem a ver com a gera o de interfaces finos para a Web incorporando algumas regras activas a partir das especifica es de vistas do SAGA 176 Integra o numa ferramenta de desenvolvimento de aplica es 10 Conclus es 10 1 Resultados alcan ados O modelo proposto de regras activas dirigidas pelos dados para a manuten o de restri es de integridade e dados derivados com eventos activadores e prioridades inferidos pelo sistema combina flexibilidade declaratividade e modularidade ao n vel da defini o das regras para a imposi o de restri o de integridade e o c lculo de dados derivados efici ncia ao nivel da execu o das regras garantindo a imposi o eficiente das restri es de integridade e o c lculo eficiente dos dados derivados boa integra o com regras activas de mais baixo n vel dirigidas por eventos especificadas directamente pelo utilizador ou geradas automaticamente a partir de especifica es de alto n vel como na sec o 9 4 facilidade de implementa o porque os eventos activadores e prioridades se baseiam numa mera an lise sint ctica das regras e opcionalmente em propri
64. de as regras activas dirigidas pelos dados serem executadas em conjunto com outras regras activas Esta obviamente uma lacuna que importante resolver no futuro Provavelmente o que h a fazer combinar da melhor maneira as condi es menos conservadoras obtidas para o caso espec fico de regras activas dirigidas pelos dados com as condi es mais conservadoras conhecidas para regras activas gen ricas No modelo de execu o proposto sempre que invocado o processamento de regras todos os itens de dados derivados que possam estar desactualizados s o actualizados antes de se aceitarem novos comandos do utilizador Trata se de um modo de processamento que se justifica na presen a de restri es de integridade nos dados derivados No entanto no caso de itens de dados derivados s para consulta que n o est o sujeitos a restri es de integridade deveria ser considerado um modo de processamento mais pregui oso lazy como descrito por exemplo em H91 medida das necessidades e possivelmente em paralelo com os comandos do utilizador 2 No modelo de regras proposto todas as regras t m de ser satisfeitas isto as regras s o processadas at ser atingido um ponto fixo para todas as regras Em alternativa podia se admitir que algumas regras mais fracas regras por omiss o regras gerais etc n o fossem satisfeitas quando entram em conflito com outras regras mais fortes ou at com os comandos do utiliza
65. de entrada input da regra r o vars r conjunto de vari veis de sa da output da regra r vars r conjunto de vari veis de entrada ou sa da da regra r vari veis referenciadas por r io vars r conjunto de vari veis de entrada e sa da da regra r Verificam se as seguintes rela es vars r i vars r L o vars r io vars r i vars r o vars r Estando as regras numeradas tamb m se usa a seguinte nota o abreviada X i vars r Y o vars r V vars r Na representa o abstracta das regras as vari veis de entrada s o aquelas cujo valor inicial referenciado sem pelica enquanto que as vari veis de sa da s o aquelas cujo valor final referenciado com pelica Numa linguagem de regras pr tica os conjuntos de vari veis de entrada e sa da podem ser obtidos por uma simples an lise sint ctica Exemplo A regra rx gt z gt y x tem i vars r x z o vars r y vars r x y z io vars r Note se que o n vel de descri o das regras com a express o de cada regra mais as suas vari veis de entrada e sa da muito semelhante ao n vel de descri o das depend ncias entre ficheiros nas makefiles entendidas pelo comando make em Unix 48 Activa o das regras 4 1 2 Influ ncia da forma sint ctica As entradas e sa das de cada regra podem ser determinadas por uma simples an lise sint ctica o que lhes confere interesse pr tico Infelizmente e mesmo na re
66. de regra n o conflituosa n o existe nenhuma outra regra r com vari veis de sa da em comum com r Assim as vari veis de sa da de r tamb m n o s o alteradas por outras regras Uma vez que as vari veis de entrada de r n o s o alteradas ap s o in cio da execu o de r por r ou por outras regras e as vari veis de sa da de r n o s o alteradas por outras regras a regra r n o pode ser reactivada Sup e se claro que seguido pelo menos o crit rio de activa o b sico indicado no cap tulo anterior A Devido propriedade a este crit rio produz em geral a sem ntica esperada Em particular as regras de restri o que nunca s o recursivas testam apenas valores finais das suas vari veis de entrada Al m disso veremos no cap tulo 6 que na aus ncia de regras recursivas este crit rio fixa a sem ntica do conjunto de regras Isto na aus ncia de regras recursivas o processamento de regras determin stico no sentido de que a sua termina o e em caso de termina o o estado final atingido n o dependem de qual a regra seleccionada para execu o quando h v rias regras candidatas a execu o num dado passo do processamento Considera se que uma regra r candidata a execu o se estiver activada e n o existir nenhuma outra regra activada r com preced ncia sobre r 5 2 1 Rela o com ordem topol gica de componentes fortemente conexos do grafo r r Na aus ncia de ciclos no grafo r r uma
67. definida recursivamente da seguinte forma o pr prio campo se n o participar numa chave estrangeira a raiz do campo correspondente na chave prim ria referenciada pela chave estrangeira no caso contr rio esta defini o pressup e algumas restri es forma como as chaves estrangeiras s o definidas No caso de n o existir na vista um campo nas condi es requeridas criado um par metro autom tico da vista que deve ser ligado bound dinamicamente a uma constante ou a um campo doutra vista com uma raiz apropriada na base de dados A chave de acesso pode tamb m ser definida pelo programador de uma forma mais livre As chaves de acesso determinam as condi es de jun o entre as tabelas referenciadas e o sentido em que s o definidas as jun es O sentido importante porque se usa em geral o m todo de jun o externa assim trica esquerda left outer join R98 partindo da tabela alvo e s em casos particulares relacionados com restri es do tipo not null se usa o m todo de jun o interna inner join mais tradicional A ideia base a seguinte se um campo da vista tem como alvo um campo tl cl e usado para aceder a um campo 12 c2 da chave prim ria de 12 tabela de extens o ent o a condi o de jun o t cl t2 c2 e o sentido da jun o externa de t para 12 Esta jun o externa significa que s o seleccionados tamb m os registos de t que n o t m nenhum registo correspondente em t2 os
68. definido assim condi es de jun o entre vistas Um caso simples foi descrito no exemplo da sec o anterior Por raz es de efici ncia e de facilidade de implementa o relacionada com o facto de s poder estar aberta uma inst ncia de cada tipo de vista uma sub vista materializada apenas para o s registo s corrente s das vistas em linha ascendente na rvore isto para uma nica combina o de valores dos par metros da vista Normalmente isto n o faz qualquer diferen a para o utilizador mesmo ao imprimir porque medida que se percorrem os registos de uma vista as suas sub vistas directas ou indirectas v o sendo automaticamente re materializadas Quando tal limita o n o satisfat ria existe a possibilidade de usar uma nica vista organizada em sec es hier rquicas De qualquer forma seria interessante remover esta limita o no futuro ali s comum s ferramentas comerciais mais importantes 9 2 4 Vistas com secc es hier rquicas Em cada vista poss vel especificar um crit rio de ordena o correspondente a order by em SQL na forma de uma lista de campos da vista tamb m chamada chave de ordena o O crit rio de ordena o pode ser usado simultaneamente como crit rio de seccionamento de registos campos e layout da vista Suponhamos que a chave de ordena o cj C2 cn Ent o o seccionamento processa se da seguinte forma e Seccionamento dos registos Para qualquer
69. definition and execution are too restrictive in many practical applications and might be relaxed We ve assumed that rules do not reference past states Under some conditions rules that reference past states may be accommodated into the formalism presented such as e Rules that reference the last quiescent state of the system e g to check dynamic integrity constraints e Rules that reference the last state of the system consistent with the rule the state at the end of its last execution or the last quiescent state of the system according to which is most recent for optimization purposes e g the incremental evaluation of summary fields We ve assumed that rules do not reference time Under some conditions rules that reference time may be accommodated into the formalism presented such as e Rules that reference the time given by the system clock e g to animate user interfaces or to automatically collect data from the database or other external data sources The clock time may be represented by a state variable that is periodically updated by means of an alarm or a timer Such an update is similar to a user update The only restriction is that it should be prevented buffered during rule processing as it is required with respect to the user updates e Rules that compare times such as the time of creation and last modification of state variables For comparison purposes the real time need not be used a sequential timestamp generated
70. do objecto Isto permite que as regras sejam escritas como fun es em C ou C permite que a mesma fun o corresponda a muitas regras com argumento diferentes e permite que as regras sejam definidas dinamicamente por express es nesse caso a fun o a invocar uma fun o de avalia o de express es e o argumento um apontador para a express o As regras podem ter uma prioridade num rica priority que usada com pouco peso para ordenar a execu o das regras conforme se ver adiante Diferentes regras podem ter a mesma prioridade num rica Conforme foi referido no cap tulo 5 a prioridade num rica pode servir para fazer com que na falta de raz es em contr rio da o pouco peso as regras de restri o que invocam abort sejam executadas antes das regras de deriva o A prioridade num rica tamb m pode ser atribu da de acordo com a ordem por que as regras s o definidas para fazer com que na falta de mais informa o da o pouco peso as regras sejam executadas pela ordem por que s o definidas A op o other rpps indica se a execu o da regra est limitada aos PPR s indicados explicitamente pela associa o On RPP ou se pode tamb m ser executada noutros PPR s A opera o disable elimina logicamente uma regra sem a eliminar fisicamente de mem ria como aconteceria com unregister A opera o enable tem a fun o oposta de disable Estas opera es permitem inibir selectivamente algumas reg
71. durante os processos de navega o est o impedidos de invocar rotinas que desencadeiam navega o chamadas restricted built ins e as altera es efectuadas pelos gatilhos que s o executados durante os processos de valida o s o consideradas imediatamente validadas e n o desencadeiam novas execu es de gatilhos Indicam se de seguida alguns eventos gatilhos teis para a manuten o de restri es de integridade e itens calculados em formul rios e Post Query Dispara ap s o carregamento fetch de um registo para um bloco durante o processamento de uma interroga o Pode ser usado para popular itens de controlo ou itens noutros blocos calcular valores acumulados calcular estat sticas sobre os registos retornados por uma interroga o etc Tamb m pode ser usado para rejeitar registos seleccionados com RAISE Form Trigger Failure Pode se utilizar o comando SELECT mas n o os comandos de manipula o de dados INSERT UPDATE e DELETE de SQL Note se que os casos de utiliza o deste gatilho diminu ram significativamente com o suporte autom tico para itens calculados introduzido na vers o 2 do Designer 2000 e When Validate Item Dispara durante o processo de valida o de um item alterado ap s as valida es autom ticas terem sido conclu das com sucesso Pode ser usado para efectuar valida es ao n vel de um item para al m das que j s o efectuadas automaticamente Eventuais erros s o a
72. e formul rios com sub formul rios tamb m designados formul rios mestre detalhe master detail conforme vimos no cap tulo 2 Um exemplo t pico de um formul rio com um sub formul rio tabular que ser utilizado ao longo deste cap tulo apresentado na figura 7 1 A sua estrutura de dados hier rquica colocada em evid ncia na figura 7 2 Na figura 7 3 indicam se algumas restri es de integridade a manter nesse formul rio atrav s de regras de restri o ou deriva o representativas do tipo de restri es de integridade que se encontram em aplica es reais O modelo de regras introduzido no cap tulo 3 continua aplic vel porque as vari veis de estado podem representar dados arbitrariamente complexos No entanto os resultados que se obt m podem ser claramente melhorados se forem considerados os refinamentos tratados nas sec es seguintes Esses refinamentos dividem se em dois grupos que t m a ver com a orienta o a conjuntos e a orienta o a inst ncias Numa abordagem orientada a conjuntos um restri o imposta por uma regra de restri o ou de deriva o que manipula conjuntos de dados para todos os itens de um conjunto de dados antes de passar restri o seguinte Numa abordagem orientada a inst ncias s o impostas todas as restri es para um item de dados inst ncia de um conjunto antes de passar a outro item de dados Regras orientadas a conjuntos s o normalmente executadas de forma diferi
73. e regras verdadeiramente recursivas x No caso de regras verdadeiramente recursivas isto regras recursivas que efectivamente t m de ser executadas repetidas vezes at se atingir um ponto fixo para todas as regras a ordena o das regras atrav s de prioridades fixas pode ser injusta porque d s regras que t m preced ncia sobre outras regras mais oportunidades de execu o Ora no caso de regras verdadeiramente recursivas n o existem partida raz es para dar mais oportunidades de execu o a umas regras do que a outras Em alternativa pode se seguir uma ordem de execu o justa fair que d a todas as regras o mesmo n mero de oportunidades de execu o Para isso estabelecida inicialmente uma ordena o total das regras e de seguida dada oportunidade de execu o s regras por essa ordem de forma rotativa A diferen a entre ordens de execu o justas e injustas traduz se melhor atrav s de express es de controlo Seja o conjunto de regras j ordenado O r r2r3 rn Uma ordem de execu o injusta dada pela seguinte express o de controlo r1 r2 r3 Fa enquanto que uma ordem de execu o justa dada pela seguinte express o de controlo ri FIPS se rn O Nestas express es o asterisco significa repetir enquanto existirem regras activadas A ocorr ncia de uma regra r nestas express es significa que dada regra uma oportunidade de execu o isto a regra ex
74. entradas Uma regra r e Pred r pode no entanto ser activada mais tarde Seja r a primeira regra activada nessas circunst ncias e suponhamos que r activada por um evento gerado por uma regra r Uma vez que r a 1 regra activada pertencente a Pred r r amp Pred r Suponhamos que o evento activador gerado por r a altera o de uma vari vel de entrada de r digamos x Nesse caso existiria um caminho de r para r no grafo rr por interm dio de x e r o que contradiz o facto de que r amp Pred r Assim o evento activador gerado por r s pode ser a altera o de uma vari vel de sa da de r digamos y N o pode existir um caminho de y para r no grafo r v caso contr rio existiria um caminho de r para r no grafo r v por interm dio de y e portanto um caminho de r para r no grafo r r Uma vez que nem as vari veis de entrada de r nem as suas vari veis de sa da com um caminho para r podiam ter sido alteradas desde a execu o de r as vari veis de sa da de r com um caminho para r n o s o modificadas quando r executada Ordena o das regras 63 Consequentemente a execu o de r n o pode alterar nenhuma vari vel no caminho para r incluindo portanto as vari veis de entrada de r b Seja r uma regra n o conflituosa e n o recursiva De acordo com a al nea a as vari veis de entrada de r n o s o alteradas ap s o in cio da primeira execu o de r num dado PPR Por defini o
75. equivalente a O i e o estado final atingido quando as regras s o executadas segundo as duas ordens o mesmo para qualquer estado inicial Demonstra o Seja O uma ordena o ideal com conjunto de entradas X e seja O outra ordena o com as mesmas entradas De acordo com o lema 5 2 as entradas de O n o s o restringidas estaticamente por R De acordo com o mesmo lema O ideal Resta provar que O e O s o equivalentes Seja s um estado inicial arbitr rio e sejam te 1 os estados finais produzidos com uma nica execu o de cada regra segundo as ordens O e O respectivamente Suponhamos que existe uma vari vel y tal que t y t y Uma vez que 1 X s X se as regras forem executadas pela ordem O a partir de o valor atribu do a y seria o mesmo se as regras fossem executadas pela mesma ordem a partir de s valor esse dado por t y Assim o valor de y seria alterado pelo que t n o poderia ser um ponto fixo Isto contradiz a hip tese de que O ideal Portanto tem de ser t t A De seguida obt m se condi es a que um conjunto de regras deve obedecer para que todas as ordena es com conjuntos m nimos de entradas sejam ideais Para isso introduz se o seguinte conceito Uma regra r de um conjunto R de regras diz se completa num conjunto U de vari veis se r e R imp em a mesma restri o em U Formalmente definindo F rela o de pontos fixos da regra r F rela o de pontos fixos do conjunto de regras R fr
76. es contradit rias uma regra pode ser auto activada por altera es causadas por regras encapsuladas nos sub objectos conforme ilustra o exemplo seguinte Exemplo Seja um tipo de tabela t constitu da por registos do tipo r com campos x y e z Sejam as seguintes regras rule t rl update this set y exp x rule r r2 x exp y O efeito l quido completo da regra r1 entrando em conta com a poss vel execu o encaixada de r2 pode ser expresso por 122 Refinamentos para o tratamento de dados complexos update this set y exp x x exp exp x Assim na forma aumentada a regra r1 recursiva em x devendo ser activada quando o valor de x alterado pela regra r2 durante a execu o de r1 o que pode ser traduzido da seguinte forma rule t rl on create insert update x self update x update this set y exp x 7 3 2 Imposi o de restri es inter objecto atrav s de regras intra objecto parciais Para cumprir os pressupostos de encapsulamento uma rela o de integridade restri o ou deriva o entre v rios objectos inter objecto tem de ser imposta por uma regra associada a um objecto de n vel de granularidade suficientemente alto no limite o objecto raiz que agregue os objectos envolvidos i e um objecto em rela o ao qual a restri o intra objecto Uma solu o alternativa mais eficiente em muitos casos nomeadamente quando est envolvido um
77. essas regras forem executadas s a seguir a todas as outras h menos hip teses de contradizerem os valores introduzidos pelo utilizador uma vez que se d tempo a que sejam influenciadas pelos valores introduzidos pelo utilizador No caso de regras n o recursivas o crit rio 5 1 j adia a sua execu o at ao momento em que as suas vari veis de entrada atingiram valores finais Assim n o h qualquer vantagem em adiar a sua execu o ainda mais dando mais for a ao crit rio 5 2 do que ao crit rio 5 1 No caso de uma regra auto recursiva r mas n o mutuamente recursiva com outras regras O crit rio 5 1 j adia a sua execu o at ao ponto em que mais nenhuma regra pode alterar os valores das vari veis de entrada de r Assim tamb m neste caso n o h qualquer vantagem em adiar a sua execu o ainda mais Por conseguinte ou se restringe a aplica o do crit rio 5 2 a regras mutuamente recursivas com outras regras regras que pertencem a CFC s n o triviais do grafo r r ou o que quase equivalente e mais pr tico aplica se o crit rio 5 2 em todos os casos mas com menos for a do que o crit rio 5 1 Por raz es bvias o crit rio 5 3 deve ter ainda menos for a do que o crit rio 5 2 5 4 Ordena o de regras redundantes puramente incondicionais O crit rio 5 1 n o estabelece nenhuma ordena o entre as regras mutuamente recursivas pertencentes a um CFC n o trivial do grafo r r Intuitivamente interes
78. eventos Em certos casos os eventos activadores podem ser inferidos facilmente a partir das vari veis delta referenciadas em cada regra A grande desvantagem das regras incrementais prende se com a manuten o das vari veis delta ou dos estados passados a partir dos quais elas se podem obter nomeadamente quando se usam os estados interm dios no in cio ou no fim da ltima execu o de cada regra para al m do estado no in cio da transac o As regras orientadas a inst ncias tratadas a seguir constituem uma alternativa interessante porque permitem dispensar as vari veis delta custa de uma sem ntica mais complexa 116 Refinamentos para o tratamento de dados complexos 7 3 Regras orientadas a inst ncias As regras orientadas a inst ncias aplicam se a uma inst ncia de cada vez de um conjunto classe ou rela o podendo ser executadas imediatamente assim que ocorre um evento activador relacionado com uma inst ncia Muitas restri es de integridade e dados derivados em dados complexos podem ser mantidos eficientemente atrav s de regras orientadas a inst ncias sem recessidade de recorrer a vari veis delta Regras orientadas a inst ncias encontram se mais habitualmente em sistemas de regras activas para SGBD orientados a objectos de que se destacam o sistema Ode GJ91 GJ96 sobre C com persist ncia e o sistema NAOS CC95 C98 para o SGBDOO comercial O Estes dois sistemas suportam tanto regras orientadas a ins
79. eventos que ocorrem imediatamente a seguir aos anteriores como AfterUpdate e AfterDelConfirm ac o a usar nas macros SetValue com dois argumentos o nome do controlo ou propriedade do controlo ou do formul rio e a express o que determina o valor a atribuir Note se que as altera es causadas com SetValue n o causam a ocorr ncia pelo menos imediata do evento BeforeUpdate ou AfterUpdate pelo que n o f cil propagar c lculos em cascata 2 2 3 Outras ferramentas As ferramentas anteriores destinam se especificamente a desenvolver aplica es de bases de dados Uma abordagem alternativa para o desenvolvimento r pido de aplica es de bases de dados consiste na utiliza o de linguagens de programa o de uso gen rico orientadas a objectos que incorporam facilidades de constru o de interfaces interface builders caso do Visual Basic Delphi baseada em Object Pascal Power Builder baseado em C Java etc Nesses ambientes poss vel desenvolver rapidamente aplica es de bases de dados com base em componentes de interface especialmente concebidas para esse efeito como data base grids etc No entanto os automatismos para a manuten o de restri es de integridade e dados derivados n o s o superiores aos encontrados nas duas ferramentas analisadas 2 3 Restri es de integridade e gatilhos ou regras activas em sistemas de bases de dados 2 3 1 Restri es de integridade declarativas em
80. executed as ordered prioritized event action EA rules because of e the need for their integration with other EA or ECA rules originated from different sources with similar or different purposes e efficiency reasons Data driven active rules defined with the purpose of maintaining derived data and integrity constraints are most safely executed sequentially without nesting or concurrency in order to keep rules atomic with respect to each other and consequently keep the net effect of each rule unaffected by the existence of other rules Sequential execution of prioritized EA or ECA rules with immediate coupling mode between condition and action may be described by the following basic algorithm Algorithm 1 sequential rule execution 1 While there are triggered rules and the error variable has not been activated 232 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases 1 1 Select a triggered rule r such that there is no other triggered rule r with precedence priority over r 1 2 Detrigger rule r 1 3 Execute rule r i e evaluate the condition and in case it is true execute the action 2 If the error variable has been activated restore the system to the last quiescent state Sequential rule execution may be represented abstractly as function composition The point in time at the end of a transaction at the end of a user update on the occ
81. forma a seguir indicada Algoritmo 8 3 ordena o topol gica baseada na visita em profundidade Entradas V conjunto de v rtices Para cada v rtice ve V Succ v conjunto de sucessores imediatos de v i e Succ v ue V vue E Sa das Para cada v rtice ve V num v numera o por ordem topol gica inversa Dados tempor rios Para cada v rtice ve V visited v indica se v j foi visitado Procedimento principal procedure TOPSORTa begin ne O Implementa o de um motor de regras activas dirigidas pelos dados 145 for ve V do visited v false for ve V do DFS v end Ordena o topol gica recursiva a partir do v rtice v procedure DFSa v begin if visited v then visited v lt true for ue Succ v do DFS u n amp n l num v lt n end O segundo algoritmo pode ser descrito da seguinte forma Algoritmo 8 4 ordena o topol gica gen rica Entradas idem Sa das idem Dados tempor rios Para cada v rtice ve V indegree v n mero de predecessores imediatos de v por ordenar S conjunto de v rtices n o ordenados com indegree 0 procedure TOPSORTb begin n amp IVI Se for ve V do indegree v 0 for ve V do for ve Succ v do indegree u indegree u 1 for ve V do if indegree v 0 then S SUfv while Sz do escolher um v rtice ve S S amp S v num v n ne n 1 for ue Succ v do indegree u lt indegree u 1 if indegree u 0 then S
82. has multiple in gates x x2 of level 0 By the definition of in gate there must exist vertices v v2 outside H not necessarily distinct and edges x7 v2 x2 From the definition of a flow graph there must exist paths from s to vj v2 and those paths cannot cross H otherwise the vertices would belong to H Consequently all the in gates are reachable separately from s By the definition of SCC H contains a directed path P gt from x to x2 and a directed path P2 path from x2 to x Let w be the vertex common to P72 and P2 nearer to x w may be x2 and let C be the cycle made by the parts of P and Pz between x and w But then the cycle C may be reached from s at x and w through x2 and G is not reducible Since we assumed G is reducible we conclude that H must have a single in gate A As a generalization of this result we may conclude An algorithm to find feedback edge sets with on edge per cycle 193 Theorem 10 Problem 1 may be solved positively in polynomial time O IVHEDIVI if G is a reducible flow graph Proof We give a method to obtain F Let H be a non trivial SCC of level 1 of G If H does not contain s we have already shown that it has a single in gate r of level 0 So we select it and remove its incoming edges If H contains s we just select r s Let H be a non trivial sub SCC of level 2 obtained from H It cannot have any in gate of level 0 because there is only r and it becomes
83. i entre 2 e n 1 poss vel dividir os registos da vista em subconjuntos ou grupos de n vel i constitu dos por registos com os mesmos valores nos campos cy C2 C 1 Por defini o o n vel 1 tamb m chamado n vel de vista engloba todos os registos No caso da chave de ordena o n o ser suficiente para distinguir registos individuais considera se um n vel n 2 n vel de detalhe Os subconjuntos do n vel de detalhe n 1 ou n 2 conforme o caso t m apenas um registo e Seccionamento dos campos Cada campo c da vista tem um n vel i associado dado pelo n vel mais baixo tal que o valor de c constante dentro de qualquer subconjunto de registos de n vel i Este seccionamento tem implica es no significado das regras que calculam campos de sum rio e na forma como os dados s o armazenados fisicamente e Seccionamento do layout Para cada n vel i de 1 at ao n vel de detalhe menos 1 pode se definir um cabe alho header e um rodap footer de nivel i Adicionalmente claro pode se definir uma rea de detalhe Ao imprimir o cabe alho rodap de n vel i apresentado no primeiro ltimo registo de cada subconjunto de registos de n vel i 9 2 5 Restri es de integridade e de acesso Podem se definir zero ou mais chaves numa vista Uma chave um grupo de campos tal que n o podem existir dois registos diferentes com os mesmos valores nesses campos Pelo menos a chave prim ria da tabela alvo automaticame
84. o alterados Regras deste tipo podem ser enquadradas no modelo de regras definido no cap tulo 3 No exemplo acima as tabelas referenciadas podem ser modelizadas por vari veis de estado virtuais do formul rio cuja altera o sinalizada do exterior iniciando possivelmente transac es no formul rio Uma vez que a sinaliza o dessas altera es pode ocorrer durante o processamento de regras pode ser violado o princ pio de que as nicas altera es do estado das vari veis de estado que ocorrem durante o processamento das regras s o produzidas pelas regras De qualquer forma seria f cil reactivar as regras aquando da altera o concorrente das vari veis de estado virtuais 8 Implementa o de um motor de regras activas dirigidas pelos dados Neste cap tulo descreve se um motor de regras activas dirigidas pelos dados que foi implementado para servir de componente nuclear de uma ferramenta CASE espec fica SAGA mas de forma a poder ser usado noutras aplica es Esse motor de regras suporta regras com eventos e prioridades impl citos para a manuten o de restri es de integridade e dados derivados de acordo com o modelo de regras introduzido no cap tulo 3 e extens es discutidas no cap tulo 7 sem suporte para objectos compostos mas tamb m suporta regras com eventos e prioridades expl citos O motor de regras oferece um interface em C atrav s do qual as aplica es declaram regras e sinalizam eventos Em res
85. o de dados e criada uma regra de agrega o incremental que substitui a regra de agrega o total durante o modo de edi o de dados A regra de agrega o incremental activada em modo imediato quando inserido eliminado ou modificado um registo No ltimo caso a regra activada apenas quando s o modificados os campos envolvidos nas express es argumento das fun es de agrega o ou campos de ordena o O registo modificado pode mudar de grupo de registos de um ou mais n veis pelo que pode ser necess rio recalcular os campos de sum rio nos grupos antigos de registos e nos novos grupos de registos Actualmente apenas poss vel efectuar a manuten o incremental das fun es rcount e rsum A manuten o incremental das fun es rmax e rmin poder ser efectuada no futuro com o recurso a ndices de ordena o auxiliares 9 5 Experi ncia de utiliza o e linhas de evolu o Existe alguma experi ncia acumulada na utiliza o da ferramenta SAGA para o desenvolvimento de aplica es comerciais com alguma complexidade com centenas de vistas e milhares de regras por aplica o para a administra o p blica em Portugal FLMB95 embora usando vers es anteriores que n o incorporam muitas das novas facilidades de defini o e processamento de regras descritas neste cap tulo e no anterior A experi ncia tem revelado que se podem construir rapidamente com o SAGA aplica es flex veis eficientes e sobretudo d
86. o de regra como fun o no espa o de estados um ponto fixo de uma regra r um estado s tal que r s s As regras de deriva o restringem implicitamente os estados v lidos do sistema aos estados que obedecem condi o r s s Por essa raz o esta condi o chamada a restri o imposta por r implicitamente e os pontos fixos de r s o tamb m os estados consistentes com r Regras activas dirigidas pelos dados com sem ntica de ponto fixo 41 Considera se ainda que a ordem por que as regras s o definidas n o relevante 3 3 1 1 Representa o abstracta Para apresentar alguns exemplos utiliza se a seguinte representa o abstracta uma regra r representada por uma conjun o para diferentes y s de f rmulas incondicionais ou condicionais do tipo y f X ou p Z gt y f X respectivamente Nestas formulas y designa uma vari vel de estado p Z um predicado arbitr rio definido por uma condi o num conjunto Z de vari veis de estado e f X uma fun o arbitr ria definida por uma express o num conjunto X de vari veis de estado Condi es comuns podem ser postas em evid ncia Refer ncias a vari veis com pelicas como em y designam valores finais enquanto que refer ncias sem pelicas designam valores iniciais Os s mbolos 5 e t m o significado l gico habitual Por omiss o considera se que as vari veis de estado mant m o seu valor pressuposto de quiteude Isto as vari veis de est
87. o processamento de regras pode ser interrompido quando uma vari vel alterada segunda vez durante um PPR No caso de existirem regras recursivas ou de n o ser seguido o princ pio calcular antes de usar as actualiza es contradit rias podem ser produzidas por diferentes execu es da mesma regra Tais actualiza es contradit rias podem convergir pelo que o processamento de regras n o deve ser abortado imediatamente Na pr tica pode se impor um limite ao n mero de vezes que cada regra pode ser executada ou ao n mero de vezes que cada vari vel pode ser alterada num PPR 6 2 Determinismo Diferentes escolhas da pr xima regra a executar quando h m ltiplas regras activadas candidatas a execu o num dado passo do processamento de regras podem levar a diferentes estados finais do processamento de regras Se para um dado conjunto R de regras o estado final do processamento de regras independente de qual a regra escolhida para execu o entre as v rias regras activadas candidatas a execu o em qualquer passo do processamento de regras qualquer que seja o estado inicial o conjunto de regras e o processamento desse conjunto de regras diz se determin stico Apresentam se de seguida condi es suficientes a que um conjunto de regras deve obedecer para garantir o seu determinismo Previamente s o introduzidos instrumentos e conceitos necess rios demonstra o e aplica o das condi es que garantem o determi
88. o que n o sub transac o doutra chamada uma transac o de n vel de topo top level transaction Chama se transac o encaixada nested transaction rvore completa com uma transac o de n vel de topo e todas as sub transac es As folhas da rvore s o chamadas transac es planas flat O modelo de transac es encaixadas prev a execu o concorrente de sub transac es com o mesmo pai parent transaction mas essa possibilidade n o considerada aqui Assim as transac es encaixadas que se consideram aqui s o essencialmente equivalentes a transac es planas flat transactions com savepoints interm dios GR93 O modelo de transac es encaixadas permite suportar opera es transaccionais opera es globais ou intra objecto das classes da aplica o protegidas por transac es que se invocam mutuamente No caso de falha de uma opera o transaccional s o desfeitas rolled back apenas as altera es ocorridas no decurso dessa opera o competindo opera o invocadora tomar o curso mais apropriado abortar por sua vez ignorar seguir um caminho alternativo etc Podem definir se sub transac es sem rollback local O abortamento de uma sub transac o deste tipo propaga se para a transac o invocadora Mais uma vez cometido um pequeno abuso de linguagem Sub transac es deste tipo interessam para definir apenas um contexto horizonte para efeito de processamento de
89. o valor de x seja alterado pelo utilizador quando calculado por uma regra r pode se escrever a regra na forma geral r condi o gt x express o A locked x condi o Traduzindo para uma fun o em C note se que o operador de atribui o void r if locked x condi o x express o 60 Activa o das regras Exemplo 2 As duas regras seguintes transcritas da figura 3 1 imp em a mesma restri o de diferentes maneiras rs b a c I ro c b a No caso do utilizador alterar o valor de b interessa activar apenas a regra rg que l b para que o valor de c seja calculado em fun o de b N o interessa activar tamb m a regra rs que escreve em b porque se esta for executada em primeira lugar a opera o do utilizador perdida Acontece uma situa o sim trica quando o utilizador altera o valor de c 4 2 6 Pol tica de efeito l quido Para garantir que apenas o efeito l quido das regras importante necess rio seguir uma das seguintes pol ticas de efeito l quido Proibir regras que produzem altera es de estado que se cancelam mutuamente na mesma execu o As altera es que se cancelam mutuamente ocorridas durante a execu o de uma regra s o detectadas e ignoradas pelo mecanismo de monitoriza o de eventos Esta pol tica mais segura do que a anterior mas exige que se guarde de alguma forma o valor antigo no in cio da execu o da regra de
90. of H intersected by an external cycle with u v4w both u and w must precede or follow v in R 9 Let H be the graph obtained from H by adding an edge t s for each pair of distinct vertices s and tin H such that there is an external cycle whose intersection with H or H has initial vertex s and terminal vertex t External cycles that intersect a single vertex in H are ignored because they don t intersect any edge of H 10 Besides the edges previously added only the edges of H or H that are intersected by external cycles are contained in SCC s of H In fact any edge u v of H intersected by an external cycle will be contained in a cycle s u v t s of H of length gt 1 and consequently will be contained in a non trivial SCC of H Conversely assume u v is an edge of H contained in a SCC of H This means that there is a path from v to u in H Since the edges added in 9 correspond to paths in G this also means that there is a simple path from v to u in G completing a cycle C in G together with u v Since G does not contain any cycle of H C is an external cycle 11 In order to obtain R we sort topologically the SCC s of H Inside each SCC we remove the edges previously added returning back to H and sort topologically its vertices A special care has to be taken with respect to the SCC of H that contains v Let J be the SCC of H that contains v and let J be the corres
91. one of which must be outside S otherwise C would have no vertex outside S The direction of this feedback edge is not changed by any permutation P of S while the relative positions of u and v are interchanged in any permutation of S that moves v to the first last position originating an additional feedback edge So the number of feedback edges induced on C is increased Consequently there is no such P if the condition is false Sufficiency Assume the condition is true According to lemma A3 we can reorder S to obtain a sequence R without extra feedback edges with v already in the first last position of R or with R dividable into two sub sequences A and B such that v is in the first position of B last position of A An algorithm to find feedback edge sets with on edge per cycle 199 with A and B in the conditions of lemma A2 So these two sub sequences may be interchanged to obtain P with the same number of feedback edges per cycle and with v in the first last position A We are now in conditions to prove Proof of theorem 1 iv We prove the equivalent converse statement Let G V E Assume G has a CPFES Since any non minimal CPFES of G is easily transformed into a minimal element by removing the edges that do not belong to any cycle of G G has at least one minimal CPFES say F Obviously there exists a corresponding CPVO L of the vertices of G such that the vertices of each SCC of G are kept together and the SCC s are
92. ordena o total das regras de acordo com o crit rio 5 1 uma ordem topol gica do grafo r r Na presen a de ciclos uma poss vel ordena o total das regras de acordo com o crit rio 3 1 uma ordena o das regras por ordem topol gica de componentes fortemente conexos do grafo r r Um componente fortemente conexo CFC C de um grafo dirigido G V E um sub grafo m ximo tal que para quaisquer dois v rtices distintos u e v de C existem caminhos de u para v e de v para u em G e consequentemente em C TS92 Um CFC com um nico v rtice com ou sem lacete diz se trivial Dado um grafo G V E pode se construir um grafo condensado G V E cujos v rtices s o os CFC s de G e cujas arestas ligam CFC s que cont m v rtices ligados entre si em G O grafo G ac clico pelo que ser ordenado topologicamente Dispondo os CFC s por ordem topol gica e substituindo cada CFC pelos v rtices nele contidos dispostos por uma ordem qualquer tem se o que se chama uma ordena o dos v rtices de G V E por ordem topol gica de CFC s Ver exemplos nas duas figuras seguintes Fig 5 1 Grafo r r da fig 4 3 com ciclos aglutinados em componentes fortemente conexos CFC s e regras dispostas por ordem topol gica de CFC s e secundariamente por n meros crescentes 64 Ordena o das regras Fig 5 2 Um grafo dirigido c clico esquerda e grafo condensado ac clico dos seus CFC s j dispostos por uma ordem topol gica direit
93. ou alterado por cada regra dados pelas associa es Reads e Writes caso isso seja desejado Esta opera o implementa o crit rio de activa o b sico descrito no cap tulo 4 excluindo a reactiva o de uma regra devido altera o de vari veis de sa da da regra com alguns dos refinamentos discutidos no cap tulo 7 Mais precisamente e Para cada ocorr ncia da associa o Reads e se granularity object e cria uma ocorr ncia em On Modify Attribute com granularity object e para cada ocorr ncia de RPP da mesma classe do atributo e da regra com time after type create e granularity object cria uma ocorr ncia em On RPP com granularity object e se granularity class e seo atributo global e cria uma ocorr ncia em On Modify Attribute com granularity class e para cada ocorr ncia de RPP da mesma classe do atributo com time after type create e granularity class cria uma ocorr ncia em On RPP com granularity class e seo atributo intra objecto e se modify e sensitivity cria uma ocorr ncia em On Modify Attribute com granularity class e se create sensitivity para cada ocorr ncia de RPP da mesma classe do atributo com time after type create e granularity object cria uma ocorr ncia em On RPP com granularity class e se delete e sensitivity para cada ocorr ncia de RPP da mesma classe do atributo com time after type delete e granularity object cria uma ocorr ncia em On RPP com granularity class e Para cada associa o
94. para al m dos que est o a ser introduzidos pelo utilizador numa vista da aplica o Introdu o 3 e Mesmo numa aplica o interactiva de BD s existem algumas vistas da aplica o que nada t m a ver com a BD Restri es de integridade e dados derivados nessas vistas da aplica o t m de ser mantidos pela pr pria aplica o As aplica es interactivas de bases de dados s o normalmente desenvolvidas com recurso a ferramentas de desenvolvimento r pido de aplica es DRA que incorporam automaticamente na aplica o atrav s de geradores de c digo gestores da aplica o em tempo de execu o componentes de alto n vel etc o c digo necess rio para a realiza o destas tarefas e sub tarefas com base em especifica es de alto n vel A defini o em simult neo das especifica es para as tr s tarefas acima indicadas estrutura dos dados em mem ria mapeamento para a camada de apresenta o e interac o com o utilizador e mapeamento para a base de dados contribui tamb m de forma significativa para a rapidez de desenvolvimento Para combinar automa o com flexibilidade muitas ferramentas suportam gatilhos do tipo evento ac o atrav s dos quais poss vel estender ou substituir comportamentos autom ticos embebidos no c digo incorporado ou especificar um comportamento onde n o est previsto nenhum comportamento autom tico No entanto as ferramentas actuais sofrem de v rias limita es de que se
95. para regras orientadas a conjuntos refinamento dos eventos activadores e escrita da regra de forma incremental Uma vez que as altera es de linhas de factura s o englobadas em opera es de cria o ou altera o da pr pria factura primeiro calculado o pre o total de cada linha da factura e s depois que calculado o total da factura Refinamentos para o tratamento de dados complexos 119 7 3 1 4 Dificuldades devidas presen a de regras encapsuladas nos sub objectos actualizados por uma regra Um dos pressupostos considerados no cap tulo 3 de que os estados consistentes com uma regra s o os seus pontos fixos em termos l quidos Ora os pontos fixos em termos l quidos de uma regra associada a um objecto composto podem depender das regras encapsuladas nos objectos componentes complicando assim a sem ntica das regras Note se que isso n o aconteceria se os estados consistentes com uma regra fossem definidos por uma condi o sem efeitos laterais uma condi o cuja avalia o n o causa altera es que possam desencadear a execu o de regras como acontece no sistema Ode conforme vimos na sec o 2 3 6 Outro dos pressupostos considerados no cap tulo 3 o de que as regras s o individualmente determin sticas Ora se o conjunto de regras encapsuladas num objecto componente n o deterministico as opera es e as regras associadas ao objecto composto deixam de ser deterministicas
96. pode existir uma regra candidata a execu o em cada momento Num esquema de prioridades relativas s o estabelecidas preced ncias entre pares de regras por afirma es do g nero r tem preced ncia sobre r Tamb m se usa a nota o r gt r com o mesmo significado Durante o processamento de regras uma regra activada r n o pode ser seleccionada para execu o n o candidata a execu o se existir outra regra activada r com preced ncia sobre r Estas preced ncias podem ser consideradas transitivas ou n o Suponhamos que s o definidas as preced ncias r gt r e r gt r e que o conjunto de regras activadas num dado passo do processamento de regras r rj Se as preced ncias forem consideradas transitivas a preced ncia r gt r implicitamente implicada pelas anteriores pelo que s a regra r pode ser seleccionada para execu o Se as preced ncias n o forem consideradas transitivas qualquer das regras pode ser seleccionada para execu o Em qualquer caso exige se sempre que as preced ncias sejam ac clicas para garantir que seja qual for o conjunto de regras activadas sempre poss vel seleccionar uma regra para execu o 2 O esquema de prioridades relativas mais flex vel porque as prioridades absolutas podem ser traduzidas para prioridades relativas enquanto que o inverso n o verdadeiro pelo menos sem introduzir preced ncias para al m das especificadas Em contrapartida as prioridad
97. que implementam alguns crit rios de activa o e de ordena o identificados nos cap tulos 4 e 5 Finalmente no cap tulo 10 extraem se conclus es do trabalho efectuado e identificam se t picos para trabalho futuro Alguns resultados laterais importantes do trabalho desenvolvido s o apresentados nos anexos 1 e 2 No anexo 3 apresenta se um artigo aceite para publica o nas actas do XIV Simposium Brasileiro de Bases de Dados SBBD 99 que sintetiza os resultados mais importantes do trabalho desenvolvido 2 Revis o do estado da arte Neste cap tulo analisa se o suporte para especifica es declarativas de restri es de integridade e dados derivados e o suporte para gatilhos ou regras activas tanto em ferramentas de desenvolvimento r pido de aplica es como em SGBD s representativos 2 1 Conceitos b sicos 2 1 1 Restri es de integridade As restri es de integridade dividem se em est ticas e din micas Uma restri o de integridade est tica ou simplesmente restri o est tica uma condi o a que t m que obedecer os estados v lidos de um sistema base de dados obje cto conjunto de objectos etc Um exemplo de uma restri o de integridade est tica a que diz que a data de casamento de uma pessoa n o pode ser anterior data de nascimento Normalmente admite se que as restri es de integridade est tica sejam violadas em estados transit rios que ocorrem no decurso de opera es ou transac es
98. randomly generated graphs are presented showing an average running time of the algorithm approximately linear in the size of the graph 1 Introduction We first recall some basic graph concepts and notation in order to clearly state the problem being addressed in the paper A directed graph G is a pair VE of a set V of vertices and a set E of directed edges also called arcs The number of vertices is denoted by IVI and the number of edges is denoted by IEI Throughout this paper we assume simple directed graphs that is directed graphs without self loops and parallel edges However the results presented might easily be extended to other graphs All the graphs edges paths and cycles are directed It is also assumed that all the vertices of a path are distinct following the definition of path found in 2 and that all except the end vertices of a cycle are distinct A strongly connected component SCC for short H of a graph G V E is a maximal sub graph such that for every distinct vertices v and win H there are paths from v to w and from w to vin G and consequently in H A SCC with a single vertex is called trivial A linear ordering or simply an ordering L of the vertices of a graph G V E is as an assignment of distinct consecutive order numbers 1 2 IVI to its vertices It may be represented by a sequence of the vertices A topological ordering of the vertices of an acyclic graph is an ordering such that all the e
99. regras confluentes eee eeerererera nana necearerenaaa 94 ndice xiii 6 2 6 Condi es suficientes de determinism eeseeeccecececeseessneeaececeeeceseenenneeeeeeeeeeeees 96 6 2 7 Imposi o do determinismo atrav s de prioridades cci is 97 6 2 8 Imposi o do determinismo atrav s do princ pio calcular antes de usar 98 6 2 9 Imposi o do determinismo atrav s de ordens de execu o justas 99 6 3 VELOCIDADE DE TERMINA CA O ss een e sativa vss sdnccds viet cosh REE E so ede vaso EH cassa dana 101 6 3 1 Vantagem das ordens de execu o justas para o processamento de regras falsamente TECUISIVAS sactostasia ss cciecsatebcts ssevanneShcbacds a e A a e EE aa EAE eTA Eas 101 6 3 2 Ordens de execu o justas com velocidades de termina o semelhantes 102 7 REFINAMENTOS PARA O TRATAMENTO DE DADOS COMPLEXOS 105 ol INTRODU O sirestoreunseosvitoape du masa ins casaca dental tos eke ir aaa sas ticas as ienes sete cal emna TEACSA 105 7 2 REGRAS ORIENTADAS A CONJUNTOS 3s husecssicsenvevecseabwesaseestsecbnens sandeneveunnibessinlenssyeabsnanas 107 7 2 1 Refinamento do crit rio e mecanismo de activa o iii 107 7 2 2 Decomposi o de vari veis de estado cr erererreraaaeeea 110 7 2 5 Reeras Mcrementals 3 4 4 pass seats Aaa A a lee alpacas 111 7 3 REGRAS ORIENTADAS A I
100. replacing each undirected edge of G by a pair of symmetric edges Proof Cycles of length 1 or 2 have one backward edges for any vertex ordering Consequently they need not be considered to compare vertex orderings with respect to the number of backward edges per cycle The cycles of G and G4 with length greater than 2 are related in the following way each cycle C of G with length gt 2 corresponds to a pair of symmetric cycles C and C in Gy In order to count the number of backward edges induced in C we have to choose an arbitrary orientation say the one defined by C Let l be the length of C C or C2 and let f and f be the number of backward edges induced in C and C by a vertex ordering L It s obvious that f gt Any two vertex orderings that induce the same f also induce the same f gt Hence it suffices to consider one cycle from each pair of symmetric cycles to compare vertex orderings with respect to the number of backward edges per cycle Since the cycles that need to be considered to compare vertex orderings with respect to the number of backward edges per cycle are the same in G and G they are B equivalent A Lemma 2 B operations Given a graph G V E directed or undirected the following edge insertion and edge removal operations are B operations on G i add or remove a self loop ee ii add or remove a parallel edge iii add or remove an edge that is not contained in any cycle of G of length greater tha
101. ro c b a As regras rs b a c e ro c b a n o obedecem condi o ii do teorema 6 12 Como est o nas condi es do teorema 6 10 e n o s o comutativas tamb m n o s o confluentes o que ali s imediatamente bvio porque imp em a mesma restri o de diferentes maneiras As regras re x20 gt y x e r y low l n o obedecem condi o iii do teorema 6 12 porque a execu o de rs pode passar de verdadeiro a falso a condi o y 1 na qual a vari vel w actualizada por r Como est o nas condi es do teorema 6 11 s o idempotentes e s rs pode activar r3 de forma produtiva basta comparar os efeitos l quidos de rge r3 e r3cr6 r3 que s o roots X20 gt y x A x20 Ax lv x lt 0 Ay 15 w 1 r30rg r3 X20 gt y x A y lv x20nx Iv x lt 0 y l gt w 1 Como as express es n o s o equivalentes conclui se que estas duas regras tamb m n o s o confluentes Conclui se portanto que h apenas dois pares de regras n o confluentes 96 Termina o determinismo e velocidade de termina o do processamento de regras Note se que todos os pares de regras comutativas est o nas condi es do teorema 6 12 excep o das regras rs e rs pelo que no total h apenas 3 pares de regras de um total de 72 pares poss veis que n o obedecem s condi es do teorema 6 12 6 2 6 Condi es suficientes de determinismo Estamos agora em condi es de estabelecer condi es suficientes de
102. rules is usually based on the notion of rule commutativity Two rules r and r are commutative or r and r commute if for any state s applying rule r and then rule r from state s produces the same state as applying rule r and then rule r i e r r rje ri where gt denotes function composition Non commutative rules are also called order dependent rules in this paper For a given rule set R order dependencies between rules are depicted by an order dependency graph ODG with vertex set R and undirected edges joining pairs of order dependent rules The following properties are useful in the construction of the ODG e The ODG has no self loops because every rule commutes with itself e If two rules are not adjacent in the RRDDG then they commute 11 e Iftwo rules are adjacent in the AG then they do not commute 11 From the first two properties a conservative ODG may be obtained from the RRDDG by replacing directed edges by undirected edges and removing parallel edges and self loops An example of an ODG is given in appendix A 8 2 Confluence of unordered rules A confluence requirement for generic partially ordered active rules has been presented in 12 Once applied to unordered active rules the resulting requirement is that the rule set is terminating and that every two rules in the rule set commute which is too conservative In fact using classic results about confluence 14 it can be shown that if the rule set is
103. s o alteradas quando r executada podem ser inclu das em U Mostra se de seguida que qualquer vari vel xe U tem de pertencer a min i vars r Uma vez que U um conjunto m nimo de vari veis de auto activa o de r a seguinte condi o tem de se verificar para qualquer vari vel xe U Ase S r s U x s U x A r s x 8 X A r s r s Seja t um estado obtido a partir de s da seguinte forma t V x s V x A tx r s x Esta condi o em conjunto com a condi o r s U x s U x implica que t U r s U Suponhamos que r t r s Ent o r t U r s U tU A r t r t Isto imposs vel porque U um conjunto correcto de vari veis de auto activa o Assim r t r s ou equivalentemente 3ye V r s y r t y As conclus es obtidas at ao momento podem ser traduzidas pelo seguinte diagrama Vu x DA S gt r Ss I S i VE U 45 t S dye y I V fx aes Ey T A 177 i rt Para provar que x pertence a min i vars r de acordo com a express o do teorema 4 1 temos de provar que r s y s y ou equivalentemente r t y t y trocando s com t Se y e x denotam a mesma vari vel a conclus o imediata porque r s x s x Se x e y denotam vari veis distintas ent o tem de ser s y t y porque s e t diferem apenas em x isto em conjunto com r s y r t y implica que r s y s y ou r t y t y Assim conclui se que xe min i vars r A 4 2 2 3 Optimiza es est ticas para
104. simple path in G or S from v to v with minimum length d the distance from v to v Let P and P be corresponding paths in G and G starting in corresponding occurrences of v namely v and v i where p is the position of vertex v in L see above figure Let 5 and 5 be the number of backward edges induced by Land L in P Obviously 0S6 6 lt d The terminal k 1 8 n vertices of P and P will be vi ii and yd S Since these are corresponding f kn gt lthon s vertices as well as v and v J see above figure we get h 0 0 Since lt 6 6 lt dj we get h lt d and h 20 by definition The maximum value occurs when all the edges of P are forward edges with respect to L and backward edges with respect to L 44 In case it does not occur already there is no difficulty in redefining the correspondence between Gz and Gy for the vertices of S so that k it suffices to shift one end of correspondence lines by an appropriate number of iterations 4 5 Doing the same for all the strongly connected components of G we guarantee that the vertices in iteration k of G will all have corresponding vertices in iterations k to k h of Gr in a way that minimizes h From the above discussion we conclude that h does not exceed the maximum distance between any two strongly connected vertices of G For instance with respect to the foregoing example we already got h 1 lt D 2 4 6 Notice th
105. t Consequentemente o diagrama mostra que v min o vars r basta trocar s com t e comparar com o diagrama da figura 4 1 A Exemplo Seja a seguinte regra r y gt 0 gt x x 1 A y 0 Pelo crit rio de activa o b sico ter amos et vars r vars r x y Retirando as pelicas obt m se a restri o imposta implicitamente por r y gt 0 gt x x 1 A y 0 que pode ser simplificada para y lt 0 Assim toma se et vars r y 56 Activa o das regras 4 2 2 2 Conjuntos m nimos de vari veis de auto activa o Para ser correcto qualquer conjunto U de vari veis de auto activa o de uma regra r deve obedecer seguinte condi o se nenhuma vari vel em U alterada quando r executada o estado atingido no final dessa execu o um ponto fixo de r Formalmente NV se S r s U s U gt r s r s Infelizmente uma regra pode ter mais do que um conjunto m nimo de vari veis de auto activa o como demonstra o exemplo seguinte Exemplo A regra r y gt l gt x x 1 A y y 2 tem dois conjuntos m nimos de vari veis de auto activa o x e y Pelo menos e como seria de esperar pode se garantir que Teorem 4 4 Se U um conjunto m nimo de vari veis de auto activa o de uma regra r ent o U c min i vars r QO min o vars r Demonstra o Temos de demonstrar que U c min o vars r e que U c min i vars r A primeira parte bvia porque somente as vari veis que
106. terem sido tratadas e activa o m ltipla isto v rios gatilhos activados pela mesma opera o na mesma tabela no mesmo momento AFTER ou BEFORE a estrat gia seguida consiste genericamente em executar os v rios gatilhos sequencialmente pela ordem em que foram definidos seja qual for a sua granularidade um gatilho FOR EACH ROW executado para todas as linhas afectadas antes de se passar ao gatilho seguinte pelo menos conceptualmente um gatilho n o v nas suas tabelas de transi o as transi es causadas pelos gatilhos executados antes dele apesar do estado corrente da base de dados as reflectir e activa o em cascata isto um gatilho executar uma opera o que activa outros gatilhos ou mesmo outra inst ncia do mesmo gatilho a estrat gia seguida consiste genericamente em executar imediatamente recursivamente os gatilhos activados em cascata e s depois concluir a execu o do gatilho activador um gatilho n o v nas suas tabelas de transi o as transi es causadas pelas opera es por ele invocadas ou pelos gatilhos activados em cascata apesar do estado corrente da base de dados as reflectir A l gica para um gatilho n o ver as transi es posteriores activa o do gatilho que essas transi es podem ser processadas imediatamente por outras inst ncias do mesmo gatilho De qualquer forma de esperar que o desfasamento potencial entre as transi es e o est
107. the number of feedback edges induced on each cycle of G is not changed if A and B are interchanged in L Proof The number of feedback edges induced on the cycles that do not intersect vertices outside A and B are not changed as in lemma Al The feedback edges induced on the cycles that intersect vertices outside A and B are not changed since it s assumed that those cycles don t intersect simultaneously A and B and so don t intersect any edge linking A and B A Lemma A3 local reordering Let L be a cycle preserving ordering of the vertices of a graph G Let S be a sub sequence of L Let v be a vertex in S such that there is no cycle in G simultaneously intersecting a vertex outside S a vertex before after v in S and v itself Then there is a permutation R of S without extra feedback edges such that there is no cycle in G simultaneously intersecting a vertex outside R a vertex before after v in R and v or a vertex after before v in R Proof We give a method to obtain a possible R from S We number the steps for easier reference 1 Let H be the sub graph of G induced by S that is H has the vertices contained in S plus the edges of G whose end vertices are in S 2 The cycles of G that are not fully contained in H are called external cycles 3 For any external cycle C the feedback edge f induced by Lin C linking the last to the first vertex of C in L is not contained in H because at least one of the end vertices of f is n
108. the rule s action always falsifies the rule s condition is also idempotent In general a semantic analysis is required to check if a rule is idempotent For example rule rs in appendix A is idempotent the other rules are trivially idempotent e Incase r is conditional restrict st vars r to the variables that are simultaneously input and output variables of the action part of r only i e ignore the condition part e Ina practical rule language restrict st vars r to the variables that may be updated after being read in the action part of r Example Assume the following rule ra y gt 0 gt x x4 A y 0 By the basic triggering criterion one would have ef vars r st vars r2 x y The underlying static constraint is y gt 0 gt x x 1 A y 0 which can be simplified to y lt 0 Hence one takes et vars r2 y Since the rule is idempotent one takes st vars r gt 6 3 Dynamic improvements based on the value of the condition Clearly the external triggering variables of a conditional rule may be dynamically restricted in the following way e if arule r is executed and its condition does not hold subsequently take for et vars r the variables referenced in the condition part e if arule r is executed and its condition holds subsequently take for et vars r the variables referenced in the action part Initially the value of the condition is unknown but that s not a problem because all the rules are
109. this is a consequence of condition 1 1 3 1 1 3 Len P L lt Len P L where P is an arbitrary path from x to yin G Note if this inequality holds for one simple path P it also holds for any other simple path from x to y reason why the choice of P is arbitrary 1 2 Modify L by interchanging x and y Note in the linear representation if x is the first vertex and y is the last vertex of L this is accomplished by a combination of operations i and ii of Lemma B3 2 Rotate L to obtain L A Next we present some lemmas in order to prove the correctness of algorithm 1 Lemma 4 For any closed path C simple or not in a directed graph G V E and any two Q equivalent vertex orderings L and L Len C L Len C L Proof A closed path is a cycle or a combination of cycles Since L and L induce the same number of backward edges on every cycle of G they must also induce the same number of backward edges on every closed path in G Let b be the number of backward edges induced by L or L on C and let n be the number of vertices of G Then Len C L nb Len C L A Lemma 5 In case L and L differ by more than a rotation there must exist vertices x and y in the conditions mentioned in algorithm 1 Proof Let p P2 Pn be simple paths that connect each two circularly consecutive vertices in L where n is the number of vertices in G These paths exist because we assume G is strongly connected Let C be the
110. to count the number of backward edges per cycle Cycles of length 1 or 2 have one backward edge with respect to any vertex ordering and may also be ignored when comparing vertex orderings with respect to the number of backward edges per cycle iv Let u v be an edge that is contained in a cycle of G Without loss of generality assume that G does not contain the edge v u and let G be the graph obtained from G by adding the edge v u Let p P2 py be all the simple paths in G with initial vertex u and terminal vertex v One of such paths say p is the edge u v itself Hence k21 Let qi q2 q be all the simple paths in G with initial vertex v and terminal vertex u Since u v is contained in a cycle of G there must exist at least one of such paths Hence gt Let Land L be any two o equivalent vertex orderings Let d be the variation on the number of backward edges of path p the edge u v from L to L The possible values of d are 0 in case u and v have the same relative positions 1 in case u moves after v and 1 in case v moves after u The concatenation of any of the p s Sisk with any of the g s 1 Sj lt I is a closed path possibly with repeated vertices and edges It s known that any closed path is a cycle or a combination of cycles in the sense that the closed path may be built by starting with a single cycle inserting a new cycle in some position of the path obtained so forth and so on Si
111. u amp pop S num u lt i iil pending u false until S old_S_size v end 8 5 5 Algoritmo final Basta agora combinar o algoritmo 8 7 com o algoritmo 8 5 aplicado ao grafo condensado aciclico dos CFC s sem chegar a construir este ltimo Escolhe se para prioridade de um CFC a prioridade do v rtice raiz porque o 1 a ser escolhido do CFC A numera o produzida pelo algoritmo 8 7 usada para desempatar os casos de v rtices com igual prioridade Assim se todos os v rtices t m igual prioridade mantida a numera o produzida pelo algoritmo 8 7 Algoritmo 8 8 ordena o por ordem ordem topol gica de CFC s minimizando invers es de arestas e de prioridades Entradas idem Sa das idem 152 Implementa o de um motor de regras activas dirigidas pelos dados Dados tempor rios idem mais C conjunto de ra zes de CFC s Para cada v rtice ve C indegree v n mero de arestas que partem de CFC s anteriores por ordenar para o CFC de v H heap com raizes de CFC s n o ordenados com indegree 0 m tamanho do heap procedimento principal procedure TOPSORTSCCFESPRI begin obten o de CFC s e c lculo de indegree Cet n0 for ve V do visited v false pending v false for ve V do if visited v then i0 S lt pilha vazia DFSSCCFESPRI v ordena o de CFC s baseado em indegree que vai sendo decrementado n amp IVI ERASEHEAP for ve C do if indegree v
112. veis em blocos de c digo em SQL ou PL SQL associados ao formul rio A utiliza o de par metros til para promover a reutiliza o Os par metros s o s de entrada par metros de sa da podem ser simulados atrav s de vari veis globais 2 2 1 2 Relat rios No Developer 2000 um relat rio uma forma de apresenta o display de dados orientada p gina Enquanto que o prop sito de um formul rio o de permitir a gest o interactiva dos dados o prop sito de um relat rio o de formatar um grande conjunto de dados de uma forma facilmente leg vel e n o o de permitir a gest o dos dados Os v rios tipos de relat rios suportados pelo Developer 2000 diferem mais quanto forma como os dados s o formatados do que propriamente quanto estrutura dos dados a formatar Os dados a formatar s o definidos em primeiro lugar por uma ou mais interroga es queries Cada interroga o uma express o de selec o SELECT em SQL A cada interroga o corresponde um conjunto de colunas do relat rio com e database columns colunas de resultado da interroga o e summary columns colunas que acumulam informa o de sum rio de conjuntos de registos e formula columns colunas calculadas em fun o doutras colunas do relat rio atrav s de blocos de c digo fun es em PL SQL e placeholder columns colunas preenchidas doutra forma normalmente atrav s de gatilhos Podem se agrupar os regi
113. vel apresentado na figura 6 1 esquerda e ao grafo de interfer ncias apresentado na figura 4 5 A regra rs y lyl idempotente pelo que desaparece o lacete em rs o que ali s j acontece no grafo de activa o da figura 6 1 No caso do par de regras rs y lyl e re x20 gt y x para averiguar se rs pode activar r de forma produtiva utiliza se a defini o com as substitui es adequadas As te S s x lt 0 v s y s x A ty Is yl A tx 8 x A A t x lt 0 v ty t x o que equivale a Ase S s x lt O v s y s x A s x lt 0 v Is yl s x Facilmente se verifica que a condi o que aparece nesta express o imposs vel Portanto rs n o pode activar r de forma produtiva O inverso tamb m verdadeiro porque r apenas atribui a y valores positivos consistentes com a regra rs No caso do par de regras rs b a c e ro c b a um ponto fixo para uma das regras tamb m um ponto fixo para a outra regra pelo que n o se podem activar mutuamente de forma produtiva 84 Termina o determinismo e velocidade de termina o do processamento de regras 6 1 2 2 Condi es de termina o O lema e teorema seguintes mostram que a aus ncia de ciclos no grafo de activa o produtiva condi o suficiente de termina o do processamento de regras Lema 6 1 O n mero de execu es de regras n o produtivas consecutivas a partir de um estado s durante o processamento de um conjunto R de regras
114. which can be accomplished by interchanging x or y with one the nearest intermediate vertex at a time In this case the vertices interchanged are not joined by a cyclic edge of G because they belong to different strongly connected components After reordering all the strongly connected components there is no difficulty in putting all the vertices in their final positions as in L by interchanging only pairs of consecutive vertices that are not joined by cyclic edges of G Hence we conclude Theorem 3 complete set of operations for directed graphs Two orderings of the vertices of a directed graph G V E L and L are a equivalent if and only if any of them may be obtained from the other by repeatedly applying the following operations i rotation ii interchanging pairs of consecutive vertices that are not joined by cyclic edges of G Besides that none of these two operations is sufficient by itself Proof Sufficiency If L and L may be obtained from each other by applying these operations then they are amp equivalent according to lemma B3 Necessity If L and L are a equivalent then one of them may be obtained from the other by applying these operations according to algorithm 1 To show that none of the two operations is sufficient by itself we give two examples Consider a complete graph with n vertices In this case operation ii cannot be applied and operation i is necessary Consider a graph with n vertices an
115. 1 2 edges expected we can also conclude that in this experiment the average execution time of CPSORT is approximately linear in the size of the graph measured in number of vertices plus number of edges as in experiment 1 In both experiments the percentage of graphs with a CPVO as a function of the number of vertices presented an exponential decrease towards 0 stronger in the second experiment see Appendix E In order to estimate the worst case performance of CPSORT we identified of a class of difficult graphs with a CPVO see Fig 4 The performance results obtained are summarized in Fig 5 From Fig 5 we conclude that the execution time of CPSORT for graphs of this class grows exponentially with the number of vertices and also with the size of the graph because the number of edges is n Dx n 2 244 In this experiment CPSORT took approximately the same time as the time needed to count the cycles see Appendix E An algorithm to find feedback edge sets with on edge per cycle 195 1 E 04 A experiment 3 1 E 03 1 E 02 1 E 01 1 E 00 1 E 01 1 E 02 1 E 03 1 E 04 exponential regression line sec call to CPSORT 5 10 15 20 25 number of vertices Fig 5 Performance of CPSORT as a function of the number of vertices for the class of graphs in Fig 4 Fig 4 Special class of graphs poorly processed by CPSORT H is complete acyclic sub graph of n 1 vertices in topological order 1 2 n1 We feel t
116. 5 a Uma vez que o grafo de activa o refinado ac clico o processamento deste conjunto de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras de acordo com o teorema 6 1 Uma vez que existem dois pares de regras n o confluentes indicados na figura 7 5 c n o h garantia de que o conjunto de regras seja determin stico de facto f cil de ver que n o determin stico Suponhamos que s o estabelecidas prioridades entre as regras de acordo com o princ pio calcular antes de usar crit rio 5 1 ou seja que estabelecido o seguinte conjunto de prioridades P ra gt r2 V4 gt f F3 gt f r3 gt r2 Facilmente se verifica que o conjunto de regras com este conjunto de prioridades obedece ao requisito de conflu ncia requisito 6 1 pelo que determin stico de acordo com o teorema 6 14 r produz altera es do tipo x em v r consulta v e deve ser activada quando v sofre altera es do tipo x n inser es elimina es Fig 7 4 Conjunto de regras que manipulam conjuntos e respectivo grafo r v anotado a Grafo r r grafo de b Grafo de activa o pelo c Grafo de n o comutatividade interfer ncias e grafo de crit rio refinado e grafo de e grafo de n o conflu ncia activa o pelo crit rio b sico activa o produtiva id nticos id nticos neste caso id nticos neste caso neste caso Fig 7 5 Grafos correspondentes ao conjunto de regras da F
117. 6 1 1 In the foregoing example we get d 1 b 2 1 d 1 and d 0 1 The transformation 1S Es 3 4 5 6 7 8 9 o Da KANL W 3 4 5 6 7 8 9 12 ie WA v3 te vi v3 A Vi A p 10 11 12 v 4 2 3 10 11 G 1 2 3 4 5 6 7 8 9 10 11 12 E qua v v v Vy v v v Vy v v v Vy GL Eos 3 NNNNNAS 11 12 EES mna Vy v v v Vy v v v vy v v v On the equivalence of vertex orderings modulo the number of backward edges per cycle 223 6 1 2 The fact that the new correspondence is valid with respect to the vertices is fairly obvious With respect to the edges it suffices to notice that the edges of G may also be obtained from the edges of Gz simply be moving the ends of the edges incident on vertices v or y together with them when the vertices are interchanged The possible situations are illustrated in the figure below assuming there are no self loops The resulting edges after this transformation are always valid Gr b k k l b k k l k k l b k k l b L dB Vj Va e Vi Vj Vi Acan Vi Vj e Va 0 lt k b lt n 1 a i j 0 lt b k I lt n 1 eai j Gir b k k l b k k l k k l b k k l b E LS RTR Vi en Vj Vi Va 1 lt k 1 b lt n 1 lt b k lt n 6 1 3 A situation that is not represented above has to do with self loops that originate edges ye Or w veo in Gr However it s obvious that after the transformation the resulting edges v v or v vj are valid in Gz 6 1 4 Hence the correspondence from G to Gz i
118. 80 aplicada rela o T e equivale no o de conflu ncia de arestas edge confluence de AWH92 Qualquer das no es de conflu ncia ou determinismo pode se aplicar equivalentemente ao conjunto R de regras possivelmente acompanhado de um conjunto P de prioridades ao processamento do conjunto R de regras ao grafo de execu o de R ou rela o bin ria 77 de transi es de estado causadas pela regras de R Verificam se obviamente as seguintes rela es entre as no es apresentadas i determinismo em sentido forte gt determinismo em sentido fraco ii conflu ncia determinismo em sentido fraco iii conflu ncia conflu ncia local Se o conjunto R de regras terminante o que equivale a dizer que n o existem caminhos infinitos no grafo de execu o verificam se as implica es em sentido contr rio A 1 bvia A 2 referida a seguir ao lema 2 2 de H80 A 3 corresponde ao lema 2 4 de H80 Assim se R terminante as quatro no es apresentadas de determinismo e conflu ncia equivalem se A figura seguinte apresenta alguns exemplos r se 82 r r2 F2 h F2 r2 r2 F2 r s3 837 84 s3 S4 s3 s4 terminante terminante n o terminante n o terminante n o determin stico determin stico determin stico s em n o determin stico n o confluente confluente sentido fraco n o confluente n o confluente Fig 6 2 Exemplos de grafos de execu o com diferentes propriedades de t
119. 9 10 mal S oq 5 Z 1 S 0 5 10 15 20 25 a 0 5 10 15 20 25 number of vertices number of vertices Fig El Average performance of the procedure Fig E2 Number of cycles per graph as a used to count the cycles as a function of the function of the number of vertices in number of vertices in experiment 1 experiment 1 O experiment 1 1400 4 experiment 2 1200 drati on i linear regression qua ratic regression line a a a line 1000 is fas bo 52 800 H a a F 600 Sn 400 D O 200 0 0 5 10 15 20 25 30 0 10 20 30 40 50 number of vertices number of vertices Fig E3 Number of edges per graph as a function Fig E4 Number of edges per graph as a function of the number of vertices in experiment 1 of the number of vertices in experiment 2 An algorithm to find feedback edge sets with on edge per cycle 209 100 experiment 1 100 9 80 exponential 9 80 experiment 2 Au regression line A Q O os 60 o 60 S s 40 40 Nn N E S a a S 20 S 20 bh bh 0 0 oO oO O o oO oO O O N mMm N oO number of vertices number of vertices Fig E5 Percentage of graphs with a CPVO asa Fig E6 Percentage of graphs with a CPVO as a function of the number of vertices in experiment function of the number of vertices in experiment 1 2 10000 A experiment 3 1000 exponential regression line 100 10 0 1 0 01 0 001 0 0001 sec call to COUNTCYCLES 5 10 15 20 25 number of vertices Fig
120. E7 Performance of the procedure used to count the cycles as a function of the number of vertices in experiment 3 ANEXO 2 On the equivalence of vertex orderings modulo the number of backward edges per cycle On the equivalence of vertex orderings modulo the number of backward edges per cycle Jo o Carlos Pascoal Faria Abstract It is analyzed the equivalence called o eguivalence between orderings of the vertices of a directed graph G V E modulo the number of backward edges induced in each cycle of G a equivalence is also defined with respect to undirected graphs by fixing an arbitrary orientation to each cycle Itis shown that two orderings of the vertices of a directed graph undirected graph respectively are O equivalent if and only if one of them may be obtained from the other by rotation or by interchanging consecutive vertices not joined by a cyclic edge by any edge respectively Edge transformations insertions and removals that preserve c equivalence between vertex orderings are identified Using an undirected graph to represent the relationship don t commute between equations in a system of equations solved iteratively it is shown that the maximum number of iterations required by different a equivalent orderings differ at most by a number of iterations equal to the distance between any two connected equations 1 Definitions Definition 1 backward and forward edges Given an ordering L of the vertices of a direct
121. E93 EGS93 F90 F93a F93b F93c FLMB95 FR91 FV99 Refer ncias Stefano Ceri e Jennifer Widom Deriving Production Rules for Deductive Data In Information Systems vol 19 n 6 pp 467 490 Elsevier Science Ltd 1994 Stefano Ceri e Jennifer Widom Standards and Commercial Systems In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 232 258 Morgan Kaufmann 1996 Umeshwar Dayal Active Database Management Systems In Proceedings of the Third International Conference on Data and Knowledge Bases Israel Junho de 1988 C J Date An Introduction to Database Systems 6 edi o Addison Wesley 1995 Umeshwar Dayal Alejandro Buchmann e Sharma Chakravarthy The HiPAC Project In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 175 206 Morgan Kaufmann 1996 Klaus Dittrich Stella Gatziu e Andreas Geppert The Active Database Management System Manifesto A Rulebase of ADBMS Features In Proceedings of the Second International Workshop on Rules in Database Systems pp 317 Atenas Gr cia Setembro de 1995 Opher Eztion PARDES A Data Driven Oriented Active Database Model In SIGMOD RECORD vol 22 n 1 pp 7 14 Mar o de 1993 Opher Eztion Avigdor Gal e Arie Segev Data Driven and Temporal Rules in PARDES In Proceedings of the First International Workshop on Rule
122. E95 GJ91 GJ96 GR93 H80 H91 H92 H96 1889 K97 KMC98 KR88 M97 MFR89 Refer ncias 181 Avigdor Gal TALE A Temporal Active Language and Execution Model Research Thesis Technion Israel Institute of Technology Haifa Israel Maio de 1995 Avigdor Gal and Opher Eztion Maintaining Data driven Rules in Databases In JEEE Computer 28 1 28 38 Janeiro de 1995 Narain Gehani H V Jagadish Ode as an Active Database Constraints and Triggers In Proceedings of the 17 International Conference on Very large Data Bases pp 327 336 Barcelona Setembro de 1991 Narain Gehani H V Jagadish Active Database Facilities in Ode In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 207 232 Morgan Kaufmann 1996 Jim Gray e Andreas Reuter Transaction Processing Concepts and Techniques Morgan Kaufmann 1993 G rard Huet Confluent Reductions Abstract Porperties and Applications to Term Rewriting Systems In Journal of the ACM vol 27 n 4 pp 797 821 Outubro de 1980 Scott E Hudson Incremental Attribute Evaluation A Flexible Algorithm for Lazy Update In ACM Transactions on Programming Languages and Systems vol 13 n 3 pp 315 341 Julho de 1991 Eric N Hanson Rule condition testing and action execution in Ariel In Proceedings of the ACM SIGMOD International Conference on the Management of Data pp 49
123. G e nenhum caminho em sentido contr rio ent o deve ser num u gt num v 2 inverter um conjunto m nimo de arestas de G diz se que uma aresta uy invertida quando num u lt num v 3 inverter um conjunto m nimo de prioridades de v rtices de G diz se que ocorre uma invers o de prioridade quando num u lt num v e priority u gt priority v No caso de G ser ac clico a aplica o do 1 crit rio corresponde a numerar os v rtices por ordem topol gica inversa No caso de G ser c clico uma forma eficiente de satisfazer a este crit rio atrav s 144 Implementa o de um motor de regras activas dirigidas pelos dados da ordena o dos v rtices por ordem topol gica de componentes fortemente conexos CFC s conforme foi referido no cap tulo 5 e confirmaremos a seguir Ver exemplos nas figuras 5 1 e 5 2 O 1 e 2 crit rio complementam se sem contradi o e equivalem se quando G ac clico Quando G tem ciclos o 2 crit rio serve para ordenar os v rtices dentro de cada CFC n o trivial Se for escolhida uma ordena o dos v rtices por ordem topol gica de CFC s para satisfazer ao 1 crit rio o 2 crit rio pode ser aplicado eficientemente em tempo linear ao mesmo tempo que se obt m os CFC s conforme veremos a seguir Se for escolhida uma ordena o dos v rtices por ordem topol gica de CFC s para satisfazer ao 1 crit rio o 3 crit rio pode ser aplicado de uma forma local que pode n o
124. Introduction to Active Database Systems In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 1 41 Morgan Kaufmann 1996 Jennifer Widom e Sheldon Finkelstein Set Oriented Production Rules in Relational Database Systems In Proceedings of the ACM SIGMOD International Conference on the Management of Data pp 259 270 1990 Carlo Zaniolo Stefano Ceri Christos Faloutsos Richard T Snodgrass V S Subrahmanian e Roberto Zicari Advanced Database Systems Morgan Kaufmann 1997 ANEXO 1 An algorithm to find feedback edge sets with one edge per cycle An algorithm to find feedback edge sets with one edge per cycle Jo o Carlos Pascoal Faria Abstract An algorithm is presented to check if a directed graph has a feedback edge set with only one edge per cycle and if so produce it without actually computing the cycles The topological order of the vertices of the reduced graph without the feedback edges is called a cycle preserving vertex order CPVO CPVO s are important for efficient bottom up fixpoint evaluation of logic programs 1 It is shown that the worst case running time of the algorithm is of the same order as the time needed to find all the cycles Several conditions are identified under which expensive steps of the algorithm can be avoided leading to a polynomial execution time in many cases including the case of reducible flow graphs Results of experiments with
125. JO O CARLOS PASCOAL DE FARIA Regras Activas Dirigidas pelos Dados para a Manuten o de Restri es de Integridade e Dados Derivados em Aplica es Interactivas de Bases de Dados FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO 1999 Regras Activas Dirigidas pelos Dados para a Manuten o de Restri es de Integridade e Dados Derivados em Aplica es Interactivas de Bases de Dados Jo o Carlos Pascoal de Faria Disserta o apresentada Faculdade de Engenharia da Universidade do Porto para a obten o do grau de Doutor em Engenharia Electrot cnica e de Computadores Investiga o desenvolvida na Faculdade de Engenharia da Universidade do Porto e no Instituto de Engenharia de Sistemas e Computadores do Porto sob a orienta o do Doutor Raul Fernando de Almeida Moreira Vidal Professor Associado da Faculdade de Engenharia da Universidade do Porto Faculdade de Engenharia da Universidade do Porto Setembro de 1999 O programa de investiga o apresentado nesta disserta o foi apoiado pelo programa PRODEP medida 4 2 ac o de forma o 12 9 4 Resumo Uma regra activa ou gatilho trigger um terno evento condi o ac o com o seguinte significado se o evento ocorrer avaliar a condi o e se esta for verdadeira executar a ac o O termo regra activa surgiu na rea das bases de dados activas onde as regras activas s o usadas para a imposi o de restri es de integridade est tica nos est
126. Mas atendendo exist ncia da regra r2 um crit rio de activa o seguro tem de atender ao efeito l quido completo pelo que seria necess rio acrescentar update y lista de eventos anterior Note se que se excluem os eventos gerados por r1 ou por regras executadas de forma encaixada neste caso r2 durante a execu o de r1 Considere se um registo com estado inicial x y 0 0 Este estado consistente com a regra r2 e tamb m consistente com a regra r1 porque o efeito l quido da aplica o de r1 a partir desse estado nulo o estado final coincide com o estado inicial apesar da execu o de r1 causar uma altera o de estado que contrariada por r2 Suponhamos agora que submetido o seguinte comando do utilizador ul update t set y 1 em que t uma tabela do tipo t No caso do registo com estado inicial x y 0 0 o comando do utilizador gera uma opera o de actualiza o intra registo em que o estado passa para 0 1 a regra r2 executada imediatamente mas sem qualquer efeito No final da actualiza o de toda a tabela pelo comando do 120 Refinamentos para o tratamento de dados complexos utilizador executada a regra r1 No caso do registo referido a regra r1 gera uma opera o de actualiza o intra registo em que o estado passa de 0 1 para 1 1 a regra r2 executada imediatamente mas sem qualquer efeito Esta situa o esquematizada no seguinte grafo de execu o instanciado
127. NST NCIAS sssen co asoseecoeaim ge sosssuscebasuads sonsadssnendvbaaiewueasvenaubdunneta 116 7 3 1 Imposi o de restri es intra objecto atrav s de regras intra objecto puras 116 7 3 2 Imposi o de restri es inter objecto atrav s de regras intra objecto parciais 122 7 3 3 Imposi o de restri es inter objecto que interessam a parte dos objectos ENVOVIDOS F252 5 5 35 ini de ch il ndo do DD e e ace Rio a GEL SA A ease Seeote aay 123 8 IMPLEMENTA O DE UM MOTOR DE REGRAS ACTIVAS DIRIGIDAS PELOS DADO Spina sos isaer itisto stories rod paia a a a pa 125 8 1 ARQUITECTURA L GICA sisiecsscsistedestes aeaa a aa arepa Pesek asi Ucla na ba dee nah dC vabstedscasaetuensy e 125 8 2 M DULO DE DEFINI O DE REGRAS RULEDEF ccccerecerereaeeeeaaeaaaaeaaaaeaaaaaeanasanananaa 126 8 2 1 Meta class Class 4 onnenn annso RATE cecdava KETENE caaeaage aches 127 8 2 2 Meta classe Attribute ccccccccscccccncnsnsneneneneneneneneneneneneneneneneneneneneneneneneceneneseneneess 127 8 2 3 Meta classe RPP sevssctets ccacveck sects E A ea og cdeueesbegectned sdcusnacegeniass aa SEEE 127 8 2A Meta classec Rule ss nah vesetoevscgveuastenehondadecoaaguowabceneccbeas donde nbeeuetnbansuvae REU aninha 128 8 2 5 Associa o Rule Precedence reeniro aen e e oE ae E EERE ta EREE Sea RE etok 129 8 2 6 Associa es Reads e Writes inoen ii ee ier aer Eiee aRar ati 129 8 2 7 Associa es On RPP e On Modify Att
128. Neste cap tulo discutem se refinamentos abordagem introduzida no cap tulo 3 e prosseguida nos cap tulos seguintes necess rios para a manuten o eficaz de dados derivados e restri es de integridade em formul rios de ecr e outros interfaces para o utilizador presentes em aplica es interactivas de bases de dados com uma estrutura de dados complexa atrav s de regras activas dirigidas pelos dados com sem ntica de ponto fixo Esses refinamentos consistem principalmente na adapta o abordagem preconizada no cap tulo 3 de solu es encontradas noutros sistemas de regras activas 7 1 Introdu o O modelo de regras introduzido no cap tulo 3 baseia se num modelo de dados simples e gen rico em que os dados s o representados abstractamente por vari veis de estado at micas ou tratadas como tal para efeito do processamento e an lise de regras Esse modelo de regras adequado sem mais refinamentos para a manuten o de restri es de integridade e dados derivados em formul rios de ecr uni registo contendo uma segu ncia simples de campos at micos e outros interfaces para o utilizador igualmente simples No entanto os formul rios de ecr e outros interfaces para o utilizador que aparecem em aplica es interactivas de base de dados t m frequentemente uma estrutura mais complexa geralmente hier rquica S o frequentes formul rios e relat rios com uma estrutura de dados tabular contendo um conjunto de registos
129. Pasta Arquivo A4 1 1 99 e ufa Fig 2 1 Exemplo de tabela hier rquica com agrupamentos S o suportados relat rios matriciais matrix reports ou crosstab reports com totais marginais tanto na vertical como na horizontal resultantes de agrupamentos de egistos nas duas direc es possivelmente com v rios n veis de agrupamento em cada direc o No modelo de dados de um relat rio matricial criado um grupo especial cross product group correspondente ao produto cartesiano cross product dos grupos horizontais e verticais ou seja correspondente aos cruzamentos de linhas com colunas No caso de um relat rio com m ltiplas interroga es multiple query podem estabelecer se liga es data links entre colunas das diferentes interroga es semelhantes s rela es mestre detalhe que se estabelecem entre diferentes blocos de dados de um formul rio Tal como um formul rio um relat rio pode ter par metros Os par metros podem ser definidos pelo sistema ou pelo utilizador programador Um relat rio com par metros pode ter um formul rio associado parameter form para a introdu o dos valores dos par metros pelo utilizador final Conforme observado em M97 as defini es de relat rios e formul rios tendem a fundir se E poss vel tornar os relat rios interactivos at um certo grau e poss vel efectuar formata es relativamente sofisticadas nos formul rios 2 2 1 3 Graficos Um gr
130. Pegando Lab SA eA able aa DRA orgia ale iam pls Ra o ARA 18 2 3 1 Restri es de integridade declarativas em SQL 92 rea 18 2 3 2 Ganhos em SOE sesta sap es tis Sosesa A berths disseste ees eae 21 23 3 Gratilhos EM Oracles eases soos5s esis use Seseeaks a E 23 2 3 4 Regras activas no sistema Starbust cccecececececececececececeeeceeeeeeeeeceeeeeeeeeeeeeeeenenens 25 2 3 5 Regras dirigidas pelos dados no projecto PARDES 27 2 3 6 Restri es e gatilhos no sistema Ode ccececececececececeeececeeeeecececeeeeeeeeeeeeeeeeneeeeeeenens 30 2 4 CONCLUS ES is caro saias ra ES ER AS NAS STO SO DE PD AS 35 3 REGRAS ACTIVAS DIRIGIDAS PELOS DADOS COM SEM NTICA DE PONTO FIXO EEEE E as vei A EEE E 37 3 1 INTRODU O nanan e a EE E sh sh O E E E Ra dam A DR E aas hands 37 3 1 1 Insufici ncia das abordagens puramente dirigidas por eventos eeeeeeseeeeeeeeeeeeees 38 3 1 2 Procura de abordagens dirigidas pelos dados erra 38 3 1 3 Abordagem preconizada crer a aee aeerereran a naaeneaearerenaaa 39 3 2 MODELO DE DADOS seu ucasentuin dois ie Deo e gia Saad Seek SU Gas bd aU A deeds a 39 3 3 DEFINI O DE REGRAS cccccsseececesseececeuseececeuseececeusencesessesceeeasnceeesseeceseasesecseaseneeseauenees 40 3 3 1 Defini o de regras de deriva o seses cccecreeeeeeeenenenenanenanananananananaa 40 3 3 2 Defini o de regras de restri o cccctl
131. RENCING NEW AS NewMov FOR EACH ROW UPDATE Artigo T quant actual quant actual NewMov quant entrada ERE codigo NewMov codigo artigo u D Fl TE TRIGGER propagaUpdMov TER UPDATE OF codigo_artigo quant_entrada ON Movimento FERENCING NEW AS NewMov OLD AS OldMov R EACH ROW GIN ATOMIC UPDATE Artigo T quant actual quant actual OldMov quant entrada ERE codigo OldMov codigo artigo E Artigo T quant actual quant actual NewMov quant entrada ERE codigo NewMov codigo artigo wW j wW Pa Hy CREATE TRIGGER propagaDelMov AFTER DELETE ON Movimento R F EFERENCING OLD AS OldMov OR EACH ROW UPDATE Artigo ET quant_actual quant_actual OldMov quant_entrada WHERE codigo OldMov codigo artigo 2 3 3 Gatilhos em Oracle8 A descri o que se segue baseada na consulta da documenta o online do Oracle8 Server SQL Reference Release 8 0 A sintaxe da defini o de um gatilho indicada na figura seguinte 24 Revis o do estado da arte Fig 2 2 Sintaxe da defini o de um gatilho no Oracle8 As principais diferen as em rela o a SQL3 s o e Um gatilho pode monitorar v rias opera es sobre a mesma tabela e Quando um gatilho monitora ma
132. TAL Lie ins LINHAS_FACTURA E Le del LINHAS_FACTURA L Le upd LINHAS_FACTURA Para a imposi o incremental da restri o R2 c lculo do pre o total de cada linha pode escrever se a seguinte regra incremental roi V Le ins LINHAS_FACTURA U upd LINHAS_FACTURA L PRECO_TOTAL L PRECO_UNITARIO L QUANTIDADE Para a imposi o incremental da restri o R4 aus ncia de duas linhas com o mesmo c digo de artigo pode escrever se a seguinte regra incremental ra V L ins LINHAS FACTURA U upd LINHAS FACTURA GL LINHAS FACTURA LL A Lo C DIGO ARTIGO L C DIGO ARTIGO gt e true Refinamentos para o tratamento de dados complexos 115 Exemplo Suponhamos que o pre o total de cada linha da factura acrescido de IVA taxa indicada num campo TAXA IVA do cabe alho da factura da seguinte forma r z VLe LINHAS FACTURA L PRE O TOTAL L PRE O UNIT RIO L QUANTIDADE 1 TAXA IVA Neste caso a altera o de TAXA IVA obriga a recalcular o pre o total para todas as linhas de forma n o incremental Se for poss vel no corpo da regra testar se TAXA IVA foi alterado poss vel tratar todos os casos numa nica regra como em r o VL e LINHAS FACTURA updated TAXA IVA v Le ins LINHAS FACTURA O upd LINHAS FACTURA L PRE O TOTAL L PRE O UNIT RIO L QUANTIDADE 1 TAXA IVA Em alternativa podem se ter duas regras uma incremental e outra n o increm
133. TG is identical to the RRDDG If some triggering variables are eliminated due to further information the TG may have fewer edges Consequently if the RRDDG is acyclic i e if the rule set R contains no recursive or conflicting rules rule processing always terminates for any initial state and any order of rule execution 7 2 Improved termination analysis based on the activation graph Let s define the activation graph AG for a rule set R in the following way e The vertices of the AG are the rules in R e A directed edge r r with izj in the AG means that r may activate r in the sense that the execution of r in a fixpoint for r may produce a state that s not a fixpoint for r e A self loop r gt r in the AG means that r is not self disactivating in the sense that the final state at the end of r execution may be not a fixpoint for r In other words r is not idempotent See an example of an AG in appendix A 236 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases It can be shown that if the AG of a rule set R is acyclic and the net effect requirement is satisfied then rule processing always terminates for any initial state and any order of rule execution 11 The net effect requirement is important to ensure the termination of rule processing after a fixpoint for all the rules has been reached with at most one extra execution of each rule Since the ed
134. TH ONE EDGE PER CYCLE wisiccsncnsnsscetess nastcssunucsietasuuncaisesnuchesdsiepeisodevstsisenenchinse a co da 181 ANEXO 2 ON THE EQUIVALENCE OF VERTEX ORDERINGS MODULO THE NUMBER OF BACKWARD EDGES PER CYCLE ccesereesemeneos 211 ANEXO 3 DATA DRIVEN ACTIVE RULES FOR THE MAINTENANCE OF DERIVED DATA AND INTEGRITY CONSTRAINTS IN USER INTERFACES TO DATABASES ssccssssssssssssssscccsssssccsessssssssosssssesees 227 Lista de Abreviaturas Do Tom BD Base de Dados DB Database Sistema de Gest o de Bases de Database Management System Dados Sistema de Gest o de Bases de Active Database Management Dados Activo System SGBDOO Sistema de Gest o de Bases de OODBMS Object Oriented Database Dados Orientado a Objectos Management System Sistema de Gest o do Interface User Interface Management com o Utilizador System Desenvolvimento R pido de Rapid Application Development Aplica es Ponto de Processamento de Rule Processing Point Regras Componente Fortemente Strongly Connected Component Conexo de um grafo dirigido regra Evento Condi o Ac o ECA Event Condition Action rule regra Evento Ac o EA Event Action rule regra Condi o Ac o CA Condition Action rule 1 Introdu o 1 1 Motiva o Uma aplica o interactiva de bases dados um programa de computador que permite a um utilizador visualizar e manipular dados armazenados numa ou ma
135. a Uma vez que os CFC s de um grafo G V E podem ser obtidos por ordem topol gica em tempo linear no tamanho do grafo isto em tempo O IVI IEI usando por exemplo um algoritmo como o apresentado em RNN77 a ordena o dos v rtices de um grafo por ordem topol gica de CFC s pode tamb m ser feita em tempo O IVI IEI A execu o de regras dirigidas pelos dados por ordem topol gica do grafo de depend ncias rv tamb m proposta no projecto PARDES mas a n o surgem ciclos Regras dedutivas tamb m s o habitualmente executadas por ordem topol gica de CFC s RSS90 No caso de se pretender combinar o crit rio 5 1 com outros crit rios como normalmente o caso n o conv m fixar uma ordem total com base neste crit rio apenas 5 2 2 Ordena o de regras mutuamente recursivas Regras mutuamente recursivas pertencentes a CFC s n o triviais do grafo r r n o s o ordenadas pelo crit rio 5 1 Nas sec es seguintes descrevem se diversas heur sticas que podem ser usadas isoladamente ou de forma combinada para ordenar tais regras por forma a dispensar na maior parte dos casos a defini o de prioridades absolutas ou relativas pelo pr prio programador 5 3 Preserva o das altera es produzidas pelo utilizador 5 3 1 Preserva o das altera es produzidas na mesma transac o Conforme j foi referido as vari veis alteradas pelo utilizador numa dada transac o podem ser de novo alteradas no processamento
136. a o Considera se um nico tipo de opera o de actualiza o a atribui o de um novo valor que substitui o antigo e consequentemente um nico tipo de evento de altera o a atribui o de um valor diferente do antigo No caso de vari veis de estado que representam dados complexos essa simplifica o insatisfat ria Com base no conhecimento est tico das formas ou opera es especializadas por que as vari veis de estado s o consultadas e actualizados por cada regra e na monitoriza o din mica de eventos especializados de altera o do estado dessas vari veis de estado poss vel definir crit rios de activa o mais precisos e satisfat rios Isso ilustrado a seguir atrav s de exemplos para alguns casos importantes Os crit rios de ordena o definidos no cap tulo 5 e as t cnicas de an lise de termina o e determinismo definidas no cap tulo 6 continuam aplic veis Para a an lise de determinismo s o teis as condi es suficientes de comutatividade de regras que manipulam conjuntos indicadas em AWH92 e AHW95 7 2 1 1 Caso de regras que manipulam conjuntos No caso de conjuntos interessa dividir as opera es de actualiza o e os eventos de altera o de dados correspondentes nos seguintes tipos e opera es que apenas inserem elementos no conjunto opera es que apenas eliminam elementos do conjunto opera es que podem inserir e eliminar elementos Exemplo Seja o conj
137. a o Enquadra se aqui o caso em que as regras t m vari veis de sa da comuns uma vez que se sup e que as regras s o auto recursivas a exist ncia de vari veis de sa da comuns implica a exist ncia de arestas nos dois sentidos no grafo r r A compara o de sequ ncias de execu o de pares de regras permite comparar diferentes ordena es do conjunto de regras como mostra o seguinte exemplo Exemplo Seja um conjunto de regras recursivas mon tonas a que correspondem os seguintes grafos r v e grafo r r com arestas que ligam regras diferentes etiquetadas RE 76 Ordena o das regras Sejam as ordena es O r r2r3 e O2 r r3r2 As duas ordena es diferem pela troca de posi es de r e r2 Uma vez que estas duas regras est o ligadas apenas por uma aresta dirigida de r para r3 no grafo r r a ordena o O pior do que O Por outras palavras poss vel melhorar O trocando as posi es das regras r e r2 pelas raz es apontadas obtendo se ent o O Em QO j n o poss vel efectuar mais trocas deste tipo Cada ordena o induz um conjunto de arestas de realimenta o no grafo r r conforme mostra a figura seguinte em que as arestas de realimenta o aparecem cortadas com um tra o Oi rirors Os rirsr Gb GSP ES ai ENG aresta de realimenta o evit vel al Conforme veremos a seguir O melhor do que O porque tem uma aresta de realimenta o que pode ser evitada 5 6 3 Ordena
138. a Para esse efeito algoritmos semelhantes aos apresentados seriam executados aquando da defini o das regras e n o aquando da execu o das regras Em tempo de execu o das regras poderia interessar continuar a combinar as prioridades relativas com prioridades num ricas din micas correspondentes estampa temporal de activa o das regras As vantagens seriam maior efici ncia e simplicidade em tempo de execu o possibilidade de aplicar algoritmos com melhores resultados mas mais pesados como o referido no anexo 1 a este documento o programador poderia consultar e refinar as prioridades geradas automaticamente Uma desvantagem seria o poss vel desaparecimento de algumas optimiza es para PPR s espec ficos 8 5 Ordena o dos v rtices de um grafo por ordem topol gica de componentes fortemente conexos minimizando invers es de arestas e de prioridades dos v rtices O problema de c lculo das prioridades num ricas din micas levantado na sec o 8 4 3 1 pode ser formulado da seguinte forma gen rica Problema 8 1 Dado um grafo dirigido G V E em que cada v rtice ve V tem uma prioridade priority v associada n o necessariamente nica i e podem existir dois v rtices com a mesma prioridade atribuir um n mero nico num v a cada v rtice veV o que equivale a obter uma ordena o total das regras de acordo com os seguintes crit rios dispostos por for as decrescentes 1 se existe um caminho de u para v em
139. a closed path is a cycle or a combination of cycles Summing up the number of backward edges induced by L in each of the composing cycles we get the number of backward edges induced by L in the closed path Multiplying by n the number of vertices in G we get the difference between the superscripts of the corresponding vertices in P because a backward edge in G corresponds to an edge in Gs that crosses the barrier between two iterations With respect to the foregoing example we may rewrite P vi v2 v33 v4 v v33 with q 1 q2 3 q3 6 and q4 8 because the cycle v v2 V3 v4 v has two backward edges induced by L the edges v2 v3 and v4 v and the cycle vs v4 Vp v3 has one backward edge induced by L the edge v4 v 3 4 7 Let Pr be defined in a way similar to Pz with respect to L instead of L Since L induces the same number of backward edges per cycle as L Py differs from P only in the way of fixing the values of the g s lt Si lt n With respect to the foregoing example we get P v v V3 v vi v3 which is the same as Py vi vo vas vas vj v33 with q 2 92 5 q 7 and q 8 3 4 8 We choose d I lt i lt n as the increment on the value of q from P to P With respect to the foregoing example we get d 1 amp 2 d 1 and d 0 Now we prove that this correspondence has the required properties All the occurrences of edges of S in Gz are of the form vf v Re where v vj
140. a d o o efeito l quido de sequ ncias de altera es 7 2 3 1 Regras incrementais que manipulam conjuntos Para cada vari vel de estado x que representa um conjunto o incremento entre um estado passado denotado por old x e o estado corrente denotado por x pode ser dado por duas vari veis delta Atx x old x elementos inseridos em x em termos l quidos i e cont m os elementos inseridos que n o foram posteriormente eliminados Ax old x x elementos eliminados de x em termos liquidos i e cont m os elementos eliminados que nao foram posteriormente reinseridos Exemplo Seja a seguinte regra de deriva o n o incremental que atribui a uma vari vel y o somat rio dos valores de um conjunto x rj y 3 i IEX A regra incremental correspondente ri y old y Ria Atx i E Mss Ay x i Da primeira vez que a regra executada na transac o em que a regra criada o estado no in cio da transac o pode n o ser consistente com r a n o ser que a regra seja criada quando as vari veis de estado t m um estado especial como por exemplo y 0 e x Assim a forma n o incremental pode ser necess ria para a 1 execu o Ap s muitas altera es a forma incremental tamb m pode ser menos eficiente do que a forma n o incremental Refinamentos para o tratamento de dados complexos 113 Se y s actualizado por esta regra e o estado passado referenciado o estado no fim da ltima execu o da
141. a de n vel de topo e duas sub vistas sobre a mesma tabela para a introdu o das listas acima referidas Arquivo Editar Registos Janelas Desenvolvimento Ajuda Macros S a Ae lt mjejalmiv im m uj ofo 0 pe es cs Factura ile xi amp Regras de Vistas Of x gt vista num ambito modos descricao factura Facttot rsum linfact Lfprtot linfact factura he Factdata gt today then undo data da factura n o pode ser posterior data actual flinfact if Lfpruni lt 0 then undo 0 pre o unit rio n o pode ser negativo flinfact z Lfpruni Lfquant tvista precedida regra precedida tyista_precedente regra precedente Reg 2 de 4 Fig 9 1 Regras definidas pelo programador para impor algumas restri es da fig 7 3 relativamente ao formul rio da fig 7 1 As restantes restri es s o mantidas por regras geradas automaticamente Integra o numa ferramenta de desenvolvimento de aplica es 167 9 3 1 Linguagem de regras e comandos N o se pretende fazer aqui uma descri o completa desta linguagem a qual se pode encontrar numa vers o antiga em F93c mas apenas salientar alguns aspectos da sua concep o e aspectos sint cticos descritos informalmente que permitem a apresenta o de regras escritas nesta linguagem A linguagem de regras e comandos permite definir express es com constantes operadores vari vei
142. a express o para todos os registos da vista ignorando os registos em que d valor nulo rmax exp vi Obt m o valor m nimo da express o para todos os registos da vista ignorando os registos em que d valor nulo rcount exp vista Obt m o n mero de registos da vista em que a express o n o tem valor nulo A fun o numrec vista retorna o n mero de registos existentes numa vista A fun o modo vista retorna um caracter que designa o modo em que se encontra uma vista ou o registo corrente dessa vista com o significado indicado no quadro seguinte Estado da vista Estado do registo corrente interrogar Est em curso a edi o do registo de crit rio Est em curso a edi o de registos de eliminado pendente dados Fra fa modificar seleccionado ou modificado 170 Integra o numa ferramenta de desenvolvimento de aplica es Esta fun o til para usar na condi o das regras em alternativa ou em conjuga o com a utiliza o da propriedade modos 9 3 1 2 Fun es de manipula o da base de dados A fun o sql executa um comando SQL Tem a seguinte sintaxe sql string par metros express o O 1 argumento uma string com uma express o em SQL din mico embebido em C R98 A express o pode ter par metros tamb m chamados vari veis indicados com identificador em SQL 92 o nome usado irrelevante apenas a posi o conta
143. a o utilizador para recolher dados automaticamente de fontes externas a intervalos de tempo regulares etc Para suportar regras deste tipo a data e hora actuais podem ser representadas por uma ou mais vari veis de estado que s o actualizadas periodicamente atrav s de alarmes ou temporizadores A nica restri o que se imp e tal como acontece em rela o s actualiza es causadas pelo utilizador que essas vari veis de estado n o devem ser actualizadas durante o processamento de regras 4 Activa o das regras Neste cap tulo desenvolvem se os crit rios de activa o das regras definidas no cap tulo anterior isto os eventos que as activam e desactivam os quais se enquadram numa vis o din mica das regras como sistemas reactivos Esses crit rios s o baseados num levantamento pr vio das depend ncias de entrada e sa da de dados existentes entre as regras e as vari veis de estado que correspondem a uma vis o funcional das regras como sistemas de transforma o de dados 4 1 Depend ncias entre regras e vari veis 4 1 1 Vari veis de entrada e vari veis de sa da de uma regra As vari veis cujo valor consultado lido por uma regra r s o chamadas vari veis de entrada de r ou simplesmente entradas de r As vari veis cujo valor actualizado escrito por uma regra r s o chamadas vari veis de sa da de r ou simplesmente sa das de r Utiliza se a seguinte nota o i vars r conjunto de vari veis
144. a trivial SCC of level 2 It has a single in gate of level 1 The argument is similar as for H see the proof of theorem 9 except that the paths from s traverse r in case they are different The incoming edges may be cut according to theorem 7 The same reasoning applies recursively to nested SCC s A 7 Implementation and performance results A detailed algorithm CPSORT in structured pseudo code with space requirements of order O IVI IEI was derived directly from algorithm 1c see Appendix D and then implemented in C In order to estimate the average and worst case performance of CPSORT three experiments were conducted The experiments run in a Sun4c machine running SunOS and the prof utility was used to measure the average time spent per call to CPSORT In the first experiment the following algorithm was used to generate strongly connected graphs of moderate density at random Algorithm 3 generate a random strongly connected graph with n vertices and d expected out degree per vertex 1 Initialize the vertex set V with the set of numbers 2 n 2 Repeat the following until a strongly connected graph G V E has been generated 2 1 Initialize the edge set E with the empty set 2 2 For each vertex u of V repeat the following until u has at least an outgoing edge 2 2 1 For each vertex v of V distinct from u generate a pseudo random number r and if r lies in an interval with probability d n add the edge u
145. a vari vel de estado adicional com o mesmo Refinamentos para o tratamento de dados complexos 111 nome da rela o ou com nome R I para evitar ambiguidades para representar o conjunto de identificadores de tuplos Esta abordagem igualmente v lida em rela o a classes de objectos com atributos Esta abordagem permite aumentar a precis o do grafo r v e consequentemente aumentar a efic cia dos crit rios de activa o e ordena o e das t cnicas de an lise de determinismo e termina o definidos nos cap tulos anteriores Note se que a inser o ou elimina o de um tuplo numa rela o R corresponde inser o ou elimina o de um tuplo em todas as rela es bin rias correspondentes aos atributos de R a menos que n o sejam representados tuplos com valores nulos nos atributos Em contrapartida na consulta e actualiza o de tuplos de R podem estar envolvidas apenas algumas dessas rela es bin rias Exemplo Relativamente ao formul rio da figura 7 1 pode desdobra se a vari vel de estado LINHAS FACTURA tabular nas seguintes vari veis de estado correspondentes s colunas da tabela C DIGO ARTIGO NOME ARTIGO QUANTIDADE PRE O UNIT RIO e PRE O TOTAL Com esta escolha de vari veis de estado obt m se o grafo r v anotado da figura 7 8 O grafo r r e de interfer ncias que se obt m a partir deste grafo rv coincide com o grafo da figura 7 7 b que mais preciso do que o obtido sem esta escolha de vari
146. a vista ser omitido ou ser o nome da vista a que a regra pertence a agrega o implicitamente efectuada por conjuntos de registos do n vel do campo do lado esquerdo o conceito de n vel explicado na sec o 9 2 4 atrav s de regras autom ticas indicadas na sec o 9 4 3 9 4 Regras geradas automaticamente S o geradas automaticamente algumas regras para a manuten o incremental das vistas A parte de ac o destas regras realizada por fun es em C codificadas na ferramenta por raz es de efici ncia As regras geradas automaticamente t m uma prioridade num rica mais alta do que a das regras definidas pelo programador atrav s da linguagem de regras e comandos 9 4 1 Regra de reinicializa o Para cada vista com par metros ligados bound a campos de vistas ascendentes conforme explicado na sec o 9 2 3 criada uma regra de reinicializa o da vista que activada quando modificado o valor de um desses campos ou o identificador do registo corrente atributo record current de uma dessas vistas 9 4 2 Regras de acesso por chave a tabelas da base de dados Para cada tabela da base de dados ou c pia l gica de tabela acedida para leitura tabela alvo e tabelas de extens o referidas na sec o 9 2 2 e ou acedida para verificar a integridade referencial criada uma regra de acesso pela chave prim ria que efectua a leitura e ou testa a integridade referencial e trata de locks S o tamb m criada
147. actura c digo fornecedor Fornecedor nome FROM Factura LEFT OUTER JOIN Fornecedor WHERE Factura c digo fornecedor Fornecedor c digo CREATE VIEW VLinFact c digo artigo nome artigo quantidade pre o unit rio AS SELECT LinFact c digo artigo Artigo nome LinFact quantidade LinFact pre o unit rio FROM LinFact LEFT OUTER JOIN Artigo WHERE LinFact n mero factura importO AND LinFact c digo artigo Artigo c digo Note se no entanto que o SAGA n o usa a facilidade de defini o de vistas em SQL Em vez disso gera dinamicamente express es de selec o do tipo acima indicado reorganizadas de forma mais adequada a cada caso dependendo do SGBD usado e do crit rio de selec o definido pelo utilizador Para tornar as actualiza es mais eficientes por acesso directo e controlar os locks ao n vel do registo s o tamb m seleccionados os identificadores internos rowid dos registos da base de dados acedidos registo alvo e registos de extens o Os atributos da vista que armazenam os identificadores do registo alvo e dos registos de extens o s o designados pelo nome da tabela da base de dados seguido de um n mero de ordem para distinguir poss veis c pias l gicas de uma tabela 9 2 3 Vistas com sub vistas Uma vista pode ter sub vistas Por sua vez cada sub vista pode ter as suas pr prias sub sub vistas e assim sucessivamente Um exemplo simples o caso da vista de manuten o de facturas apresentada na
148. ada duas vezes consecutivas de forma n o produtiva Para incluir execu es de regras n o produtivas no grafo de execu o seria necess rio incluir tamb m o conjunto de regras activadas em cada estado de execu o E mais f cil garantir o determinismo quando est garantida a termina o do processamento de regras A propriedade de termina o do processamento de regras corresponde aus ncia de caminhos infinitos do grafo de execu o conforme se demonstra no lema seguinte Lema 6 5 O processamento de um conjunto R de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras se e s se o grafo de execu o correspondente a R n o tem caminhos infinitos Demonstra o Resulta dos lemas 6 4 e 6 1 Pelo lema 6 1 se o n mero de execu es de regras produtivas numa sequ ncia de execu o p o n mero de execu es de regras n o produtivas no m ximo n p n em que n o n mero de regras A Note se que os caminhos infinitos podem ser devidos a ciclos ou a um espa o de estados infinito A rela o bin ria 7 correspondente a um grafo dirigido sem caminhos infinitos o grafo de execu o tamb m chamada n o et rea noetherian H80 6 2 2 No es de determinismo e conflu ncia O grafo de execu o permite clarificar e relacionar no es importantes de determinismo e conflu ncia Um conjunto R de regras diz se determin stico em sentido fraco ou simplesmente de
149. ado coincide com a parte do grafo de execu o que cont m o estado inicial considerado e todos os estados que podem ser atingidos a partir dele As propriedades de termina o e determinismo podem ser analisadas com base no grafo de execu o parametrizado de acordo com os lemas seguintes Lema 6 6 Se o grafo de execu o parametrizado correspondente a um conjunto R de regras n o tem caminhos infinitos ent o o processamento de R termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras Demonstra o Os caminhos do grafo de execu o parametrizado mais precisamente as etiquetas das arestas que constituem esses caminhos intercalados possivelmente de algumas execu es de regras n o produtivas at um m ximo de IRI entre cada duas arestas de acordo com o lema 6 1 representam as poss veis sequ ncias de execu o de regras Assim se n o h caminhos infinitos no grafo de execu o parametrizado n o podem existir sequ ncias de execu o infinitas Note se que contrariamente ao que acontece no grafo de execu o algumas arestas do grafo de execu o parametrizado podem corresponder a execu es de regras n o produtivas para alguns valores dos par metros valores iniciais das vari veis de estado A Lema 6 7 Se o grafo de execu o parametrizado correspondente a um conjunto R de regras tem ciclos ent o o processamento de R n o termina para pelo menos um estado inicial e uma ordem de e
150. ado corrente da base de dados vistos por um gatilho seja uma fonte de problemas Por outro lado as estrat gias acima descritas podem impedir optimiza es muito importantes com por exemplo a execu o de todos os gatilhos FOR EACH ROW para cada linha afectada antes de passar linha seguinte Revis o do estado da arte 23 Apesar da ordem de execu o dos gatilhos estar bem definida o processamento dos gatilhos pode ser n o determin stico porque n o definida a ordem pela qualum gatilho FOR EACH ROW processa as linhas afectadas Em consequ ncia disso o estado final da base de dados ap s a execu o duma opera o de manipula o de dados que desencadeia a execu o de gatilhos pode depender n o s do estado inicial da base de ddos das restri es de integridade declarativas existentes dos gatilhos existentes e da ordem de defini o dos gatilhos mas tamb m da forma como o SGBD est implementado Exemplo Seja uma base de dados com o seguinte esquema relacional com chaves prim rias sublinhadas e refer ncias para outras tabelas indicadas por setas Artigo codigo nome quant inicial quant actual Movimento cidigo artigo gt Artigo data quant entrada Para manter actualizada a quantidade actual de cada artigo em face dos movimentos realizados em que quant entrada pode ser positivo ou negativo podem se definir os seguintes gatilhos CREATE TRIGGER propagaInsMov AFTER INSERT ON Movimento REFE
151. ado cujo valor final n o definido t m um valor final igual ao valor inicial as vari veis de estado cujo valor final definido condicionalmente t m um valor final igual ao valor inicial quando a condi o falsa Ver exemplos na figura 3 1 Ixl gt 100 gt E true regra de restri o reduzida a regra de deriva o 2 x y regra de deriva o incondicional y 1 gt w l regra de deriva o condicional u max x y v min x y regra de deriva o m ltipla y lyl E regra de deriva o recursiva x20 gt y x regras conflituosas a 1 b a c Ega c b a regras mutuamente recursivas Fig 3 1 Exemplo de um conjunto de regras destinado a ilustrar diversos tipos de regras Esta representa o tem diversas vantagens Em primeiro lugar para definir completamente a fun o de S em S correspondente a uma regra suficiente adicionar as seguintes condi es para cada vari vel v cujo estado final n o referenciado adicionar a condi o v v para cada vari vel y cujo estado final definido na forma condicional p Z gt y f X adicionar a condi o p Z y y em que representa a nega o l gica Exemplo Considerando um conjunto de vari veis de estado V x y z a regra rz da figura 3 1 pode ser estendida da seguinte forma roi Z xX ty Ay yAX X o que corresponde seguinte fun o no espa o de estados r2 S gt S x y z 15 Ys ZI G y x y Em segundo lu
152. ado por modos de acoplamento Por exemplo no sistema HiPAC DBC96 pode se definir um modo de acoplamento entre o evento e a condi o E C e outro modo de acoplamento entre a condi o e a ac o C A Em qualquer dos casos E C ou C A o modo de acoplamento pode ser imediato a avalia o da condi o ou a execu o da ac o conforme o caso ocorre imediatamente a seguir dentro da mesma transac o diferido ocorre no fim da transac o corrente desacoplado detached ocorre numa transac o separada subdividindo se em desacoplado dependente a transac o separada s lan ada se a transac o original for conclu da com sucesso desacoplado independente a transac o separada lan ada mesmo que a transac o original aborte Por exemplo para efeito da imposi o de restri es de integridade gen ricas conveniente um modo de acoplamento diferido entre o evento e a condi o e um modo de acoplamento imediato entre a condi o e a ac o Os sistemas de regras activas diferem no modo de tratar as seguintes situa es e Activa o m ltipla isto activa o de v rias regras pelo mesmo evento Algumas op es poss veis s o executar as v rias regras sequencialmente por uma ordem escolhida pelo sistema ou definida pelo utilizador atrav s de prioridades absolutas ou relativas esta a op o mais comum executar as v rias regras concorrentemente e Ac
153. ado que n o um ponto fixo de r um estado em que a execu o de r produtiva Por exemplo regras recursivas com condi es mutuamente exclusivas t m um grafo de activa o produtiva ac clico Em geral no entanto o grafo de activa o produtiva n o conhecido Conforme se ver no cap tulo 6 quando este grafo ac clico o n mero de execu es das regras no pior caso de ordem O 2 se for seguida uma ordem de execu o injusta e de ordem O n se for seguida uma ordem de execu o justa Uma vez que esta situa o relativamente frequente a ordem de execu o justa ser normalmente prefer vel 5 6 Ordena o de regras recursivas mon tonas 5 6 1 Regras recursivas mon tonas Suponhamos que as regras de um conjunto R de regras mutuamente recursivas obedecem seguinte propriedade de monotonia cada vez que uma regra r executada faz aproximar ou pelo menos n o faz afastar os valores das suas vari veis de sa da dos seus valores finais tanto mais quanto mais pr ximos os valores das vari veis de entrada estiverem dos seus valores finais o caso de conjuntos de regras que manipulam vari veis de estado que representam conjuntos ou rela es caso particular de conjuntos por deriva es do tipo y y U HXi Xn em que f representa uma fun o mon tona n o decrescente no sentido da inclus o de conjuntos em cada uma das vari veis de estado x Xn Deriva es deste tipo p
154. ado registo alvo e a cada registo da tabela alvo corresponde virtualmente n o necessariamente em forma materializada zero ou um registo da vista Um campo duma vista pode ter um campo alvo na base de dados que o campo da base de dados de onde s o seleccionados valores para o campo da vista O campo alvo pode ser da tabela alvo ou doutra tabela chamada tabela de extens o ou c pia l gica de tabela tratada tamb m como tabela de extens o Podem existir campos da vista sem campo alvo na base de dados normalmente s o campos calculados por regras Integra o numa ferramenta de desenvolvimento de aplica es 159 As condi es de jun o entre a tabela alvo e as tabelas de extens o s o determinadas automaticamente pelo SAGA com base no conhecimento das chaves prim rias e chaves estrangeiras das tabelas da base de dados conforme se explica a seguir Para cada tabela referenciada tabela alvo ou tabela de extens o determinada automaticamente uma chave de acesso para acesso chave prim ria da tabela constitu da por campos ou par metros da vista Os campos da vista escolhidos para o acesso chave prim ria da tabela alvo t m de ter como alvo campos correspondentes dessa chave prim ria Os campos da vista escolhidos para o acesso chave prim ria de uma tabela de extens o t m apenas de ter como alvo campos com a mesma raiz que os campos correspondentes dessa chave prim ria A raiz de um campo da base de dados
155. ados v lidos dos dados ou din mica nas transi es de estado v lidas para o c lculo autom tico de dados derivados calculados em fun o doutros para o controlo e registo de acessos para a imposi o de regras de neg cio etc Em alguns sistemas poss vel especificar prioridades absolutas ou relativas entre as regras que condicionam a sua ordem de execu o Uma aplica o interactiva de bases de dados um programa de computador que permite a um utilizador visualizar e manipular dados armazenados numa bases de dados atrav s de um interface com o utilizador baseado em formul rios relat rios e gr ficos Na rea de desenvolvimento r pido de aplica es de bases de dados tamb m se usam gatilhos mais limitados para a valida o e poss vel correc o dos dados introduzidos pelo utilizador para o c lculo autom tico de dados crivados por exemplo campos de formul rios ou relat rios calculados em fun o doutros campos para o controlo din mico de propriedades dos campos para a extens o e redefini o de comportamentos autom ticos embebidos nas ferramentas de desenvolvimento etc Uma regra activa dirigida pelos dados uma regra activa com eventos impl citos de um tipo restrito eventos de modifica o de dados que podem ser inferidos a partir da parte de condi o e ou da parte de ac o da regra segundo certos pressupostos As regras activas dirigidas pelos dados diferem das regras activas com evento
156. ais do que uma vari vel de estado como a regra r4 na figura 3 1 chamada regra de deriva o m ltipla por oposi o a simples Uma regra de deriva o m ltipla pode ter algumas deriva es condicionais e outras incondicionais A regra em si diz se condicional por oposi o a incondicional se contiver uma condi o n o universal comum a todas as deriva es que pode ser posta em evid ncia As regras condicionais podem ser expressas na forma condi o ac o No entanto diferentemente do que acontece habitualmente nos sistemas de regras activas que suportam regras do tipo condi o ac o como no sistema Ariel H92 n o existe aqui a obriga o de executar a ac o sempre que a condi o se verifica mas t o s quando a condi o verdadeira e a execu o da ac o pode resultar numa altera o de estado Regras que derivam valores para a mesma vari vel desejavelmente de forma n o contradit ria s o chamadas regras conflituosas Exemplos de regras conflituosas n o contradit rias e regras com condi es mutuamente exclusivas tais como ro x gt 0 gt 59y 1 e rye xsOay l e regras com ac es id nticas tais como rix x lt 0 gt true e riz y lt 0 gt true e regras com ac es cumulativas tais como FZ SZU e rg SZU 9 e regras que actualizam diferentes parti es da mesma vari vel de estado tais como rig 2 Z U fl e rm z z 2 supondo que z representa um conjunto
157. al a atribui o do valor da express o do lado direito vari vel do lado esquerdo e d como resultado o valor atribu do A express o expl exp2 express o de sequencia o tem significado semelhante express o expl exp2 em C As express es s o avaliadas da esquerda para a direita e o resultado o valor da ltima express o avaliada A linguagem de regras e comandos partilha com o motor de regras as meta classes Class e Attribute ver sec o 8 2 As vari veis da linguagem de regras e comandos correspondem aos atributos globais ou intra objecto definidos na meta classe Attribute Uma vez que nem todas as classes e atributos devem ser controlados atrav s do motor de regras introduzida a distin o entre classes e atributos activos e passivos S os primeiros interessam ao motor de regras Tanto as vistas da aplica o como as tabelas da base de dados s o representadas por classes na meta classe Class Uma vez que podem existir vistas com o mesmo nome de tabelas da base de dados os nomes de tabelas da base de dados s o precedidos do caracter As tabelas da base de dados s o consideradas passivas e as vistas s o consideradas activas Podem se usar vari veis auxiliares sem tipo e sem declara o pr via que s o tratadas como atributos passivos globais de uma classe excepto de uma tabela da base de dados Um atributo pode ser referenciado pelo nome do atributo quando a classe impl cita ou pelo nome
158. al cycles inextcycle v w lt true if critingate w then critingate w lt false critingates critingates 1 if critingates 0 then failed true if critoutgate v then critoutgate v false critoutgates critoutgates 1 if critoutgates 0 then failed lt true if exitfound dfs A failed otherwise unnecessary then MAKE_AVAIL v current v lt false end An algorithm to find feedback edge sets with on edge per cycle 207 Makes v available as well as its unavailable predecessors that are not on the current path procedure MAKE AVAIL v begin avail v true for w e Adj v such that s lt index w st do if avail w A current w then MAKE_AVAIL w end Depth first search of the sub graph of the current SCC of level k traversed by external cycles to detect cycles in it Returns immediately on detection of a cycle procedure DFS_EXTCYCLES v begin current v true v is in the current path avail v false for w e Adj v such that s lt index w lt t A inextcycle v w A failed do if current w then failed true else if avail w then DFS_EXTCYCLES w current v lt false end 208 An algorithm to find feedback edge sets with on edge per cycle Appendix E Additional performance results v experiment 1 experiment 1 i 10000 1000000 E O 1000 exponential 100000 exponential 3 regression line lt regression line 100 amp 10000 on z 10 5 1000 66 a E i 2 100
159. alcula os sucessores imediatos de r e chama a fun o visitfunc para cada sucessor 8 4 3 4 Estruturas de dados usadas na implementa o As regras associadas a uma transac o inst ncias de regras s o acedidas de duas formas e lista de inst ncias de regras por transac o lista duplamente ligada com apontadores para a cabe a cauda e pontos interm dios que delimitam sub listas com inst ncias em diferentes estados e lista de inst ncias de regras por regra lista duplamente ligada com apontadores para a cabe a e cauda ordenada por transac es de n veis decrescentes esta lista til para implementar os crit rios de activa o acoplamento e ordena o Para minimizar a chamada a rotinas de aloca o din mica de mem ria mantida tamb m uma lista de itens livres Quando um PPR termina o que pode acontecer porque n o h mais regras activadas ou a transac o foi abortada ou interrompida as inst ncias de regras da transac o corrente s o eliminadas passam para uma lista de itens livres atrav s da opera o discard rules Adicionalmente quando uma transac o abortada s o removidos pela opera o rollback rules todos as inst ncias de regras criadas noutras transac es em curso desde o in cio da transac o abortada Essas inst ncias encontram se cabe a da lista de inst ncias de cada transac o ordenadas pela estampa temporal da activa o a qual comparada com a estampa tempora
160. all 1977 Y Perl Y Shiloach Finding Two Disjoint Paths Between Two pairs of Vertices in a Graph J Assoc Comput Mach 25 1978 1 9 J L Szwarcfiter On minimum Cuts of Cycles and Maximum Disjoint Cycles Contemp Math 89 1989 153 166 An algorithm to find feedback edge sets with on edge per cycle 197 Appendix A Proof of theorem 1 iv In order to be able to prove part iv of theorem 1 we first introduce a few lemmas about how to transform a vertex ordering into another equivalent vertex ordering modulo the number of induced feedback edges per cycle Lemma Al rotation Given an ordering L of the vertices of a graph G the number of feedback edges induced by L on each cycle of G is not changed by a rotation of L Proof This is already presented in 1 Any rotation of L is done by interchanging two sub sequences A left and B right into which L is divided When A and B are interchanged only the edges linking A and B are reversed Every cycle has the same number of edges directed from A to B and from B to A So for every cyck of G the number of additional feedback edges directed from A to B equals the number of feedback edges subtracted directed from B to A and the total is not changed A Lemma A2 local rotation Given an ordering L of the vertices of a graph G and two contiguous sub sequences A and B of L such that there is no cycle simultaneously intersecting vertices in A in B and outside A and B
161. ally represented AAR RAR AAD ASS SS RS dna SO a RSE 3 4 We have to prove that it is always possible to establish such a correspondence 3 4 1 Since the acyclic edges of G are ignored and those edges are precisely the ones that are not contained in strongly connected components of G we may establish a correspondence between G and Gr independently for each strongly connected component of G 3 4 2 So let S be a strongly connected component of G 3 4 3 Let us choose an arbitrary path P in S containing all its edges and vertices possibly with repetitions With respect to the foregoing example we may choose P v Va V3 Va Vn V3 3 4 4 Let P be a corresponding path in G that traverses vertices with the same subscripts as in P starting in an arbitrary occurrence of the first vertex of Pin G With respect to the foregoing example we may choose P vr v v v vis v3 3 4 5 Let qi 1 lt i lt n be the superscript of the first occurrence of vertex v in Pz For instance with respect to the above P we have q 1 q2 3 q3 6 and q4 8 3 4 6 We now prove that the superscripts of further occurrences of vertex v in Pz 1 lt i lt n may be computed as a function of q and the number of backward edges per cycle induced by Lin G the complete knowledge of L is not required The sub path of P that goes from the first occurrence of vertex v to another occurrence of the same vertex in P is a closed path It is known that
162. alor de x numa transac o e o valor de y noutra transac o a seguir Na 1 transac o a regra r ou a regra rz executada em 1 lugar preservando em qualquer dos casos o valor de x Na 2 transac o a regra r executada em 1 lugar preservando os valores de x e de y O resultado seria o mesmo se o utilizador actualizasse os valores de x e de y numa nica transac o Em geral se o utilizador fixar os valores de qualquer par de vari veis o valor da terceira vari vel calculado Exemplo Para impor a seguinte restri o de igualdade n o linear entre quantidade q pre o unit rio p e pre o total t t qxp resolve se a restri o em ordem a cada uma das vari veis definindo se as seguintes regras ri p 0 gt q tp r q O gt p t q r3 t qxp Suponhamos que estas vari veis t m valores iniciais nulos consistentes com as regras Se o crit rio 5 3 for seguido o utilizador consegue preencher qualquer par de valores um de cada vez que o terceiro calculado em fun o deles preservando os valores introduzidos pelo utilizador A nica excep o que o utilizador n o consegue preencher o total em primeiro lugar porque o total de novo anulado pela regra r3 Ordena o das regras 67 5 3 3 Combina o com o princ pio calcular antes de usar O efeito do crit rio 5 2 adiar a execu o das regras que poderiam contradizer os valores introduzidos pelo utilizador na esperan a de que se
163. amento de regras Assim existe pelo menos um estado inicial s a partir do qual podem ser atingidos dois estados finais diferentes pelo que o conjunto de regras n o determin stico em sentido fraco e portanto n o confluente A Termina o determinismo e velocidade de termina o do processamento de regras 95 Teorema 6 12 Suponhamos que duas regras r e r obedecem s seguintes condi es i n o s o conflituosas ii r actualiza vari veis lidas por rj mas o inverso n o acontece iii a execu o de r nunca passa de verdadeiro a falso a condi o na qual uma vari vel actualizada por r iv r idempotente v r n o auto recursiva Ent o r e r s o confluentes Demonstra o As duas regras est o nas condi es do teorema anterior pelo que basta provar que rje ri rj ri rj Suponhamos que as regras s o executadas pela sequ ncia r r r Se a condi o na qual uma vari vel y actualizada por r inicialmente verdadeira uma vez que se sup e que a condi o n o passa a falso pela execu o de r a actualiza o de y produzida na primeira execu o de r ser substitu da pela actualiza o de y produzida na segunda execu o de r Al m disso as actualiza es produzidas por r ou pela segunda execu o de r n o dependem das actualiza es produzidas na primeira execu o de r Assim a primeira execu o de r redundante em rela o a y Se a condi o na qual uma vari vel z
164. and M N S Swamy Graphs Theory and Algorithms John Wiley amp Sons 1992 ANEXO 3 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases Aceite para publica o nos Proceedings do XIV Simposium Brasileiro de Bases de Dados SBBD 99 Florianopolis Santa Catarina Brazil Outubro de 1999 Jo o Pascoal Faria Raul Moreira Vidal GpfOfe up pt rmvidalOfe up pt FEUP Faculdade de Engenharia da Universidade do Porto Rua dos Bragas 4099 Porto Codex Portugal INESC Instituto de Engenharia de Sistemas e Computadores Pra a da Rep blica 93 R C Apartado 4433 4007 Porto Codex Portugal Abstract It is presented an approach based on data driven active rules for the maintenance of derived data calculated data and integrity constraints data restrictions in screen forms and other user interfaces to databases The approach aims to improve the capabilities of current application development tools by combining the power of active rules as proposed in the context of active databases with the simplicity and data driven nature of spreadsheets The proposed data driven active rules define derived data items as functions of other data items by explicitly reading and writing their values conditionally or unconditionally They are define
165. ansaction para desfazer as altera es ocorridas desde o in cio da transac o Percorre os itens do log at ao ponto indicado por ordem inversa ordem por que foram inseridos last in first out Para cada item chama a fun o associada ao item com a mensagem ROLLBACK passando lhe o endere o dos bytes desse item colocados em mem ria principal e de seguida elimina o item do log Compete fun o chamada desfazer as altera es que haja a desfazer A opera o commit changes destina se a confirmar as altera es registadas no log e esvaziar o log usada pela opera o endtrans da classe Transaction quando uma transac o de n vel de topo termina com sucesso Percorre todos os itens do log por ordem inversa ordem por que foram inseridos last in first out Para cada item chama a fun o associada ao item com a mensagem COMMIT passando lhe o endere o dos bytes desse item colocados em mem ria principal e de seguida elimina o item do log Por exemplo no caso ser mantido com cada objecto modificado a posi o do estado antigo no log isto pode ser usado para fazer o reset a zero dessa posi o No caso da aplica o manter backups pr prios de itens alterados pode servir para libertar esses backups 8 4 Modulo de processamento de regras RuleProc Este m dulo trata da activa o ordena o e execu o das regras em coordena o com o m dulo de processamento de transac es O diagra
166. aqui n o afectam o racioc nio a apresentado A conflu ncia local em conjunto com a termina o implicam a conflu ncia e o determinismo de R A Exemplo O conjunto de regras da figura 3 1 que j conclu mos ser terminante mas n o confluente pode ser tornado confluente com a adi o de algumas prioridades Para cumprir o requisito de conflu ncia obrigat rio em primeiro lugar ordenar as regras n o confluentes Considere se para esse efeito o seguinte conjunto de prioridades em que a primeira est de acordo com o princ pio calcular antes de usar Pi fro gt r3 re gt ro A excep o das regras r7e ro todos os pares de regras n o ordenadas se enquadram nas condi es do caso 1 do requisito de conflu ncia em que nenhuma das regras activa de forma produtiva uma regra com preced ncia sobre a outra e consequentemente obedecem ao requisito de conflu ncia porque todos os pares de regras n o ordenadas s o agora confluentes As regras r e ro n o se enquadram nas condi es do caso 1 porque a regra ry pode activar de forma produtiva a regra rs a qual tem preced ncia sobre ro Uma vez que r7 e rg n o s o comutativas n o necess rio sequer construir R e Rz para concluir que o requisito de conflu ncia violado devido a estas duas regras Ordenando as regras r e rg de acordo com o princ pio calcular antes de usar obt m se o novo conjunto de prioridades Po fro gt r3 rg gt ro 17 gt ro Agora
167. ar a opera o push v S s depois de visitar os sucessores de v no algoritmo 8 6 H que ter o cuidado em saber delimitar para cada v rtice v os sucessores de v na pilha O algoritmo modificado fica Algoritmo 8 7 ordena o por ordem ordem topol gica de CFC s minimizando invers es de arestas Entradas idem Sa das idem induzindo conjunto m nimo de arestas de realimenta o Dados tempor rios idem mais Para cada v rtice ve V pending v indica que v foi visitado mas ainda n o foi ordenado corresponde a ve S na vers o anterior old_S_size v tamanho de S antes de visitar sucessores de v pode ser implementado por uma vari vel local i procedimento principal Implementa o de um motor de regras activas dirigidas pelos dados 151 procedure TOPSORTSCCFES begin ne 0 for ve V do visited v false pending v false for ve V do if visited v then i0 S lt pilha vazia DFSSCCFES v end visita em profundidade a partir do v rtice v procedure DFSSCCFES v begin ic i l lowlink v i visited v lt true isroot v lt true pending v true old S size v IS tamanho da stack antes de inserir sucessores de v foru e Succ v do if visited v then DFSSCCFES u ifpending u A lowlink u lt lowlink v then isroot v lt false lowlink v lowlink u push v S if isroot v then retira v e sucessores de v do topo de S n lt n ISI old_S_size v ien repeat
168. ar restri es de integridade que envolvem itens de dados que s o actualizadas separadamente e para minimizar o n mero de execu es das regras Em quarto lugar preconiza se um modo de execu o sequencial em vez de concorrente ou encaixada A execu o sequencial importante para garantir que as regras s o at micas umas em rela o s outras Assim o efeito l quido da aplica o de uma regra independente da exist ncia de outras regras A poss vel execu o concorrente em paralelo equivalente a uma execu o sequencial em s rie mat ria de optimiza o que n o se exclui mas n o abordada aqui Uma vez que as regras podem ser representadas abstractamente como fun es a execu o sequencial pode ser representada abstractamente como composi o de fun es Note se que a execu o sequencial implica a execu o diferida pelo menos na presen a de activa o m ltipla v rias regras activadas pelo mesmo evento e em cascata regras activadas por eventos gerados por outras regras No caso de activa o em cascata uma vez que a execu o encaixada afastada as regras activadas em cascata n o podem ser executadas imediatamente quando o evento activador ocorre No caso de activa o m ltipla se o processamento de regras for invocado imediatamente quando o evento ocorre uma vez que a execu o concorrente afastada essas regras n o podem ser executadas imediatamente Finalmente para tornar o prob
169. artSCC V 1 only non trivial SCC s have further cycles and need be analysed if ts then SELECT_CRITICAL_GATE if failed then CPSORTR sk ttl An algorithm to find feedback edge sets with on edge per cycle 203 return to the parent level k lt k 1 end Decomposes the current SCC of level k into sub SCC s of level k 1 by topological order and determine their new in gates and out gates procedure TOPSORTSCC begin S s increasing decreasing index to place pending vertices T amp t decreasing index to place vertices already sorted d0 if k 0 then while S lt T do TOPOSRTSCCR Vs else exclude the selected critical vertex which becomes a trivial sub SCC if xx V s then S S 1 else T amp T 1 startSCC x true lowlink x 0 work recursively from its successors for u Adj x such that s lt index u lt t do if S lt index u lt T then TOPSORTSCCR u ingate u lt true newingate u lt true end Recursive topological sort from a vertex v procedure TOPSORTSCCR v begin de dl lowlink v d current v lt true startSCC v true foru e Adj v such that s lt index u lt t do if kz0 A u x then outgate v lt true newoutgate v lt true else if current u A S lt index u lt T then TOPSORTSCCR u if index u gt T then u and v belong to different SCC s ifk gt 0 then ingate u true newingate u true outgate v true newoutgate v lt tru
170. as de realimenta o ordena es induzidas por cada ordena o O O O 1 FiF3F2r4 2 F3Fgh2N1 351V 3F4 em cada ciclo orientado r gt r3 gt r4 gt r r4 gt r T1773 r45Sri Termina o determinismo e velocidade de termina o do processamento de regras 103 r gt r gt r3 gt Fr T2713 13 7 T1172 r9 gt 5r3 r355ri ND 5354 1213 L477 ri r2 T2973 r4 gt r As ordena es O e O2 induzem o mesmo n de arestas de realimenta o em cada ciclo Note se que isso aconteceria mesmo que os ciclos fossem orientados de maneira diferente Com base neste conceito poss vel mostrar o seguinte Lema 6 10 Sejam O e O gt duas ordena es totais vistas como sequ ncias de execu o de regras de um conjunto de regras R que induzem o mesmo n mero de arestas de realimenta o em cada ciclo do grafo de n o comutatividade de R Seja D a dist ncia m xima entre quaisquer duas regras conexas no grafo de n o comutatividade de R ou O no caso de todas as regras comutarem duas a duas Ent o existem sequ ncias de regras A e B e um inteiro h com O lt h lt D tais que para qualquer n mero natural N O2 AO PB Demonstra o Resulta do teorema 6 no anexo 2 a este documento A demonstra o baseada no facto de que O e O induzem o mesmo n mero de arestas de realimenta o em cada ciclo do grafo de n o comutatividade se e s se uma delas digamos O2 pode ser obtida da outra O aplicando repetidamente as
171. as regras orientadas a inst ncias do que o modelo de transac es planas flat A principal dificuldade a considerar tem a ver com a passagem de um modelo de execu o com PPR s n o encaixados para um modelo de execu o com PPR s encaixados onde as interfer ncias entre as regras s o mais complexas 7 3 1 Imposicao de restri es intra objecto atrav s de regras intra objecto puras Descreve se de seguida sumariamente a forma como o modelo de regras introduzido no cap tulo 3 pode ser adaptado ao contexto de um modelo de dados orientado a objectos com regras orientadas a inst ncias e a conjuntos sem violar os pressupostos definidos no cap tulo 3 7 3 1 1 Modelo de dados e modelo de defini o das regras Em geral os dados de um sistema est o organizados hierarquicamente com objectos de dados mais pequenos e mais simples fazendo parte como sub objectos ou objectos componentes de objectos de dados maiores e mais complexos Nas folhas da hierarquia est o objectos at micos n o decompon veis Na raiz da hierarquia est o sistema completo visto como um objecto que agrega todos os outros objectos do sistema Para o efeito que nos interessa aqui os atributos de um objecto e as refer ncias que um objecto mant m para outros objectos s o tratados como objectos componentes Qualquer objecto da hierarquia de objectos pode ser visto como um sistema em pequena escala com regras intra objecto e vari veis de estado intra objecto N
172. as regras s o executadas pela ordem O a partir de qualquer estado inicial s nenhuma regra r altera uma vari vel de entrada ou sa da de uma regra precedente ou uma vari vel de entrada da pr pria regra r Esta condi o garante que cada regra executada no m ximo uma vez em cada PPR mesmo quando seguido o crit rio de activa o b sico e por maioria de raz o quando seguido um crit rio mais refinado Na presen a de regras recursivas e ou conflituosas a exist ncia de ordena es ideais est associada exist ncia de redund ncia Numa ordena o ideal de um conjunto de regras sempre que uma vari vel de sa da y de uma regra r referenciada por uma regra precedente r ou uma vari vel de entrada da pr pria regra r ent o r redundante em y em rela o ao conjunto de regras precedentes Nesse sentido pode se dizer que a recurs o e conflitos no conjunto de regras s o causados exclusivamente por regras redundantes 5 4 3 Ordena es ideais de conjuntos de regras puramente incondicionais No caso de regras puramente incondicionais isto regras que derivam incondicionalmente os valores de todas as vari veis de sa da poss vel definir um crit rio para encontrar ou pelo menos delimitar as ordena es ideais Diz se que uma vari vel x uma entrada de um conjunto R de regras puramente incondicionais ordenado segundo uma ordem total O se x uma vari vel de entrada de uma regra re R e n o uma var
173. as restri es de integridade definidas na BD podem ser mapeadas para restri es de integridade numa vista da aplica o sem o envolvimento doutros dados para al m dos dados presentes nessa vista H toda a conveni ncia em verificar essas restri es de integridade localmente durante a introdu o de dados antes dos mesmos serem enviados para a BD e portanto sem o envolvimento do SGBD e Dados duma vista da aplica o que podem ser calculados exclusivamente em fun o doutros dados introduzidos pelo utilizador na mesma vista devem ser calculados localmente pela aplica o sem o envolvimento do SGBD e Dados que podem ser calculados a partir de outros dados seleccionados para uma vista da aplica o como por exemplo campos de sum rio em relat rios e que n o est o sujeitos a restri es de selec o podem ser calculados do lado da aplica o em vez de serem calculados do lado do SGBD para n o sobrecarregar as comunica es e o processamento de dados do lado da SGBD e Quando existe um canal de comunica o r pido entre a aplica o e o SGBD e s o tomadas medidas apropriadas de controlo de concorr ncia as restri es de integridade que envolvem outros dados da BD para al m dos que est o a ser introduzidos pelo utilizador numa vista da aplica o podem tamb m ser verificadas imediatamente durante a introdu o de dados pelo utilizador O mesmo se passa com os dados calculados em fun o doutros dados da BD
174. asse em C com qualificador rule 118 Refinamentos para o tratamento de dados complexos rule class name rule name statements e a seguinte nota o para explicitar os eventos activadores rule class name rule name on events statements Os eventos que interessa considerar s o a cria o do objecto create e a modifica o do estado de uma vari vel de estado intra objecto modify x ou de qualquer parte do objecto modify Outros eventos poss veis seriam a elimina o do objecto destroy e a inser o insert actualiza o update ou elimina o delete de elementos num objecto do tipo conjunto Salvo indica o em contr rio com o prefixo self excluem se os eventos gerados durante a execu o da regra gerados pela pr pria regra ou por regras executadas de forma encaixada Sempre que necess rio referir o objecto alvo no corpo de uma regra usa se a palavra chave this como habitual nas fun es membro em C Nos exemplos que se seguem o corpo das regras instru es entre chavetas escrito em pseudo c digo baseado em C e SQL Exemplo Seja de novo o formul rio da figura 7 1 Neste caso interessa associar regras a objectos de dois tipos FACTURA e LINHA FACTURA As vari veis de estado de um objecto do tipo FACTURA s o N MERO DATA FORNECEDOR LINHAS FACTURA e TOTAL As vari veis de estado de um objecto do tipo LINHA FACTURA s o ARTIGO QUANTIDADE PRE O UNIT RIO e PRE
175. at the correspondence established between G and Gr in this way is unique Assuming that L differs from L by more than a rotation we select and interchange two circularly consecutive vertices of L obtaining a new ordering L that is closer to L as explained next 5 1 If L differs from L by more than a rotation the correspondence lines between G and G cannot be all parallel to each other The converse is also true 5 2 If those lines are not all parallel to each other there must exist two lines that intersect each other and reach two vertices consecutive in Gy v and aoe like vertices v and v in the foregoing example Saying that the lines intersect each other means that k d gt k 1 d which is the same as d lt d 1 5 2 1 Notice that there may exist pairs of lines that intersect each other and reach two vertices say u and v that are not consecutive in Gr However in such a case between those vertices there must exist two consecutive vertices in the required conditions such that 7 Remember that the distance from u to v is the length number of edges of the shortest path from u to v 222 On the equivalence of vertex orderings modulo the number of backward edges per cycle their lines intersect each other as is illustrated in the following figure for vertices u and he GL z v u GER uz v 5 3 We next prove by contradiction that if there are vertices v and vit in G in the above conditions d lt d 1 then
176. atilhos O sistema Ode suporta gatilhos associados a objectos A terminologia e sintaxe seguida diferente da habitual Para simplificar a apresenta o s o omitidos alguns pormenores julgados menos importantes no contexto deste trabalho nomeadamente gatilhos temporizados Os gatilhos s o especificados na sec o trigger da defini o de uma classe com a seguinte sintaxe trigger perpetual T parameter decl event expression gt mode action T o nome do gatilho Um gatilho pode ter par metros que s o indicados quando o gatilho activado ver adiante e podem ser usados na parte de ac o A ac o uma instru o em C O modo pode ser e independent valor por omiss o a ac o executada imediatamente numa transac o separada independente e immediate a ac o executada imediatamente na mesma transac o como nas restri es hard e deferred a ac o executada no fim da mesma transac o como nas restri es soft Um gatilho pode ser activado activated disparado fired e desactivado deactivated Quando um objecto criado todos os seus gatilhos se encontram desactivados Um gatilho T activado explicitamente para um objecto espec fico atrav s de uma chamada do tipo object id gt T arguments S o permitidas v rias activa es do mesmo objecto possivelmente com argumentos diferentes Um gatilho activado dispara automaticamente quando o seu predicado
177. bi gates newbigates lt 0 for i sy tr do if newingate V A newoutgate V then newbigates newbigates 1 ifnewbigates gt 1 then failed true return otherwise inspect the edges traversed by external cycles MARKEDGES if failed then move the critical in gate to the first position i min i s lt i lt t A critingate V EXCHANGE syi Xk Vsk end Marks the edges of the current SCC of level k that connect the new in gates to the new out gates Returns as soon as possible on a failure condition procedure MARKEDGES begin counts critical in gates and out gates cyclicmarks lt false critingates 0 critoutgates lt 0 for I Sx Ra lig do if ingate V then if due Adj V s lt index w lt t A inextcycle u V then critingate V false else critingate V true critingates critingates 1 else critingate V false if outgate V then if Sue Adj V s lt index u lt t A inexteycle V u then critoutgate V false else critoutgate V true critoutgates lt critoutgates 1 else critoutgate V false if critingates 0 v critoutgates 0 then failed true return preliminary depth first search from each in gate to rapidly detect failures optional dfs true for i sy tr do if newingate V then for j Sx tk do avail V lt true MARKEDGESR V f if failed then return systematic exploration of the cycles dfs false 206 An al
178. bortada com tabort quando a restri o violada As restri es hard s o verificadas no fim das chamadas de construtores e de fun es membro p blicas da classe n o constantes mas n o no fim das chamadas de destrutores Uma fun o membro constante uma fun o membro com qualificador const que est por isso proibida de alterar o estado do objecto Embora o acesso directa a dados membro p blicos duma classe n o seja proibida da responsabilidade do programador assegurar que esses acessos n o violam as restri es pois n o efectuada nenhuma verifica o das restri es para esses acessos Se uma restri o associada a um objecto n o satisfeita e n o existe nenhum handler associado a essa restri o a transac o abortada Se existe um handler associado restri o o handler executado e a restri o reavaliada Se a restri o continuar a n o ser satisfeita a transac o abortada 2 Conforme foi referido acima a granularidade da verifica o das restri es hard ao n vel da fun o membro p blica Isto tem duas vantagens importantes os objectos est o sempre num estado consistente excepto poss vel durante uma opera o de actualiza o e a implementa o da verifica o das restri es simplificada Exemplo class supplier Name state constraint state Name NY state Name printf Invalid Supplier State An Se a re
179. both vertices 2 and 4 are in gates nor a single out gate both vertices 3 and 4 are out gates hence the edges traversed by external cycles have to be found and marked edges 2 3 3 4 and 4 3 since there is a cycle in these edges G4 doesn t have a CPFES 192 An algorithm to find feedback edge sets with on edge per cycle Legend C non trivial nested scc Q selected vertex K selected feedback edge A marked edge Fig 1 Examples of graphs with illustrations to explain how they are processed by algorithm Ic 6 Polynomial time algorithm for reducible flow graphs The existence of a single in gate mentioned in corollary 7 1 is closely related to the concept of a reducible flow graph Recall that a flow graph or program graph G is a directed graph with a distinguished start vertex s from which any other vertex may be reached see 2 pg 361 It is known that a flow graph G is reducible iff there do not exist distinct vertices vzs and ws directed paths P from s to v and P2 from s to w and a cycle C containing v and w such that C has no edges and only one vertex in common with each P and P gt see 2 pg 363 That is iff every cycle not traversing s may be reached from s at a single vertex A property of reducible flow graphs already presented in 7 may be restated as Theorem 9 Every non trivial SCC H of a reducible flow graph G that does not contam the start vertex s has a single in gate Proof Assume H
180. by Data driven Active Rules for the Maintenance of Derived Data and 239 Integrity Constraints in User Interfaces to Databases the system is sufficient Such rules may be used to provide a more explicit support for multi way constraints We ve ignored the internal structure of the state variables and considered only simple modification events But in the case of state variables with a complex internal structure specialized modification events should be considered for optimization purposes such as insertion modification and deletion of elements of a set valued state variable We ve assumed that in each RPP rules are executed until a new quiescent state is reached before user updates are allowed again Such an eager mode of evaluation is important in the presence of abort rules But a lazy mode of evaluation on demand of some data items particularly output only data items could be more effective We ve assumed a net effect policy that imposes an implementation overhead The implications of removing such net effect policy should be investigated We ve assumed that a quiescent state of the system must be a fixpoint for all the rules even in the presence of conflicting rules Alternative approaches could be useful in practice e g allow default and exception rules The special nature of abort rules should be taken in consideration to improve termination and confluence analysis We ve assumed a sequential mode of execution without nestin
181. cada para sinalizar que o estado de um atributo acaba de ser alterado Impdem se as seguintes restri es e a altera o do estado de um atributo global s pode ser sinalizada quando est corrente uma transac o n o abortada e n o interrompida e a altera o do estado de um atributo intra objecto s pode ser sinalizada quando est corrente uma transac o intra objecto n o abortada nem interrompida tendo como alvo o objecto que est a ser alterado Estas exig ncia servem para organizar a execu o das regras A segunda exig ncia n o penalizadora porque se a transac o corrente n o tem como alvo o objecto que est a ser alterado pode se criar facilmente at de forma impl cita uma transac o sem rollback local tendo como alvo esse objecto A cria o e elimina o de objectos n o deve ser sinalizada pela sinaliza o da altera o de atributos mas sim pela sinaliza o de PPR s As regras ligadas pela associa o On Modify Attribute ao atributo alterado s o activadas de acordo com as restri es explicadas no m dulo de defini o de regras ou seja e se uma regra ou a respectiva classe tem enabled false a regra n o activada e se uma liga o tem self triggering false e uma inst ncia da regra est a ser executada indicado pelo atributo executing da classe Rule a regra n o activada e se uma regra tem other rpps false e o PPR em que a regra seria executada de acordo com o modo de aco
182. cada vari vel alterada durante a execu o de uma regra Estes valores antigos podem ser libertados no fim da execu o da regra Para efeito da activa o de cada regra s s o consideradas as altera es ocorridas em sentido l quido i e ignorando altera es que se cancelam mutuamente ap s o in cio da ltima execu o dessa regra caso tenha j sido executada na transac o em causa ou ap s o in cio da transac o no caso contr rio Esta pol tica a mais comum em SGBDA s que implementam uma pol tica de efeito l quido como nos sistemas Starbust W96 e Chimera ZCF 97 Pode conduzir a menos activa es de regras do que a pol tica anterior mas exige que se guarde muito mais informa o pelo que n o de considerar a n o ser que essa informa o seja til por outros motivos Se n o for seguida uma destas pol ticas ou outra semelhante o algoritmo de processamento de regras pode n o terminar mesmo depois de se ter atingido um ponto fixo para todas as regras 5 Ordena o das regras Neste cap tulo desenvolvem se os crit rios de ordena o das regras definidas no cap tulo 3 Esses crit rios s o baseados principalmente no conhecimento das depend ncias de entrada e sa da de dados existentes entre as vari veis de estado e as regras depend ncias essas j referidas no cap tulo 4 S o identificados v rios crit rios complementares ou alternativos com diferentes for as demonstrada a relev nc
183. ce we may conclude that G and G are B equivalent if and only they have the same pairs of vertices in the conditions described in the theorem statement A 3 equivalence and o operations Lemma 3 o operations for directed graphs The following are o operations on the vertex orderings of a directed graph G V E 1 rotation ii interchanging pairs of consecutive vertices that are not joined by cyclic edges of G Proof i This is already presented in RSS90 in a different context Let L be a vertex ordering obtained from a vertex ordering L by rotation Let s regard Land L as vertex sequences To rotate L is the same as to interchange two sub sequences L and L into which L is divided The orientation forward or backward of the edges of the cycles that intersect vertices in only one of these sub sequences does not change and hence the number of backward edges does not change either Cycles that intersect vertices in L and vertices in L must have the same number of edges oriented from L to L as in the opposite direction When L and L are interchanged all such edges have their orientation reversed Hence the number of backward edges added equals the number of backward edges subtracted and the total number of backward edges remains unchanged ii Interchanging vertices in the conditions described does not affect the orientation of the edges that are important to count the number of backward edges per cycle A We nex
184. ces v ith in V with k integer the iteration number We use superscripts to number the vertices sequentially in Gz 2 1 2 To each cyclic edge v v of G there correspond edges v eee Were in Er in case Pi lt p or yee PPRD in case p gt p with k integer Each of these edges connects an occurrence of vertex v to the nearest following occurrence of vertex v in Gz Consequently for any edge v v Je E we have 1 lt b a lt n b a n in case v v that is in the case of a self loop in G 2 1 3 Edges of G that are not contained in any cycle have no corresponding edges in Gz 2 2 For instance with respect to the example already used in theorem B2 we get with v instead of i N oN rN ad y 1 2 3 4 5 6 7 8 9 10 11 12 Gr v v v v v v v v v v v v 1 3 2 4 1 3 2 4 1 3 2 4 2 3 Given G and L we define G in the same way 3 Next we establish a one to one correspondence between the vertices and edges of G and Gz as follows 3 1 To each vertex v in Gy there corresponds a vertex vin Gy Hence d 1 lt isn is the displacement between corresponding occurrences of v from G to Gz 3 2 To each edge v v in G there corresponds an edge v v in Gr 220 On the equivalence of vertex orderings modulo the number of backward edges per cycle 3 3 The following figure shows a possible correspondence for the example given above with d 1 d2 2 d 1 and d 0 Only the vertex correspondence is graphic
185. cia de utiliza o da ferramenta e a identifica o de algumas linhas de evolu o para o futuro numa perspectiva de Engenharia de Software 9 1 Caracter sticas gerais da ferramenta O SAGA Sistema Assistido de Gera o e Gest o de Aplica es uma ferramenta destinada a automatizar o desenvolvimento de aplica es interactivas de bases de dados relacionais constitu das essencialmente por formul rios de ecr relat rios e alguns processamentos Enquadra se no mbito das ferramentas lower CASE Computer Aided Software Engineering e dos ambientes de desenvolvimento de aplica es de 4 gera o P97 O SAGA foi criado no INESC Porto por uma pequena equipa liderada pelo autor e por Jo o Vasco Ranito MFR89 F90 FR91 Tem sofrido evolu es significativas ao longo dos anos da responsabilidade do autor algumas delas documentadas em F93a F93b F93c e outras em relat rios de altera es Conta presentemente com cerca de 135 000 linhas de c digo fonte em C O SAGA tem sido usado quase exclusivamente no desenvolvimento de aplica es comerciais para o mercado Aut rquico de que se salienta o pacote SIGMA MLF 89 VMF93 FLMB95 embora o SAGA em si como ferramenta de desenvolvimento n o seja comercializado de forma alargada Descrevem se de seguida algumas caracter sticas importantes do SAGA 9 1 1 Portabilidade e conectividade O SAGA funciona sobre m ltiplas plataformas e sobre v rios SGBD s relacionais I
186. cluir sub relat rios e sub formul rios at dois n veis S o suportados relat rios matriciais crosstab reports mas necess rio alguma programa o em muitos casos nomeadamente no caso relativamente comum em que os nomes de colunas prov m dos dados seleccionados 2 2 2 3 Gr ficos O Microsoft Access suporta v rios tipos de gr ficos charts Um gr fico apresenta dados produzidos por uma express o de selec o em SQL Os gr ficos podem ser inseridos em formul rios e relat rios 2 2 2 4 Eventos O comportamento de formul rios e relat rios refinado atrav s da defini o de procedimentos event procedures ou macros que s o executados automaticamente em reposta ocorr ncia de eventos A cada evento num objecto relat rio formul rio controlo etc s pode estar associada uma macro ou um procedimento Uma macro uma sequ ncia de ac es simples possivelmente com argumentos ou de pares condi o ac o Os procedimentos s o escritos em Visual Basic for 18 Revis o do estado da arte Applications VBA Os procedimentos s o mais flex veis do que as macros mas exigem mais conhecimentos de programa o Existem v rios tipos de eventos eventos do rato eventos do teclado eventos de janelas eventos relacionados com o foco de entrada eventos relacionados com a manipula o de dados com a abertura e fecho de formul rios etc Os eventos mais importantes para efeito de valida o de da
187. co que minimize viola es das prioridades num ricas das regras O grafo ac clico a considerar para esse efeito o grafo condensado dos CFC s Conforme foi referido o segundo algoritmo de ordena o topol gica mais flex vel para refinar a ordena o topol gica de acordo com prioridades Para esse efeito basta na linha sublinhada do algoritmo base escolher um elemento de S com prioridade m xima isto tal que n o existe outro elemento de S com prioridade superior Assim S corresponde a um tipo abstracto de dados conhecido por fila de prioridades ver por exemplo AU92 Uma fila de prioridades um conjunto de elementos cada um dos quais tem associada uma prioridade As duas opera es associadas a uma fila de prioridades s o inserir um elemento no conjunto INSERT e encontrar e eliminar do conjunto um elemento com prioridade m xima DELETMAX Uma fila de prioridades pode ser implementada eficientemente com um heap Com base no algoritmo de ordena o topol gica anteriormente apresentado e nas rotinas de manipula o de heaps apresentadas em AU92 obt m se o seguinte algoritmo Algoritmo 8 5 ordena o topol gica minimizando invers es de prioridades Entradas V conjunto de v rtices Implementa o de um motor de regras activas dirigidas pelos dados 147 Para cada v rtice ve V Succ v conjunto de sucessores imediatos de v i e Succ v ue V vue E priority v prioridade de v Sa da
188. computations like the ones that involve the access to an external database iii calculation of the same data item by multiple non contradictory formulas that naturally arise as a consequence of the support of the two previous kinds of calculations iv formulas for input conversion e g uppercase conversion v multrway constraints i e constraints with multiple choices of derived calculated and primitive input data items e g impose the constraint c b a by allowing the user to input any two values and have the third one calculated vi general integrity constraints on both primitive and derived data vii procedural definition of complex derivations Some constraint based graphical user interfaces use a high level paradigm constraint satisfaction by the perturbation model that could be used to support nicely some of these features specially mult way constraints 1 But the kinds of relationships between data that are supported are limited 230 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases Current form managers and application development tools usually provide low level event driven mechanisms such as triggers or event action EA rules that may be used to implement the features above mentioned Triggers provide high flexibility but place on the programmer the burden of determining the events upon which the derived data items should be recalculated or the i
189. concatenation of these simple paths Obviously C constitutes a closed path According to lemma B4 Len C L Len C L It s also obvious that Len C L Len p L Len p L and the same is true under L If for any p I lt i lt n Len p L Len p L then L and L would differ at most by a rotation Consequently there must exist some p I lt xi lt n with Len p L Len p L Since Len p L Len p L Len p L Len p L there must exist some p I lt i lt n with Len p L lt Len p L and some p Isjsn with Len p L gt Len p L So there is a simple path p with Len p L lt Len p L Let x be its initial vertex and let y be its terminal vertex 218 On the equivalence of vertex orderings modulo the number of backward edges per cycle We now prove that for any simple path P from x to y Len P L lt Len P L and for any simple path P from y to x Len P L gt Len P L For any simple path P from y to x the concatenation of P with p is a closed path By lemma B4 Len P L Len p L Len P L Len p L Since Len p L lt Len p L we get Len P L gt Len P L For any simple path P from x to y including p the concatenation of P with any simple path P from y to x is a closed path By lemma B4 Len P L Len P L Len P L Len P L Since Len P L gt Len P L we get Len P L lt Len P L We now prove that vertices x and y are not a
190. condi o de jun o normalmente equi jun o entre os itens dos dois blocos de dados Um formul rio com blocos relacionados dessa forma chamado formul rio mestre detalhe master detail form Aparentemente um bloco de dados de detalhe pode ter mais do que um bloco de dados mestre e pode por sua vez assumir o papel de mestre em rela o a outros blocos de dados Desde a vers o 2 do Designer 2000 poss vel definir certos itens calculados de uma forma extremamente simples Um item calculado representa um valor calculado em fun o doutros itens Existem dois tipos de itens calculados suportados automaticamente pelo Designer 2000 e Itens com modo de c lculo f rmula formula items S o itens calculados em fun o doutros itens do mesmo registo por uma f rmula em PL SQL Sempre que ocorre alguma altera o num registo o que inclui o carregamento fetch do registo em resultado de uma interroga o o Developer 2000 recalcula os itens calculados por f rmulas e Itens com modo de c lculo sum rio summary items S o itens normalmente com um nico valor calculados por uma fun o de sumariza o SUM MIN MAX COUNT etc aplicada ao conjunto de valores doutro item summarized item de um bloco summarized block do mesmo formul rio Quando se instrui o Designer 2000 para carregar fetch para o bloco de dados sumarizado todos os registos resultantes de uma interroga o com op o Query All Record
191. ctida na base de dados e registos eliminados pendentes registos que foram seleccionados e posteriormente eliminados da vista podendo ter sido entretanto modificados e a sua elimina o ainda n o foi reflectida na base de dados Os registos do ltimo tipo s o mantidos numa rea de registos escondidos at que a sua elimina o seja reflectida na base de dados Quando se salvam as altera es isto quando as altera es na vista s o reflectidas traduzidas por altera es na base de dados os registos eliminados desaparecem e os registos modificados e inseridos passam ao estado de seleccionados 9 2 2 Mapeamento para a base de dados No que se refere ao modo de mapeamento para a base de dados podem se definir dois tipos de vistas e vistas actualiz veis cujo mapeamento para a base de dados definido de forma bidireccional atrav s da indica o de tabelas alvo e campos alvo podendo ser complementado atrav s de regras e vistas n o actualiz veis pelo menos automaticamente em que o mapeamento para a base de dados est embebido em regras que podem conter express es de selec o gen ricas de vistas do primeiro tipo targeted views que se trata aqui com algum detalhe porque a sua compreens o importante para a compreens o das regras geradas automaticamente pelo SAGA Uma vista do primeiro tipo tem uma tabela alvo na base de dados A cada registo da vista corresponde um registo da tabela alvo cham
192. ctivar r 1 3 Executar r Um PPR por defini o um ponto de invoca o da opera o execute rules O fim de uma transac o endtrans tamb m um PPR impl cito mantido um contador do n de vezes que cada regra executada em cada PPR atributo n iterations na classe Rule Instance Se for excedido o n m ximo permitido configur vel a transac o abortada Durante a execu o de uma regra r pode ocorrer uma sub transac o t com um PPR p onde de novo invocado recursivamente o algoritmo de execu o de regras No entanto em cada transac o de n vel de topo ou sub transac o s pode estar em curso um PPR Por outras palavras o algoritmo n o pode ser invocado recursivamente sem se iniciar entretanto uma sub transac o 8 4 3 Escolha da pr xima regra a executar choose rule Nesta sec o explica se como que se processa a escolha da pr xima regra a executar tamb m chamada resolu o de conflitos quando h v rias regras activadas num dado PPR determinando portanto a ordem por que as regras s o executadas Essa escolha determinada pelas seguintes prioridades das regras com pesos decrescentes e prioridades relativas est ticas n o necessariamente transitivas estabelecidas pela associa o Rule Precedence e prioridades num ricas din micas nicas no sentido de que n o h duas regras com a mesma prioridade calculadas dinamicamente em cada PPR e guardadas no atribut
193. cu o de regras detalhado da seguinte forma usando a nota o introduzida na sec o anterior Algoritmo 8 2 escolha da pr xima regra a executar na i sima itera o do algoritmo 8 1 1 Calcular as prioridades num ricas din micas das novas regras conjunto C 2 Para cada re C prioritizada nesta itera o indegree r 0 Implementa o de um motor de regras activas dirigidas pelos dados 141 3 Sei gt l ent o para cada re C para cada r e Pred r se r e A A A activada mas n o de novo ent o indegree r indegree r 1 4 Para cada re A A activada de novo para cada r e Succ r se r e D ent o indegree r indegree r 1 5 Para cada re A A activada de novo se indegre r 0 ent o HEAP INSERT r 6 Seo heap est vazio sair e terminar o processamento de regras 7 Extrair do heap a regra r com prioridade num rica din mica m xima i e r 4 HEAP DELMAX 8 Se indegree r 0 devido a ter sido activada uma regra de Pred r voltar ao passo 6 Para cada r e Succ r se r e D ent o indegre r indegree r 1 se indegree r 0 ent o HEAP INSERT r 10 Retornar a regra r regra escolhida para executar O acesso sequencial e o teste de perten a aos conjuntos de regras referidos podem ser implementados eficientemente atrav s de sub listas ligadas ver sec o 8 4 3 4 flags e timestamps conforme se indica a seguir e para cada re cC ace
194. d essentially as unordered action only rules with implicit triggering events and are executed essentially as ordered prioritized event action EA rules possibly in combination with other event action EA or event condition action ECA rules originated from different sources The specialized nature of the actions performed by these rules allows the automatic determination of the triggering events and priorities among rules as well as the establishment of improved conditions on rule sets that guarantee termination and confluence determinism of rule execution The maintenance of integrity constraints is essentially reduced to the maintenance of derived data The approach presented is not tied to a particular rule definition language or data model 1 Introduction The spreadsheet paradigm is very attractive for the maintenance of derived data in user interfaces to databases particularly screen forms and reports due to its simplicity and data driven nature But spreadsheet engines and languages usually lack flexibility to support all the sorts of derived data calculated data and integrity constraints data restrictions found in complex screen forms and reports They usually provide limited or no support for i conditionally calculated data items i e data items that are calculated in some circumstances and input by the user in other circumstances ii calculation of multiple data items through the same formula to avoid repeating expensive
195. d without any edge all the vertices are isolated vertices In this case all the vertex orderings are equivalent but they cannot be obtained from each other by rotation only Hence operation ii is also necessary A This can be translated for undirected graphs An edge of a graph G is said to be a cyclic edge or circuit edge if there exists a cycle in G containing the edge TS92 On the equivalence of vertex orderings modulo the number of backward edges per cycle 219 Theorem 4 complete set ofa operations for undirected graphs Two orderings of the vertices of an undirected graph G V E L and L are amp equivalent if and only if any of them may be obtained from the other by repeatedly applying the following ot operations i rotation ii interchanging pairs of consecutive vertices that are not adjacent in G Besides that none of these two operations is sufficient by itself Proof Let G be the directed graph obtained from G by replacing each undirected edge of G by a pair of symmetric directed edges Let L and L be two o equivalent vertex orderings with respect to G According to lemma B1 L and L are still a equivalent with respect to G4 According to theorem B2 L may be obtained from L by rotation or by interchanging pairs of consecutive vertices that are not joined by cyclic edges of Gz To say that two vertices are not joined by cyclic edges of G4 is the same as to say that those vertices are not adjacent in G A
196. da tamb m determinada a transac o em que a regra ser executada no PPR em curso ou no PPR mais pr ximo dessa transac o de acordo com os modos de acoplamento explicados no m dulo de defini o de regras No caso de other rpps false e de n o estar em curso no momento em que a regra activada um PPR na transac o em que a regra deve ser executada a regra activada condicionalmente No in cio de cada PPR confirmada a activa o anterior de regras com other rpps false associadas explicitamente ao PPR e cancelada a activa o anterior das restantes regras com other rpps false No caso da granularidade de activa o ser intra objecto granularity object na associa o On Modify Attribute ou On RPP o modo de acoplamento sempre imediato e a regra instanciada para o objecto alvo da transac o corrente de acordo com as restri es impostas at ao momento A activa o propriamente dita realizada pela opera o trigger da classe Rule A opera o trigger tamb m pode ser chamada explicitamente pela aplica o Essa opera o cria uma ocorr ncia na classe Rule Instance inst ncia de regra preenchendo a estampa temporal correspondente granularidade da activa o a qual interessa para efeito de rollback Uma regra pode ter v rias inst ncias diferentes mas n o para a mesma transac o Se j existia uma inst ncia com granularidade object e a granularidade pedida class a segunda preva
197. da enquanto que regras orientadas a inst ncias s o normalmente executadas de forma imediata 106 Refinamentos para o tratamento de dados complexos amp Factura BEI C digo fornecedor 2 N mero fi Nome fornecedor Fonseca Cardoso C a Data 1999 08 11 r C d artigo Nome artigo M Quanzidade it Pre o total 3 000 0 2 500 0 Resna Papel Ad fAgrafador 6 24 Tan TNT Ok G 1 T 1 5 50050 pet ER Sud formul rio detathe Fig 7 1 Formul rio de ecr para introdu o de facturas com sub formul rio tabular FACTURA registo NUMERO DATA C DIGO FORNECEDOR NOME FORNECEDOR LINHAS FACTURA tabela i e conjunto de registos LINHA FACTURA registo ii C DIGO ARTIGO C NOME ARTIGO N QUANTIDADE Q PRE O UNIT RIO P PRE O TOTAL T Fig 7 2 Estrutura de dados hier rquica do formul rio da figura 7 1 R1 O pre o unit rio em cada linha da factura n o pode ser negativo R2 O pre o total em cada linha da factura o produto da quantidade pelo pre o unit rio R3 O total da factura o somat rio do pre o total para todas as linhas da factura R4 N o podem existir duas linhas de factura com o mesmo artigo R5 O c digo do artigo tem de existir na tabela de artigos R6 O nome do artigo obtido a partir do c digo do artigo por consulta lookup tabela de art
198. da anteriormente equivale ao seguinte gatilho class supplier Name state public supplier this gt CheckState activa o gatilho no constructor trigger perpetual CheckState after create after update evento s amp amp state Name NY state Name condi o gt immediate modo de acoplamento printf Invalid Supplier State An tabort accao 2 3 6 6 Heran a conflitos e ordem de execu o Tal como acontece com as outras propriedades duma classe as restri es e os gatilhos s o herdadas pelas classes derivadas Duas restri es definidas numa classe podem entrar em conflito sup e se que isso acontece quando o handler duma restri o viola outra restri o Nesse caso a transac o abortada Embora isso n o seja claro na documenta o consultada sup e se que essa situa o s detectada se o handler actualizar os dados atrav s duma fun o membro p blica N o existem facilidades para controlar a ordem de verifica o das restri es e de execu o dos gatilhos n o garantido sequer que seja seguida a ordem da defini o Revis o do estado da arte 35 2 4 Conclus es Pode se concluir que restri es de integridade gen ricas e dados derivados materializados s o especificados atrav s de regras de v rios tipos usando o termo regra em sentido abrangente e regras dirigidas por eventos com eventos expl citos
199. da defini o das regras podem ser relaxadas sem comprometer o formalismo apresentado 3 5 1 Regras que consultam o estado das vari veis de estado no in cio da transac o Foi dito que as regras n o podem referenciar estados passados Ora sob determinadas condi es a discutir adiante regras que consultam o estado das vari veis de estado no in cio da transac o podem ser enquadradas no formalismo apresentado Regras deste tipo s o teis para impor restri es de integridade din micas isto restri es s transi es de estado v lidas entre o estado inicial e final de cada transac o Note se que o estado das vari veis de estado pelo menos das vari veis alteradas no in cio da transac o j tem de ser guardado para efeito de tollback pelo que n o se introduz nenhum peso adicional no processamento de regras Seja a seguinte nota o old x valor da vari vel de estado x no in cio da transac o changed x mesmo que x old x Conceptualmente no final de uma transac o bem sucedida reposta a igualdade x old x para todas as vari veis de estado atrav s da atribui o old x lt x No final de uma transac o abortada a mesma igualdade reposta atrav s da atribui o x old x Diz se que uma regra r segura se a restri o imposta por r n o violada quando se faz old x lt x para todas as vari veis de estado Isto garante que ap s terminar o processamento de regras num ponto f
200. da regra nomeadamente quando est o envolvidas opera es de agrega o ou propriedades de v rias classes em face das modifica es elementares ocorridas na base de dados mas n o apresentado um m todo sistem tico para o fazer Por exemplo o sistema deveria ser capaz de inferir as seguintes ac es relativamente deriva o D1 da figura anterior e quando inserido um item i relativo a um produto p e uma ordem o adicionar Quantity i Price p a Order Price o e quando eliminado um item i relativo a um produto p e uma ordem o subtrair Quantity i Price p a Order Price o e quando modificada a quantidade dum item i relativo a um produto p e uma ordem o adicionar Quantity i old Quantity i Price p a Order Price o e quando modificado o pre o dum produto p para cada item i relativo a esse produto adicionar Quantity i Price p old Price p a Order Price o 2 3 6 Restri es e gatilhos no sistema Ode O Ode GJ91 GJ96 um SGBD orientado a objectos baseado no paradigma de objectos de C S97 O primeiro interface para o sistema Ode a linguagem de programa o de bases de dados O que uma extens o da linguagem C com facilidades de defini o e manipula o de objectos persistentes gest o de transac es e associa o de restri es e gatilhos a objectos 2 3 6 1 Objectos persistentes e transac es Na linguagem O um objecto persistente acedido por um apontador com prefixo
201. dados na forma principalmente de prioridades absolutas ou relativas com diferentes for as para garantir a sua execu o eficiente 6 Introdu o No cap tulo 6 determinam se as condi es a que um conjunto de regras deve obedecer para garantir a termina o e o determinismo do processamento de regras e obt m se alguns resultados teis para a an lise do impacto da ordem de execu o das regras na velocidade de termina o As condi es e resultados obtidos podem ser usadas na an lise de conjuntos de regras concretos e servem tamb m para justificar os crit rios introduzidos no cap tulo 5 No cap tulo 7 mostra se como podem ser incorporadas no modelo de regras proposto optimiza es necess rias para lidar eficientemente com dados complexos de que se destacam a diferencia o de regras orientadas a conjuntos e o encapsulamento de regras em objectos Nos cap tulos 8 e 9 descreve se uma implementa o concreta de um sistema de regras activas numa ferramenta de desenvolvimento r pido de aplica es de bases de dados desenvolvida no INESC Porto suportando tanto regras dirigidas pelos dados como regras dirigidas por eventos S o abordados aspectos de integra o e de implementa o O componente nuclear do sistema de regras o motor de regras descrito no cap tulo 8 O motor de regras baseia se num modelo de dados orientado a objectos limitado sem suporte directo para objectos compostos e heran a S o descritos algoritmos
202. das regras rg e ro na figura 4 2 Uma regra que pertence a um ciclo do grafo r v com uma regra apenas chamada auto recursiva o caso da regra r na figura 4 2 Uma regra que pertence a pelo menos um ciclo do grafo r v chamada recursiva Estas defini es s o mais precisas do que as dadas no cap tulo 3 O grafo ev a fonte principal de informa o em que se baseiam os crit rios de activa o e ordena o de regras a definir mais adiante como acontece tamb m no projecto PARDES em rigor s para a defini o do crit rio de ordena o que interessa a vis o geral do conjunto de regras dada pelos grafos de depend ncias 4 1 6 Grafo de depend ncias entre regras grafo r r Uma imagem global das interfer ncias entre regras por via das vari veis por elas manipuladas dada por uma grafo de depend ncias entre regras designado abreviadamente grafo r r e definido da seguinte forma e As regras s o os v rtices do grafo 52 Activa o das regras e Uma aresta r gt r entre regras diferentes significa que r actualiza uma vari vel lida por r isto o vars r i vars r e Um lacete r gt r significa que r actualiza uma vari vel tamb m lida por r isto io vars r O grafo r r pode ter ciclos que assinalam a presen a de regras recursivas Um exemplo de um grafo r r dado na figura 4 3 Fig 4 3 Grafo de depend ncias entre regras esquerda e grafo de depend ncia entre vari
203. de modos da regra deve tomar o valor M edi o de registos de dados Note se que os nomes dos campos da base de dados s o precedidos de 5 Trata se de uma regra mista de restri o e de deriva o que l o campo codigo artigo e actualiza os campos nome artigo e preco unitario Note se que a mensagem de erro produzida pela regra n o constante Note se que as tabelas da base de dados s o tratadas como passivas pelo que a altera o de dados na base de dados n o desencadeia a execu o da regra Normalmente o programador n o tem que definir regras deste tipo pois s o geradas automaticamente regras em C com o mesmo efeito e com controlo de locks conforme se explica na sec o seguinte 5 Express o geral de regra para definir um valor por omiss o para um campo nos registos inseridos if modo A then campo express o Adicionalmente pode se definir a propriedade modos da regra com o valor M edi o de registos de dados O efeito o mesmo que on after add do campo express o 6 Express o geral de regra para definir um condi o de selec o para um dado campo campo express o string com condi o de selec o como por exemplo gt 0 1 10 v etc as com I na propriedade modos da regra O efeito o mesmo que Integra o numa ferramenta de desenvolvimento de aplica es 173 on after query do campo express o mas s no caso da express o n o depender doutr
204. de permitida pela execu o diferida sem se proibir o processamento de regras a seguir execu o de qualquer instru o SQL e pela orienta o a conjuntos A simplicidade resulta principalmente do facto das regras activadas em cascata serem executadas sequencialmente iterativamente em conjunto com as regras activadas directamente e n o recursivamente como acontece em SQL3 O problema do potencial desfasamento entre as tabelas de transi o e o estado corrente da base de dados vistos por um gatilho em SQL3 n o se p e com as regras do sistema Starbust Uma vez que em cada momento s est uma regra em execu o no sistema Starbust muito mais f cil analisar o comportamento dum conjunto das regras no sistema Starbust do que analisar o comportamento dum conjunto de gatilhos em SQL3 devido execu o recursiva Em contrapartida na maioria dos casos n o ser poss vel atingir com regras no sistema Starbust a mesma efici ncia que se consegue com gatilhos FOR EACH ROW em Oracle8 em SQL3 a conclus o n o t o clara Exemplo W96 Considere se o seguinte esquema relacional dept dept no mgr no emp emp no name salary dept no A regra seguinte elimina os departamentos e os empregados de departamentos cujos managers foram eliminados create rule cascade on emp when deleted then delete from emp where dept no in select dept no from dept where mgr no in select emp no from deleted delete from dept
205. de regras de convers o ou correc o de entradas n o faz sentido impedir que o utilizador altere as vari veis calculadas recursivamente Mas n o necess rio considerar a activa o dessas regras por altera o de vari veis de sa da porque se trata tamb m de vari veis de entrada e No caso de regras mutuamente recursivas que imp em a mesma restri o de diferentes maneiras basta a execu o de uma das regras para impor a restri o Como interessa preservar sempre que poss vel os valores introduzidos pelo utilizador n o interessa executar a regra que recalcula uma vari vel alterada pelo utilizador mas sim a regra ou uma das regras que l o valor introduzido pelo utilizador conforme ilustra o 2 exemplo a seguir e As regras conflituosas regras que actualizam a mesma vari vel de estado com interesse pr tico n o cont m defini es contradit rias que exijam a activa o de uma regra quando uma vari vel de sa da alterada por outra regra conforme ilustram os exemplos dados no cap tulo 3 Por conseguinte deve existir um mecanismo ao dispor do programador de regras que lhe permita dizer que uma dada regra ou todas as regras n o activada pela altera o das suas vari veis de sa da Exemplo 1 Suponhamos que locked x designa uma vari vel de estado de valor booleano que indica a proibi o de o utilizador alterar o valor de um item de dados representado pela vari vel de estado x Para impedir que
206. de regras subsequente sem que isso seja considerado um erro Quando isso acontece diz se que as altera es produzidas pelo utilizador n o s o preservadas pelas regras Este comportamento importante para suportar regras de convers o ou correc o de entradas No caso deste comportamento n o ser desej vel isto no caso de se pretender que os dados introduzidos pelo utilizador numa dada transac o sejam obrigatoriamente preservados pelas regras o processamento de regras e a transac o devem ser abortados assim que alguma regra tenta alterar o Ordena o das regras 65 valor de uma vari vel alterada pelo utilizador na mesma transac o antes do processamento de regras Em qualquer dos casos desej vel que as altera es produzidas pelo utilizador numa dada transac o sejam preservadas pelas regras no PPR subsequente sempre que poss vel O grau em que isso acontece e portanto a sem ntica do processamento de regras pode depender da ordem por que as regras s o executadas Um caso extremo de n o preserva o das altera es produzidas pelo utilizador ocorre quando uma regra de restri o aborta o processamento de regras Ocorr ncias desse tipo j s o minimizadas pelo crit rio 5 1 pois as regras de restri o s testam valores finais das suas vari veis de entrada Mas h outros casos envolvendo regras de deriva o mutuamente recursivas que n o s o cobertos pelo referido crit rio Um crit rio de
207. dem da regra dentro da vista usado para a atribui o de nomes s regras letra r seguida do n mero e de prioridades num ricas fracas sendo que regras com n mero mais baixo t m prioridade mais alta e uma express o na linguagem de regras e comandos que define a parte de ac o da regra e opcionalmente a parte de eventos e as seguintes partes opcionais e o mbito granularidade da regra registo ou vista 166 Integra o numa ferramenta de desenvolvimento de aplica es e os modos de opera o da vista em que a regra n o est inibida propriedade modos I interrogar editar registo de crit rio M modificar editar registos de dados B buscar durante load G gravar durante save e uma lista de regras identificadas por nome de vista e n mero de regra com preced ncia sobre a regra em causa e uma lista de regras identificadas por nome de vista e n mero de regra sobre as quais a regra em causa tem preced ncia Caso n o sejam omitidos o mbito e a lista de eventos s o inferidos pelo sistema A linguagem de regras e comandos assim designada porque tamb m usada na defini o de comandos associados a uma vista Diferentemente das regras os comandos s o invocados explicitamente pelo utilizador atrav s de bot es op es de menus ou teclas As regras podem ser definidas interactivamente atrav s de uma vista encaixada como a indicada na figura seguinte constitu da por uma vist
208. destacam as que se referem aos tipos de especifica es declarativas de restri es de integridade e dados derivados suportados e aos tipos de gatilhos suportados e As especifica es declarativas de dados derivados t m normalmente caracter sticas muito semelhantes na melhor das hip teses s que se encontram em folhas de c lculo Normalmente n o poss vel especificar declarativamente sendo necess rio recorrer a gatilhos itens de dados calculados condicionalmente i e itens de dados que s o calculados em algumas circunst ncias e introduzidos pelo utilizador noutras circunst ncias c lculo de v rios itens de dados atrav s da mesma f rmula para evitar repetir c lculos dispendiosos tais como os que envolvem o acesso a disco c lculo do mesmo item de dados por v rias f rmulas n o contradit rias que surgem naturalmente quando s o suportados os tipos de c lculos referidos nos dois pontos anteriores f rmulas c clicas para convers o e correc o de dados introduzidos pelo utilizador estas f rmulas tamb m pode ser vistas como regras de imposi o de restri o de integridade propriedades de itens de dados tais como a obrigatoriedade e possibilidade de preenchimento calculadas por f rmulas em fun o dos valores dos dados e As especifica es declarativas de restri es de integridade valida es s o muito limitadas Normalmente n o poss vel especificar declarativamente send
209. detalhes de matching intra classe e inter classe que podem ser inferidos pelo sistema de acordo com os seguintes princ pios e Matching intra classe Duas propriedades da mesma classe que participam numa regra referem se implicitamente mesma inst ncia da classe Por exemplo a deriva o D3 da figura anterior pode ler se Yce Customer Balance c Credit c Debit c e Matching inter classe Duas propriedades de classes diferentes que participam numa regra referem se implicitamente a inst ncias das respectivas classes relacionadas pelas refer ncias expressas no esquema Por exemplo a restri o C4 da figura anterior pode ler se Voe Order Vce Customer Customer id o Customer id c gt Order Price o lt Max Order Price c e No caso de opera es de agrega o o matching efectuado localmente opera o de agrega o este princ pio n o apresentado explicitamente mas pode inferir se dos exemplos consultados Por exemplo a primeira linha da deriva o D2 da figura anterior ler se Vce Customer Debit c sum Order Price o oe Order A Customer id c Customer id o 0 8 where Status c preferred S o consideradas as seguintes premissas restri es importantes e unicidade cada item de dados derivado aparece do lado esquerdo de exactamente uma deriva o n o claro se isto tamb m se aplica aos estabilizadores e n o reflexividade o valor de um item de dados n o pode ser der
210. determinismo de conjuntos de regras n o ordenadas sem prioridades ou qualquer outro tipo de restri o ordem de execu o das regras Obviamente a introdu o de restri es ordem de execu o das regras apenas pode contribuir para melhorar o determinismo e nunca piorar porque ao se restringirem os caminhos de execu o poss veis pode acontecer que menos estados finais sejam ating veis a partir de um dado estado inicial e nunca o contr rio Assim as condi es suficientes que se apresentam a seguir s o igualmente v lidas para regras ordenadas por qualquer crit rio Teorema 6 13 Se as regras de um conjunto R de regras s o confluentes duas a duas e R terminante ent o R determin stico Demonstra o Se R terminante o determinismo equivalente conflu ncia local Suponhamos que h duas transi es divergentes s s e s gt s no grafo de execu o para R com s 4s Obviamente as transi es s gt s e s s t m de ser efectuadas por regras distintas digamos r e rj Uma vez que se sup e que todas as regras s o confluentes duas a duas existe um estado s que pode ser atingido tanto a partir de s como a partir de s executando r e r apenas Portanto R confluente localmente e consequentemente determin stico A Corol rio 6 1 Se um conjunto R de regras n o cont m regras recursivas auto recursivas ou mutuamente recursivas nem regras conflituosas nem regras capazes de passar de verdade
211. devido estreita rela o que existe entre os dois tipos de transac es abordam se tamb m as transac es do segundo tipo 9 2 7 1 Transac es na base de dados Existe um certo conflito entre a filosofia de funcionamento do SAGA que permite trabalhar continuamente numa vista salvando altera es periodicamente e o pouco ou nenhum suporte que existe nos SGBD s para suportar transac es de longa dura o que s o reconhecidamente indesej veis em ambientes de grande concorr ncia mas s o teis em ambientes mais pessoais Na realidade o modelo de transac es adequado para suportar este modo de funcionamento seria um modelo de transac es encadeadas Uma transac o encadeada chained transaction uma sequ ncia de transac es uma imediatamente a seguir outra possivelmente com recursos transferidos de uma transac o para a seguinte e possivelmente com persist ncia tal que uma falha do sistema n o quebre a cadeia GR93 A propriedade importante aqui a transfer ncia de recursos em particular locks e cursores de uma transac o para a seguinte e n o o aspecto da persist ncia O que o SAGA faz basicamente simular transac es encadeadas custa de transac es de curta dura o desencadeadas s durante save e locks de longa dura o desde que um registo seleccionado at que libertado sempre que poss vel A situa o mais simples no caso de vistas com um modo de sincroniza o
212. dges are directed from a vertex with a lower order number to a vertex with a higher order number A feedback edge set FES for short of a graph G V E is a subset FCE of edges such that every cycle of G contains an edge in F or equivalently such that the graph G V E F is acyclic Usually one is interested in minimal FES s that is FES s that do not contain other FES s with fewer elements The problem of testing if a graph has a FES with k elements is a well known NP complete problem 3 4 Vertex orderings and feedback edge sets are related Every ordering L of the vertices of a graph G has a corresponding or induced FES F constituted by the edges of G directed from vertices with higher order numbers to vertices with lower order numbers under L Given a FES F let G be the graph obtained from G by reversing the orientation of the edges contained in F and let G be the graph obtained from G by removing the edges contained in F If G has cycles then F has no corresponding vertex orderings If G has no cycles which is always true when F is minimal then F has one or more corresponding vertex orderings given by the topological orderings of G or G 184 An algorithm to find feedback edge sets with on edge per cycle According to 1 an ordering L of the vertices of a graph G is said to break a cycle C by degree k k21 if C has k edges directed from vertices with higher order numbers to vertices with lower order numbers under L
213. djacent in G If there exists the edge x y the path P x y would have Len P L Len P L 1 which contradicts the hypothesis about x and y If there exists the edge Q x the path P y x would have Len P L lt Len P L n 1 which contradicts the hypothesis about x and y A Lemma 6 Algorithm 1 terminates Proof By interchanging vertices x and y in L we get a new ordering L that is closer to L Let n be the number of vertices To measure the distance between two a equivalent vertex orderings L and L we use the circular length modulo n that is the number of completed turns of each path For any simple path P from x to y we get Len P L mod n lt Len P L mod n Len P L mod n 1 For any simple path P from y to x we get Len P L mod n gt Len P L mod n Len P L mod n 1 Finally for any other simple path P we get Len P L mod n Len P L mod n These imply a finite bound on the number of iterations of step 1 of algorithm 1 A Algorithm 1 is easily extended to non strongly connected graphs There is no difficulty in reordering the vertices of one strongly connected component of G at a time For each strongly connected component S in order to select the vertices x and y to exchange we ignore all the vertices and edges that do not belong to S If between x and y there are some intermediate vertices not belonging to S it is necessary to move x and y together before interchanging them
214. do de aplica es como o Microsoft Access Apesar de a norma SQL3 prever a especifica o de asser es gen ricas sem eventos expl citos envolvendo possivelmente v rias tabelas a maioria dos SGBD s comerciais n o as implementam provavelmente por dificuldade de optimiza o No caso das ferramentas de desenvolvimento de aplica es n o s o suportadas especifica es declarativas de asser es gen ricas locais a um formul rio ou a um grupo de formul rios relacionados entre si 36 Revis o do estado da arte Nas ferramentas de desenvolvimento de aplica es analisadas o suporte para especifica es declarativas de dados derivados simples superior ao que encontra na maioria nos SGBD s analisados e encontra se a um n vel muito semelhante ao que se encontra no projecto PARDES sofrendo das limita es j referidas no cap tulo 1 S o principalmente essas limita es que se pretendem resolver com o modelo de regras que se prop e a seguir 3 Regras activas dirigidas pelos dados com sem ntica de ponto fixo 3 1 Introdu o Neste cap tulo preconiza se um modelo de regras regras activas dirigidas pelos dados com sem ntica de ponto fixo particularmente adequado para a manuten o de restri es de integridade e dados derivados em formul rios de ecr simples e em outros interfaces para o utilizador presentes em aplica es interactivas de bases de dados igualmente simples Por formul rios de ecr sim
215. do trabalho apresentado nesta tese uma proposta de um modelo de regras activas dirigidas pelos dados especialmente adaptado para a manuten o de dados derivados e restri es de integridade nas vistas das aplica es interactivas de bases de dados suportando especifica es declarativas de restri es de integridade e dados derivados sem as limita es referidas na sec o anterior O modelo proposto mais flex vel e melhor integrado com regras activas dirigidas por eventos do que outros modelos de regras activas dirigidas pelos dados propostos anteriormente na rea de bases de dados Uma regra activa dirigida pelos dados uma regra activa com eventos impl citos de um tipo restrito eventos de modifica o de dados que podem ser inferidos a partir da parte de condi o e ou da parte de ac o da regra segundo certos pressupostos Recorde se que na sua forma gen rica uma regra activa ou gatilho um terno evento condi o ac o As regras activas dirigidas pelos dados diferem das regras activas com eventos expl citos dirigidas por eventos no modo de defini o mas n o no modo de execu o que dirigido por eventos por raz es de efici ncia e de integra o F rmulas de c lculo de dados derivados e de valida o de dados em folhas de c lculo ou em ferramentas de desenvolvimento r pido de aplica es s o exemplos de entidades que podem ser tratadas como regras activas dirigidas pelos dados Algumas caracte
216. dor As regras fracas poderiam ser usadas por exemplo para especificar valores por omiss o de uma forma mais flex vel Crit rios que poderiam ser usados para automaticamente atribuir for as a regras conflituosas s o descritos em IS89 O problema da manuten o eficiente e autom tica de restri es e deriva es inter objecto foi abordado apenas de forma superficial e foram apresentadas apenas solu es limitadas Em particular a forma como as regras s o encapsuladas em objectos precisa de ser definida com maior precis o 11 Refer ncias AHU74 AHW95 AU92 AWH92 BCP95 BW95 C98 CC95 CFPB96 CW90 CW91 Alfred V Aho J E Hopcrotf e Jeffrey D Ullman The Design and Analysis of Computer Algorithms Addison Wesley Publishing Company 1974 Alexander Aiken Joseph Hellerstein e Jennifer Widom Static Analysis Techniques for Predicting the Behavior of Active Database Rules ACM Transactions on Database Systems vol 20 n 1 pp 3 41 Mar o de 1995 Alfred V Aho e Jeffrey D Ullman Foundations of Computer Science Computer Science Press New York 1992 Alexander Aiken Jennifer Widom e Joseph Hellerstein Behavior of Database Production Rules Termination Confluence and Observable Determinism In Proceedings of the ACM SIGMOD International Conference on Management of Data pp 59 68 California USA Junho de 1992 Elena Baralis Stefano Ceri e Stefano Paraboschi Improved
217. dos com base nas propriedades dos blocos de dados e dos seus itens As propriedades mais importantes para esse efeito s o o nome da tabela vista ou stored procedure correspondente ao bloco e os nomes das colunas da tabela ou vista ou argumentos da stored procedure correspondentes aos itens do bloco com correspond ncia na base de dados chamados database items Outras propriedades importantes de um bloco s o as cl usulas WHERE e ORDER BY a inserir nas express es de selec o SELECT em SQL e a lista de opera es permitidas SELECT INSERT UPDATE DELETE Note se que a parte de WHERE duma express o de selec o inclui tamb m condi es de jun o geradas automaticamente pelo Developer 2000 e possivelmente condi es de selec o definidas dinamicamente pelo utilizador atrav s das facilidades de query by example Normalmente os blocos de dados de um formul rio est o relacionados entre si O Developer 2000 gere automaticamente rela es mestre detalhe master detail entre blocos de dados de um formul rio Uma rela o mestre detalhe uma rela o entre um bloco de dados mestre master data block e um bloco de dados de detalhe detail data block em que o conjunto de registos do bloco de dados de detalhe chamados registos de detalhe ou detail records est relacionado com o registo corrente do bloco de dados mestre chamado registo mestre ou master record A propriedade mais importante da rela o a
218. dos s o e BeforeUpdate ao n vel de um formul rio Ocorre imediatamente antes de serem salvas as altera es num registo modificado ou adicionado Tipicamente usado para efectuar valida es que envolvem mais do que um controlo e que n o interessa efectuar imediatamente aquando da altera o do conte do de cada controlo Nas macros a ac o que cancela o evento CancelEvent e BeforeUpdate ao n vel de um controlo de um formul rio Ocorre quando se altera o conte do de um controlo e se move o foco de entrada para outro controlo ou necess rio salvar o registo nesse momento o texto que est a ser editado pelo utilizador efectivamente introduzido no controlo actualizando o seu valor N o ocorre em controlos calculados Tipicamente usado para efectuar valida es que n o podem ser expressas peh regra de valida o do controlo tais como valida es que envolvem controlos doutros formul rios valida es com mensagens de erro vari veis ou valida es que envolvem fun es definidas pelo utilizador em VBA Nas macros a ac o que cancela o evento CancelEvent e OnDelete ao n vel de um formul rio Ocorre quando um registo eliminado mas antes da elimina o ser confirmada e efectivamente executada Para efeito de defini o do valor de um controlo unbound ou propriedade locked enabled etc em fun o de valores doutros controlos podem se usar os eventos anteriores ou
219. e else if lowlink u lt lowlink v then lowlink v lowlink u startSCC v false if startSCC v then move last in last out the top of S onto the top of T 204 An algorithm to find feedback edge sets with on edge per cycle be S while b gt s A lowlink V 2lowlink v do b b 1 jb while j lt S j lt T do EXCHANGEG T jc jtl T lt T l T amp T S j Seb move v onto the top of T EXCHANGE index v T T e T 1 else move v onto the top of S EXCHANGE index v S S S 1 current v lt false end Exchanges the positions of two vertices procedure EXCHANGE ij begin Vio Vj index V lt i index V lt j end Selects a critical in gate or out gate xy in the current SCC of level k and moves it to the first or last position respectively Returns false if there is none procedure SELECT_CRITICAL_GATE begin level I is trivial if k 1 then Xk Vsk return single in gate is trivial ingates O for i sy tk do if ingate V then ingates ingates 1 if ingates 1 then Xk Vs it must be already in the first position return single out gate is trivial outgates 0 for i sy tr do if outgate V then outgates outgates 1 indexoutgate lt i if outgates 1 then place the out gate in the last position EXCHANGE t indexoutgate Xk Vik return An algorithm to find feedback edge sets with on edge per cycle 205 multiple new
220. e interessa considerar s o a consulta do estado leitura de valor e actualiza o do estado escrita ou atribui o de valor Na pr tica estas opera es podem ser especializadas de muitas maneiras mas s nos interessa aqui a sua natureza gen rica 3 3 Defini o de regras Para tornar o modelo de regras gen rico e abstracto n o se define uma linguagem de defini o de regras pr tica Apenas se especifica a sua forma geral poder expressivo e significado das regras nela expressas Para ser poss vel apresentar alguns exemplos define se uma representa o abstracta Consideram se primeiro as regras destinadas manuten o de dados derivados e de seguida as regras destinadas manuten o de restri es de integridade 3 3 1 Defini o de regras de deriva o As regras destinadas manuten o de dados derivados s o designadas regras de deriva o Na linha do proposto no projecto PARDES as regras de deriva o dirigidas pelos dados definem o valor de itens de dados representados por vari veis de estado em fun o do valor doutros itens de dados ou constantes consultando e actualizando explicitamente os seus valores Assim uma linguagem pr tica de defini o de regras deste tipo deve dispor de primitivas para consultar ler e actualizar escrever os valores das vari veis de estado condicional ou incondicionalmente A nica exig ncia que se coloca ao nivel da defini o de regras de deriva o a s
221. e y of level k in a SCC H of level n n gt k gt 0 is part of a cycle of level k Moreover if n k 1 no more paths inside H are part of cycles of level k It is assumed that P is a single vertex if x and y are identical Proof See Appendix B A The in gates and out gates of level k may be easily obtained together with the sub SCC s of level k 1 in step 6 of algorithm 1 without any significant overhead After theorem 4 algorithm 1 may now be refined in the following way Algorithm 1b with the exploration of external cycles 5 Move from H to F either the incoming or the outgoing edges of a vertex v without those edges marked If such a vertex does not exist fail 6 1 Obtain the non trivial sub SCC s Hs Ho Hn of level k 1 of H of level k and determine its new in gates and out gates of level k 6 2 For each sub SCC H of H mark the edges that belong to the paths connecting the new in gates to the new out gates of level k in Hj 6 3 Insert each H into W Ca TA We state the problem to solve in step 6 2 in the following general form the in gates and out gates of level k become start and stop vertices and the SCC H becomes a general graph G Problem 2 connecting edges Given a directed graph G V E and sets of start and stop vertices not necessarily disjoint find the edges that belong to some path connecting a start vertex to a stop vertex in this direction It is assumed that the path that conn
222. e a partir das vari veis activadores e vari veis de sa da de cada regra da seguinte forma e Uma regra r pode gerar um evento que activa a pr pria regra s se st vars r e Uma regra r pode gerar um evento que activa outra regra r s se o vars r O et vars r Q Quando seguido o crit rio de activa o b sico sem qualquer refinamento o grafo de activa o coincide com o grafo de interfer ncias entre regras Quando seguido um crit rio de activa o refinado o grafo de activa o pode ter menos arestas do que o grafo de interfer ncias 82 Termina o determinismo e velocidade de termina o do processamento de regras Exemplo No caso do conjunto de regras da figura 3 1 uma vez que a regra rs idempotente pode se tomar st vars rs De resto n o poss vel eliminar mais vari veis activadoras em rela o s definidas pelo crit rio b sico O grafo de activa o resultante apresentado na figura 6 1 id ntico ao grafo de interfer ncias entre regras apresentado na figura 4 5 a menos do lacete em rs que removido Fig 6 1 Grafo de activa o esquerda e grafo de activa o produtiva direita correspondentes ao conjunto de regras da figura 3 1 6 1 1 2 Condi es de termina o sabido que se o grafo de activa o para um conjunto R de regras ac clico ent o o processamento de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das
223. e also joined by an edge contained in a cycle of length gt 2 not necessarily the same in the other graph Proof First consider the case where both of the graphs are directed Two edges are symmetric if the initial vertex of one of them is the terminal vertex of the other and vice versa 216 On the equivalence of vertex orderings modulo the number of backward edges per cycle Sufficiency Assume that G and G are two graphs with the same pairs of vertices in the conditions described We first reduce G and G to a canonic form We remove all the self loops parallel edges leaving only one edge from each group of parallel edges and edges not contained in cycles of length gt 2 Then for any edge u v necessarily cyclic without a symmetric edge v u we add the edge v u Let us name G and G respectively the resulting graphs According to lemma 2 G and G as well as G and G are B equivalent It s obvious that the pairs of vertices in the conditions described in the theorem statement are not affected Since we assumed that G and G have the same pairs of vertices in those conditions the reduced graphs G and G are identical and consequently B equivalent Hence G and G are B equivalent also B equivalence is transitive Necessity Let u and v be two vertices of G joined by an edge u v contained in a cycle C of length gt 2 Let L be a vertex ordering with u immediately preceding v Let L be the vertex ordering ob
224. e bi gates of the same level is replaced by the more general failure condition ii of theorem 8 that need only be tested for the new gates After theorems 6 7 and 8 algorithm 1 may be improved in the following way Algorithm 1c improved version of algorithm 1 1 Initialize F the set of feedback edges with the empty set 2 Initialize W the working set of the non trivial SCC s to decompose with the non trivial SCC s H of level 1 of G If Wis empty stop with success F is a CPFES 4 Select and remove from W an arbitrary element H a non trivial SCC of level k 5 1 If k move from H to F either the incoming edges or the outgoing edges of an arbitrary vertex and skip to step 6 5 2 If H has more than one vertex that is simultaneously a new in gate and a new out gate fail 5 3 If H has a single in gate out gate move its incoming outgoing edges from H to F and skip to step 6 5 4 Find and mark as traversed by external cycles all the edges that belong to the paths that connect the new in gates to the new out gates in H and mark the new in gates and out gates as old ones Optionally perform preliminary depth first searches starting in each new in gate and only if conditions 5 5 and 5 6 don t apply continue to perform exhaustive searches 5 5 If H has no in gate out gate without incoming outgoing internal edges marked fail If possible test this before and during step 5 4 5 6 If there are
225. e com o ltimo crit rio o que ali s justifica a utiliza o desse crit rio em vez do inverso Ap s a ltima itera o todas as inst ncias de regras ligadas transac o corrente s o eliminadas n o transitam para outro PPR da mesma transac o 8 4 3 2 Algoritmo incremental para a combina o das prioridades relativas est ticas com as prioridades num ricas din micas A combina o das prioridades relativas est ticas com mais for a com as prioridades num ricas din micas com menos for a efectuada de forma incremental Para cada regra r associada a um dado PPR o que de acordo com a sec o anterior inclui n o s as regras activadas mas tamb m as regras cujas prioridades num ricas din micas foram calculadas mantido um contador atributo indegree da classe Rule Instance com o n mero de regras activadas associadas ao mesmo PPR com prioridade relativa sobre r pela associa o Rule Precedence As regras activadas com indegree 0 s o inseridas num heap que implementa uma fila de prioridades por ordem das prioridades num ricas din micas Os algoritmos de gest o de heaps tamb m usados na fase de prioritiza o s o id nticos aos referidos na sec o 8 5 2 Considere se a seguinte nota o Pred r conjunto de regras que t m prioridade relativa est tica sobre a regra r Succ r conjunto de regras sobre as quais a regra r tem prioridade relativa est tica O passo 1 1 do algoritmo de exe
226. e des r gles actives command es par les donn es La contribution principale de ce travail est la proposition d un type ou mod le de r gles actives command es par les donn es particuligrement adapt es la maintenance des donn es d riv es calcul es et des restrictions d int grit validations en applications interactives de bases de donn es nomm ment des formulaires d cran et des rapports plus flexible et mieux int gr que d autres types de r gles actives command es par les donn es pr c demment propos s aussi bien dans le domaine des bases de donn es que dans le domaine du d veloppement rapide d applications Deux importantes caract ristiques du mod le de r gles propos sont la s mantique de point fixe et ex cution s quentielle La s mantique de point fixe signifie qu une r gle doit tre ex cut e c est dire que la condition doit tre valu e et si elle est vraie l action doit tre mise en ex cution chaque fois que cette ex cution pourra produire une modification de l tat des donn es L ex cution s quentielle est importante pour garantir que les modifications entrain es par ex cution d une r gle ne se trouveront pas affect es par l existance d autres r gles On tablit des r gles d inf rence des v nements d clencheurs de chaque r gle et des priorit s entre les r gles de fa on garantir leur ex cution s re et efficace ventuellement en associa
227. e execu o justas com velocidades de termina o semelhantes Dadas duas ordens de execu o justas O e O2 das regras de um conjunto R de regras recursivas em que O e O gt s o duas ordena es totais de R n o poss vel com base apenas na informa o de natureza sint ctica traduzida no grafo r v dizer que uma delas mais eficiente do que outra No entanto poss vel assegurar que certas ordens de execu o t m efici ncia semelhante com base no conhecimento de que certas regras s o comutativas Note se que com base apenas no conhecimento do grafo de interfer ncias que obtido a partir do grafo r v j poss vel assegurar que certas regras s o comutativas de acordo com o teorema 6 7 A propriedade importante de cada ordena o total O de R a considerar para este efeito o n mero de arestas de realimenta o induzidas por O em cada ciclo do grafo de n o comutatividade ap s se escolher uma orienta o arbitr ria para cada ciclo As arestas de realimenta o induzidas por O s o as arestas r r orientadas em sentido contr rio a O isto tal que r n o precede r em O Exemplo Sejam um conjunto de regras R r r2 r3 r4 com o seguinte grafo de n o comutatividade Este grafo tem os tr s ciclos seguintes j orientados no sentido dos ponteiros do rel gio A tabela seguinte mostra as arestas de realimenta o induzidas em cada um destes ciclos por tr s ordena es diferentes de R arest
228. e f cil manuten o ap s um per odo de aprendizagem razo vel A rapidez de desenvolvimento est estreitamente ligada com a variedade de automatismos dispon veis tanto ao n vel da gest o de vistas como ao n vel da gest o de regras importando salientar aqui como aspecto mais inovador os automatismos inerentes utiliza o de regras activas dirigidas pelos dados com eventos e prioridades impl citos A experi ncia tem revelado tamb m alguns aspectos a melhorar de que se destacam os que t m mais a ver com o subsistema de regras A principal dificuldade encontrada tem a ver com o comportamento complexo das regras em algumas situa es Em situa es mais complexas a abund ncia de automatismos e aspectos impl citos contraproducente e necess rio dar mais controlo ao programador Algumas das solu es descritas neste cap tulo e no anterior como o caso da explicita o de prioridades relativas e a explicita o mais clara dos eventos activadores v o nesse sentido Importa tamb m clarificar e simplificar alguns aspectos do modelo de execu o do SAGA Algumas limita es referidas deviam ser levantadas admitir v rias inst ncias do mesmo tipo de vista e sub vistas materializadas de forma diferente e deviam ser uniformizados outros aspectos como o caso do tratamento diferente de vistas com sec es hier rquicas e vistas com sub vistas Faltam ainda ferramentas de design an lise est tica e an lise din mica
229. e factored out An example of a rule set is given in appendix A This abstract representation has the following advantages e To obtain the complete function mapping from S to S it suffices to add the following frame conditions for any state variable v without a primed reference add v v for any state variable y with a conditional primed reference p Z gt y f X add p Z y y The symbol denotes logical negation e To obtain the underlying static constraint imposed by a rule it suffices to remove the primes It is easily translated into a practical rule language referencing the same state variables in corresponding modes Primed and unprimed variable references correspond to update write and query read operations Auxiliary variables local to each rule may be required to store the initial values of some variables A rule with a common condition factored out is called conditional it may be seen as a condition action CA rule However it is not possible to defer action execution with respect condition evaluation and there is no obligation to execute the action until the condition is false it is sufficient to reach a fixpoint for the pair condition action This is different from what usually happens in active rule systems that support CA rules 10 Hence the proposed rules are essentially action only rules 3 Rule execution model Data driven active rules defined essentially as unordered action only rules are best
230. e ocorreu a viola o As restri es de integridade tamb m s o chamadas regras de integridade por v rios autores D95 ZCF 97 Dos varios tipos de restrigdes de integridade acima referidos este trabalho incide principalmente sobre restri es de integridade est ticas gen ricas possivelmente com uma ac o de repara o associada 2 1 2 Dados derivados Um dado derivado por oposi o a primitivo um dado calculado em fun o de outros dados 8 Revis o do estado da arte Um dado derivado pode ser virtual i e n o armazenado ou materializado i e armazenado Um dado derivado virtual sempre calculado a pedido on demand Um dado derivado materializado tem de ser recalculado sempre que os dados usados no seu c lculo s o alterados O rec lculo pode ser efectuado na mesma transac o em que ocorreram as altera es on update ou pode ser efectuado s quando o valor do dado derivado necess rio on demand Um exemplo de um dado derivado um total duma linha duma factura calculado em fun o do pre o unit rio e da quantidade Exemplos de dados derivados virtuais e materializados em SQL s o vistas views e instant neos snapshots respectivamente A rela o existente entre um dado derivado materializado on update e os dados usados no seu c lculo pode ser vista como uma restri o de integridade est tica normalmente de igualdade A ac o de repara o associada restri o de
231. e of the variable b or c most recently updated by the user will be preserved 238 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases 9 3 Additional criteria Since rules may not become totally ordered by the basic criterion there is room for additional secondary criteria For instance abort rules may be given higher priority to be executed as earlier as possible The order by which rules are defined may also be used For example two total orderings of the rules presented in appendix A that result from the criteria discussed are r r4 Fgfsr2F3F7rgro and 1 14 V61s1213 17 Vols 10 Dynamic detection of contradictory updates Although it is unusual or may even be considered a programming error conflicting rules may perform contradictory updates assign different values to the same variable that may cause non termination of rule processing When conflicting rules do not appear in combination with recursive rules and the principle compute before use is followed once contradictory updates are performed by rules during a RPP it can be concluded that rule processing will not terminate 11 Hence rule processing may be immediately aborted In the presence of recursive rules contradictory updates may also be performed in different executions of the same rule Such contradictory updates may converge so rule processing should not be aborted immediately In practice it may be
232. e s only the departure state s and the state s reached at the end of r s execution are important Intermediate states are not important Side effects e g messages to the user are allowed but it s assumed that they play a secondary role Rules that produce the same net effect are considered semantically equivalent Consequently a rule r may be defined abstractly as a function from S to S with the same name of the rule The state reached at the end of the execution of r from departure state s may be denoted by r s It s assumed that rules have fixpoint semantics in the sense that a rule r need be executed in state s only if s is not a fixpoint for r A fixpoint for a rule r is a state s where r s s The condition r s s that gives the fixpoints for r is called the underlying static constraint of r or the static constraint enforced by r In order to present some examples it is used the following abstract representation a rule r is represented by a conjunction for different yy of unconditional or conditional formulas of the type y f X or p Z y f X respectively In these formulas y is a state variable p Z is an arbitrary condition on a set Z of state variables and f X is an arbitrary expression on a set X of state variables Primed variable references such as y denote final values and unprimed variable references such as X and Z denote initial values The symbols Sand have the usual logical meaning Common conditions may b
233. e salvar um registo Revis o do estado da arte 17 Note se que a valida o de dados fica grandemente facilitada pelo facto de s poder estar alterado um registo de cada vez o que pode ser limitativo em algumas aplica es Existem outras propriedades que restringem os dados que podem ser introduzidos e as altera es que podem ser efectuadas pelo utilizador a considerar antes de usar regras de valida o m scaras de formata o lista de opera es permitidas etc 2 2 2 2 Relat rios No Microsoft Access existe uma forte integra o entre formul rios e relat rios E poss vel salvar um formul rio como um relat rio e poss vel imprimir um formul rio Como seria de esperar os relat rios n o podem ser usados para entrada de dados Tal como no Designer 2000 poss vel agrupar os registos de forma hier rquica para tornar o relat rio mais leg vel ou para calcular sub totais por grupo O agrupamento dos registos no Microsoft Access est estreitamente ligado com o crit rio de ordena o dos registos e com o layout do relat rio Os registos podem ser ordenados por uma lista de at 10 campos ou express es por valores ascendentes ou descendentes s no caso de campos Cada campo ou express o dessa lista no todo ou em parte primeiros n caracteres de uma string ano de uma data etc pode ser usado para definir um n vel de agrupamento de registos Para clarificar ideias e usando a analogia com SQL suponhamos
234. e se que h aqui um pequeno abuso de linguagem porque normalmente o termo conjunto de arestas de realimenta o feedback edge set j subentende que o conjunto m nimo um conjunto de arestas de realimenta o normalmente definido como um conjunto m nimo de arestas cuja elimina o torna o grafo ac clico Exemplo No seguimento do exemplo anterior as ordena es das regras que induzem conjuntos m nimos de arestas de realimenta o no grafo r r s o as seguintes d3 3 On On GeO RO G HG y y 1 dl dl a2 Este crit rio tem diversas vantagens e A ordena o das regras por este crit rio pode ser efectuada em tempo linear no tamanho do grafo isto em tempo O IVI IEI a ver no cap tulo 8 e Intuitivamente uma vez que minimiza num certo sentido as viola es ao princ pio calcular antes de usar uma boa heur stica a usar mesmo quando as regras n o t m as propriedades acima consideradas ou s o processadas por uma ordem injusta em vez de justa e Est estreitamente relacionado com o princ pio calcular antes de usar traduzido no crit rio 5 1 Na aus ncia de regras n o recursivas tem o mesmo efeito que o crit rio 5 1 Na presen a de regras recursivas as regras que pertencem a diferentes CFC s do grafo r r ficam ordenadas pelo crit rio 5 1 e podem n o ficar ordenadas pelo crit rio 5 5 Em contrapartida o crit rio 5 5 permite ordenar 78 Ordena o das regras as regras que pertencem ao m
235. e tece cite cc se sesers ss sssssssssssssssssssssessss seo 43 324 MODELO DE EXECU O que 55 cd ceed EA dea us OCR Sosa rodas a ota Shad eae Seas ado 43 3 5 RELAXAMENTO DE ALGUMAS RESTRI ES sssscccececeesseeesceceeeseeseseseseeseeeeeseasensseseeees 45 3 5 1 Regras que consultam o estado das vari veis de estado no in cio da transac o 45 3 5 2 Regras que consultam a data e hora actuais erre 46 4 ACTIVA O DAS REGRAS cas Ran CU ed 47 4 1 DEPEND NCIAS ENTRE REGRAS E VARI VEIS scccccceceseseesensecececececnesesnsaeceeeeeenenesenteneesens 47 4 1 1 Vari veis de entrada e vari veis de sa da de uma regra 47 4 1 2 Influ ncia da forma sint ctica cccccccsssesescececececeesseeeecececesseseesseseeceeeaeaaegeseseeees 48 4 13 Formas CaN NicaS sas seres sir intassnesi cal EE EE eases E sa den ara Sae co errada sas Tee lanes 48 4 1 4 Unicidade e significado dos conjuntos m nimos de entradas e sa das 49 4 1 5 Grafo de depend ncias entre regras e vari veis grafo 1 v iii 51 4 1 6 Grafo de depend ncias entre regras grafo r 1 iria 51 ndice 4 1 7 Grafo de depend ncias entre vari veis grafo V V rr 52 4 1 8 Grafo de interfer ncias entre regras c erre rear ereneraaaaa 52 4 27 CRIT RIOS DE ACTIVA O m eoar s enaar ti ntsi adegas is ce eda E Ana ss DELA TT canada DAT 53 4 2 1 Crit
236. ects a start vertex to an identical stop vertex is simply that vertex Algorithm 2 finding the connecting edges 1 Define an augmented graph G V E with an extra vertex w extra edges from w to each start vertex and extra edges from each stop vertex to w 2 Find the cycles that cross w These cycles minus the extra vertex and edges are the connecting paths and their edges are the connecting edges A Theorem 5 Algorithm 2 may be run in time O IVHIED p 1 where p is the number of connecting paths Proof Clearly IVI IV 1 and IEI lt lE I lt SIEH 2IVI the upper limit occurs when all the vertices are start and stop vertices The number of cycles that cross the extra vertex w is the number p of paths Since we may use an algorithm that takes time O IVIHIE1 between consecutive cycles and step 1 may be executed in time O IVI the overall time is O IVIHIE p D IVI Substituting and removing constant factors this is the same as O IVI IEI p 1 A 188 An algorithm to find feedback edge sets with on edge per cycle Notice that like the number of cycles the number p of paths may be exponential in the number of vertices After these results let s compare step 5 2 of algorithm la and step 6 2 of algorithm 1b If p is the number of paths in each non trivial sub SCC H V Ei cy the number of cycles in the parent SCC H Vp Ep and O T and O T the running times of step 5 2 of algorithm la and step 6 2 of algorithm 1b then T
237. ecutada se estiver activada A primeira express o corresponde ao caso que cada regra tem preced ncia sobre a regra seguinte Assim enquanto a regra com mais preced ncia r estiver activada nenhuma outra regra pode ser executada No segundo caso a pr xima regra a executar depende de qual foi a ltima regra executada A pr xima regra a ter uma oportunidade de execu o a que teve uma oportunidade de execu o h mais tempo 74 Ordena o das regras Ordens de execu o deste tipo s o normalmente seguidas na avalia o bottom up de regras dedutivas RSS90 e na resolu o iterativa de sistemas de equa es num ricas mas n o em sistemas de regras activas Crit rios poss veis para estabelecer uma ordena o inicial s o indicados na sec o 5 6 5 5 2 Ordens de execu o justas e regras falsamente recursivas As ordens de execu o justas s o tamb m teis para suportar eficientemente regras falsamente recursivas muito frequentes em aplica es interactivas de bases de dados segundo a experi ncia do autor Por regras falsamente recursivas entendem se regras recursivas cujo grafo de activa o produtiva ac clico O grafo de activa o produtiva traduz a rela o pode activar de forma produtiva entre regras Diz se que uma regra r activa uma regra r de forma produtiva se a execu o de r a partir de um ponto fixo de r um estado em que a execu o de r n o seria produtiva pode terminar num est
238. ed graph G V E any edge u v of G such that u does not precede v under L is called a backward edge induced by L in G any other edge is called a forward edge induced by Lin G We are not interested in the backward edges themselves but rather in the number of backward edges induced in each cycle of G also referred to as number of backward edges per cycle Example 1 With respect to the following directed graph the following table shows all the vertex orderings that start in vertex 1 and the number of backward edges induced by them in each cycle of G Other orderings may be obtained from the ones shown by rotation vertex orderings and number of backward edges per cycle 0 4 2 3 A G 034 0 1 2 eea 2 ea Backward edges per cycle may also be defined for undirected graphs by fixing an arbitrary orientation to each cycle Notice that the same edge may get different orientations in different cycles Example 2 With respect to the following undirected graph the table shows all the vertex orderings that start in vertex 1 and the number of backward edges induced by them in each cycle of Gu Other orderings may be obtained from the ones shown by rotation Alternatively we could deal with undirected graphs by regarding each undirected edge as a pair of symmetric directed edges However for the purpose of comparing vertex orderings with respect to the number of backward edges they induce in each cycle of a graph
239. edades de alto n vel indicadas pelo utilizador como a propriedade de idempot ncia Foram identificadas condi es a que um conjunto de regras activas dirigidas pelos dados deve obedecer para garantir a termina o e o determinismo do processamento de regras Foram identificadas condi es mais conservadoras cuja verifica o exige apenas uma an lise sint ctica das regras sendo portanto f cil de automatizar e condi es menos conservadoras cuja verifica o exige tamb m uma an lise sem ntica das regras Conforme se previa a natureza especializada das regras activas dirigidas pelos dados permitiu obter condi es de termina o e determinismo menos conservadoras do que as que s o conhecidas para regras activas gen ricas Foi estabelecida uma rela o entre a sintaxe e a sem ntica de uma regra activa dirigida pelos dados na sec o 4 1 4 atrav s da no o de vari veis de entrada e sa da que permitiu demonstrar a correc o dos crit rios de obten o de eventos activadores e prioridades e das condi es de termina o e de determinismo que se baseiam apenas em informa o de natureza sint ctica Foi analisada a combina o com o modelo de regras proposto de diversas estrat gias conhecidas para a manuten o eficiente de restri es de integridade e dados derivados em conjuntos de dados complexos com destaque para a diferencia o de regras orientadas a conjuntos e o encapsulamento de regras em objectos O e
240. educible flow graphs Several experiments with randomly generated graphs have shown an average running time of the algorithm approximately linear in the size of the graph It was also identified a special class of worst case graphs for which the running time of the algorithm grows exponentially with the size of the graph An important open problem is to prove whether problem 1 is NP complete The partial results obtained in this paper suggests so but a definite proof was not given Acknowledgments The author would like to thank Jo o Canas Ferreira for his comments and suggestions 196 An algorithm to find feedback edge sets with on edge per cycle References R Ramakrishnan D Srivastava S Sudarshan Rule Ordering in Bottom Up Fixpoint Evaluation of Logic Programs in Proceedings of the 16th VLDB Conference D McLeod R Sacks Davis H Schek Ed pp 359 371 Brisbane Australia 1990 K Thulasiraman M N S Swamy Graphs Theory and Algorithms John Wiley amp Sons 1992 A V Aho J E Hopcrotf J D Ullman The Design and Analysis of Computer Algorithms Addison Wesley Publishing Company Reading Massachusetts 1974 M R Garey D S Johnson Computers and Intractability A Guide to the Theory of NP Completeness Bell Laboratories W H Freeman and Company San Francisco 1979 E M Reingold J Nieverge D Narsingh Combinatorial Algorithms Theory and Practice Prentice H
241. egisto porque 1 10 Express o de regra para impedir a grava o de altera es na base de dados enquanto se verifica uma determinada condi o on before save do if condi o then undo N o pode gravar altera es porque 1 Regras executadas em before save s o normalmente usadas para efectuar valida es que n o podem ser feitas incrementalmente 11 Express o de regra para completar a grava o de uma linha de factura com a actualiza o do ltimo pre o do artigo na base de dados on after save record do sql update artigo set ultimo pre o a where codigo b c digo pre o unit rio 174 Integra o numa ferramenta de desenvolvimento de aplica es Regras executadas em after save recordou after save s o normalmente usadas para completar a grava o de altera es na base de dados em rela o ao que o SAGA j faz automaticamente a partir da especifica o de propriedades de mais alto n vel referidas na sec o 9 2 2 12 Express es de duas regras para manter uma segunda vista aberta v2 enquanto a vista a que a regra pertence est aberta on after open do open v2 on before close do close v2 13 Express o geral de regra chamada regra de agrega o para definir um campo de sum rio campo fun o de agrega o express o nome de vista A fun o de agrega o pode ser uma das indicadas na sec o 9 3 1 1 rsum rmax rmin ou rcount No caso do nome d
242. eguida os seguintes aspectos estrutura de dados das vistas da aplica o suporte para especifica es declarativas de restri es de integridade valida es e dados derivados calculados suporte para gatilhos 2 2 1 Oracle Developer 2000 O Oracle Developer 2000 ou simplesmente Developer 2000 a ferramenta da Oracle Corporation para a constru o gera o de aplica es de bases de dados constitu das essencialmente por formul rios forms relat rios reports e grafic os graphics colectivamente designados vistas da aplica o application views em M97 O Developer 2000 engloba um conjunto de produtos que anteriormente apareciam separados Oracle Forms sucessor do SQL Forms Oracle Reports sucessor do SQL Reports e Oracle Graphics O Developer 2000 uma ferramenta representativa e bem conceituada na sua categoria embora seja usada principalmente em conex o com o pr prio SGBD Oracle No entanto as aplica es desenvolvidas com o Developer 2000 podem tamb m funcionar em conex o com outros SGBD s via ODBC Open Database Connectivity norma da Microsoft que uniformiza o interface por SQL embebido em C para diferentes SGBD s Descrevem se de seguida algumas caracter sticas importantes desta ferramenta no contexto deste trabalho As caracter sticas referem se vers o 2 da ferramenta conforme descrita principalmente em M97 com alguns detalhes recolhidos de OF93 2 2 1 1 Formul rios E
243. eguinte as regras devem ser individualmente determin sticas no sentido de que quando uma regra r executada a partir de um estado s o estado final s atingido no final da execu o de r fun o apenas de s n o dependendo de estados passados ou do tempo Sup e se ainda que quando uma regra executada apenas o seu efeito l quido importante Isto quando uma regra r executada a partir de um estado s somente o estado inicial s e o estado final s atingido no fim da execu o de r s o importantes Estados interm dios n o s o considerados importantes Efeitos laterais mensagens para o utilizador etc podem existir mas sup e se que desempenham um papel secund rio Regras que produzem o mesmo efeito l quido s o consideradas semanticamente equivalentes Dados os pressupostos anteriores um regra r pode ser definida abstractamente por uma fun o de S em S fun o de transforma o de estado com o mesmo nome da regra que descreve o seu efeito l quido O estado final atingido no final da execu o de r a partir de um estado s denotado r s Entende se que uma regra de deriva o deve ser executada sempre que da sua execu o possa resultar a altera o do estado dos itens de dados em termos l quidos isto por compara o do seu estado inicial e final Por outras palavras uma regra de deriva o r deve ser executada num estado s se s n o for um ponto fixo de r Formalmente usando a no
244. ela modifica o de qualquer item de dados que participa na condi o e Invoca o de opera es externas Em muitas situa es interessa invocar automaticamente uma opera o externa que consulta a base de dados sem a alterar sempre que certos itens de dados consultados por essa opera o s o modificados Essa activa o pode ser implementada por uma regra dirigida pelos dados que invoca a opera o e activada pela modifica o de qualquer item de dados consultado pela opera o desde que esses itens sejam declarados por exemplo como argumentos da invoca o Em contrapartida uma regra dirigida por eventos event driven rule definida como uma regra que activada pela ocorr ncia de eventos como acontece com as regras ECA ou EA em vez de ser activada pela modifica o de itens de dados Esta distin o entre regras dirigidas por eventos e regras dirigidas pelos dados n o clara porque a modifica o de um item de dados tamb m constitui um evento Para clarificar ideias parece n o haver contradi o com a documenta o consultada se considerarmos que uma regra dirigida pelos dados uma regra de um dos tr s tipos acima mencionados de deriva o de restri o ou de invoca o duma opera o externa que activada implicitamente pela modifica o de itens de dados S o apontadas diversas defici ncias na manuten o de restri es de integridade e dados derivados atrav s de regras ECA ou EA re
245. elas referenciados no formul rio n o s o alterados durante o preenchimento do formul rio essas tabelas podem ser tratadas como constantes para efeito do processamento de regras Isso pode ser garantido por exemplo atrav s de mecanismos de bloqueio lock Essa solu o pode ser penalizadora em termos de concorr ncia Uma solu o alternativa consiste em permitir altera es nas tabelas referenciadas artigos e fornecedores sendo o formul rio notificado quando isso acontece para proceder por altera es internas ao formul rio em transac es independentes das transac es nas tabelas de artigos e fornecedores aos ajustes necess rios para que as regras R5 a R8 sejam satisfeitas N o faria sentido sobrecarregar o processamento de transac es nas tabelas de artigos e fornecedores com ac es de reposi o de integridade no formul rio Tecnicamente o modo de acoplamento entre o evento activador e a execu o da regra detached ver sec o 2 1 4 Quando o formul rio acede s tabelas de artigos em vez de solicitar locks 124 Refinamentos para o tratamento de dados complexos inscreve se em subscreve uma lista de objectos a ser notificados quando a tabela ou registos dessas tabelas s o alterados Uma situa o semelhante acontece com formul rios de consulta da bases de dados que s o notificados para se refrescarem total ou parcialmente incrementalmente quando os dados da base de dados neles referenciados s
246. em C e aos atributos sublinhados nos diagramas de classes em UML Do ponto de vista de cada objecto os atributos locais ao objecto t m o significado de vari veis de estado locais ao objecto Do ponto de vista do sistema completo todos os atributos intra objecto ou globais de todas as classes t m o significado de vari veis de estado do sistema os atributos intra objecto s o vistos como vari veis de estado orientadas a conjuntos isto o que interessa o conjunto de valores do atributo para todos os objectos da classe como fun o definida em extens o dos identificadores dos objectos Segue se portanto a abordagem descrita na sec o 7 2 2 Podem existir classes sem objectos apenas com atributos e regras globais Uma classe desse tipo funciona como um m dulo 8 2 3 Meta classe RPP RPP uma abreviatura de Rule Processing Point Aqui s o registados dinamicamente os pontos de processamento de regras PPR s ou RPP s que existem explicitamente nas opera es das classes da aplica o registadas na meta classe Class isto os pontos nessas opera es onde invocado explicitamente o processamento de regras Estes n o s o os nicos pontos onde invocado o processamento de regras pois como veremos adiante o processamento de regras tamb m invocado no final de cada transac o Os PPR s t m um nome mame para permitir a associa o expl cita de regras definidas numa linguagem textual a PPR s ver ass
247. em uma com a outra Consequentemente s o comutativas pelo teorema 6 7 Suponhamos que uma das regras digamos r pode activar uma terceira regra r com preced ncia sobre r ou rj Isso s pode acontecer se r actualiza uma vari vel lida por rg e 7 actualiza uma vari vel y tal que existe um caminho de y para r ou r no grafo rr Mas r n o pode actualizar uma vari vel y tal que existe um caminho de y para r no grafo r r porque se sup e que n o h regras mutuamente recursivas e rz n o pode actualizar uma vari vel y tal que existe um caminho de y para r no grafo r r porque nesse caso r teria preced ncia sobre r uma vez que n o h regras mutuamente recursivas Portanto nenhum das duas regras pode activar de forma produtiva ou n o uma regra com preced ncia sobre qualquer das duas Por conseguinte r e r est o nas condi es do caso 1 do requisito de conflu ncia Uma vez que s o comutativas tamb m s o confluentes pelo teorema 6 9 Portanto o requisito de conflu ncia satisfeito De acordo com o teorema 6 14 o processamento de regras determin stico em sentido forte ou fraco porque os dois sentidos s o equivalentes quando o conjunto de regras terminante Suponhamos agora que h regras conflituosas Neste caso segue se um racioc nio diferente Uma vez que n o h regras recursivas o grafo v v ac clico pelo que poss vel numerar as vari veis de estado por uma ordem topol gica do grafo v v Sejam
248. emplo Sejam o formul rio vista mestre de manuten o de facturas e o sub formul rio sub vista ou vista de detalhe apresentados na figura 7 1 Suponhamos que a base de dados manipulada atrav s dessas vistas tem o seguinte esquema relacional Fornecedor c digo nome Factura n mero data c digo fornecedor Fornecedor Artigo c digo nome LinFact n mero factura Factura c digo artigo Artigo quantidade pre o unit rio Os atributos sublinhados constituem a chave prim ria A nota o campo gt tabela significa que o atributo do lado esquerdo constitui uma chave estrangeira que referencia a chave prim ria da tabela rela o do lado direito 160 Integra o numa ferramenta de desenvolvimento de aplica es Por sua vez os esquemas da vista mestre VFactura e da vista de detalhe VLinFact podem ser definidos da seguinte forma VFactura Factura n mero Factura n mero data Factura data c digo fornecedor Factura c digo fornecedor nome fornecedor Fornecedor nome pre o total VLinFact LinFact c digo artigo Artigo c digo nome artigo Artigo nome quantidade LinFact quantidade pre o unit rio LinFact pre o unit rio pre o total Os alvos s o indicados entre par ntesis rectos No caso da vista VFactura a chave de acesso tabela alvo Factura obviamente constitu da pela campo n mero porque tem como alvo a chave prim ria da tabela A chave de acesso a Fornecedor tabe
249. ental activadas por eventos diferentes sendo a regra incremental desactivada sempre que a regra incremental activada Exemplo Seja uma rela o A com atributos x e y e seja a seguinte regra n o incremental para obter o fecho transitivo de A ry A AU Tay By A E a PIB p o operador de renomea o de R98 y A regra incremental correspondente ri A SA UT A A bX AJUT A BA A A AFA x A y AFA y A x Ax AFA y A y ATA x Neste caso o estado antigo que interessa referenciar o estado no in cio da ltima execu o da regra porque a regra r n o idempotente 7 2 3 3 Discuss o A gera o autom tica de regras incrementais a partir de regras n o incrementais s poss vel em casos relativamente simples Podem ser adaptados para esse fim os m todos descritos em CW90 CW91 e CW94 para a gera o autom tica de regras ECA incrementais para a manuten o de restri es de integridade e dados derivados a partir de especifica es de alto n vel assim como os m todos descritos em BW95 para a avalia o incremental de condi es sobre conjuntos e o c lculo de diferencia o parcial partial differencing calculus descrito em RS98 Em geral ser o programador a escrever as regras directamente na forma incremental ou simultaneamente na forma incremental e na forma n o incremental porque a forma incremental pode n o ser aplic vel na 1 execu o da regra ou quando ocorrem certos
250. epresentadas por arestas do grafo de execu o tem se que no caso de n o estarem definidas prioridades entre as regras T s s r E SXSXR r s s AS 5 7 Cada tuplo s s r de T corresponde a uma aresta etiquetada s s no grafo de execu o No caso de estar definido um conjunto P de prioridades entre as regras n o poss vel executar uma regra produtiva r num estado s se existir outra regra produtiva r no mesmo estado com preced ncia sobre r i e com r gt r e P Assim tem que se acrescentar T s s r Ee SXSXR r s s AS s A7AlAreER r s 5A r gt re PJ A rela o bin ria T que se obt m projectando T nos seus dois primeiros componentes s e s constitui uma rela o de redu o reduction relation no sentido de H80 A rela o bin ria 7 til para aplicar mais directamente os conceitos e t cnicas cl ssicas de an lise de conflu ncia apresentados em H80 Considerar a rela o 7 corresponde no grafo de execu o a substituir conjuntos de arestas paralelas por uma nica aresta possivelmente etiquetada com os nomes de todas as regras que podem provocar essa transi o Todos os v rtices do grafo de execu o podem ser estados iniciais do processamento de regras Os v rtices dos quais n o parte nenhuma aresta representam estados finais do processamento de regras pontos fixos para todas as regras Correspondem s formas normais de H80 Os caminhos do grafo de execu
251. er of vertices see Appendix E 4 e experiment 1 12 experiment 2 5 linear regression line So 5 3 z amp quadratic E 2 8 regression line oO O g2 2 o 6 a S 54 3a a E EF 2 0 0 0 5 10 15 20 25 30 0 10 20 30 40 50 number of vertices number of vertices Fig 2 Average performance of CPSORT as a Fig 3 Average performance of CPSORT as a function of the number of vertices in experiment 1 function of the number of vertices in experiment 2 expected number of edges linear in the number of expected number of edges quadratic in the number vertices of vertices In the second experiment for each number of vertices from 4 to 50 100xn graphs were selected at random possibly with repetitions from the set of all simple directed graphs with n vertices without exclusion of isomorphic graphs and then processed by CPSORT Since a complete directed graph with n vertices has nx n 1 edges in order to generate a random graph with n vertices it suffices to generate a random number or several random numbers concatenated together with nx n 1 bits and select or reject an edge according to the value of the corresponding bit The performance results obtained are summarized in Fig 3 From Fig 3 we conclude that in experiment 2 the average execution time of CPSORT is approximately quadratic in the number of vertices Since in this experiment the expected number of edges per cycle is quadratic in the number d vertices 1x n
252. er satisfeita pelo que a regra segura 46 Regras activas dirigidas pelos dados com sem ntica de ponto fixo A regra seguinte mant m um contador do n de vezes n de transac es em que uma vari vel x alterada r4 changed x gt c old c 1 A restri o imposta por esta regra x old x v c old c 1 Quando se substitui old x por x e old c por c a restri o continua a ser satisfeita pelo que a regra segura Note se que uma vez que old c tratado como uma constante a regra n o auto recursiva em c A regra seguinte actualiza uma vari vel y em fun o de x apenas quando x alterado n o impede portanto altera es directas de y rs changed x gt y x A restri o imposta por esta regra x old x v y x Quando se substitui old x por x a restri o continua a ser satisfeita pelo que a regra segura A seguinte regra n o segura re achanged x gt y x A restri o imposta por esta regra x old x v y x Quando se substitui old x por x a restri o continua a ser satisfeita apenas no caso em que y x pelo que a regra n o segura e portanto n o suportada 3 5 2 Regras que consultam a data e hora actuais Foi dito que as regras n o podem referenciar o tempo Ora sob determinadas condi es regras que consultam a data e hora actuais podem ser enquadradas no formalismo apresentado Regras que referenciam a data e hora actuais podem ser teis para animar os interfaces par
253. er usadas para manter dados derivados e restri es de integridade entre os seus componentes Para efeito da defini o das regras intra objecto interessa considerar classes de objectos e definir as regras intra objecto uma nica vez para todos os objectos da mesma classe possivelmente junto com a defini o da classe Obviamente as regras de uma classe devem ser herdadas pelas suas sub classes 7 3 1 2 Modelo de execu o das regras As regras dirigidas pelos dados associadas a um dado objecto destinadas manuten o de restri es e dados derivados devem ser executadas em PPR s no fim dos m todos de cria o e de altera o do estado do objecto invocados do seu exterior correspondem a construtores e fun es p blicas sem qualificador const em C Em cada PPR as regras s o executadas sequencialmente Quando o objecto criado todas as regras est o activadas como se as regras fossem criadas nessa altura Se o processamento de regras for abortado no PPR associado opera o de cria o do objecto o objecto deve ser subsequentemente destru do As regras s o reactivadas pelos eventos de altera o das vari veis de estado intra objecto que ocorrem no decurso da execu o desses m todos Uma opera o ou regra de um objecto pode invocar outra opera o sobre o mesmo objecto Para garantir que as regras s o at micas umas em rela o s outras deve existir um PPR apenas na opera o mais externa Uma reg
254. era o de consulta pode ser uma opera o que combina v rias opera es primitivas etc A propriedade time indica o momento em que o PPR ocorre na opera o e before no in cio da opera o e after no fim da opera o e middle num ponto interm dio da opera o Estas duas propriedades interessam para a gera o autom tica de eventos activadores 8 2 4 Meta classe Rule Aqui s o registadas dinamicamente as regras que existem nas classes da aplica o registadas na meta classe Class Tal como os atributos e os PPR s as regras podem ser de duas granularidades diferentes e object Aplicam se a um objecto espec fico da classe Tamb m s o designadas regras intra objecto O identificador do objecto um argumento impl cito da regra fornecido quando a regra activada conforme se ver adiante semelhante ao apontador this em C N o se imp e nenhuma restri o de encapsulamento pelo que uma regra intra objecto pode aceder a outros objectos e a atributos globais e class T m exist ncia ligada exist ncia da classe mas n o se aplicam a um objecto espec fico da classe Tamb m s o designadas regras globais A parte de ac o da regra a regra em si indicada por um apontador para uma fun o exec function e um argumento exec arg Executar a regra corresponde a invocar essa fun o com esse argumento No caso de regras intra objecto passado um argumento adicional com o identificador
255. ere 2 2 Rule definition language Details of a practical rule definition language are not important in the generic approach presented here only its expressive power is important As explained in the introduction data driven active rules are defined essentially as unordered action only rules So only the definition of the action part is considered here It s assumed that rules are defined in one language with primitives to query read and update write conditionally or unconditionally the values of the state variables Rules that update the value of state variables are called derivation rules Rules may also conditionally call a primitive to abort rule processing and subsequently restore the system to the last quiescent state Such rules are called abort mles Without any loss of generality Data driven Active Rules for the Maintenance of Derived Data and 231 Integrity Constraints in User Interfaces to Databases abort rules are hereafter handled as derivation rules that conditionally activate a special error variable denoted e It s assumed that rules are individually deterministic in the sense that when a rule r is executed in state s the state s reached at the end of its execution is a function only of s and does not depend on past states or time Apart from that no additional restrictions are placed about rule definition It s assumed that only the net effect of rules is important That is when a rule r is executed in stat
256. erenciado em r1 Normalmente as regras s o escritas de tal forma que n o ocorrem actualiza es contradit rias pelo que n o necess rio entrar em conta com as regras encapsuladas nos sub objectos para efeito da determina o dos eventos activadores como ilustra o exemplo seguinte Exemplo Seja um tipo de tabela t constitu da por registos do tipo r com campos x y e z Sejam as seguintes regras rule t rl update this set x 1 rule r r2 z x y O efeito l quido completo da regra r1 entrando em conta com a poss vel execu o encaixada de r2 pode ser expresso por update this set x 1 z x y No entanto como n o h actualiza es de estado contradit rias no decurso da execu o de r1 n o necess rio considerar o efeito l quido aumentado para definir os eventos activadores que ficam simplesmente rule t rl on create insert update x update this set x 1 Suponhamos que submetido o seguinte comando do utilizador ul update t set y 1 em que t uma tabela do tipo t A figura seguinte mostra o grafo de execu o respectivo relativo a um nico registo com um dado estado inicial ul r2 X Y z 1 0 1 gt 1 1 1 gt 1 1 2 A regra r2 imediatamente activada a seguir altera o de y em cada registo consumindo essa altera o A regra r1 n o activada apesar de referenciar y na forma aumentada Mesmo quando n o ocorrem actualiza
257. erior executada e executada de novo antes da pr xima regra com um n mero inferior ser executada Consequentemente o n mero total de execu es de regras aj tan 2 2 277 2 1 no pior caso A No caso de regras activas dirigidas pelos dados pode se concluir o seguinte Teorema 6 2 Se o conjunto R de regras n o cont m regras recursivas nem regras conflituosas o processamento de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras Demonstra o Se R n o cont m regras recursivas nem conflituosas o grafo de interfer ncias entre regras n o tem ciclos e vice versa Uma vez que o grafo de activa o tem as mesmas ou menos arestas do que o grafo de interfer ncias o grafo de activa o tamb m ac clico Pelo teorema anterior o processamento de regras termina sempre A Termina o determinismo e velocidade de termina o do processamento de regras 83 6 1 2 An lise refinada baseada no grafo de activa o produtiva 6 1 2 1 Grafo de activa o produtiva No caso de regras activadas dirigidas pelos dados poss vel definir condi es de termina o muito menos conservadoras m base na an lise do efeito da execu o de cada regra na produtividade dessa e doutras regras Diz se que a execu o de uma regra r num estado s produtiva ou simplesmente que r produtiva no estado s se a execu o de ra partir de s produz um novo estado diferente de s o q
258. ermina o conflu ncia e determinismo Os estados finais s o indicados em letra mais forte 6 2 3 Grafo de execu o parametrizado O grafo de execu o til para a discuss o e demonstra o de t cnicas de an lise de determinismo e termina o de regras activas mas n o para averiguar a termina o e determinismo de conjuntos de regras particulares devido ao tamanho infinito ou quase infinito do espa o de estados Para averiguar o determinismo de conjuntos com poucas regras definidas por express es simples um instrumento mais adequado um grafo de execu o parametrizado com um nico estado inicial mais todos os estados que podem ser atingidos a partir dele sendo todos os estados parametrizados em fun o dos valores iniciais das vari veis de estado i e descritos por express es que d o o valor de Termina o determinismo e velocidade de termina o do processamento de regras 91 cada vari vel de estado em fun o dos valores iniciais de todas as vari veis de estado Estados parametrizados com express es equivalentes devem ser agrupados num nico estado parametrizado A partir do grafo de execu o parametrizado pode se construir um grafo de execu o instanciado para cada estado inicial concreto substituindo os par metros pelos valores iniciais concretos das vari veis de estado e condensando v rtices com os mesmos valores das vari veis de estado num nico v rtice O grafo de execu o instanci
259. es ocorridas desde o in cio dessa transac o A transac o invocadora no caso de existir n o abortada e sem rollback local Se a transac o t for abortada a transac o invocadora tamb m abortada Assim as altera es ocorridas durante a transac o invocadora mesmo antes do in cio de t tamb m s o desfeitas Obviamente no caso de uma transac o de n vel de topo os dois tipos s o equivalentes As transac es podem ser de uma das seguintes granularidades e objecto Incide sobre um objecto espec fico chamado objecto alvo da transac o cuja classe e identificador s o dados pelos atributos target class e target object identifier Uma transac o deste tipo tamb m chamada intra objecto Normalmente corresponde invoca o de uma opera o intra objecto transaccional e global N o incide sobre um objecto espec fico Uma transac o deste tipo tamb m chamada global O atributo start log top regista o topo da pilha que implementa o log de altera es aquando do inicio da transac o para efeitos de rollback e para efeito de controlo de altera es a ver na sec o seguinte Uma transac o sem rollback local herda o valor de start log top da transac o invocadora 134 Implementa o de um motor de regras activas dirigidas pelos dados O atributo aborted indica se a transac o foi abortada Este atributo interessa porque pode mediar algum tempo desde que uma transac
260. es absolutas s o teis para definir de forma expedita prioridades entre grupos de regras Assim ambos os esquemas s o teis 62 Ordena o das regras Para facilitar a execu o das regras dirigidas pelos dados em combina o com outras regras activas conv m utilizar esquemas de prioridades deste g nero Idealmente no caso de terem impacto em termos de sem ntica as prioridades estabelecidas devem ter um significado claro para o programador de regras 5 2 Ordena o pelo princ pio calcular antes de usar Intuitivamente o princ pio calcular antes de usar deve ser seguido sempre que poss vel A ideia a seguinte se uma vari vel x calculada por uma regra r e usada lida por outra regra r ent o deve se primeiro calcular o valor de x executando a regra r antes de usar o valor de x executando a regra r Se o grafo rr for ac clico isto se n o existirem regras recursivas sempre poss vel aplicar este princ pio que corresponde execu o das regras por ordem topol gica do grafo r r O princ pio n o aplic vel no entanto entre regras recursivas Assim preconiza se o seguinte esquema de prioridades relativas Crit rio 5 1 Uma regra r tem preced ncia sobre uma regra r i e r gt r se existir um caminho de r para r e nenhum caminho em sentido contr rio no grafo r r ou equivalentemente no grafo r v Conforme foi explicado anteriormente a preced ncia significa que se amba
261. esmas restri es de maneiras diferentes 67 S42 Ordena es ide MS editar sudo Seo nho seed cvead Gen sh added Dual sli au ae alada Sao 68 5 4 3 Ordena es ideais de conjuntos de regras puramente incondicionais 68 5 4 4 Combina o com outros crit rios 20 0 0 cece eeeeeeeeeeeeeeeeeceeeeeeeeeeeseeeeeeeeeseseeeeeeeeeeeeeenees 73 5 5 ORDENS DE EXECU O JUSTASsidocdevccices dics Sika os dias dal ala ia Gov a nace ees Sake er aAa 73 5 5 1 Ordens de execu o justas e regras verdadeiramente reCursivas ssseeeeeeeeeeeeee 73 5 5 2 Ordens de execu o justas e regras falsamente recursivas cceceeeeeeeseneeeeeeeeeeeeees 74 5 6 ORDENA O DE REGRAS RECURSIVAS MONOTONAS ccccecscecesececececececececececeeeeeeeeeeeeeeeees 74 5 6 1 Regras recursivaS mon tonas cccccccci cc cce e cecerererenerenenenecananenananananananananananaa 74 5 6 2 Compara o de sequ ncias de execu o de pares de regras recursivas monotonas 75 5 6 3 Ordena es que induzem conjuntos m nimos de arestas de realimenta o no grafo r r 76 5 6 4 Ordena es que induzem uma aresta de realimenta o em cada ciclo do grafo r r 78 5 7 OUTROS CRIT RIOS riisi esetere oa eis ata aguas PES aires metho aE na ESEE Seep aaa aa 79 5 7 1 Testar restri es o mais cedo POSSiVel eeeeeeseseececececeseesesecaececeeeceeeesenneaeeeeeeeenens 19 5 7 2 Prioridades definidas pelo programador
262. esmo CFC do grafo rr enquanto que o crit rio 5 1 n o o permite Assim os dois crit rios s o perfeitamente complementares sem se oporem Uma vez que este crit rio produz em geral v rias ordena es poss veis deve ser combinado com outros crit rios que permitam seleccionar uma de entre as v rias ordena es poss veis 5 6 4 Ordena es que induzem uma aresta de realimenta o em cada ciclo do grafo r r No caso das regras serem processadas por uma ordem justa poss vel refinar o crit rio anterior conforme sugere o seguinte exemplo Exemplo Sejam as duas ordena es O e O que induzem conjuntos m nimos de arestas de realimenta o no grafo r r conforme indicado na figura seguinte poss veis lacetes s o omitidos porque n o fazem diferen a para o caso CS QI ft rota o j rota o minimiza o 7 Os do conjunto de arestas de realimenta o aresta de realimenta o evit vel Apesar de O induzir um conjunto m nimo de arestas de realimenta o se as regras forem executadas por uma ordem justa poss vel melhorar a ordem de execu o da seguinte forma O2 rirsro ri rsrori que pior do que ri rsriro rirs rarors A optimiza o aqui efectuada em vez de ser feita logo na 1 itera o uma itera o uma passagem por todas as regras feita numa janela do tamanho de uma itera o mas com in cio deslocado ou equivalentemente numa rota o da ordena
263. established a bound on the number of times that each rule may be executed or the number of times that each variable may be modified By contrast it is assumed that the user updates may be contradicted by rules This is necessary for input conversion to establish departure values for some iterative methods and to support error repair rules derivation rules used with the purpose of repairing input errors Mandatory user updates that cannot be contradicted by rules are best treated as temporary rules 11 Conclusions and further work It was presented a data driven rule model suited for the maintenance of integrity constraints and derived data in screen forms and other user interfaces to databases The specialized nature of the actions performed by those rules allowed us to derive triggering events and priorities among rules for efficient rule execution as well as improved properties on rule sets that ensure termination and confluence of rule execution More conservative conditions require only a syntactic analysis of the tules while less conservative conditions require ako a semantic analysis A rule system based on the approach described is being re implemented as a core component of a software tool that automates the development of interactive database applications 15 benefiting from the experience acquired in the development of successful applications with thousands of rules in previous implementations 16 Several assumptions related to rule
264. ferentes valores iniciais de x mas sempre iguais ao valor inicial de y o predicado p toma o valor falso e a fun o f toma um valor arbitr rio Assim conclui se que existe uma regra r semanticamente equivalente a r que n o l o valor de uma vari vel x se e s se a condi o 1 se verificar Equivalentemente a vari vel x tem de ser lida i e tem de pertencer ao conjunto de entradas de qualquer regra semanticamente equivalente a r se e s se a seguinte condi o se verificar nega o da condi o 1 2 dyeV Jke range V x As te S s V x t V x k A r s y r t y A A As eS s V x k A r s y s y A vari vel k pode ser removida desta express o resultando a seguinte express o equivalente 2 Aye V ds t s e S s V x t V x s V x Ar s y r t y A r s y s y A condi o r s y r t y implica que r s y r s y ou r s y r t y Assim a express o 2 implica escolhendo s s ou s t respectivamente 0 Aye V assess VA s V x A r s y r s y A 1 S y s y A rec proca tamb m verdadeira escolhendo s s e t s Assim conclui se que as express es 2 e 2 s o equivalentes A express o 2 equivalente condi o apresentada no enunciado do teorema bastando substituir s por s e s por t A x min i vars r sse IyeVAs tes y min o vars r sse 4s S sS E 5 Fig 4 1 Defini es esquem ticas de min o vars r e min i vars r
265. fico graphic ou chart uma representa o pict rica de dados geralmente agregados Os dados representados num gr fico s o normalmente produzidos atrav s duma express o de selec o SELECT em SQL No caso comum de gr ficos que apresentam dados agregados os dados devem ser produzidos j em forma agregada pela express o de selec o Tal como os formul rios e os relat rios os gr ficos podem ter par metros Podem se inserir gr ficos em relat rios e formul rios para o que necess rio alguma programa o atrav s de gatilhos 2 2 1 4 Gatilhos A defini o de formul rios e relat rios refinada atrav s de gatilhos Um gatilho um bloco de c digo em PL SQL linguagem de programa o estruturada baseada em SQL com extens es procedimentais que se associa a um determinado objecto formul rio bloco de dados de formul rio item de formul rio ou relat rio para executar quando ocorre um certo evento nesse objecto O nome do gatilho o nome do evento isto poss vel porque existe uma rela o de zero ou um para um entre gatilhos e eventos em cada objecto Frequentemente os termos gatilho e evento s o usados como sin nimos Os eventos podem dividir se em 14 Revis o do estado da arte e eventos built in s o eventos gerados internamente durante o processamento de formul rios e relat rios processamento de interroga es navega o transac es etc e eventos do teclado key trigger
266. figura 7 1 e tratada no exemplo anterior com uma sub vista de manuten o de linhas Integra o numa ferramenta de desenvolvimento de aplica es 161 de facturas A rela o entre uma vista e uma sua sub vista uma rela o mestre detalhe em que a primeira assume o papel de vista mestre e a segunda assume o papel de vista de detalhe Em geral poss vel definir uma rvore cujos n s s o vistas e os ramos representam rela es mestre detalhe A raiz da rvore a vista de n vel de topo n vel 1 Os outros n s da rvore s o sub vistas possivelmente de v rios n veis A rvore completa chamada uma vista encaixada nested ou vista hier rquica Tanto em termos visuais como em termos l gicos existem diferentes graus de acoplamento entre vistas mestre e vistas de detalhe Em termos visuais a vista de detalhe pode ocupar uma sub janela da vista mestre ou pode ocupar uma janela separada Em termos l gicos certas opera es de manipula o de vistas abrir e fechar alterar e salvar altera es interrogar etc podem ser realizadas em conjunto ou separadamente Em termos do conte do de dados a liga o entre as vistas envolvidas numa vista encaixada efectuada normalmente atrav s da defini o de um ou mais par metros em cada sub vista tamb m chamados par metros de ambiente os quais s o ligados bound a campos de vistas que se encontram em linha ascendente na rvore tamb m chamadas vistas de ambiente
267. fo de activa o produtiva ac clico poss vel numerar as regras por ordem topol gica do grafo de activa o produtiva Seja p o n mero de execu es produtivas da regra com n mero i por uma ordem topol gica do grafo de activa o produtiva No pior caso verifica se o seguinte relativamente regra com n mero i por ordem topol gica i est inicialmente activada de forma produtiva ii executada uma primeira vez de forma produtiva antes de ser reactivada de forma produtiva por outras regras iti reactivada de forma produtiva sempre que uma regra com um n mero j lt i por ordem topol gica executada de forma produtiva e iv executada antes de ser de novo reactivada de forma produtiva Assim no pior caso pi l pi pi s i 2 n e p 1 pelo que pi 2 i 1 n Consequentemente o n mero total de execu es de regras produtivas p p pn 2 1 no pior caso Pelo lema anterior entre duas execu es produtivas e antes da primeira execu o produtiva podem ocorrer no m ximo n 1 execu es n o produtivas A seguir ltima execu o produtiva podem ocorrer no m ximo n execu es n o produtivas Assim o n mero total de execu es n o produtivas n o pode exceder n 1 p n pelo que o n mero total de execu es produtivas ou n o produtivas n o pode exceder p n I p n n p 1 n 2 1 1 n2 no pior caso A Uma vez que o grafo de activa o produtiva tem as mesmas ou um subconjun
268. for mais recente O estado no fim da ltima execu o de r tamb m consistente com r desde que r seja idempotente O acesso a este estado til para optimizar a execu o das regras que s o executadas v rias vezes na mesma transac o No entanto exige o armazenamento de mais informa o e no in cio da ltima execu o de r ou no in cio da transac o conforme o que for mais recente O acesso a este estado til para optimizar a execu o das regras que se auto activam porque n o s o idempotentes No modelo de regras do cap tulo 3 exige se que o estado s atingido no final da execu o de uma regra r s dependa do estado s existente no in cio da execu o de r e n o de estados passados A escrita de regras na forma incremental com refer ncia a estados passados especiais n o implica necessariamente a viola o desta exig ncia O que est em causa aqui obter o mesmo efeito de uma regra n o incremental r do tipo s r s atrav s de uma regra incremental ou diferencial r do tipo s r s old s r s sem violar a exig ncia acima referida Normalmente n o interessa referenciar directamente o estado passado mas sim as diferen as entre o estado passado e o estado corrente Essas diferen as s o normalmente dadas por vari veis delta uma ou mais para cada vari vel de estado cuja defini o depende da estrutura interna das vari veis de estado conforme se ver a seguir As vari veis delt
269. forma expl cita enquanto que as regras de deriva o o fazem de forma impl cita Uma linguagem pr tica de defini o de regras deve dispor de uma primitiva para abortar o processamento de regras e subsequentemente repor o sistema num estado anterior consistente com todas as regras As regras de restri o s o de seguida tratadas como reduzidas a regras de deriva o que activam uma vari vel de estado especial de erro de valor booleano que monitorada pelo sistema de controlo ver regra r na figura 3 1 A exig ncia de determinismo estabelecida para as regras de deriva o aplica se tamb m s regras de restri o ap s a redu o a regras de deriva o A redu o a regras de deriva o induz no entanto uma pequena imprecis o de linguagem os estados consistentes com uma regra de restri o n o s o exactamente os pontos fixos da regra de deriva o equivalente mas sim os estados que n o violam a restri o Podem tamb m existir regras mistas isto regras simultaneamente de deriva o e de restri o A exist ncia de uma primitiva expl cita para abortar til para suportar este g nero de regras No caso de regras puramente de restri o a ac o de abortar poderia ser impl cita bastando indicar a restri o de integridade Exemplo r x O0 gt y 1 x nA x 0 gt 5 true 3 4 Modelo de execucao Descrevem se de seguida as op es fundamentais tomadas relativamente ao modo como as regra
270. g algorithm Algorithm 1 construction of a minimal CPFES F for a graph G V E 1 Initialize F the set of feedback edges with the empty set 2 Initialize W the working set of the non trivial SCC s to decompose with the non trivial SCC s of G 3 If Wis empty stop with success F is a CPFES 4 Select and remove from W an arbitrary element H a non trivial SCC 5 Find a vertex vin H whose incoming or outgoing edges in H are not traversed by cycles of G that are not fully contained in H and move from H to F the incoming or outgoing edges of v respectively If such a vertex does not exist stop and fail G has no CPFES 6 Insert into W the non trivial sub SCC s of H without the edges moved to F 7 Go to step 3 A The decomposition of each non trivial SCC is done in steps 5 and 6 Step 5 is sufficient to break all the cycles that cross the selected vertex and to disconnect it in the strong sense from the other vertices of the same SCC In terms of the corresponding vertex ordering this has the effect of pushing the selected vertex into either the first or the last position of the topological ordering of the resulting sub SCC s A few definitions follow The cycles of G that are not fully contained in a sub graph H of G are called external cycles with respect to H Any vertex with the property mentioned in step 5 whose An algorithm to find feedback edge sets with on edge per cycle 185 incoming or outgoing edges in H a
271. g or concurrency To deal with more complex user interfaces and systems such as master detail and hierarchical screen forms at least a combination of sequential and nested rule execution by means of nested RPPs has to be considered Such richer modes of executions are found in object oriented databases 17 Data driven active rules may be integrated in such environment according to the following scenario the details are left to 15 e A complex system is viewed as a collection of interacting composite objects e A composite object is viewed as a small scale system with its own intra object state variables and intra object rules The intra object state variables represent component objects that do not interact directly with each other Attributes of an object and references to other objects are viewed as components objects These non interacting component objects are integrated via the methods operations and rules attached to the composite object Data driven rules attached to the composite object intra object rules at the composite object level may be used to maintain derivations and constraints between the component objects Such rules are executed in RPPs in the methods of the composite object including methods for object creation and deletion and are triggered by events generated inside the composite object e Derivations and constraints that involve objects that interact directly with each other may be managed either via intra object da
272. gar qualquer regra representada nesta nota o pode ser traduzida para uma linguagem pr tica referenciando exactamente as mesmas vari veis de estado em modos correspondentes Refer ncias a valores finais correspondem a refer ncias para escrita enquanto que refer ncias a valores iniciais correspondem a refer ncias para leitura Podem ser necess rias vari veis locais auxiliares para armazenar valores iniciais de algumas vari veis como mostra o exemplo seguinte Exemplo Supondo vari veis inteiras a seguinte regra com uma condi o comum em evid ncia rx gt y gt x yay x pode ser traduzida pela seguinte fun o em C notar a utiliza o da vari vel local auxiliar ol dx 42 Regras activas dirigidas pelos dados com sem ntica de ponto fixo void r int oldx if x gt y oldx x x y y oldx Finalmente para obter a condi o que define os estados consistentes com uma regra de deriva o basta remover as pelicas Exemplo Os estados consistentes com a regra rx gt y x yay x s o os que obedecem condi o x gt y gt x yAy x que equivalente a xSy v x yay x ou simplesmente x lt y 3 3 1 2 Tipos de regras de deriva o Para al m do determinismo n o se imp e partida nenhuma restri o ao tipo de regras de deriva o que podem ser expressas individualmente e em conjunto Em particular admitem se regras dos tipos a seguir indicados Uma regra que deriva o valor de m
273. ges of the AG are a subset of the edges of the TG this condition is less conservative than the one based on the TG By contrast the construction of the AG requires a semantic analysis that cannot be automated in general while the construction of the TG only requires a syntactic analysis So both conditions are useful Improved termination analysis of active rules has also been proposed in 13 by combining the TG with an analysis of the effect of rules actions on the truth value of other rules conditions However it can be shown that for the specific case of data driven active rules the conditions obtained in 13 are more conservative than the ones we ve obtained here 11 They use an activation graph that coincides with our in case the condition of each rule is precisely the complement of its underlying static constraint 8 Confluence analysis The order by which rules are considered for execution when there are multiple triggered rules may affect the final state reached at termination of rule processing If for a given rule set the final state reached at termination of rule processing is independent of the order by which rules are executed for any initial state the rule set is called confluent 12 We next give sufficient conditions that guarantee confluence Such conditions are useful in confluence analysis of particular rule sets and for the development of ordering criteria 8 1 Rule commutativity Confluence analysis of active
274. gorithm to find feedback edge sets with on edge per cycle for i sy t do avail V true for i sy tr do if newingate V then MARKEDGESR V f if failed then return depth first search of the sub graph traversed by external cycles to detect cycles in it optional for i sy tk do avail V lt true for i s ti do if avail V then DFS EXTCYCLES V if failed then return new become old for i sy tk do newoutgate V false newingate V false end Finds and marks the edges of the paths in the current SCC of level k from v to the new out gates without traversing previous vertices in the current path Ifno such path exists v remains unavailable and parameter exitfound becomes false In case of preliminary depth first search all the vertices visited remain unavailable procedure MARKEDGESR v exitfound begin current v true v is in the current path backedge lt false backedge is a local variable exitfound lt newoutgate v exitfound is an output parameter avail v false for we Adj v such that s lt index w st A failed do if current w then if inextcycle v w then backedge lt true if exitfound then failed true there is a cycle in the sub graph traversed by external cycles else if avail w then MARKEDGESR w f if f then exitfound lt true if backedge then failed true there is a cycle in the sub graph traversed by extern
275. gra o de ambientes de desenvolvimento e execu o de aplica es A integra o entre os ambientes de desenvolvimento e de execu o das aplica es assume diversos aspectos e as especifica es das aplica es tabelas vistas regras menus utilizadores permiss es etc s o armazenadas numa base de dados relacional em tabelas ditas de sistema tal como os dados manipulados por essas aplica es e na mesma sess o de trabalho atrav s de um nico execut vel pode se passar uma vista do modo de execu o para o modo de desenho e vice versa e podem coexistir vistas em modo de desenho e em modo de execu o e grande parte do trabalho de desenvolvimento de aplica es efectuado atrav s de vistas criadas com o SAGA ditas de sistema assemelhando se assim ao trabalho de utiliza o final das aplica es e o pr prio desenho de layout das vistas pode ser efectuado atrav s de vistas com um mapeamento para o ecr diferente do habitual em que os campos das vistas correspondem a atributos de objectos gr ficos e n o a objectos gr ficos os registos das vistas que passam a corresponder a objectos gr ficos A integra o tem diversas vantagens e o desenvolvimento mais expedito pois o ciclo codifica o teste encurtado e os utilizadores finais ou administradores de sistemas podem realizar pequenas ac es de manuten o e o desenvolvimento de aplica es beneficia dos servi os fornecidos pelo
276. gras activas dirigidas pelos dados comprova o rm cap tulo 5 e para a ordena o de regras dedutivas comprova o em RSS90 e a demonstra o de algumas propriedades de grafos no anexo 2 que podem ser usadas na an lise do impacto da ordem de aplica o das regras no n mero de itera es necess rias para atingir um ponto fixo para todas as regras e tamb m na an lise do impacto da ordem de aplica o das equa es no n mero de itera es necess rias na resolu o iterativa de um sistema de equa es e algoritmos de escalonamento multi crit rio com base em prioridades absolutas ou relativas de diferentes for as que podem ser usados noutros sistemas de regras no cap tulo 8 1 3 Organiza o da tese No cap tulo 2 analisa se o suporte para especifica es declarativas de restri es de integridade e dados derivados e o suporte para gatilhos ou regras activas tanto em ferramentas de DRA como em SGBD s representativos A an lise de ferramentas concretas de DRA permite tamb m concretizar o cen rio descrito na figura 1 1 No cap tulo 3 definem se e justificam se os aspectos essenciais do modelo de regras activas dirigidas pelos dados proposto nesta tese No cap tulo 4 estabelecem se os crit rios de activa o eventos activadores das regras dirigidas pelos dados por forma a garantir a sua execu o segura e eficiente No cap tulo 5 estabelecem se os crit rios de ordena o das regras dirigidas pelos
277. grupos indivis veis de opera es de altera o de estado Uma restri o de integridade din mica ou simplesmente restri o din mica uma condi o a que t m que obedecer as transi es de estado v lidas Um exemplo de uma restri o de integridade din mica a que diz que o estado civil de uma pessoa n o pode passar de casado para solteiro Normalmente admite se que as restri es de integridade din micas sejam violadas por transi es elementares que ocorrem no decurso de uma transac o bastando que a transac o no seu todo vista como uma transi o de estado de mais alto n vel obede a a essas restri es Podem ainda distinguir se restri es de integridade built in de restri es de integridade gen ricas ZCF 97 As primeiras s o especificadas atrav s de constru es especiais da linguagem de defini o de dados utilizada e possivelmente impostas ao n vel da organiza o f sica dos dados enquanto que as segundas s o especificadas atrav s de condi es ou asser es gen ricas No caso do modelo relacional as restri es de integridade da chave e de integridade referencial D95 s o restri es de integridade built in Uma restri o de integridade pode ter associada impl cita ou explicitamente uma ac o de repara o repair action a executar quando a restri o violada A ac o de repara o impl cita mais comum abortar e desfazer a opera o ou transac o em qu
278. guinte No diagrama n o se indicam as transi es que ocorrem quando uma transac o abortada nessa eventualidade necess rio repor o estado dos dados e das regras altera o de vari vel referenciada pela reg E 1 Activada 3 Desactivada in cio de execu o fim de execu o fim de execu o da regra da regra altera o de vari vel de entrada da regra 4 Em execu o 2 Em execu o activada desactivada Fig 4 6 Diagrama de estados de uma regra de acordo com o crit rio de activa o b sico em UML 4 2 2 Optimiza es est ticas baseadas na minimiza o dos conjuntos de vari veis activadoras Os conjuntos de vari veis activadoras apresentadas anteriormente podem ser demasiados conservadores Analisamos de seguida de um ponto de vista te rico as seguintes quest es Quais s o Activa o das regras 55 os conjuntos m nimos de vari veis activadoras que podem ser considerados e que ainda asseguram uma activa o correcta Como que est o relacionadas com o efeito l quido descrito por uma fun o no espa o de estados Como que est o relacionados com os conjuntos m nimos de vari veis de entrada e de sa da Indicam se tamb m algumas optimiza es que podem ser efectuadas na pr tica 4 2 2 1 Conjuntos m nimos de vari veis de activa o externa Para ser correcto qualquer conjunto U de vari veis de activa o externa de uma regra r deve obedecer seguinte condi o se
279. gumentos um apontador para uma fun o um apontador para uma sequ ncia de bytes em mem ria principal e o n de bytes da sequ ncia Esses bytes e o apontador para fun o s o copiados para o log A opera o push item retorna a posi o do item no log Essa posi o pode ser usada de v rias formas Quando se regista no log o estado antigo de um objecto ou atributo modificado pode se guardar junto com esse atributo ou objecto a posi o do item inserido no log Atrav s dessa posi o e da opera o get item pode se mais tarde facultar o acesso ao estado antigo desse objecto ou atributo o que til para suportar regras que acedem a estados passados a ver no cap tulo 9 Quando o estado do atributo ou do objecto de novo modificado pode se comparar a posi o do ltimo item inserido no log relativamente a esse atributo ou objecto com a atributo start log top da transac o corrente para decidir se necess rio efectuar qualquer registo no log A opera o get item permite aceder a um item do log pela sua posi o Os bytes desse item s o colocados em mem ria principal no buffer do log de altera es e o seu endere o retornado a aplica o para usar esses bytes antes de ser chamada outra opera o do log A opera o rollback changes destina se a desfazer as altera es ocorridas desde um determinado ponto definido por um argumento da opera o usada pela opera o abort da classe Tr
280. hat the kind of graphs shown in Fig 4 is very close to the worst case Comparing the results in this experiment with the good average performance of CPSORT in the previous experiments we conclude that difficult cases are very rare For such difficult cases CPSORT has been designed so that it may be interrupted at any time e g when some kind of time out is reached except when two vertices are being interchanged producing the best ordering obtained so far This is advantageous when cycle preserving vertex ordering is for efficiency and not for semantic as it happens with some logic programs e g pure datalog rules 8 Conclusions and further work In this paper it was presented by stepwise refinement an algorithm to solve the following problem problem 1 check if a directed graph G V E has a CPFES or equivalently a CPVO and if so produce it CPVO s are relevant in the context of bottom up fixpoint evaluation of datalog programs Problem 1 was related with other known problems and it was proved that its worst case complexity is of order not greater than O IVI IEI c J where c is the number of cycles IVI is the number of vertices and El is the number of edges The expensive steps of the algorithm were carefully identified and several conditions were found under which those steps could be avoided leading to a polynomial execution time in many cases Classes of graphs for which problem 1 can be solved in polynomial time include r
281. i vel de sa da de nenhuma regra r e R com r gt r isto uma regra r que precede r segundo O Vendo O como um conjunto ordenado de regras diz se simplesmente que x uma entrada de O Note se que o estado final atingido no fim do processamento das regras completamente determinado pelos valores iniciais das entradas de O Indicam se de seguida lemas necess rios para demonstrar dois teoremas que relacionam ordena es ideias com ordena es com conjuntos m nimos de entradas Ordena o das regras 69 Lema 5 1 Uma ordena o total O de um conjunto R de regras puramente incondicionais ideal se e s os valores das entradas de O s o preservados i e nenhuma regra altera o valor de uma entrada de O e n o ocorrem actualiza es contradit rias i e nenhuma vari vel actualizada com dois valores diferentes por duas regras diferentes ou em execu es diferentes da mesma regra quando as regras s o executadas pela ordem O a partir de qualquer estado inicial e qualquer conjunto de regras inicialmente activadas Demonstra o Ideal Entradas preservadas Suponhamos que O ideal Seja x uma entrada de O e seja r a 1 regra que tem x como entrada Por defini o de ordena o ideal o valor de x n o alterado por r nem por nenhuma regra r com r gt r Por defini o de entradas de O n o existe nenhuma regra antes de r que escreva em x Portanto o valor de x preservado Ideal Aus ncia de actualiza es con
282. ia desses crit rios principalmente em termos de efici ncia mas tamb m em termos de sem ntica do processamento de regras de forma gen rica ou para conjuntos de regras que obedecem a certas propriedades 5 1 Introdu o A ordem pela qual as regras s o consideradas para execu o no algoritmo de processamento de regras quando h mais do que uma regra activada pode ter impacto em termos de sem ntica a termina o do processamento de regras e em caso de termina o o estado final atingido e em termos de efici ncia do processamento de regras medida na falta de mais informa o pelo n mero de vezes que cada regra executada Assim interessa definir crit rios de ordena o das regras destinados a promover boas propriedades do processamento de regras em termos de sem ntica e de efici ncia Habitualmente em sistemas de regras activas as regras s o ordenadas de forma total ou parcial atrav s de prioridades absolutas ou prioridades relativas tamb m chamadas preced ncias Num esquema de prioridades absolutas associada uma prioridade num rica a cada regra Durante o processamento de regras uma regra activada r n o pode ser seleccionada para execu o n o candidata a execu o se existir outra regra activada r com prioridade num rica superior de r Se existirem v rias regras com a mesma prioridade a ordena o estabelecida parcial caso contr rio a ordena o total o que implica que s
283. ia habitual como em UML97 correspondem aos atributos de uma rela o 110 Refinamentos para o tratamento de dados complexos N MERO Legenda Cro DATA Cr atributo A de T NOME FORNECEDOR 4 TALO regra r consulta atributo A de T e deve ser activada quando A alterado itin inser es elimina es Fig 7 6 Grafo r v anotado relativo s regras que imp em as restri es da figura 7 3 S o usadas as abreviaturas da figura 7 2 A vari vel n o representada a Grafo r r grafo de b Grafo de activa o pelo c Grafo de n o interfer ncias e grafo de crit rio refinado e grafo de comutatividade activa o pelo crit rio b sico activa o produtiva id nticos r2 e r3 s o confluentes id nticos neste caso neste caso Fig 7 7 Grafos correspondentes ao conjunto de regras da figura 7 6 7 2 2 Decomposi o de vari veis de estado Uma rela o R com atributos A Az A e identificador interno dos tuplos Z pode ser vista como um conjunto de n rela es bin rias R Ro R em que R uma rela o bin ria em Te A que d o valor do atributo A em fun o definida em extens o do identificador interno J Cada uma destas rela es bin rias pode ser representada por uma vari vel de estado com o mesmo nome do atributo ou com nome R A para evitar ambiguidades Tem se assim uma vari vel de estado para cada atributo coluna de R Opcionalmente pode considerar se um
284. ibui o destinada a repor a integridade a qual executada em vez de abortar a transac o Exemplos de deriva es e restri es que s o tratadas como regras dirigidas pelos dados s o indicados na figura seguinte em que se subentende um modelo de dados orientado a objectos Classes and properties Class Customer Properties Customer id Status Credit Debit derived Balance derived Max Order Price Class Product Properties Product id Price Manufactured Quantity Avaliable derived Class Order Revis o do estado da arte 29 Attributes Order id Customer id reference to Customer Order Price derived Items set of Product id reference to Product Quantity Derivations computational invariantes E93 derive operations G95 D1 Order Price sum Quantity Price D2 Debit sum Order Price 0 8 when Status preferred sum Order Price otherwise D3 Balance Credit Debit D4 Available Manufactured Quantity sum Quantity Constraints logical invariantes E93 enforce operations G95 C1 Available gt 0 C2 Balance gt 2 average Order Price C3 Credit gt 0 stabilizer Credit 0 C4 Order Price lt Max Order Price Fig 2 3 Exemplo de defini o do esquema de uma base de dados com deriva es e restri es tratadas como regras dirigidas pelos dados no projecto PARDES adaptado de E93 e G95 Nas express es das restri es e deriva es h
285. ica o de registos esvaziamento dos dados etc independentemente da forma como esses dados s o visualizados pelo utilizador ou da forma como esses dados est o relacionados com a base de dados e Mapeamento para a camada de apresenta o e interac o com o utilizador As ac es realizadas pelo utilizador sobre uma vista da aplica o ao n vel de abstrac o suportado pelo SGIU pressionamento de um bot o altera o do conte do de uma caixa de texto etc s o traduzidas para ac es sobre os dados mantidos em mem ria tempor ria elimina o de um registo actualiza o de um campo etc Em sentido inverso os dados residentes em mem ria tempor ria s o formatados e apresentados ao utilizador em janelas do ecr ou na impressora e Mapeamento para a base de dados camada de armazenamento persistente As altera es acumuladas na mem ria tempor ria da aplica o s o enviadas para a base de dados Em sentido inverso a mem ria tempor ria carregada com dados provenientes da base de dados Duas sub tarefas importantes que est o intimamente relacionadas com a primeira tarefa acima mencionada nomeadamente com a gest o de altera es nos dados das vistas da aplica o s o a imposi o de restri es de integridade e o c lculo de dados derivados nas vistas da aplica o sem o recurso ao SGBD Uma aplica o tem de ser capaz de realizar estas sub tarefas sem o recurso ao SGBD por v rias raz es e Algum
286. icada imediatamente ap s a execu o de qualquer opera o SQL capaz de a violar Se a condi o n o se verificar apenas essa opera o SQL desfeita rolled back e DEFERRED A restri o verificada imediatamente antes de uma transac o em que foram executadas opera es SQL capazes de violar a restri o fazer commit Se a condi o n o se verificar a transac o desfeita rolled back Este modo til para permitir que restri es sobre v rias tabelas e ou linhas de tabelas sejam violadas transitoriamente no decurso das transac es Por compara o as restri es de tabelas s o verificadas sempre em modo imediato Se uma asser o for especificada como DEFERRABLE ent o pode se escolher outro modo de avalia o na transac o corrente em vez do modo especificado com INITIALLY com a instru o SET CONSTRAINTS lt constraint names gt IMMEDIATE DEFERRED Note se que poucos SGBD s comerciais suportam asser es gen ricas muito provavelmente devido dificuldade em as verificar eficientemente Por exemplo o Oracle8 n o as suporta 2 3 1 4 Evolu es em SQL3 A norma SQL3 prev os mesmos tipos de restri es de integridade da norma SQL 92 com pequenas altera es Em SQL3 e em alguns SGBD s comerciais como o Oracle8 a cl usula prevista para especificar o modo de avalia
287. icas dos itens Tamb m pode ser usado para manter incrementalmente itens de sum rio ou rejeitar a inser o de registos com RAISE Form Trigger Failure e When Remove Record Dispara quando o operador ou a aplica o limpa clears ou elimina um registo Pode ser usado para manter incrementalmente itens de sum rio Normalmente os gatilhos que permitem redefinir comportamentos pr definidos t m o nome come ado por On Por exemplo o gatilho On Insert dispara onde o comportamento normal seria a execu o de um comando INSERT de SQL durante o processo de propaga o de altera es post para a base de dados Pode se associar a este evento um bloco de c digo em PL SQL a executar em vez do comando INSERT de SQL Muitos dos gatilhos n o se aplicam durante o modo de introdu o do crit rio de interroga o enter query mode mas apenas em modo normal Pode se associar a um objecto de mais alto n vel formul rio ou bloco de dados um gatilho disparado por um evento que de facto ocorre em objectos de mais baixo n vel blocos de dados ou itens Nesse caso o gatilho herdado pelos objectos de mais baixo n vel podendo tamb m ser redefinido ou aumentado para alguns objectos de mais baixo n vel por gatilhos com o mesmo nome associados a esses objectos A t tulo de conclus o note se que a manuten o de itens calculados atrav s de gatilhos pode ser relativamente trabalhosa e sujeita a erro po
288. icos Este crit rio tem no entanto as seguintes desvantagens e exige a monitoriza o de leituras e escritas embora a monitoriza o de escritas j tinha de ser feita de alguma forma para detectar as altera es e a varia o din mica dos eventos activadores dificulta a implementa o deste crit rio em sistemas de regras activas conhecidos em que os eventos activadores de cada regra s o fixos embora possam ser compostos e n o facilmente extens vel para regras intra objecto a ver adiante porque seria necess rio manter conjuntos de vari veis diferentes para inst ncias diferentes da mesma regra Assim este crit rio s til no caso de n o ser poss vel efectuar uma an lise sint ctica pr via das regras 4 2 5 Activagao apenas por altera o de vari veis de entrada Na pr tica geralmente desnecess rio considerar a activa o externa das regras por altera o das suas vari veis de sa da bastando considerar a activa o tanto externa como interna por altera o das vari veis de entrada pelas seguintes raz es e Geralmente conv m impedir por um sistema de permiss es que o utilizador altere o valor de itens de dados que s o calculados por regras No caso de itens de dados calculados condicionalmente a pr pria permiss o de alterar esses tens de dados pode ser calculada pela mesma regra conforme ilustra o 1 exemplo a seguir e No caso de regras auto recursivas nomeadamente no caso
289. idade conservador com arestas em excesso que se obt m do grafo de interfer ncias substituindo arestas dirigidas por arestas n o dirigidas e removendo arestas paralelas e lacetes Exemplo No caso do conjunto de regras da figura 3 1 depois de construir um grafo de n o comutatividade conservador a partir do grafo de interfer ncias entre regras chega se conclus o que apenas poss vel eliminar a aresta que liga as regras rs e re De facto sendo rs y lyl re x20 gt y x o efeito l quido da execu o de rs seguido de re r5 r6 X20 gt y x A x lt 0 gt y lyl enquanto que o efeito l quido da execu o de rs seguido de rs ro rs X20 gt y Ixl x lt 0 gt y lyl que equivalente ao anterior Portanto rs e rs comutam Obt m se assim o grafo de n o comutatividade indicado na figura seguinte 94 Termina o determinismo e velocidade de termina o do processamento de regras Fig 6 3 Grafo de n o comutatividade esquerda e grafo de n o conflu ncia direita correspondente ao conjunto de regras da figura 3 1 6 2 5 Pares de regras confluentes Para analisar a conflu ncia e determinismo de um conjunto de regras importante analisar a conflu ncia das regras duas a duas em particular das regras que n o s o comutativas pois as regras comutativas s o trivialmente confluentes Duas regras r e r de um conjunto R de regras dizem se confluentes se o conjunto de regras reduzido a essas dua
290. ificuldade da sua determina o autom tica deve existir um mecanismo ao dispor do programador de regras para indicar que uma dada regra idempotente 4 2 2 5 Optimiza es est ticas baseadas numa an lise de fluxo de dados Numa linguagem pr tica e com base apenas numa an lise de fluxo de dados podem se excluir de st vars r as vari veis que n o s o actualizadas depois de serem lidas na parte de ac o da regra Exemplo Suponhamos que a seguinte regra r x gt 0 gt y x A x lt 0 gt x y traduzida para a seguinte fun o em C void r if x gt 0 y x lse x y Neste caso i vars r o vars r x y Pelo crit rio b sico st vars r x y Uma vez que y n o actualizado depois de ser lido pode ser removido de st vars r Na realidade uma an lise sem ntica revela que a regra idempotente pelo que se poderia tomar st vars r 4 2 3 Optimizagoes din micas baseadas no valor da condi o Claramente as vari veis de activa o externa de uma regra condicional podem ser restringidas dinamicamente da seguinte forma e Se uma regra r executada e a condi o falsa tomar subsequentemente para ef vars r as vari veis referenciadas na parte de condi o e Se uma regra r executada e a condi o verdadeira tomar subsequentemente para ef vars r as vari veis referenciadas na parte de ac o Inicialmente o valor da condi o n o conhecido mas isso n o problema p
291. ig 7 4 7 2 1 2 Caso de regras que manipulam rela es Uma rela o ou tabela um conjunto de tuplos muplos do mesmo tipo Como tal as optimiza es consideradas na sec o anterior permanecem v lidas Apesar da actualiza o de um tuplo poder ser tratada como um par de uma elimina o seguida de uma inser o s o poss veis mais optimiza es se as actualiza es forem tratadas de forma especial nomeadamente quando envolvem apenas alguns atributos ou colunas Assim interessa considerar as seguintes opera es especializadas de actualiza o de uma rela o e os eventos de altera o de dados correspondentes Refinamentos para o tratamento de dados complexos 109 e inser o de um conjunto de tuplos e elimina o de um conjunto de tuplos e actualiza o de atributos a aj num conjunto de tuplos Exemplo Seja o formul rio da figura 7 1 com a estrutura de dados indicada na figura 7 2 As vari veis de estado a considerar correspondem aos itens em que se decomp e a factura ou seja N MERO DATA C DIGO FORNECEDOR NOME FORNECEDOR LINHAS FACTURA e TOTAL A vari vel LINHAS FACTURA representa uma tabela ou rela o Para impor a restri o R1 da figura 7 3 pode escrever se a seguinte regra de restri o em nota o abstracta usando c lculo relacional de n uplos r 3 LELINHAS FACTURA L PRE O UNIT RIO lt 0 gt true ou divergindo um pouco da nota o definida n
292. igos R7 O c digo do fornecedor tem de existir na tabela de fornecedores R8 O nome do fornecedor obtido a partir do c digo do fornecedor por consulta lookup tabela de fornecedores R9 A data da factura n o pode ser posterior data actual Sup e se que as tabelas de artigos e de fornecedores se mant m inalteradas durante o preenchimento do formul rio Refinamentos para o tratamento de dados complexos 107 Fig 7 3 Restri es de integridade no formul rio da figura 7 1 7 2 Regras orientadas a conjuntos A forma mais directa de aplicar a abordagem indicada no cap tulo 3 a dados complexos consiste em utilizar regras orientadas a conjuntos que manipulam conjuntos de dados de cada vez e vari veis de estado que representam conjuntos de dados No caso da formul rio da figura 7 1 isso significa representar todo o conjunto de linhas da factura por uma nica vari vel de estado e cada campo do cabe alho e rodap da factura por uma vari vel de estado diferente Descrevem se de seguida alguns refinamentos necess rio para tornar essa abordagem eficiente 7 2 1 Refinamento do crit rio e mecanismo de activa o O crit rio de activa o b sico apresentado no cap tulo 4 baseia se no conhecimento est tico das vari veis de estado lidas e actualizadas por cada regra e na monitoriza o din mica dos eventos de altera o do estado dessas vari veis de estado causados pelas opera es de actualiz
293. impl cito nos sistemas de regras activas ii Ver ponto seguinte Costuma ser impl cito nos sistemas de regras activas ii A decis o de que valores s o atribu dos a que vari veis quando uma regra r executada depende apenas dos valores iniciais das vari veis de entrada de r Se os valores das vari veis de entrada de r n o forem alterados durante a sua execu o uma segunda execu o de r causaria a atribui o exactamente dos mesmos valores s mesmas vari veis Assim n o h necessidade de voltar a executar r raz o pela qual pode permanecer desactivada iv Suponhamos que uma regra r permaneceu desactivada no final da sua execu o Enquanto nenhuma vari vel referenciada por r vari vel de entrada ou de sa da for alterada uma nova execu o de r causaria a atribui o dos mesmos valores s mesmas vari veis sem causar portanto qualquer altera o de estado Assim n o existe necessidade de executar r outra vez raz o pela qual pode permanecer desactivada Uma demonstra o mais formal de que este crit rio correcto trivial em face dos resultados da sec o seguinte As vari veis referidas no ponto iii s o chamadas vari veis de auto activa o self triggering de r denotadas st vars r As vari veis referidas no ponto iv s o chamadas vari veis de activa o externa external triggering de r denotadas et vars r O crit rio apresentado pode ser traduzido pelo diagrama de estados da figura se
294. in algorithm 1 it is necessary to determine the edges of each SCC that are traversed by external cycles This may be done by refining step 5 in the following way Algorithm la with the exploration of internal cycles previous steps as in algorithm 1 5 1 Select from H a vertex v whose incoming or outgoing edges in H have not been marked If such a vertex does not exist stop and fail 5 2 Mark the edges of the cycles of H that cross v 5 3 Move from H to F the incoming or outgoing edges of v respectively the rest as in algorithm 1 A It s assumed that all the edges are initially unmarked To solve step 5 2 we may adapt an algorithm to find all the cycles of a graph that cross a given vertex like the one described in 5 that takes a time O IVI IEI between consecutive cycles Instead of listing the cycles we only have to mark their edges Although this procedure is excessive as we shall see it allows us to derive the following result Theorem 3 worst case complexity Problem 1 may be solved in time O IVIHEI c 1 where c is the number of cycles in G Proof If it does not fail algorithm 1a will find all the cycles of G Using the above mentioned algorithm the time spent between consecutive cycles in the same iteration of step 5 2 is O IVIHHEI and there is always at least one cycle The time spent between consecutive iterations of step 5 2 before the first iteration and after the last iteration is of the sa
295. initially triggered Example Assume the following rule from appendix A rz y gt w 1 If r is executed and the condition holds one subsequently takes et vars r w Otherwise one takes et vars r3 y Data driven Active Rules for the Maintenance of Derived Data and 235 Integrity Constraints in User Interfaces to Databases 6 4 Dynamic improvements based on the monitoring of read and write events In practice an improved triggering criterion may be defined by monitoring read and write events besides the modification events Prior static knowledge of the input and output variables of each rule is not even required Dynamic input and output sets are associated with each rule and maintained as follows e initially the input and output sets are empty e the input and output sets are emptied at the beginning of a rule execution e a variable x is added to the input set when it is read during the rule execution but only if it is not already in the output set i e ignore a read after a write e a variable y is added to the output set when it is written during the rule execution this is done before the eventual modification event is handled e in the case of conditional rules if the condition holds the input set is emptied before the action is executed The basic triggering criterion still applies but with respect to the dynamic input and output sets instead of the static input and output sets 7 Termination analysis
296. integridade o recalculo do dado derivado Normalmente as restri es de integridade est ticas envolvem apenas dados primitivos mas tamb m podem ser definidas restri es de integridade que envolvem dados derivados materializados ou mesmo virtuais E claro que a imposi o eficiente deste g nero de restri es de integridade mais complexa Dos v rios tipos de dados derivados acima referidos este trabalho incide principalmente sobre dados derivados materializados on update 2 1 3 Transaccoes Uma transac o um grupo indivis vel de opera es com as seguintes propriedades ACID GR93 e Atomicidade As altera es de estado agrupadas numa transac o s o at micas ou tudo acontece ou nada acontece e Consist ncia Uma transa o uma transforma o de estado correcta o estado atingido no final da transac o obedece s restri es de integridade est ticas supondo que o estado inicial tamb m obedece e a transac o no seu todo vista como uma transi o de estado obedece s restri es de integridade din micas e Isolamento Mesmo que as transac es sejam executadas concorrentemente a uma transac o T parece que qualquer outra transac o executou totalmente antes ou totalmente depois de T e Durabilidade Assim que uma transac o termina com sucesso as altera es produzidas pela transac o sobrevivem a falhas Atendendo propriedade de consist ncia natural que a imp
297. intra objecto e da mesma classe No caso da ocorr ncia de um PPR intra objecto o objecto do evento o objecto a que se refere a ocorr ncia do PPR No caso da altera o do valor de um atributo intra objecto o objecto do evento o objecto em que o valor do atributo foi alterado e class Outros casos Tamb m se diz que a activa o global Se a regra for intra objecto activada automaticamente para todos os objectos da respectiva classe tamb m especificado o modo de acoplamento entre a ocorr ncia do evento activador e a execu o da regra que pode ser e immediate A regra executada no PPR em curso ou mais pr ximo da transac o corrente Se v rias regras forem activadas s o executadas sequencialmente No caso da associa o On RPP o PPR em que a regra executada o mesmo que activa a regra e deferred A regra executada no PPR em curso ou mais pr ximo da transac o de n vel de topo No caso da granularidade ser object o modo de acoplamento tem de ser immediate por raz es de efici ncia e para evitar ter de armazenar conjuntos de identificadores de objectos No caso de other rpps false se o PPR em que a regra seria executada n o est associado explicitamente regra pela associa o On RPP a activa o n o tem efeito No caso de self triggering false a ocorr ncia do evento quando a regra est a ser executada mais precisamente quando alguma inst ncia da regra est a ser executada igno
298. io que O tenha um conjunto m nimo de entradas isto n o pode existir uma ordena o O com um subconjunto pr prio das entradas de O Demonstra o Suponhamos que existe uma ordena o ideal O e uma ordena o O com um subconjunto pr prio das entradas de O Sendo X e X respectivamente as entradas de O e O tem se X CX e XzX Seja ent o uma vari vel x tal que xe X e x X Por defini o de entradas quando as regras s o executadas pela ordem O o valor de x completamente determinado pelos valores iniciais das restantes vari veis de entrada de O Assim o valor de x num ponto fixo uma fun o dos valores das restantes vari veis de X Uma vez que n o consideramos vari veis de estado que tomam valores em dom nios com um nico valor existe uma restri o est tica nas vari veis de entrada de O Portanto O n o pode ser ideal A Este teorema mostra que se pretendemos encontrar ordena es ideais basta considerar ordena es com conjuntos m nimos de entradas O teorema seguinte mostra que o efeito da execu o das regras por uma ordem ideal s depende do conjunto de entradas pelo que se pretendemos encontrar ordena es ideais n o equivalentes entre si basta considerar uma ordena o para cada conjunto m nimo de entradas Teorema 5 2 Se O uma ordena o ideal de um conjunto R de regras puramente incondicionais ent o qualquer ordena o O com o mesmo conjunto de entradas tamb m ideal e
299. iro a falso a condi o na qual uma vari vel actualizada por outra regra ent o R terminante e determin stico Demonstra o Nas condi es indicadas todos os pares de regras est o nas condi es do teorema 6 12 pelo que as regras de R s o confluentes duas a duas Nas condi es indicadas R terminante de acordo com o teorema 6 2 De acordo com o teorema 6 13 R determin stico A Corol rio 6 2 Se um conjunto R de regras n o cont m regras recursivas auto recursivas ou mutuamente recursivas nem regras conflituosas e todas as regras s o puramente incondicionais no sentido de que todas as actualiza es provocadas por cada regra s o incondicionais ent o R terminante e determin stico Demonstra o Caso particular do corol rio 6 1 A Por exemplo as folhas de c lculo tradicionais podem se enquadrar neste caso Exemplo J conclu mos anteriormente que o conjunto de regras da figura 3 1 terminante e que h dois pares de regras que n o s o confluentes pelo que n o se pode garantir a conflu ncia do conjunto de regras De facto f cil de verificar que o conjunto de regras n o confluente porque a n o conflu ncia criada pelos dois pares de regras n o confluentes nas vari veis b c e w n o anulada pelas outras regras No teorema 6 13 n o suficiente que as regras sejam confluentes duas a duas ou at confluentes e terminantes duas a duas como os exemplos seguintes demonstra
300. is an edge of P in an integer and n is the number of vertices in G The vertices v and v have corresponding vertices in Gy vir and yo The edge vi v ake is obviously contained in P and hence in On the equivalence of vertex orderings modulo the number of backward edges per cycle 221 k on d l an dj Gr Consequently v Vj is also an edge of Gz The same reasoning may be applied in the reverse direction We next show how to refine the above correspondence so that the vertices in any iteration k of G will have corresponding vertices in iterations k to k h of Gz in a way that minimizes h We also show that h does not exceed the maximum distance between any two strongly connected vertices of G denoted as D in the theorem statement 4 1 Let S be a strongly connected component of G and assume that its corresponding vertices in iteration k of G have corresponding vertices in iterations to l h of Gr see figure below iteration k of GL GL E pPitkn vPjtkn i vj or vj before vj oe oP itln ae vp toda iterations to I hy of Gr first vertex of Gz with corresponding last vertex of Gg with corresponding vertice in iteration k of GL vi e Sx vertice in iteration k of GL vj e Sy 4 2 We next show that h does not exceed the maximum distance between any two vertices of S the diameter of S 4 3 Let v and v be vertices of S in the conditions shown in the above figure Let P be a
301. is bases de dados atrav s de um interface com o utilizador baseado tipicamente em formul rios relat rios e gr ficos colectivamente designados vistas da aplica o M97 A figura seguinte mostra uma arquitectura t pica de uma aplica o interactiva de bases de dados na vis o do autor Aplica o Interactiva de Bases de Dados Sistema Mapeamento a Sistema de Gest o para a do Camada de Apresenta o e Interac o com o Utilizador Dados nas Vistas da Legenda Aplica o lt gt fluxo de dados LR I Imposi o de Restri es de Integridade C D D C lculo de Dados Derivados Fig 1 1 Uma arquitectura t pica de uma aplica o interactiva de bases de dados Normalmente a base de dados BD gerida por um sistema de gest o de bases de dados SGBD e a aplica o comunica com o SGBD atrav s de uma linguagem de interroga o e manipula o de dados n o procedimental como o SQL Structured Query Language que oferece independ ncia l gica e f sica dos dados D95 R98 Um SGBD fornece adicionalmente outros servi os valiosos para uma aplica o de que se destacam e gest o de transac es grupos indivis veis de opera es sobre a base de dados e recupera o autom tica de erros ou falhas associado gest o de transac es e controlo de concorr ncia associado gest o de transac es e imposi o autom tica de restri es de integridade est ticas restri es nos estados
302. is que uma opera o predicados especiais INSERTING DELETING UPDATING e UPDATING column name podem ser usados na parte de ac o bloco PL SQL para determinar que opera o est a decorrer e no caso de UPDATE que colunas est o a ser actualizadas e Todos os gatilhos FOR EACH ROW s o aplicados em cada linha afectada antes de passar linha seguinte o que simplifica grandemente e torna mais eficiente o processamento de gatilhos deste tipo e N o existem as tabelas de transi o NEW TABLE e OLD TABLE pelo que os gatilhos FOR EACH STATEMENT s v m o estado corrente da base de dados o que simplifica grandemente o processamento de gatilhos deste tipo mas tamb m diminui a sua utilidade e A parte de condi o s suportada em gatilhos FOR EACH ROW e restringe se a um predicado simples na linha afectada n o podendo incluir interroga es SELECT nem e Os nomes OLD e NEW podem ser usados precedidos de na parte de ac o sem necessidade de criar sin nimos com a cl usula REFERENCING e No caso de activa o m ltipla a ordem de execu o dos gatilhos indeterminada Por essa raz o aconselhada a fus o de gatilhos que possam ser activadas ao mesmo tempo num nico gatilho e No caso de activa o em cascata o n vel de recursividade do processamento de gatilhos est limitado
303. is updated with a different value from the one it currently holds In order to cope with the assumption that only the effect of rules is important the following net effect requirement has to be obeyed either each rule is forbidden to perform mutually compensating modifications or they are detected and ignored by the event monitoring mechanism The basic triggering criterion is i all the rules are initially triggered at the beginning of their existence ii rules are detriggered at the beginning of their execution see algorithm 1 iii a rule r being executed is triggered when an input variable of the rule is modified by the rule itself iv a rule r not being executed is triggered when an input or output variable of the rule is modified by other rules or by the user The variables mentioned in iii and iv are called the self triggering variables and external triggering variables of r denoted st vars r and et vars r respectively We next give the rational behind point iii The decision of what values are assigned to what variables when a rule r is executed depends only on the initial values of the input variables of r If the 234 Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases input variables of r are not modified during its execution a second execution of r would assign exactly the same values to the same variables Hence there is no need to execute
304. isso uma vez que r deriva incondicionalmente uma parte Y de U em fun o de outra parte X Y sai das entradas da ordena o Assim o conjunto de entradas de O no m ximo M Y Isto contradiz a hip tese de que O tem um conjunto m nimo de entradas Assim conclui se que se O tem um conjunto m nimo M de entradas M n o restringido estaticamente por R De acordo com o teorema anterior isto implica que O ideal A Em consequ ncia dos teoremas anteriores o crit rio proposto Crit rio 5 4 Se o subconjunto de regras a ordenar constitu do apenas por regras puramente incondicionais seleccionar ordena es totais com um conjunto m nimo de entradas isto com um conjunto m nimo de vari veis que fazem parte do conjunto de entradas de uma regra e n o fazem parte do conjunto de sa das de nenhuma regra precedente Note se que encontrar os conjuntos m nimos de entradas exigidos por este crit rio equivale a encontrar as chaves da rela o de pontos fixos os seus atributos s o as vari veis de estado e os seus tuplos s o os pontos fixos em face de conjunto de depend ncias funcionais est ticas entre as entradas e as sa das de cada regra do tipo i vars r o vars r que um problema conhecido e complexo U88 Seguem se alguns exemplos ilustrativos Exemplo Sejam outra vez as seguintes regras usadas para impor a restri o x y z ry y x ro Z y 13 X Z Este conjunto de regras obedece s c
305. ito de transac o Em segundo lugar preconiza se que a execu o das regras seja dirigida por eventos como caracter stico dos sistemas de regras activas Isto as regras dirigidas pelos dados definidas s com a parte de ac o A ou tamb m com a parte de condi o CA s o executadas como regras activas completas da forma EA ou ECA respectivamente sendo os eventos inferidos pelo sistema A execu o dirigida por eventos eficiente em tempo e em espa o e importante para a integra o das regras dirigidas pelos dados com regras activas provenientes doutras fontes Note se que os eventos que activam as regras t m de ser continuamente monitoradas pelo sistema de controlo e n o s nos PPR s Em terceiro lugar preconiza se um modo de execu o diferida por oposi o a imediata Num modo de execu o imediata uma regra executada imediatamente assim que ocorre um evento activador triggering event Num modo de execu o diferida a execu o da regra diferida para um momento posterior que de acordo com o 1 ponto ser normalmente o fim da transac o em que ocorre o evento Usando a terminologia habitual de sistemas de regras activas o modo de acoplamento preconizado entre o evento impl cito e a condi o diferido enquanto que o modo de acoplamento preconizado entre a condi o e a ac o imediato A execu o diferida apesar de exigir um algoritmo mais sofisticado importante para suport
306. ivado directa ou indirectamente a partir do seu pr prio valor no entanto pode ser derivado a partir do seu valor antigo existente no in cio da transac o Estas restri es destinam se a garantir a termina o e o determinismo da execu o das regras na realidade n o bastam estas restri es para garantir o determinismo porque a ordem de verifica o das 30 Revis o do estado da arte regras de restri o pode afectar o estado final alcan ado No entanto bom notar que estas restri es impedem uma utiliza o mais alargada de regras dirigidas pelos dados Em G95 a restri o de unicidade relaxada o que est relacionado com o facto de um item de dados poder ter m ltiplos valores alternativos no entanto quando se l o valor dum item de dados tem de se seleccionar um dos valores alternativos o que explica que a garantia de determinismo seja abandonada em G95 A execu o das regras baseia se num grafo de depend ncias que traduz as depend ncias dirigidas pelos dados existentes entre os v rios itens de dados Esse grafo usado para determinar que regras necess rio executar e por que ordem em face das modifica es ocorridas na base de dados A ordem de execu o escolhida uma ordem topol gica do grafo de depend ncias a ordem topol gica existe porque a premissa de n o reflexividade garante que o grafo de depend ncias ac clico sugerido que o sistema deve optimizar a execu o de ca
307. ivas com um grafo de activa o produtiva ac clico Na sec o 6 3 2 indica se uma condi o suficiente para garantir que duas ordens de execu o justas t m velocidades de termina o semelhantes complementando os resultados da sec o 5 5 6 6 3 1 Vantagem das ordens de execu o justas para o processamento de regras falsamente recursivas Muito frequentemente as regras recursivas s o falsamente recursivas no sentido de que o respectivo grafo de activa o produtiva ac clico Assim basta uma nica execu o de cada regra por uma ordem apropriada uma ordem topol gica do grafo de activa o produtiva ac clico para se atingir um ponto fixo para todas as regras Na pr tica verifica se que 1 mesmo depois de se atingir um ponto fixo para todas as regras pode ser necess rio executar mais uma vez cada regra devido s limita es pr prias do crit rio de activa o ii em geral o grafo de activa o produtiva n o conhecido porque exige uma an lise sem ntica das regras imposs vel de automatizar no caso geral pelo que n o se sabe a priori qual a ordem de execu o apropriada As ordens de execu o justas s o vantajosas para tratar mais eficientemente regras recursivas com um grafo de activa o ac clico mas desconhecido como mostra o teorema seguinte Teorema 6 17 Suponhamos que um conjunto R de regras com um grafo de activa o produtiva ac clico processado por uma ordem de execu o justa
308. ixo para todas as regras e terminar a transac o respectiva momento em que se rep e old x x o in cio da transac o seguinte um ponto fixo para r Se todas as regras s o seguras o estado das vari veis de estado no in cio da transac o pode ser tratado como uma constante em cada PPR pelo que essencialmente pode ser ignorado para efeito do processamento de regras Exemplos A regra seguinte pro be transac es que mais do que duplicam o valor de x ri x gt 2 old x gt true A restri o imposta por esta regra x lt 2 old x Esta condi o continua a ser verdadeira quando se substitui old x por x supondo que era anteriormente verdadeira desde que x20 Portanto esta regra s segura se x aceita apenas valores n o negativos A regra seguinte pro be transac es que alteram o valor de x para um valor superior ao de y mas n o pro be transac es que alteram o valor de y para um valor inferior ao de x ro changed x A x gt y gt true A restri o imposta por esta regra x old x v x lt y Quando se substitui old x por x a restri o continua obviamente a ser satisfeita pelo que a regra segura A regra seguinte desfaz altera es da vari vel x que violam uma determinada restri o faz uma esp cie de rollback local rs x gt 100 x old x A restri o imposta por esta regra x lt 00 v x old x Quando se substitui old x por x a restri o continua obviamente a s
309. joint paths one connecting s and v and the other connecting w and t Problem 4 may be transformed into problem 3 in linear time since two vertex disjoint paths one connecting s and t and the other connecting sz and fp exist iff there is a path connecting s and tz and traversing t s2 in the graph augmented with this edge or equivalently iff there is a path connecting sz and t and traversing t2 s7 in the graph augmented with this edge Problem 4 is NP complete 4 Since problem 3 may be transformed into problem 4 in linear time problem 3 is also NP complete Since problem 3 is a sub problem of problem 2 problem 2 is also NP complete Polynomial time algorithms to solve problem 4 are known only for acyclic graphs 6 and they are also applicable to solve problems 2 and 3 However such algorithms are useless here because we have to solve problem 2 for strongly connected sub graphs 4 Additional failure conditions In this section we introduce additional conditions to anticipate failures in algorithm 1 An algorithm to find feedback edge sets with on edge per cycle 189 Theorem 6 failure conditions Let H be a non trivial nested SCC of level k gt 1 in algorithm 1 and let H be the sub graph of H traversed by external cycles Then G has no CPFES if any of the following conditions holds i H has a cycle ii H has no in gate out gate without incoming outgoing internal edges traversed by external cycles ii H has
310. junto de registos de cada vez esta opera o automaticamente efectuada cada vez que se muda de registo corrente Pode causar altera o de dados da vista nomeadamente identificadores de registos correspondentes da base de dados close Fecha uma vista No caso de vistas encaixadas algumas destas opera es podem referir se vista encaixada na globalidade dependendo do tipo de acoplamento sendo invocadas para a vista de n vel de topo e propagadas para as sub vistas As opera es do quadro seguinte incidem sobre um registo duma vista Opera o Descri o insrec Insere um registo numa vista o qual fica corrente Modifica valores de campos do registo corrente duma vista Elimina o registo corrente duma vista Note se que as ac es realizadas interactivamente pelo utilizador na camada de apresenta o e interac o com o utilizador s o mapeadas para chamadas a estas opera es Opera es de consulta ser o descritas a prop sito da linguagem de regras e comandos 9 2 7 Transaccoes No SAGA as altera es nas vistas s o tamb m protegidas por transac es mesmo quando essas altera es n o s o imediatamente salvas na base de dados Assim h que distinguir as transac es nas vistas das transac es na base de dados Para efeito da compreens o do mecanismo de regras Integra o numa ferramenta de desenvolvimento de aplica es 163 interessam nos essencialmente as primeiras No entanto
311. junto final de valores de cada atributo intra objecto depende normalmente do conjunto inicial de valores do mesmo atributo caso em que o atributo tamb m deve ser considerado acedido globalmente para leitura de forma sens vel elimina o e cria o respectivamente Se existir um atributo correspondente ao identificador interno dos objectos de uma classe as regras que percorrem os objectos da classe para fazer alguma coisa com cada objecto l em implicitamente esse atributo e possivelmente outros atributos explicitamente devendo essa leitura ser indicada pela associa o Reads As regras que criam ou eliminam objectos duma classe actualizam implicitamente esse atributo devendo essa actualiza o ser indicada pela associa o Writes A informa o dada pelas associa es Reads e Writes usada para a gera o autom tica dos eventos activadores de cada regra e para a ordena o din mica das regras 130 Implementa o de um motor de regras activas dirigidas pelos dados 8 2 7 Associa es On RPP e On Modify Attribute Estas associa es especificam os eventos que activam as regras e os PPR s em que podem ser executadas A associa o On Modify Attribute especifica para cada atributo as regras que s o activadas quando o valor do atributo alterado No caso de um atributo intra objecto sup e se que a altera o sinalizada cada vez que o valor do atributo alterado num objecto mas n o quando um objecto criad
312. l rios do Designer 2000 Em contrapartida um formul rio main form pode ter sub formul rios subforms Um sub formul rio de 1 n vel pode por sua vez ter os seus pr prios sub formul rios de 2 n vel mas estes j n o podem ter sub formul rios de 3 n vel Normalmente a rela o que existe entre um formul rio e um sub formul rio uma rela o mestre detalhe ou parfilho semelhante que se verifica entre os blocos de dados de um formul rio no Designer 2000 Um formul rio com sub formul rios chamado um formul rio hier rquico Um formul rio sem sub formul rios chamado um formul rio plano flat Normalmente um formul rio um interface para um conjunto de dados previamente definido uma tabela ou interroga o query que constitui a fonte de registos record source do formul rio Um formul rio deste tipo chamado um bound form Os controlos de um formul rio objectos gr ficos como text boxes check boxes combo boxes etc que est o ligados a campos fields da tabela ou interroga o em que se baseia o formul rio s o chamados bound controls Os campos da tabela ou interroga o em que se baseia o formul rio s o chamados campos do formul rio O facto de um formul rio ser baseado numa interroga o em vez duma tabela n o impede o seu uso para altera o de dados mesmo quando a interroga o em que se baseia o formul rio envolve mais do que uma tabela Em partic
313. l de in cio da transac o Al m disso s o tamb m desactivadas mas n o eliminadas as inst ncias de regras activadas desde o in cio da transac o abortada mas que tinham sido criadas antes do in cio da transac o abortada Distinguem se das anteriores pelo facto de estarem prioritizadas Para minimizar a chamada a rotinas de aloca o din mica de mem ria os v rios heaps que implementam as filas de prioridade s o mantidos num nico array que funciona como uma pilha de heaps Cada transac o sabe onde come a e acaba o seu heap atrav s do offset inicial e tamanho Isto poss vel porque s alterado o heap da transac o corrente Em particular quando uma transac o abortada as inst ncias eliminadas em transac es anteriores n o se encontram ainda no heap Implementa o de um motor de regras activas dirigidas pelos dados 143 pilha de transac es listas duplamente ligadas pilha de heaps com de inst ncias de regras identificadores de inst ncias de regras Fig 8 5 Vis o parcial das estruturas de dados usadas na implementa o 8 4 3 5 Discuss o Uma alternativa ao m todo de ordena o de regras apresentado consistiria na gera o de um nico conjunto de prioridades relativas armazenado na associa o Rule Precedence em que algumas das prioridades seriam definidas pela aplica o e outras seriam geradas automaticamente tal como se faz com os eventos activadores de cada regr
314. la o outra Nesse caso t m os mesmos pontos fixos No caso de regras com mais do que uma vari vel de sa da a redund ncia pode ser definida em rela o a cada uma das vari veis de sa da Diz se que uma regra r redundante numa vari vel de sa da y em rela o a um conjunto R de regras que n o inclui r se o valor de y n o alterado quando r executada num ponto fixo de R 68 Ordena o das regras As regras redundante s s o teis quando imp em as mesmas restri es de maneiras diferente isto com diferentes escolhas de vari veis derivadas e primitivas Uma vez que as escolhas de vari veis derivadas e primitivas s o diferentes estas regras originam ciclos no grafo r v Exemplo No caso das regras que imp em a restri o b a c rs b a c ro c b a as regras rg e ro s o mutuamente redundantes Exemplo No caso das regras usadas para impor a restri o t qxp rep t0 gt g tp r q O gt p q r3 t qxp as regras r e r2 s o redundantes em rela o a r3 mas o inverso n o verdadeiro porque r e r2 n o imp em completamente a restri o t gxp Exemplo No caso das regras que imp em a restri o x y z ry y x rx z y rg X Z qualquer regra redundante em rela o ao conjunto das restantes duas mas n o em rela o a cada uma das restantes regras isoladamente 5 4 2 Ordena es ideais Diz se que uma ordena o total O de um conjunto de regras R ideal se quando
315. la de extens o constitu da pelo campo c digo fornecedor porque tem como alvo um campo da base de dados Factura c digo fornecedor com a mesma raiz Fornecedor c digo do que a chave prim ria de Fornecedor Fornecedor c digo No caso da vista VLinFact a chave de acesso tabela alvo LinFact constitu da por e um par metro da vista com nome autom tico importO a ligar a uma constante ou a um campo doutra vista que tenha como alvo um campo com a mesma raiz Factura n mero do que o primeiro campo da chave prim ria de LinFact LinFact n mero factura e o campo c digo artigo porque tem como alvo o segundo campo da chave prim ria de LinFact LinFact c digo artigo Note se que ao ligar a vista VLinFact vista VFactura o par metro import ligado ao campo VFactura n mero A chave de acesso a Artigo tabela de extens o constitu da pelo campo c digo artigo porque tem como alvo um campo da base de dados LinFact c digo artigo com a mesma raiz Artigo c digo do que a chave prim ria de Artigo Artigo c digo Dadas as chaves de acesso anteriormente definidas e a menos de campo calculados e da poss vel m utiliza o do par metro importO que leg tima pelo menos em express es de SQL embebido em C as vistas VFactura e VLinFact poderiam ser definidas em SQL 92 R98 da seguinte forma CREATE VIEW VFactura n mero data c digo fornecedor nome fornecedor AS SELECT Factura n mero Factura data F
316. lacionadas essencialmente com o baixo n vel de abstrac o das regras ECA ou ECA Para ultrapassar essas defici ncias proposta a seguinte abordagem de mais alto n vel e Um item de dados derivado tamb m chamado PDI persistent derived information especificado por uma express o de atribui o tamb m chamada deriva o directamente execut vel que calcula o valor do item em fun o dos valores doutros itens Essa express o de atribui o tratada como uma regra de deriva o dirigida pelos dados A express o executada se for modificado o valor de qualquer item de dados que participa no lado direito da express o de atribui o Os itens de dados derivados n o podem ser actualizados directamente pelo utilizador Opcionalmente podem existir do lado direito da atribui o diferentes express es para diferentes condi es mutuamente exclusivas n o claro se as condi es t m de cobrir todos os casos ou se pelo contr rio o valor do atributo derivado pode n o estar definido em alguns casos e Uma restri o de integridade especificada por uma express o booleana a restri o propriamente dita que tratada como uma regra de restri o dirigida pelos dados A express o avaliada se for modificado o valor de qualquer item de dados que participa na express o se o resultado for falso a transac o abortada Em G95 pode se indicar um estabilizador stabilizer na forma duma express o de atr
317. lece No entanto s o mantidas duas estampas temporais para o caso de ser necess rio desfazer uma promo o de granularidade aquando de rollback Se j existia uma inst ncia activada com granularidade class e a granularidade pedida object a segunda ignorada Se j existia uma inst ncia activada com a granularidade pretendida a estampa temporal n o alterada 8 4 2 Execu o das regras execute rules A opera o execute rules da classe Transaction executa as regras associadas transac o corrente a pedido de endtrans quando a transac o n o se encontra abortada ou interrompida ou de signal As regras activadas s o executadas de forma sequencial como no algoritmo 3 1 A activa o da vari vel de erro referida nesse algoritmo deve ser interpretada como o abortamento ou interrup o da transac o corrente Note se que a transac o corrente tamb m abortada quando abortada uma sub transac o sem rollback local A invoca o de rollback tamb m sai do algoritmo de execu o de regras Assim o algoritmo fica Algoritmo 8 1 execu o sequencial de regras associadas a uma transac o t 138 Implementa o de um motor de regras activas dirigidas pelos dados 1 Enquanto existirem regras activadas acopladas transac o fe t n o tiver sido abortada ou interrompida 1 1 Escolher uma regra activada r de acordo com um crit rio de resolu o de conflitos ou crit rio de ordena o 1 2 Desa
318. lema mais facilmente trat vel sup e se que durante a execu o das regras os conjuntos de regras e de vari veis de estado n o s o alterados e as nicas altera es ao estado das vari veis de estado s o produzidas por regras Assim adopta se o algoritmo habitual de processamento sequencial de regras activas Algoritmo 3 1 processamento sequencial de regras 1 Enquanto existirem regras activadas e a vari vel de erro n o tiver sido activada 1 1 Seleccionar uma regra activada r No caso de existir mais do que uma regra activada seleccionar uma delas de acordo com algum crit rio de resolu o de conflitos 1 2 Executar a regra r i e avaliar a condi o e no caso de ser satisfeita executar a ac o 2 Se a vari vel de erro tiver sido activada repor o sistema no ltimo estado consistente Para completar a defini o do modelo de execu o falta definir os crit rios de activa o das regras e de resolu o de conflitos ou de ordena o que ser o objecto dos cap tulos 4 e 5 Na presen a de certos tipos de regras o algoritmo acima descrito pode n o terminar e pode ser n o determin stico No Regras activas dirigidas pelos dados com sem ntica de ponto fixo 45 cap tulo 6 s o determinadas condi es suficientes a que um conjunto de regras deve obedecer para garantir a termina o e o determinismo do algoritmo 3 1 3 5 Relaxamento de algumas restri es Algumas restri es impostas ao n vel
319. lexidade temporal O IVI log IVI IEI no pior caso Se n o existirem arestas a ordena o corresponde ao m todo heapsort Se o grafo for muito conexo o tamanho m ximo do heap pequeno e a complexidade temporal aproxima se de O IVI IEI 8 5 3 Obten o dos componentes fortemente conexos por ordem topol gica Um algoritmo para obter os CFC s de um grafo por ordem topol gica baseado em RNN77 com pequenas optimiza es e adapta es apresentado a seguir Algoritmo 8 6 obten o de componentes fortemente conexos por ordem topol gica Entradas V conjunto de v rtices Para cada v rtice ve V Succ v conjunto de sucessores imediatos de v i e Succ v ue V vue E Sa das Para cada v rtice ve V num v numera o dos v rtices por ordem topol gica inversa de CFC s isroot v indica se v raiz in cio de um CFC os restantes v rtices est o a seguir com n meros decrescentes Dados tempor rios S pilha auxiliar com v rtices visitados mais ainda n o ordenados Para cada v rtice ve V visited v indica se o v rtice v j foi visitado lowlink v n mero de v por ordem de visita ou de um v rtice acess vel a partir de v que se encontra na pilha de chamada antes de v ver RNN77 procedimento principal procedure TOPSORTSCC begin n0 for ve V do visited v false for ve V do if visited v then i0 S lt pilha vazia DFSSCC v end visita em profundidade a pa
320. locais As heur sticas apresentadas para a ordena o de regras recursivas baseadas na minimiza o de conjuntos de vari veis de entrada ou de conjuntos de arestas de realimenta o s o de natureza global 80 Ordena o das regras porque necess rio considerar todas as regras e n o s as regras que se encontram activadas num dado momento o que torna a sua implementa o mais dif cil Essa dificuldade de implementa o pode n o ser compensada pelos resultados alcan ados porque se trata de heur sticas cuja relev ncia demonstrada apenas para certos conjuntos de regras Assim pode fazer sentido seguir crit rios locais mais simples como por exemplo e Considerar apenas o sub grafo rr relativo apenas s regras activadas ignorando a exist ncia doutras regras que introduzem ciclos adicionais Uma regra activada r candidata a execu o se n o existir outra regra activada r com uma aresta dirigida de r para r no grafo r r Se n o existir nenhuma regra nestas condi es devido a ciclos utiliza se outro crit rio ar prioridade s regras executadas h mais tempo por raz es de justi a e D dad tadas h t de justi a e Dar prioridade s regras activadas mais recentemente 6 Termina o determinismo e velocidade de termina o do processamento de regras Neste cap tulo determinam se condi es suficientes a que um conjunto de regras deve obedecer para garantir a termina o e o determinismo d
321. lor de y ser empurrado para cima pela regra r2 Se o utilizador introduzir um valor de y inferior ao valor corrente de x o valor de x ser empurrado para baixo pela regra r Note se que neste caso mesmo que as regras fossem activadas s por altera o das entradas ambas as regras seriam activadas 5 3 2 Preserva o das altera es produzidas em transac es mais recentes Embora com muito menos peso tamb m desej vel que as altera es produzidas pelo utilizador em transac es passadas sejam preservadas tanto mais quanto mais recentes forem essas transac es Dessa forma o utilizador pode controlar o estado do sistema por aproxima es transac es sucessivas O refinamento correspondente do crit rio 5 2 Crit rio 5 3 As regras com vari veis de sa da mais recentemente alteradas pelo utilizador i e em transac es mais recentes perdem preced ncia em rela o s restantes Este crit rio de natureza din mica pois as preced ncias variam de PPR para PPR embora sejam fixas em cada PPR mais facilmente traduzido por uma prioridade num rica atribu da a cada regra de forma inversamente proporcional estampa temporal da transac o mais recente em que uma vari vel de sa da da regra foi alterada pelo utilizador Exemplo Suponhamos que a restri o z x y imposta de m ltiplas maneiras pelas seguintes regras ry Z X r2 y 7X 13 x Z Y Suponhamos que o utilizador altera o v
322. los da rela o Para cada vari vel de estado x que representa uma rela o o incremento entre um estado passado denotado por old x e o estado corrente denotado por x pode ser dado pelas seguintes vari veis rela es delta ins x tuplos inseridos em termos l quidos i e cont m os tuplos inseridos ou inseridos e depois alterados no seu novo estado n o cont m os tuplos inseridos e depois eliminados del x tuplos eliminados em termos l quidos i e cont m os tuplos eliminados ou alterados e depois eliminados no seu estado antigo old upd x tuplos alterados em termos l quidos no seu estado antigo em old x new upd x tuplos alterados em termos l quidos no seu novo estado em x Em alternativa s rela es old upd x e new upd x tamb m se pode considerar uma nica rela o upd x com colunas old a e new a ou simplesmente a com o estado antigo e o novo estado de cada atributo coluna a de x Se os atributos de x forem a an tem se que 114 Refinamentos para o tratamento de dados complexos old upd x 1 old a old a upd x new upd x Tap a UPpd x Note se que s poss vel obter old upd x e new upd x a partir de x e old x se os tuplos tiverem algum tipo de identificador interno nico e imut vel pelo menos durante uma transac o que permita dizer que dois tuplos de x e old x s o o mesmo objecto em estados diferentes E o que acontece nos sistemas S
323. m Exemplo Seja um conjunto de regras R com o seguinte grafo de execu o Termina o determinismo e velocidade de termina o do processamento de regras 97 6 r3 S3 S4 Estas regras s o confluentes duas a duas mas o conjunto das 3 regras n o confluente nem determin stico Exemplo Sejam as seguintes regras r y x rx zZi y r3 xX Z Estas regras s o confluentes e terminantes duas a duas mas as tr s regras n o s o nem terminantes nem confluentes 6 2 7 Imposi o do determinismo atrav s de prioridades No caso de conjuntos de regras com prioridades o teorema 6 13 n o entra em conta com as prioridades as quais podem for ar o determinismo No trabalho de refer ncia AWH92 desenvolvido um requisito para garantir o determinismo de um conjunto de regras activas com prioridades transitivas que se transcreve a seguir com pequenos refinamentos para o caso espec fico de regras activas dirigidas pelos dados Requisito 6 1 requisito de conflu ncia de conjunto R de regras com conjunto P de prioridades transitivas Considere se qualquer par de regras n o ordenadas r e r de R Caso 1 Se nenhuma das regras r ou rj capaz de activar de forma produtiva uma regra com preced ncia sobre qualquer das duas regras ent o r e r t m de ser confluentes Caso 2 Sen o sejam R C R eR2C R os conjuntos de regras constru dos pelo seguinte algoritmo Ri rif Ro lt frj repetir at n o haver altera es
324. m durante a realiza o deste trabalho em particular ao Prof Jo o Correia Lopes pela ajuda preciosa prestada ao n vel do trabalho docente Queria tamb m agradecer o apoio e a compreens o da minha esposa Maria e do meu filho Leonardo Indice 1 INTRODU O ENA AAEE doa Da 1 1 1 MOTIVAGCA Oise sis steesadd deeb sas aasives eare eE rasa dia Casadas A Aeebioo asters EAER den dus 1 Te CONTRIBUICOES ieioea optei a en r OIEA EEEE ENEE EE OAOE ER aeS 4 1 2 ORGANIZA O DA TESE 0 4c03lesnendssseisaceieigondesagedaceieagiadeslgasacd OTENE E ITR AR Coroa ENOM 5 2 REVIS O DO ESTADO DA ARTE sesessesosesessososcsorsoseseseseoscsosererscsesesessosesosersescsesessss 7 251 CONCEITOS I ONE E A EEA A E A E EA A 2 1 1 Restri es de integridade eee ceeceeseesnnececececeseeneneeaeceeceecesseseneeeeeeeeeeeeseenaeeeeeees 7 21 2 Dados derivados innein o e a ea E en o a he 7 213e TrANSACCOE Soeren ee ae E EEE EEE EERE E EEEE EE ER SS aie 8 21 4 Re esrasactivas ou Satilhos soloia a Nes a e e ei oaa 8 2 2 FERRAMENTAS DE DESENVOLVIMENTO R PIDO DE APLICA ES DE BASES DE DADOS 10 2 2 Oracle Developer 2000 ss custo cestos ibe hada eed Sida nes eae tat as 10 2 282 NMCTOSOLL ACCESS ARE ROO REDE Sohal sae SAREE ER RA RD DEE O A SI 15 2 23 Quiras ferramentas sinensis ss baia chase eed Se PUT ESTA cash aaa Slee DRA ee eer eae 18 2 3 RESTRI ES DE INTEGRIDADE E GATILHOS OU REGRAS ACTIVAS EM SISTEMAS DE BASES DE DADOS meat cien
325. m regras a elas associadas Note se que podem ser classes implementadas como tal em C ou noutra linguagem mas tamb m podem ser estruturas de dados que s o vistas como classes A opera o disable elimina logicamente o registo de uma classe incluindo todos os seus atributos e regras sem o eliminar fisicamente de mem ria como aconteceria com unregister A opera o enable tem a fun o oposta de disable Estas opera es t m interesse em ambientes muito din micos Al m disso quando uma classe registada fica inicialmente no estado de disabled para permitir a defini o dos seus atributos regras e PPR s antes de passar ao estado de enabled 8 2 2 Meta classe Attribute Aqui s o registadas dinamicamente os atributos das classes da aplica o registadas na meta classe Class com o significado de vari veis de estado para efeito da execu o das regras Os atributos podem ser de duas granularidades diferentes e object S o locais aos objectos da classe Tamb m s o designados atributos intra objecto T m um valor estado possivelmente diferente de objecto para objecto da mesma classe Correspondem a membros dados data members sem prefixo static em C e class S o globais classe Tamb m s o designados atributos globais T m um valor estado nico para todos os objectos da classe o qual est definido mesmo que n o exista nenhum objecto Correspondem a membros dados data members com prefixo static
326. m termos da sua estrutura de dados um formul rio divide se em um ou mais blocos de dados data blocks Um bloco de dados cont m um registo ou um conjunto de registos com a mesma estrutura isto com os mesmos itens anteriormente designados campos Apenas a estrutura dos registos lista de itens e o n mero de registos que o bloco pode conter s o especificados em tempo de desenvolvimento Um bloco de dados pode ser de um dos seguintes tipos e bloco de dados com tabela base base table data block corresponde a uma tabela ou vista na base de dados e gere um certo conjunto de registos correspondentes a linhas na tabela ou vista na vers o 2 um bloco deste tipo tamb m pode corresponder a um procedimento armazenado stored procedure na base de dados e bloco de controlo control block n o corresponde a uma tabela ou vista e os seus registos n o correspondem a linhas de tabelas ou vistas na base de dados geralmente um bloco de Revis o do estado da arte 11 controlo tem um nico registo com itens calculados ou de entrada de dados tratados manualmente A fun o principal de um bloco de dados do primero tipo proporcionar um interface para uma tabela ou na vers o 2 um procedimento armazenado na base de dados atrav s do qual o utilizador pode interrogar com query by example e manipular uma parte da base de dados O Developer 2000 gera automaticamente os comandos SQL para interrogar e manipular a base de da
327. ma de classes deste m dulo apresentado na figura seguinte 136 Implementa o de um motor de regras activas dirigidas pelos dados RuleDef Attribute RuleDef RPP Po Esc signal modified signal RuleDef Rule 0 1 Trnsproc Transaction I I executing boolean l fimestamp long integer Rule Instance last exec rule timestamp trigger Rs Rr E obj triggering timestamp long integer glob triggering timestamp long integer execute rules dynamic priority integer discard rules repeatable boolean rollback rules indegree integer choose rule n iterations integer prioritize rules Fig 8 4 Diagrama de classes do m dulo de processamento de regras Consideram se como fazendo parte deste m dulo atributos e opera es que s o acrescentados a classes doutros m dulos Os elementos deste diagrama s o descritos nas sec es seguintes organizados por fun es long integer 8 4 1 Sinaliza o de eventos signal e signal modified e activa o de regras trigger A sinaliza o de eventos efectuada atrav s da invoca o de opera es acrescentadas a algumas classes anteriormente descritas A sinaliza o dos eventos desencadeia a activa o de regras para execu o imediata ou diferida Os eventos em si n o s o armazenados por raz es de efici ncia a menos de poss veis altera es de dados registadas no log de altera es A opera o signal modified na meta classe Attribute invo
328. ma vari vel de entrada de uma regra precedente ou da pr pria regra r Nesse caso y uma entrada de O porque vari vel de entrada de uma regra antes de ser uma vari vel de sa da doutra regra ou da mesma regra Como se sup e que as entradas de O s o preservadas o valor de y tamb m n o pode ser alterado por r Por conseguinte nenhuma regra r altera uma vari vel de entrada ou sa da de uma regra precedente ou uma vari vel de entrada da pr pria regra r Esta precisamente a condi o que define uma ordem ideal A Definindo as sa das do conjunto de regras ordenado pela ordem O como as vari veis que s o alteradas para pelo menos um estado inicial resulta do lema anterior que os conjuntos de entradas e sa das de uma ordena o ideal s o disjuntos Como tamb m n o ocorrem actualiza es contradit rias pode se dizer que um conjunto de regras ordenado idealmente equivalente a uma nica regra que n o auto recursiva porque tem conjuntos disjuntos de entradas e sa das nem auto conflituosa Lema 5 2 Uma ordena o total O de um conjunto R de regras puramente incondicionais ideal se e s se as suas entradas n o s o restringidas estaticamente por R i e a conjun o das restri es impostas pelas regras de R n o restringe os valores poss veis das entradas de O Demonstra o Seja X o conjunto de entradas de O Ideal entradas n o restringidas Suponhamos que O ideal Ent o de acordo com o lema anteri
329. mandos semelhante s linguagens que se encontram noutros ambientes de 4 gera o Os comandos definem ac es que o utilizador pode invocar explicitamente atrav s de bot es ou op es de menus Em contrapartida as regras s o executadas automaticamente pelo sistema em resposta ocorr ncia de eventos de manipula o de dados servindo para diversas finalidades e manuten o de dados derivados materializados campos calculados em fun o de outros campos registos seleccionados em fun o de outros registos etc e verifica o de restri es de integridade restri es envolvendo um nico campo v rios campos do mesmo registo ou v rios registos e realiza o de ac es e valida es no in cio before ou no fim after de opera es pr definidas inserir actualizar ou eliminar registos salvar altera es etc para as aumentar ou redefinir Integra o numa ferramenta de desenvolvimento de aplica es 157 e defini o de vistas que n o tiram partido dos mecanismos autom ticos mas limitados de selec o e actualiza o e defini o de valores iniciais e por omiss o e convers o e correc o de entradas e controlo de autoriza es e obriga es e monitoriza o e alerta de situa es A programa o atrav s de regras tem v rias vantagens mais modular est mais pr xima da especifica o e est mais adaptada a sistemas interactivos dirigidos por eventos 9 1 4 Inte
330. manticamente equivalente a r que n o l o valor de uma vari vel x Para qualquer vari vel ye V incluindo x a decis o de escrever algum valor em y e o valor escrito n o dependem do valor inicial de x mas apenas do valor inicial de V x Para alguns valores iniciais de V x o valor final de y sempre igual ao seu valor inicial para qualquer valor inicial de x enquanto que para os restantes valores de V x o valor final de y sempre o mesmo para qualquer valor inicial de x Formalmente isto pode ser expresso da seguinte forma 1 VyeV Vkerange V x Vs teS s V x t V x k r s y r t y v v Vs EeS s V x k gt r s y s y Reciprocamente se para alguns valores iniciais de V x o valor final de y sempre igual ao seu valor inicial para qualquer valor inicial de x enquanto que para os restantes valores de V x o valor final de y sempre o mesmo para qualquer valor inicial de x ent o poss vel implementar r sem ler 50 Activa o das regras x Uma express o de deriva o poss vel na representa o abstracta do tipo p V x gt y S V x com p e f definidos da seguinte forma para aqueles valores iniciais de V x a que corresponde sempre o mesmo valor final de y para qualquer valor inicial de x o predicado p toma o valor verdadeiro e a fun o f toma esse valor de y para aqueles valores iniciais de V x a que correspondem m ltiplos valores finais de y para di
331. me order Consequently the overall time is O IVHED c 1 A The time above is not polynomial because the number of cycles may be exponential in IVI Second method The edges traversed by the cycles of H a non trivial SCC that cross the decomposing vertex v may be divided into two groups those that link different sub SCC s and those that are internal to the sub SCC s Since any edge of a strongly connected graph must belong to at least one cycle the first ones necessarily belong to the cycles that cross v Besides that they are no longer relevant for algorithm 1 So we may ignore them provided that we are able to find the second ones a sub SCC at a time To do it we introduce the concept of gate A vertex of a SCC of level n is called an in gate out gate of level k OSk lt n if it has an incoming outgoing edge of level k necessarily external to that SCC For this purpose feedback edges are also considered A vertex that is simultaneously an in gate and an out gate of level k is called a bi gate of level k A vertex may be an in gate and an out gate of several levels For instance with respect to graph G in Fig 1 vertex 2 is an in gate of level 1 of H and an in gate of levels 1 and 2 and an out gate of level 2 of H2 Gates and cycles are related in the following way An algorithm to find feedback edge sets with on edge per cycle 187 Theorem 4 gates and cycles Every existing path P from an in gate x of level k to an out gat
332. mo resultado se as regras fossem activadas apenas por altera o das entradas conforme se explicou no cap tulo 4 Exemplo Suponhamos que a restri o x y z impostas de m ltiplas maneiras pelas seguintes regras ry y x ro z y r3 x Z Suponhamos que o utilizador altera o valor de x causando a activa o das regras r e r3 Uma vez que x uma vari vel de sa da de r mas n o de r a regra r executada em 1 lugar actualizando com altera o o valor de y Esta altera o causa a activa o da regra r2 Uma vez x uma vari vel de sa da de r mas n o de r2 a regra r2 executada actualizando com altera o o valor de z Esta altera o causaria a activa o de r3 mas esta j se encontrava activada Finalmente executada a regra r3 sem qualquer efeito e o processamento de regras termina Assim o valor de x preservado conforme pretendido Ver ilustra o na na figura 5 3 66 Ordena o das regras Fig 5 3 Grafo r v de um conjunto de regras com a ordem de execu o das regras em resposta a um comando do utilizador de acordo com o crit rio 5 2 Exemplo Suponhamos que x e y representam uma data inicial e uma data final respectivamente tendo de obedecer restri o de desigualdade x lt y As seguintes regras imp em esta restri o de diferentes maneiras ri X gt yY gt x y r2 X gt y gt y x Se o utilizador introduzir um valor de x superior ao valor corrente de y o va
333. mutativas Em contrapartida aqui apenas se exige que r e rz sejam confluentes Sem este refinamento o requisito de conflu ncia aplicado a um conjunto de egras sem prioridades resume se a exigir que as regras sejam comutativas duas a duas o que extremamente conservador Com este refinamento apenas se exige que as regras sejam confluentes duas a duas o que vai de encontro ao teorema 6 13 Provavelmente este refinamento pode se aplicar a regras activas gen ricas e n o s a regras activas dirigidas pelos dados Com base no requisito de conflu ncia pode ent o estabelecer se o seguinte Teorema 6 14 Se o requisito de conflu ncia se verifica em Re R terminante ent o R determin stico Demonstra o O requisito de conflu ncia garante a conflu ncia local Isto se existem duas r rj arestas divergentes Ss SS j n grafo de execu o para R ent o existe um estado s que pode ser atingido tanto a partir de s como a partir de s No caso 1 bvio que se as regras r e r s o confluentes e n o activam regras com preced ncia sobre qualquer das duas existe um estado s que pode ser atingido tanto a partir s como a partir de sj executando apenas r e rj No caso 2 o caminho de s para s baseado na execu o de R r seguida de r e de RN r j enquanto que o caminho de s para s baseado na execu o de RN rj seguida de r e de RN ri conforme explicado em AWH92 Os refinamentos considerados
334. n 2 gt A self loop is an edge with the same initial and terminal vertex TS92 3 Parallel edges are edges that have the same pair of initial and terminal vertices TS92 On the equivalence of vertex orderings modulo the number of backward edges per cycle 215 iv for directed graphs only add or remove the symmetric of an edge that is contained in a cycle of G other than the cycle defined by the two symmetric edges Proof i A self loop has one backward edge with respect to any vertex ordering and it does not contribute to any other cycle Hence it may be ignored when comparing vertex orderings with respect to the number of backward edges per cycle ii Let e and e be two parallel edges First consider the case of a directed graph For every cycle C containing e there is another cycle C with e replaced by e2 with the same number of induced backward edges Hence it suffices to consider the cycles that contain e to compare vertex orderings with respect to the number of backward edges per cycle In the case of an undirected graph there is an additional cycle to be considered the cycle constituted by e and e This cycle has length 2 and has one backward edge with respect to any vertex ordering Hence it may be ignored when comparing vertex orderings with respect to the number of backward edges per cycle iii In the case of an edge that is not contained in any cycle of G the result is obvious since such an edge is not important
335. n in gate x of H and a sub path from an out gate y of H back to v remember that H cannot contain v because v becomes a trivial SCC of level i and H is non trivial Since H has a single in gate or a single out gate that is selected for decomposing vertex one of these x or y must be v Consequently P must also contain the vertices Vj 7 Vn 1 besides v Since all the decomposing vertices vj Vi 7 Vn are contained in P and P and P are disjoint except possibly for s and contained in H in case s t and P does not contain other decomposing vertex vn k lt h lt i 1 we conclude that P does not contain any of the decomposing vertices Vp Vk 1 Va 1 Since there are paths from w to x the edge w x and from x to w through f in H not traversing any of the decomposing vertices Vk Vk 1 Vn 1 X and w must belong to the same SCC of level n that is H Since this contradicts the definition of x and w we must conclude that P cannot intersect H Hence the path P concatenated with any path P in H constitutes a cycle of level i kSi lt n ii This is similiar to condition iv of theorem 6 Let z z2 be two vertices in the conditions of the theorem By the definition of SCC there are inside H paths from z to zz and from z2 to z Those paths necessarily contain a cycle C By i those paths are part of external cycles So C cannot be broken without producing extra feedback edges on the exte
336. ncapsulamento de regras em objectos na opini o do autor a estrat gia chave para lidar eficazmente com dados e sistemas complexos porque num sistema complexo n o vi vel considerar um nico conjunto global de regras A manuten o de restri es e deriva es locais a um objecto com atributos at micos atrav s de regras dirigidas pelos dados encapsuladas no objecto regras dirigidas pelos dados intra objecto n o exige qualquer refinamento do modelo de regras proposto no modelo de regras proposto inicialmente os dados s o representados abstractamente por vari veis de estado cujo estrutura interna ignorada no caso de regras intra objecto as vari veis de estado s o os atributos do objecto Em contrapartida para a manuten o eficiente de restri es e deriva es que envolvem v rios objectos inter objecto s o necess rios alguns refinamentos alguns dos quais de dif cil implementa o pelo que as regras activas com eventos expl citos ter o a um papel tendencialmente mais importante 178 Conclus es Foi apresentada uma implementa o concreta de um sistema de regras activas integrado numa ferramenta de desenvolvimento de aplica es de bases de dados que apesar de algumas limita es da implementa o at por raz es de compatibilidade com vers es anteriores da ferramenta demonstra a aplicabilidade da abordagem proposta no contexto pretendido 10 2 Sugest es para trabalho futuro Apresenta se de seg
337. nce L and L induce the same number of backward edges in any cycle of G they also induce the same number of backward edges in any closed path in G Applying this fact to any of the closed paths obtained by concatenating p with any of the g s 1 g lt we conclude that the variation on the number of backward edges of any of the q s from L to L must be d Applying the same fact to any of the closed paths obtained by concatenating any of the pi s with any of the q s we conclude that the variation on the number of backward edges of any of the pi s from L to L must be d Consider now the graph G with the additional edge v u The variation on the number of backward edges induced on this edge from L to L is obviously d Hence the number of backward edges induced in any of the new cycles of G obtained by the concatenation of the edge v u with any of the p s I lt i lt k remains unchanged from L to L d due to the new edge plus d due to any of the pis We conclude that if two vertex orderings L and L are amp equivalent with respect G they are also amp equivalent with respect to G The converse is trivially true because the cycles of G are a subset of the cycles of G A Theorem 1 general B eguivalence Two graphs G V E and G V E directed or undirected are B equivalent if and only if any two vertices u and v that are joined by an edge contained in a cycle of length gt 2 in one of the graphs ar
338. ncia de v rtices na pilha de chamada corresponde exist ncia do ciclo u gt w gt gt Swn gt v gt Su em G f cil de constatar que apenas a ltima aresta do ciclo fica invertida O conjunto de arestas invertidas m nimo porque n o poss vel deixar de inverter a aresta v gt u sem inverter uma das outras arestas do ciclo em cada ciclo tem de existir pelo menos uma aresta invertida A Assim o primeiro algoritmo til para implementar de forma eficiente o 2 crit rio de ordena o indicado Note se no entanto que nem todas as ordena es que invertem um conjunto m nimo de arestas podem ser obtidas por esse algoritmo O conjunto m nimo de arestas invertidas tamb m um conjunto de arestas de realimenta o feedback edge set isto um conjunto m nimo de arestas cuja remo o torna o grafo ac clico AHU74 Qualquer dos algoritmos apresentados facilmente adapt vel ordena o de apenas uma parte dos v rtices correspondente ao fecho transitivo de um conjunto inicial de v rtices 8 5 2 Ordena o topol gica minimizando invers es de prioridades Nesta sec o desenvolve se um algoritmo eficiente embora n o ptimo para de entre as poss veis ordena es topol gicas dos v rtices de um grafo ac clico G V E escolher uma ordena o topol gica que minimize viola es das prioridades dos v rtices Este algoritmo interessa para escolher uma ordena o topol gica dos CFC s de um grafo c cli
339. nd v We nest prove by contradiction that v cannot be the first element of Q and v cannot be the last element of Q see figure below 224 On the equivalence of vertex orderings modulo the number of backward edges per cycle 7 1 1 Assume v is the first element of Q Let v and v be the first occurrences of v and v in Gr let vf and v be the corresponding vertices in G with e gt d because vf is the first vertex of Gz with a corresponding vertex in the first iteration of Gz let ve be the vertex immediately after v in Gz and let v be the corresponding vertex in G with c gt b because v cannot belong to the first iteration of Gz as shown in the figure below for the two possible relative positions of v and v first iteration of GZ first iteration of GL GL a Vyf y b P GL pa of vyf GL ya vyd N vy vyeti GL des vyd aoe vye vyetl vertices corresponding to Q vertices corresponding to Q e 7 1 2 Hence the correspondence lines that depart from v and v consecutive occurrences of v and v cannot intersect each other and the pair v v is not a valid candidate for interchanging 7 1 3 Now assume that v is the last element of Q Let v be the last occurrence of v in Gr with a corresponding vertex in the first N iterations of Gz let we be the next vertex in Gy and let v and v be the corresponding vertices in Gz as shown in the figure below first N iterations of Gz GL
340. nenhuma vari vel em U alterada quando ocorre uma transi o de um estado s para um estado 1 e s um ponto fixo de r ent o t tamb m um ponto fixo de r Formalmente s te S s U t U A r s s gt r t t bvio que s a altera o de vari veis referenciadas na restri o imposta por uma regra r condi o que d os seus pontos fixos pode mudar o estado de r de um estado n o produtivo um ponto fixo para um estado produtivo Assim o conjunto m nimo de vari veis de activa o externa de uma regra r cont m precisamente as vari veis referenciadas na restri o imposta por r Formalmente Teorema 4 2 Qualquer regra r tem um conjunto m nimo nico de vari veis de activa o externa dado por min et vars r ve V As teS s V v t V v A r s s A r t t Demonstra o Resulta da defini o de conjunto correcto de vari veis de activa o externa e da discuss o anterior A Obviamente a restri o imposta por uma regra r pode ser expressa num subconjunto das vari veis referenciadas por r Assim n o de estranhar que Teorema 4 3 Para qualquer regra r min et vars r min i vars r o min o vars r Demonstra o Suponhamos que v e min et vars r e v amp min i vars r Ent o y e v t m de denotar vari veis distintas no diagrama seguinte 119 l I sev e y denotam I v min et vars r sse y Vias tes ee vari veis distintas I l I V v J r
341. nformix Oracle SQL Server DISAM 2 outros via ODBC 2 O DISAM n o um verdadeiro SGBD mas apenas um gestor de ficheiros baseado no m todo de acesso sequencial indexado ISAM com c digo fonte dispon vel gratuitamente ao qual foram acrescentadas algumas fun es de gest o de bases de dados 156 Integra o numa ferramenta de desenvolvimento de aplica es e sobre v rios sistemas operativos Unix ou Windows e sobre v rios sistemas de interface para o utilizador alfanum rico usando o pacote Curses em Unix ou gr fico em Windows e em diferentes arquitecturas cliente servidor ou centralizada O SAGA oferece independ ncia da plataforma e uma aplica o desenvolvida sobre uma plataforma pode ser executada em qualquer outra plataforma suportada sem qualquer rescrita e diferentes sess es da mesma aplica o partilhando a mesma base de dados podem estar a correr simultaneamente em diferentes sistemas de interface para o utilizador alfanum ricos e gr ficos 9 1 2 Vistas No SAGA formul rios e relat rios s o unificados atrav s do conceito de vista interactiva da aplica o ou simplesmente vista As vistas s o os componentes principais das aplica es As vistas s o assim designadas porque permitem visualizar agregar e relacionar de m ltiplas formas a informa o armazenada na base de dados de uma forma normalizada n o redundante O conceito de vista do SAGA corresponde ao conceito de vista da aplica
342. nicial de i vars r n o afectado pela execu o de rj pelo que o valor atribu do a y por r o mesmo quer a regra r seja executada antes ou depois de r Uma vez que o vars r o vars r s r actualiza y Assim o valor final de y o mesmo quer seja executado r e depois rj ou rj e depois r Repetindo o mesmo racioc nio para as outras vari veis de sa da de r e r conclui se que o valor final de todas as vari veis de estado o mesmo quer seja executado r e depois rj ou rj e depois r N o necessidade Basta ver o caso de duas regras id nticas como ri y X rj y x Comutam apesar de interferirem uma com a outra porque actualizam a mesma vari vel y A Teorema 6 8 Para que duas regras r e r comutem necess rio mas n o suficiente que n o se activem mutuamente de forma produtiva Demonstra o Necessidade Suponhamos que uma das regras digamos r pode activar a outra ri de forma produtiva Isto quer dizer que Ase S r s s A r ri s ri s ou equivalentemente dseS 7 s s A r ri s ri ris o que implica que AseS r ri s ri rj s isto r e rj n o comutam N o sufici ncia Basta ver o caso das seguintes regras ri y x rj x y Estas duas regras ttm os mesmos pontos fixos Portanto nenhuma delas pode activar a outra de forma produtiva No entanto n o comutam A Assim para se obter o grafo de n o comutatividade pode se come ar por considerar um grafo de n o comutativ
343. nismo 6 2 1 Grafo de execu o No trabalho de refer ncia de AWH92 e AHW95 a discuss o e demonstra o de t cnicas de an lise de determinismo e termina o de regras activas baseada na considera o de grafos de execu o Os v rtices de um grafo de execu o representam estados de execu o e as arestas representam transi es entre estados de execu o causadas pela execu o das regras Cada grafo de execu o tem um estado inicial distinto que representa o in cio do processamento de regras e zero ou mais estados finais que representam a termina o do processamento de regras Existe um grafo de execu o para cada estado inicial poss vel No trabalho citado um estado de execu o re ne e o estado da base de dados que corresponde aqui ao estado das vari veis de estado e o conjunto de regras activadas e o estado de tabelas de transi o transition tables referenci veis na parte de condi o das regras que d o para cada regra activada a varia o do estado da base de dados desde a ltima execu o da regra No caso espec fico de regras activas dirigidas pelos dados interessa adaptar o conceito de grafo de execu o da seguinte forma e n o necess rio considerar as tabelas de transi o porque se sup e que as regras n o referenciam estados passados e n o necess rio considerar o conjunto de regras activadas porque o mecanismo de activa o das regras constitui essencialme
344. no vertex without incoming outgoing internal edges traversed by external cycles iv H has multiple bi gates of the same level Furthermore conditions i ii and iii are equivalent in the sense that if k k and k are the levels of the nested SCC where they first occur the occurrence of one of them implies the occurrence of the others with k lt kj lt k the occurrence of condition iv implies the occurrence of the others with k k but the converse is not true Proof Beforehand notice that H cannot be empty By theorem 4 all the gates of H are traversed by external cycles Since k gt 1 H must have at least one in gate and one out gate not necessarily distinct i Obvious since such a cycle cannot be broken without producing extra feedback edges on cycles already broken ii gt i Since the only possible vertices of H with zero in degree out degree are the in gates out gates of H condition ii implies that H has no vertex with zero in degree out degree Since H cannot be empty this implies 1 iii gt ii Obvious iii This is the condition of failure in algorithm 1 According to theorems 1 this is a sufficient failure condition i iii Since condition iii is a sufficient failure condition if i is true condition iti must be true for the same SCC or for a sub SCC of level gt k iv gt i Let z z2 be two bi gates of some level h lt k By the definition of SCC there are inside H paths fr
345. nte herdada 162 Integra o numa ferramenta de desenvolvimento de aplica es E poss vel associar a cada campo uma lista de valores permitidos definida por uma express o na linguagem de regras e comandos que retorna uma lista Podem se definir campos de preenchimento obrigat rio mandatory e campos n o alter veis pelo utilizador locked de forma est tica atrav s de propriedades est ticas dos campos ou de forma din mica atrav s de regras 9 2 6 Opera es Os dois quadros seguintes descrevem resumidamente as opera es de manipula o de vistas mais importantes As opera es do primeiro quadro incidem sobre uma vista na globalidade Opera o Descri o open Abre uma vista num modo escolha interrogar adicionar ou modificar query Passa uma vista para o modo de interrogar editar registo de crit rio Normalmente os registos de dados s o libertados quando se passa ao modo de interrogar load Selecciona os registos que obedecem ao crit rio de selec o e passa ao modo de modificar editar registos de dados Normalmente o registo de crit rio libertado quando se passa ao modo de modificar updglob Engloba modifica es de dados duma vista modifica o de campos globais e ou altera o de conjuntos de registos com opera es do quadro seguinte save Salva as altera es efectuadas numa vista Se o modo de sincroniza o com a base de dados for a um registo de cada vez em vez de a um con
346. nte um mecanismo de optimiza o no sentido de evitar execu es de regras desnecess rias n o produtivas n o afectando os estados finais que podem ser atingidos e em consequ ncia do ponto anterior n o se consideram transi es correspondentes a execu es de regras n o produtivas com o estado final igual ao estado inicial por raz es que se tornar o evidentes mais adiante e uma vez que qualquer estado se um poss vel estado inicial do processamento de regras considera se um nico grafo de execu o com todos os estados e transi es poss veis em vez de um estado de execu o para cada estado inicial poss vel Assim para a discuss o e demonstra o de t cnicas de an lise de determinismo de regras activas dirigidas pelos dados considera se um grafo de execu o definido da seguinte forma 88 Termina o determinismo e velocidade de termina o do processamento de regras e os v rtices s o os estados do espa o de estados isto o conjunto de v rtices o espa o de estados S e as arestas representam as transi es entre estados diferentes causadas pela execu o de regras produtivas sendo cada transi o etiquetada com o nome da regra que causa a transi o O grafo de execu o pode ter arestas paralelas etiquetadas com nomes de regras diferentes N o tem lacetes porque s se representam transi es entre estados diferentes Formalmente designando por T o conjunto de transi es r
347. ntegrity constraints be checked A similar situation occurs in most active database systems 2 3 4 where derived data and integrity constraints are maintained by means of active rules or triggers of the form event condition action ECA or event action EA To overcome the disadvantages of a pure event driven approach without compromising efficiency several approaches have been proposed namely the following extreme approaches e The definition of constraints and derivations in a high level declarative language and its automatic compilation into active rules STARBUST system 5 6 This approach has been developed mainly for the incremental maintenance of materialized views and integrity constraints Maintenance of integrity constraints is essentially reduced to the maintenance of materialized views e The direct definition of derivations as executable data driven rules PARDES project 7 8 9 Data driven rules are there defined as rules that define derived data elements as functions of other data elements and thus are triggered by modifications to certain data elements Data driven rules are essentially unordered action only rules with implicit triggering events of a restricted type modification of data items that participate in derivations and explicit actions of a restricted type the assignment of values to derived data items This enables the automatic derivation of the triggering events and allows the definition of more accu
348. nto de regras interrompido e s o desfeitas as altera es ocorridas desde o in cio da transac o ver opera o rollback changes adiante Se a transac o corrente n o tiver rollback local a transac o invocadora tamb m abortada e assim sucessivamente Uma transac o abortada tem na mesma de ser terminada com endtrans o que normalmente acontece quando o controlo retorna opera o que iniciou a transac o N o poss vel iniciar uma nova transac o nem registar altera es de dados que em princ pio n o devem acontecer mas isso depende da aplica o a partir de uma transac o abortada A opera o interrupt interrompe a transac o corrente O processamento de regras interrompido mas n o s o desfeitas as altera es ocorridas desde o in cio da transac o como acontece com abort A transac o invocadora n o considerada interrompida contrariamente ao que pode acontecer com abort Uma transac o interrompida tem na mesma de ser terminada com endtrans Esta opera o foi introduzida para suportar regras com a ac o doinstead a ver no cap tulo 9 8 3 2 Classes Loge Log ltem A classe Log tem uma nica inst ncia da a restri o singleton que constitui o log de altera es Os itens altera es registados no log constituem as inst ncias da classe Log Item Conceptualmente o log uma pilha porque os itens s o inseridos e eliminados por uma ordem Jast in firs
349. numa linha ou quando o TOTAL alterado por outros Estas conclus es encontram se traduzidas no grafo r v anotado da figura 7 6 que tamb m contempla as regras necess rias para impor as restantes restri es da figura 7 3 A partir do grafo r v anotado da figura 7 6 pode inferir se o grafo de activa o da figura 7 7 b Note se que se fosse seguido o crit rio de activa o b sico se obteria o grafo de activa o da figura 7 7 a De acordo com os grafos da figura 7 7 b e 7 7 c conclui se que o conjunto de regras determin stico e terminante Se as regras forem ordenadas pelo princ pio calcular antes de usar introduzem se prioridades indesej veis em termos apenas de efici ncia as regras de restri o r4 rs e r perdem preced ncia em rela o s regras de deriva o re e r2 Isso evitado com a abordagem da sec o 7 2 2 7 2 1 3 Caso de regras que manipulam objectos de classes No caso de ser seguido um modelo de dados orientado a objectos a extens o de cada classe conjuntos de objectos da classe existentes num dado momento deve ser representada por uma vari vel de estado As opera es de altera o de dados a considerar s o as opera es de cria o e elimina o de objectos e as opera es de modifica o do estado dos objectos normalmente v rias em cada classe Podem considerar se as mesmas optimiza es da sec o anterior porque os atributos dos objectos de um classe usando a terminolog
350. o As vistas materializam se parcialmente quando s o abertas durante uma sess o de trabalho de forma tempor ria e privativa a essa sess o de trabalho Em cada sess o de trabalho s pode estar aberta uma inst ncia de cada tipo de vista Uma vista pode ter associado um crit rio de selec o correspondente ao conceito de filtro no Microsoft Access que restringe os registos da vista entendida como tabela virtual que s o seleccionados materializados O crit rio de selec o cont m um valor ou uma express o de selec o string com valores meta caracteres e operadores relacionais para cada campo intra registo O crit rio de selec o n o se refere aos campos globais No SAGA o crit rio de selec o tamb m chamado registo de crit rio Para desfazer confus es os registos normais s o chamados registos de dados Uma vez que as altera es efectuadas numa vista podem n o ser reflectidas imediatamente na base de dados os registos de dados de um vista podem dividir se em e registos seleccionados registos que foram seleccionados e n o foram posteriormente modificados correspondem aos registos v lidos no Designer 2000 e registos modificados registos que foram seleccionados e posteriormente modificados e a sua modifica o ainda n o foi reflectida na base de dados e registos inseridos registos que foram inseridos na vista possivelmente modificados posteriormente e a sua inser o ainda n o foi refle
351. o ativado executado depois da execu o da opera o activadora num momento em que o estado corrente da base de dados j reflecte o efeito da opera o activadora A granularidade do gatilho indica o n mero de vezes que o gatilho activado executado em resposta a uma execu o da opera o activadora 22 Revis o do estado da arte e FOR EACH ROW o gatilho activado executado uma vez para cada linha afectada inserida eliminada ou actualizada pela execu o da opera o activadora e FOR EACH STATEMENT granularidade por omiss o o gatilho activado executado uma nica vez pela execu o da opera o activadora mesmo que nenhuma linha seja afectada A cl usula REFERENCES permite associar nomes s seguintes tabelas ou linhas de tabelas de transi o para as poder usar s para leitura na parte de condi o ou de ac o e OLD TABLE tabela l gica acess vel em gatilhos FOR EACH STATEMENT quando a opera o activadora DELETE ou UPDATE contendo os valores antigos de todos as linhas afectadas eliminadas ou actualizadas pela execu o da opera o activadora e NEW TABLE tabela l gica acess vel em gatilhos FOR EACH STATEMENT quando a opera o activadora INSERT ou UPDATE contendo os novos valores de todas as linhas afectadas inserida
352. o nicos Al m disso dependem apenas da fun o de S em S com o mesmo nome da regra que descreve o efeito l quido de r de acordo com as seguintes express es traduzidas esquematicamente na figura 4 1 min o vars r ye V Ase S r s y s y min i vars r xe V dye V As te S s V x t V x A r s y s y A r s y r t y Nestas ex ress es O s mbolo denota a projec o de um tuplo num componente ou num J conjunto de componentes Demonstra o Sa das A condi o se S r s y s y diz apenas que o valor de y alterado quando a regra r aplicada para pelo menos um estado inicial s Na representa o abstracta bvio que s t m de ser referenciados os valores finais das vari veis que obedecem a esta condi o Uma vez que uma regra definida na representa o abstracta pode ser implementada numa linguagem pr tica com referencia s mesmas vari veis em modos correspondentes refer ncias a valores finais correspondem a refer ncias para escrita enquanto que refer ncias a valores iniciais correspondem a refer ncias para leitura conclui se que s t m de ser referenciadas para escrita as vari veis que obedecem condi o indicada Reciprocamente s as vari veis que s o referenciadas para escrita podem obedecer condi o indicada de acordo com o pressuposto de quietude tamb m considerado na representa o abstracta Entradas Suponhamos que existe uma regra r se
353. o com determinados valores iniciais ou quando um objecto eliminado a cria o e a elimina o s o sinalizadas sem refer ncia aos atributos No caso de um atributo global sup e se que a altera o sinalizada cada vez que o valor do atributo alterado mas n o quando a respectiva classe criada com determinados valores iniciais ou eliminada a cria o e a elimina o s o sinalizadas sem refer ncia aos atributos A associa o On RPP especifica para cada PPR as regras que s o activadas pela ocorr ncia do PPR caso de mandatory true ou que podem ser executadas nesse PPR caso de mandatory false O caso mandatory false interessa para restringir os PPR s em que uma regra com other rpps false pode ser executada sendo a activa o em si causada por outros eventos Na associa o On RPP quando repeatable false a regra em causa s pode ser executada no m ximo uma vez em cada ocorr ncia do PPR Esta op o interessa por exemplo para regras que s o activadas pela ocorr ncia do PPR caso de mandatory true mas n o s o reactivadas pela modifica o de atributos indicados pela associa o On Modify Attribute que interessam apenas para outros PPR s A granularidade da activa o de uma regra devida ocorr ncia de um evento pode ser e object A regra activada instanciada para o mesmo objecto do evento Tamb m se diz que a activa o intra objecto S pode acontecer no caso do evento e a regra serem
354. o confluentes de notar tamb m que no caso das regras n o serem executadas por uma ordem justa caso considerado na sec o 6 2 7 algumas regras comutativas podem ter de ser tamb m ordenadas para satisfazer o requisito de conflu ncia requisito 6 1 Estas observa es s o ilustradas pelo exemplo seguinte Exemplo Seja um conjunto R de regras com o seguinte grafo de ER O conjunto de regras n o ordenado n o a porque existem dois estados finais s4 e s5 que podem ser atingidos a partir do mesmo estado inicial s ou s2 As regras r e r2 s o comutativas Termina o determinismo e velocidade de termina o do processamento de regras 101 e consequentemente confluentes As regras r e r3 s o confluentes mas n o s o comutativas porque ri ra s1 s2 ra ri s1 s4 recorde se que as auto transi es n o s o representados no grafo As regras r2 e r3 n o s o confluentes e consequentemente tamb m n o s o comutativas Suponhamos que para tentar for ar o determinismo as duas regras n o confluentes s o ordenadas por P r3 gt r2 As ordens totais compat veis com P s o Oj rirsra Os r3rir gt Os rarar Com O estado inicial s O termina no estado s4 mas O2 e O3 terminam no estado s5 Assim o conjunto de regras ainda n o determin stico quando as regras s o executadas por ordens justas compat veis com P Suponhamos que as outras regras n o comutativas r e r3 s o tamb m ordenadas por P
355. o cap tulo 3 r VLe LINHAS FACTURA L PRE O UNIT RIO lt 0 gt true Pelo crit rio de activa o b sico esta regra seria activada por qualquer altera o de LINHAS FACTURA a nica vari vel de estado consultada pela regra o que claramente excessivo Na realidade basta reactivar a regra quando inserida uma linha ou alterado o PRE O UNIT RIO numa linha Para impor a restri o R2 pode escrever se a seguinte regra de deriva o em nota o abstracta ro VLe LINHAS FACTURA L PRE O TOTAL L PRE O UNIT RIO L QUANTIDADE Pelo crit rio de activa o b sico esta regra seria activada por qualquer altera o de LINHAS FACTURA o que claramente excessivo Na realidade basta reactivar a regra quando inserida uma linha ou alterado o PRE O UNIT RIO a QUANTIDADE ou 0 PRE O TOTAL pelo utilizador ou por outras regras numa linha Para impor a restri o R3 pode escrever se a seguinte regra em nota o abstracta r3 TOTAL L PRE O TOTAL T Lie LINHAS FACTURA Pelo crit rio de activa o b sico esta regra seria activada por qualquer altera o de LINHAS FACTURA e pela altera o do campo TOTAL pelo utilizador ou por outras regras o que claramente excessivo Na realidade basta reactivar a regra quando inserida ou eliminada uma linha ou alterado o PRE O TOTAL
356. o dynamic priority da classe Rule Instance As prioridades num ricas din micas podem variar de PPR para PPR mas mant m se fixas em cada PPR Al m disso s o estabelecidas apenas para as regras que participam em cada PPR Dadas as prioridades dos dois tipos a escolha da pr xima regra a executar num dado PPR nomeadamente quando h v rias regras activadas processa se conceptualmente em duas fases 1 do conjunto A de regras activadas seleccionado o conjunto A de regras activadas que n o s o precedidas de acordo com as prioridades relativas est ticas por outras regras activadas 1 e A re A n o existe nenhuma regra r e A com prioridade relativa est tica sobre r 2 do conjunto A escolhida a regra com prioridade din mica m xima existe s uma regra nestas condi es porque regras diferentes t m prioridades din micas diferentes 8 4 3 1 Obten o das prioridades num ricas din micas prioritize rules As prioridades num ricas din micas s o calculadas com base na seguinte informa o com influ ncias decrescentes e grafo de depend ncias entre regras calculado dinamicamente em cada PPR com o significado explicado mais adiante na sec o 8 4 3 3 e prioridades num ricas est ticas das regras dadas pelo atributo priority da classe Rule n o necessariamente nicas isto podem existir v rias regras com a mesma prioridade e ordem de activa o das regras indicada pela estampa temporal
357. o em M97 Destacam se as seguintes facilidades e todas as vistas se podem manipular interactivamente no ecr para consulta ou altera o e imprimir havendo poucas varia es entre a formata o para o ecr ou para a impressora segundo o lema what you see is what you get e podem se efectuar pesquisas flex veis por quaisquer campos das vistas incluindo campos calculados campos de sum rio e campos de sub vistas sem necessidade de qualquer programa o e vistas simples podem ser geradas automaticamente e refinadas depois atrav s de um utilit rio de desenho paint e podem se manipular v rias tabelas da base de dados atrav s da mesma vista sem necessidade de qualquer programa o porque s o geradas automaticamente as condi es de jun o os crit rios de actualiza o da base de dados e as regras de integridade relacional correspondentes e podem se construir vistas mais complexas contendo sub vistas mais simples de que exemplo o formul rio apresentado na figura 7 1 e uma vista pode estar organizada hierarquicamente com sec es dentro de sec es em que as sec es correspondem a agrupamentos de registos e mecanismos autom ticos de selec o incremental de dados da base de dados para as vistas permitem navegar eficientemente atrav s de grandes quantidades de dados 9 1 3 Regras As vistas s o refinadas atrav s da adi o de regras e comandos escritas numa denominada linguagem de regras e co
358. o inicial No caso de O tal optimiza o j n o poss vel seja qual for a rota o que se considere Como veremos a seguir isso acontece porque O induz apenas uma aresta de realimenta o em cada ciclo do grafo Fr contrariamente ao que acontece com O que induz duas arestas de realimenta o no ciclo r2 r3 r r2 Lema 5 6 Se uma ordena o O dos v rtices de um grafo G V E fortemente conexo induz apenas uma aresta de realimenta o em cada ciclo de G ent o O e qualquer rota o de O induz um conjunto m nimo de arestas de realimenta o em G Demonstra o O n mero de arestas de realimenta o induzidas por uma ordena o dos v rtices do grafo em qualquer ciclo do grafo n o se altera quando se efectua uma rota o ver anexo 1 Se o grafo fortemente conexo e o n mero de arestas de realimenta o por ciclo 1 ent o o conjunto de arestas de realimenta o m nimo A Em face desta propriedade e do que foi observado no exemplo anterior sugere se o seguinte crit rio Crit rio 5 6 Para a execu o das regras de um CFC do grafo r r por uma ordem justa escolher uma ordena o inicial que induz apenas uma aresta de realimenta o em cada ciclo do grafo r r Ordena o das regras 79 A optimalidade das ordena es deste tipo foi demonstrada de forma especial para certos tipos de regras dedutivas em RSS90 Infelizmente nem sempre existem ordena es deste tipo O problema de determinar se exis
359. o necess rio recorrer a gatilhos restri es em dados calculados regras de integridade do tipo condi o ac o em que a ac o a actualiza o de valores de itens de dados em fun o dos valores doutros dados para repor a integridade restri es multi via multi way constraints i e restri es com v rias escolhas poss veis de itens de dados derivados calculados e primitivos de entrada por exemplo para impor a restri o c b a permitir que o utilizador introduza quaisquer dois valores sendo o terceiro valor calculado e A rela o entre eventos e gatilhos normalmente de um para um Isto n o podem existir dois gatilhos associados ao mesmo evento e um gatilho n o pode estar associado a mais do que um evento Esta rela o de um para um simplifica o processamentos dos gatilhos mas tem inconvenientes Por exemplo se quisermos ou tivermos que manter atrav s de gatilhos um campo calculado em fun o dos valores de n campos podemos ter que escrever n gatilhos associados aos eventos de modifica o do valor de cada um dos n campos H assim uma 4 Introdu o dispers o de conhecimento prejudicial de um ponto de vista de Engenharia de Software Por outro lado se quisermos manter atrav s de gatilhos m campos calculados que dependem do valor de um dado campo podemos ter que incluir num nico gatilho associado ao evento de modifica o do valor desse campo as express es de c lculo desses m
360. o processamento de regras Analisa se tamb m o impacto da ordem de execu o das regras na velocidade de termina o do processamento de regras 6 1 Termina o As regras podem activar se mutuamente em cascata indefinidamente fazendo com que o processamento de regras n o termine Se o processamento de um conjunto R de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras o conjunto de regras diz se terminante Apresentam se de seguida condi es suficientes a que um conjunto de regras deve obedecer para garantir a termina o do processamento de regras para qualquer estado nicial e qualquer ordem de execu o das regras S o apresentadas condi es mais conservadores que exigem apenas uma an lise sint ctica das regras e condi es menos conservadores que exigem tamb m uma an lise sem ntica das regras 6 1 1 An lise conservadora baseada no grafo de activa o 6 1 1 1 Grafo de activa o A an lise de termina o de regras activas geralmente baseada na constru o de um grafo de activa o triggering graph O grafo de activa o para um conjunto R de regras definido da seguinte forma AWH92 e Os v rtices s o as regras de R e Uma aresta dirigida rr possivelmente com i j significa que r pode gerar um evento que activa rj No caso de regras dirigidas pelos dados activadas de acordo com os crit rios apresentados no cap tulo 4 o grafo de activa o obt m s
361. o s o violados os pressupostos estabelecidos no cap tulo 3 desde que se verifiquem certos pressupostos de encapsulamento interessantes de um ponto de vista de Engenharia de Software Refinamentos para o tratamento de dados complexos 117 Assim as vari veis de estado intra objecto de um objecto composto devem representar objectos componentes que n o interagem directamente entre si e que s podem ser acedidos pelos m todos opera es do objecto composto Objectos componentes deste tipo correspondem em C S97 a membros dados data members privados No caso de objectos compostos do tipo registo que se dividem num n mero fixo de objectos componentes de natureza diferente de tipos diferentes ou em pap is diferentes cada objecto componente pode ser representada por uma vari vel de estado No caso de objectos compostos do tipo conjunto que se dividem num n mero vari vel de objectos componentes do mesmo tipo todo o conjunto tem de ser representado por uma nica vari vel de estado Objectos at micos s o tamb m representados por uma nica vari vel de estado Estes objectos componentes que n o interagem directamente entre si s o integrados atrav s dos m todos opera es e regras associadas ao objecto composto que representam respectivamente o comportamento invoc vel e reactivo do objecto composto Regras dirigidas pelos dados associadas a um objecto composto regras intra objecto ao n vel do objecto composto podem s
362. ocia o On RPP Tamb m podem ser vistos como eventos definidos pela aplica o com processamento imediato de regras Tipicamente cada opera o de altera o de dados com nome op tem um PPR no in cio e no fim designados before op e after op Em cada classe com atributos intra objecto devem existir no m nimo opera es para criar eliminar e actualizar o estado de objectos da classe Tal como os atributos os PPR s podem ser de duas granularidades diferentes e object Ocorrem para um objecto espec fico da classe normalmente em opera es intra objecto Tamb m s o designados PPR s intra objecto 128 Implementa o de um motor de regras activas dirigidas pelos dados e class Ocorrem numa opera o da classe mas n o para um objecto espec fico da classe Tamb m s o designados PPR s globais A propriedade operation indica o tipo gen rico n o o nome concreto da opera o primitiva a que o PPR est associado e create cria o de objecto ou classe com enable conforme a granularidade e delete elimina o de objecto ou classe com disable conforme a granularidade e modify modifica o do estado do objecto atrav s da modifica o do estado de atributos intra objecto ou da classe atrav s da modifica o do estado de atributos globais ou da cria o elimina o ou modifica o do estado de conjuntos de objectos da classe conforme a granularidade e other outras situa es pode ser uma op
363. odem ser teis em aplica es interactivas de bases de dados para carregar dados da base de dados para vistas interactivas modelizadas por vari veis de estado relacionais Deriva es em tudo semelhantes encontram se na avalia o bottom up de regras dedutivas escritas na linguagem datalog pura U88b o caso tamb m de conjuntos de regras que manipulam vari veis de estado num ricas por deriva es do tipo y Aero em que f representa uma fun o mon tona n o decrescente em cada uma das vari veis de estado X1 Xn Deriva es deste tipo encontram se na resolu o iterativa de alguns sistemas de equa es n o lineares pelo m todo de Newton Estas regras s o normalmente auto recursivas nas suas vari veis de sa da Exemplo Seja a rela o primitiva P x y x progenitor pai ou m e de y Ordena o das regras 75 e a rela o derivada fecho transitivo de P A x y x antepassado de y Suponhamos que estas rela es s o representadas por vari veis de estado ditas relacionais Para obter A a partir de P definem se as seguintes regras expressas de forma abstracta usando os operadores da lgebra relacional ry A AUP rx A A u p BA Da E p CA p o operador de renomea o de R98 Buy Cx Sup e se que A inicializado com o conjunto vazio Estas regras s o mon tonas no sentido acima definido O programa correspondente em datalog U88b seria constitu do pelas seguintes
364. of i First notice that no more paths in H might be traversed by external cycles of levels k k 1 n 1 So we only have to prove that each such path is traversed be one such cycle Let Vy Vets 3 Vn 1 be the decomposing vertices of Hp y Hy Since H is a non trivial SCC it cannot contain any of these vertices the decomposing vertex of a SCC of level i is always a trivial SCC of level i Let x and y be an in gate and an out gate not necessarily distinct of H with the required levels between k and n By the definition of in gate and out gate there must exist vertices w and z not necessarily distinct and edges w x and y z inside H but outside H By the definition of SCC there must exist a simple path P from z to w in Ay This path must intersect at least one of the decomposing vertices Vk Vk 1 gt Vn 1 Otherwise z and w would belong to the same SCC of level n as x and y that is H Let i k lt i lt n 1 be the index of the decomposing vertex v with lowest index intersected by P w We next prove that P doesn t intersect H If z w the proof is done Otherwise assume that P intersects H and let s and be the first and last vertex not necessarily distinct of Pw in H Let P and P be the portions of P from z to s and from f to w Without any loss of generality the other case is symmetric assume that P contains v For any j i lt j lt n 1 Pz must contain a sub path from v to a
365. of G and it has only one edge per cycle it is minimal iii Step 5 must be done for some vertex v in the process of reducing H to an acyclic graph because an acyclic graph must have vertices with zero in degree and zero out degree However not all the unconstrained choices of v would ensure minimal FES s The constraint imposed only eliminates those FES s that have more than one edge per cycle It also guarantees that F is minimal as noted in ii iv See Appendix A A Since any failure in step 5 is irrevocable it is not necessary to backtrack to a previous choice point a previous iteration of step 5 to try an alternative select a different critical vertex Apart from the non trivial step 5 the time complexity is given by Theorem 2 optimistic complexity Algorithm 1 may be run in time O IVI IVI LED if it is possible to execute step 5 in time not exceeding O IVHIEI Proof In step 2 the initial SCC s may te obtained in time O IVIHIEI see 5 for example In addition in step 6 each non trivial SCC H may be decomposed in time not exceeding O IVIHEI and the same in average The maximum number of non trivial top level and nested SCC s is M 1 Multiplying and summing we get O IVI IVI IEI A 3 Finding the edges traversed by external cycles In this section we refine step 5 of algorithm 1 in two different ways 186 An algorithm to find feedback edge sets with on edge per cycle First method In order to apply step 5
366. of previous levels Theorem 8 Let Hy Ay 7 Hn O lt k lt n be a sequence of related parent child non trivial SCC s such that each Hy Hy 7 has a single in gate or a single out gate that is selected for decomposing vertex and its incoming or outgoing edges are cut respectively Then i The intersection of the external cycles of levels k k n 1 with H are the paths in H that connect its in gates to its out gates of levels k k 1 n with the levels of the in gate and out gate possibly different It is assumed that if the in gate and out gate are the same vertex the path reduces to that vertex 1 If H has more than one vertex that is simultaneously an in gate of level i and an out gate of level j with i and j between k and n 1 and not necessarily equal then G has no CPFES Proof See Appendix C A In practice it is not necessary to record the levels of the in gates and out gates it is sufficient to distinguish between old and new ones The new ones are determined in step 6 of algorithm 1 together with the sub SCC s In step 5 whenever there are multiple in gates and multiple out gates including old and new ones the paths connecting the new in gates to the new out gates must be found before the selection of the decomposing vertex after which those in gates and out gates become old ones An algorithm to find feedback edge sets with on edge per cycle 191 The failure condition iv of theorem 6 multipl
367. oined by cyclic edges of Gg is the same as to say that those vertices are not adjacent in Gu A 5 Application to the iterative resolution of systems of equations Assume one wants to solve a system of equations x fi x i 1 n where x denotes an arbitrary vector of variables and f denotes an arbitrary function Assume one chooses an ordering of the equations Let p i be i th equation to apply by the order chosen One starts with an initial value x and in each round compute new values of x by applying all the equations by the ordering previously chosen That is we compute the succession x 4 F x with F f 1 fpn The process stops when a solution is found this may be checked when the value of x is not changed by any equation Let G V E be the undirected graph whose vertices are the functions and whose edges join non commutative functions According to theorem 6 if two orderings p i and p i are a equivalent then F A F B Hence if a solution is always found for any initial value in at most N iterations under ordering p i then a solution must also be found for any initial value in at most N h iterations under ordering p i References RSS90 R Ramakrishnan D Srivastava and S Sudarshan Rule Ordering in Bottom Up Fixpoint Evaluation of Logic Programs In Proceedings of the 16th VLDB Conference D McLeod R Sacks Davis H Schek Ed pages 359 371 Brisbane Australia 1990 TS92 K Thulasiraman
368. olos do formul rio incluindo campos calculados mas n o controlos calculados esta limita o n o grave uma vez que se podem usar campos calculados Um campo calculado um campo de uma interroga o que calculado por uma express o em fun o doutros campos No caso de formul rios com sub formul rios poss vel com algumas restri es definir controlos calculados num formul rio em fun o de controlos doutro formul rio C lculos mais complexos podem ser efectuados atrav s de procedimentos e macros executados em resposta ocorr ncia de eventos Podem se definir regras de valida o de dados ao n vel de cada controlo de um formul rio Uma regra de valida o uma condi o acompanhada opcionalmente de uma mensagem de erro validation text a afixar no caso da condi o n o ser satisfeita A regra de valida o de um controlo pode referir outros controlos A regra de valida o de um controlo aplicada apenas quando o valor do controlo alterado pelo utilizador Portanto n o tem efeito em controlos calculados nem funciona como filtro de selec o Valida es mais complexas podem ser efectuadas atrav s de procedimentos e macros associados a eventos Um formul rio herda automaticamente as regras de valida o definidas ao n vel das tabelas aplic veis a um registo de cada vez e dos campos das tabelas em que se baseia o formul rio A regra de valida o de registos s testada imediatamente antes d
369. om z to z2 and from zz to z Those paths necessarily contain a cycle By theorem 4 those paths are part of external cycles of level h and consequently are contained in H This implies i A Consequently condition i is the most important In practice condition ii is also useful because it may be detected less expensively and hence more frequently than i condition iv is also useful because it does not require the actual computation of H Condition ii also allows us to limit the choice of critical ertices to in gates and or out gates although not all the CPFES s may be found this way In order to allow the detection of failures earlier the algorithm that marks the edges traversed by external cycles should privilege the inspection of edges not yet marked We propose preliminary depth first searches starting from each in gate This allows the detection of failures in polynomial time in many cases 5 Single in gates and out gates Next we introduce some important conditions that allow a trivial selection of a critical vertex without an expensive identification of the edges traversed by external cycles 190 An algorithm to find feedback edge sets with on edge per cycle Theorem 7 trivial critical vertex Given a nested SCC H of level k gt 1 in algorithm 1 i if H has is a single in gate out gate then none of its incoming outgoing internal edges are traversed by external cycles and consequently they may be safely c
370. on may falsify the conditions upon which the values of variables are derived by other rules then it is terminating and confluent For example the rule set in the appendix has two pairs of non confluent rules In fact it is not confluent 9 Ordering criteria The order by which rules are considered for execution when there are multiple triggered rules may have impact on the semantics the termination of rule processing and in case of termination the final state reached and the efficiency the number of executions of each rule We next present ordering criteria aimed to improve termination efficiency confluence and controllability of rule processing 9 1 Basic ordering criterion Intuitively the principle compute before use should be used whenever possible That is the following ordering criterion should be used e A rule r takes precedence over a rule r if there is a path from r to r and no path from r to r in the RVDDG The precedence means that if both are triggered r cannot be selected for execution The absence of a path from r to r is required to avoid the generation of cyclic precedences This criterion has the following advantages e It requires only a syntactic analysis of rules e It usually provides the expected semantic In particular abort rules only check final values of their input values In general non recursive rules are executed only after their input variables have reached final values 11 Rules that a
371. ondi es do teorema anterior conforme mostra o quadro seguinte Conjunto m nimo de vari veis restringidas Restri o Regras que imp em a restri o Por isso todas as ordena es com conjuntos m nimos de entradas e s essas s o ideais As ordena es com conjuntos m nimos de entradas e respectivos efeitos l quidos s o Ordena o com conjunto m nimo de entradas Efeito l quido 72 Ordena o das regras y Entre par ntesis rectos indicam se as regras cuja execu o redundante Exemplo Suponhamos que as restri es z x y e y x s o impostas de m ltiplas maneiras pelas seguintes regras ry Z xX y ro y x 13 x Z Y As regras r e r3 s o mutuamente redundantes Este conjunto de regras n o obedece s condi es do teorema anterior como se pode ver pelo quadro seguinte Assim n o de estranhar que algumas ordena es com conjuntos m nimos de entradas n o sejam ideais conforme mostra o quadro seguinte Ordena o com conjunto Entradas Ordena o ideal m nimo de entradas entradas n o restringidas F E RR Exemplo Suponhamos que as restri es y f x e z g y s o impostas pelas seguintes regras rey f rax f y rsz ey ra yl g a que corresponde o seguinte grafo r v 2s ta Ea pe o Z Note se que as regras r e r4 s o mutuamente conflituosas O quadro seguinte mostra que este conjunto de regras n o est nas condi es do teorema anterior
372. or partindo de qualquer valor de X combina o de valores das vari veis de X poss vel atingir um ponto fixo para todas as regras preservando esse valor Consequentemente X n o restringido estaticamente por R Entradas n o restringidas ideal Suponhamos que X n o restringido estaticamente por R Seja s um estado inicial arbitr rio Uma vez que X n o restringido estaticamente existe um ponto fixo t para todas as regras com t X s X Suponhamos que quando as regras s o executadas a partir do estado s uma regra r atribui um valor k a uma vari vel xe X com kt x Por defini o de entradas a mesma atribui o ocorreria se as regras fossem executadas a partir do estado t Mas ent o t n o seria 70 Ordena o das regras um ponto fixo para todas as regras Portanto nenhuma regra pode alterar o valor de uma vari vel xe X isto o valor inicial de X preservado Suponhamos agora que duas regras r e r actualizam a mesma vari vel y com dois valores diferentes O mesmo aconteceria a partir do estado f o que imposs vel porque t um ponto fixo Portanto n o ocorrem actualiza es contradit rias Como os valores das entradas de O s o preservados e n o ocorrem actualiza es contradit rias O ideal de acordo com o lema anterior A Estamos agora em condi es de demonstrar o seguinte Teorema 5 1 Para que uma ordena o total O de um conjunto R de regras puramente incondicionais seja ideal necess r
373. ordena o que obviamente tende a preservar as altera es produzidas pelo utilizador o seguinte Crit rio 5 2 As regras que n o cont m vari veis de sa da alteradas pelo utilizador na mesma transac o do PPR t m preced ncia sobre as restantes Note se que as preced ncias estabelecidas por este crit rio s o din micas porque variam de PPR para PPR Este crit rio traduzido mais facilmente por uma prioridade num rica com dois valores estabelecida em cada transac o Seguem se exemplos que mostram a efic cia deste crit rio Exemplo Sejam as seguintes regras mutuamente recursivas da figura 5 1 transcritas da figura 3 1 rs b a c ro c b a Estas regras imp em a restri o b a c de diferentes maneiras isto com diferentes escolhas de vari veis derivadas e vari veis primitivas Suponhamos que o utilizador altera o valor de c e de seguida as regras s o processadas Se for seguido o crit rio de activa o b sico ambas as regras s o activadas Uma vez que as regras s o mutuamente recursivas o crit rio 5 1 n o tem qualquer efeito J pelo crit rio 5 2 a regra rs tem preced ncia sobre a regra ro Quando a regra rg executada o valor de b recalculado Seguidamente a regra ro executada n o produzindo qualquer altera o Assim o valor de c preservado Uma situa o sim trica ocorre se o utilizador come ar por actualizar o valor de b Note se no entanto que se obteria o mes
374. oritmo de redu o de regras modificado usando o GP em vez do GA Uma vez que o GP tem um subconjunto das arestas do GA se R reduzido a um conjunto vazio pelo algoritmo de redu o tamb m reduzido a um conjunto vazio pelo algoritmo de redu o modificado Para que uma regra r possa ser eliminada durante a aplica o do algoritmo de redu o modificado necess rio que rr GP inicial GP no in cio da aplica o do algoritmo ou r gt r GC inicial Pelo lema 6 2 a segunda condi o implica a primeira Portanto para que uma regra r possa ser eliminada durante a aplica o do algoritmo de redu o modificado necess rio que i r gt r GP inicial e ror GC inicial ou ii rr GP inicial e r gt r e GC inicial No caso i de acordo com o lema 6 3 as arestas dirigidas a r no GP inicial s o um subconjunto das arestas dirigidas a r no GC inicial Uma vez que os mesmos v rtices s o removidos do GC e do GP no decorrer do algoritmo as arestas dirigidas a r no GP corrente antes de eliminar r s o tamb m um subconjunto das arestas dirigidas a r no GC corrente Consequentemente para que a regra r possa ser eliminada n o pode ter qualquer aresta a ela dirigida no GP corrente No caso ii uma vez que r tem uma aresta a ela dirigida no GC corrente o pr prio lacete para que r possa ser eliminada n o pode ter nenhuma aresta a ela dirigida no GP corrente Em qualquer dos casos para que r possa ser eliminada n o pode ter q
375. orque se considera que as regras nascem activadas Estas optimiza es est o traduzidas no diagrama da figura 4 7 58 Activa o das regras 1 Ac o activada altera o de vari vel da ac o Condi o desconhecida 3 Ac o desactivada in cio de execu o altera o de vari vel fim de ea gondigag 5 Avaliar condi o fim de execu o sos execuc o 6 Ac o activada condi o Condi o falsa falsa condi o verdadeira Ac o activada altera o de vari vel de entrada da ac o Acc o desactivada Fig 4 7 Diagrama de estados optimizado para regras condicionais Numa linguagem pr tica necess rio que as partes de condi o e de ac o possam ser avaliadas separadamente e que n o haja passagem de informa o da parte de condi o para a parte de ac o nomeadamente atrav s de vari veis locais Exemplo Seja a seguinte regra r y gt w 1 Se r for executada e a condi o for verdadeira toma se subsequentemente et vars r3 w Caso contr rio toma se et vars r3 y Esta optimiza o tem no entanto as seguintes desvantagens e obriga a manter informa o de estado junto com as regras de forma permanente entre transac es o que pouco conveniente no caso de regras intra objecto a ver mais adiante e a implementa o deste crit rio em sistemas de regras activas conhecidos s parece poss vel nos poucos sistemas que permitem misturar eventos primitivos e condi es atra
376. orr ncia de actualiza es contradit rias que n o desaparecem ao fim de v rias execu es de regras Pelo menos no caso importante indicado no teorema seguinte assim que ocorrem actualiza es contradit rias num dado PPR pode se ter a certeza que o processamento de regras n o termina isto que essas actualiza es contradit rias n o desaparecem ao fim de v rias execu es de regras Teorema 6 6 Se o conjunto de regras n o cont m regras recursivas e as regras est o ordenadas segundo o princ pio calcular antes de usar e ocorrem actualiza es contradit rias num PPR o processamento de regras n o termina Demonstra o Suponhamos que duas regras r e r atribuem diferentes valores mesma vari vel y Uma vez que de acordo com a al nea a do teorema 5 1 os valores das vari veis de entrada dessas regras j atingiram valores finais essas actualiza es contradit rias n o desaparecem em subsequentes execu es dessas regras causando assim um comportamento oscilat rio que n o termina A Assim se o conjunto de regras n o cont m regras recursivas e as regras est o ordenadas segundo o princ pio calcular antes de usar o processamento de regras pode ser abortado assim que se detecta Termina o determinismo e velocidade de termina o do processamento de regras 87 que uma vari vel foi actualizada com valores diferentes durante um PPR No caso de se detectarem apenas as actualiza es com altera o
377. os conforme explicado no cap tulo 8 As transac es s o desencadeadas pelas opera es de manipula o de dados acima referidas segundo as seguintes regras gerais e se n o est em curso nenhuma transac o criada uma transac o global de n vel de topo que engloba a execu o da opera o e se uma opera o intra registo caso de updrec e de sub opera es intra registo nas opera es insrec query load e save e n o est corrente uma sub transac o intra registo sobre o mesmo registo criada uma sub transac o intra registo e s o criadas tamb m sub transac es intra registo ou globais para englobar pontos de processamento de regras PPR s de forma a cumprir as exig ncias do motor de regras e limitar o mbito de rollback Estas regras tentam minimizar o n mero de sub transac es criadas mas introduzem uma sensibilidade ao contexto de chamada de cada opera o que complica a sua compreens o pelo que devem ser revistas no futuro 164 Integra o numa ferramenta de desenvolvimento de aplica es As transac es nas vistas est o relacionadas com as transac es na base de dados de v rias formas e quando uma transac o nas vistas abortada reposta tamb m a situa o anterior em termos de locks e sea transac o de curta dura o na base de dados criada por uma invoca o de save falhar a transac o na vista que engloba a invoca o de save tamb m abortada e vice
378. os argumentos seguintes fornecem os valores para os par metros As express es com par metros s o teis porque s o reutiliz veis No caso de express es come adas com select pode existir um argumento adicional com uma express o que avaliada para cada linha de resultado produzida pelo select nessa express o interessa normalmente usar uma fun o sqlget n de coluna do resultado para ir buscar colunas do resultado na linha corrente A fun o dbacc nome de tabela exp efectua o acesso por chave prim ria a uma tabela da base de dados indicada no 1 argumento usando os valores indicados nos argumentos seguintes No caso de existir um registo com a chave indicada uma c pia do registo fica corrente em mem ria para leitura e a fun o retorna 1 Sen o retorna 0 9 3 1 3 Eventos expl citos Existe a seguinte constru o especial para definir regras com eventos expl citos on lista de eventos do express o Os eventos da lista s o separados por v rgulas Os eventos s o do tipo nome de PPR ou do tipo modify nome de atributo O nome de um PPR ou atributo doutra vista diferente da vista a que a regra pertence deve ser precedido do nome da vista e do separador A seguir ao nome de cada evento podem indicar se as seguintes op es separadas apenas por espa os correspondentes a propriedades suportadas pelo motor de regras ver sec o 8 2 deferred immediate once repeatable self triggering As o
379. os campos 7 Express o geral de regra intra registo para impedir a selec o dos registos que n o satisfazem a uma dada condi o if condi o then undo com B na propriedade modos da regra O efeito o mesmo que if after load record amp amp condi o then undo Estas regras s o processadas em after load record numa sub transac o intra registo com rollback local A falha da sub transac o invocada com undo tratada por Load como uma recusa da selec o desse registo e n o doutros registos Este tipo de selec o a posteriori de evitar porque ineficiente Sempre que poss vel prefer vel definir condi es de selec o como no exemplo anterior No futuro espera se poder gerar automaticamente condi es de selec o de regras deste tipo 8 Express o de regra numa vista v1 para calcular uma coluna de acumuladas Val Acum a partir de uma coluna da valores simples Valor numa vista s para consulta on after load do aux 0 foreach vl do ValAcum aux Valor Notar a utiliza o de para promover o valor nulo para 0 do operador com o mesmo significado que em C e da vari vel auxiliar aux foreach percorre os registos da vista pela ordem por que s o apresentados ao utilizador 9 Express o geral de regra para impedir a elimina o de registos que obedecem a uma determinada condi o on before delet do if condi o then undo Nao pode eliminar este r
380. osi o de restri es de integridade e o c lculo de dados derivados materializados estejam intimamente associados ao processamento de transac es 2 1 4 Regras activas ou gatilhos O termo regra activa surgiu na rea de sistemas de gest o de bases de dados activos SGBDA s D88 Os SGBD s tradicionais s o passivos no sentido de que executam apenas as opera es solicitadas pelos utilizadores ou programas de aplica o Em contrapartida os SGBD s mais recentes s o activos no sentido de que realizam eles pr prios certas opera es automaticamente em resposta a certos eventos que ocorrem ou a certas condi es que s o satisfeitas WC96a Este comportamento reactivo especificado por regras activas O termo gatilho mais usado com o mesmo significado em SGBDA s comerciais Formas de gatilhos mais limitadas encontram se em ferramentas de DRA Na sua forma mais geral uma regra activa active rule ou gatilho trigger um terno evento condi o ac o com o seguinte significado se o evento ocorrer avaliar a condi o e se a condi o for satisfeita executar a ac o WC96a Uma regra com estas tr s partes tamb m chamada uma regra ECA WC96a Diz se que a ocorr ncia do evento activa a regra triggers the rule Executar uma regra avaliar a condi o e se esta for satisfeita executar a ac o Revis o do estado da arte 9 O evento ou a condi o podem ser suprimidos mas n o os dois simul
381. ot contained in S otherwise C would have no vertex outside S 4 Hence the intersection of an external cycle with H is a simple path 5 Let H be the graph obtained from H by removing the feedback edges induced by S and let G be the graph obtained from G by removing the same feedback edges only those removed from H 6 Any topological ordering of the vertices of H cannot induce extra feedback edges besides the ones induced by S Furthermore if S induces a minimal FES then any topological ordering of the vertices of H induces exactly the same feedback edges as S 198 An algorithm to find feedback edge sets with on edge per cycle 7 Given 4 the assumption that there is no cycle in G simultaneously intersecting a vertex outside S a vertex before after v in S and v itself is equivalent to the assumption that there is no vertex u and edge u v v u in H intersected by an external cycle 8 Assume that R is a topological ordering of the vertices of H According to 6 this guarantees that R does not induce extra feedback edges According to 7 the assumption about S also applies to R that is there is no cycle in G simultaneously intersecting a vertex outside R a vertex before after vin R and v itself Given 4 to further guarantee that there is no cycle in G simultaneously intersecting a vertex outside R a vertex before after v in R and a vertex after before v in R it is sufficient to require that for any edge u w
382. p es deferred e immediate s o modos de acoplamento mutuamente exclusivos O modo de acoplamento por omiss o no caso de ocorr ncias de PPR s immediate As op es once e repeatable op o por omiss o s o tamb m mutuamente exclusivas Integra o numa ferramenta de desenvolvimento de aplica es 171 9 3 2 Compila o das regras Por compila o de uma regra entende se a compila o da respectiva express o para o formato interno seguida da an lise dessa express o para determinar informa o exigida pelo motor de regras ou seja e o mbito granularidade da regra quando omisso e as listas de atributos acedidos para leitura e escrita e as granularidades dos acessos e os eventos activadores da regra quando omissos S o determinados os atributos de vistas referidos explicitamente para leitura ou escrita com base numa an lise sint ctica e no conhecimento de algumas propriedades das fun es operadores e constru es da linguagem de regras e comandos As regras que l em conjuntos de registos nomeadamente atrav s de fun es de agrega o ou da constru o foreach dependem adicionalmente do atributo record set A modifica o de record set sinalizada no fim de opera es que inserem ou eliminam registos As regras que inserem ou eliminam registos t m adicionalmente como atributo de sa da o atributo record set Conforme foi referido nas rela es mestre detalhe a vista de detalhe materializada
383. pelo que o conjunto R n o determin stico em sentido fraco O inverso bvio porque estados finais diferentes num grafo de execu o instanciado n o podem corresponder ao mesmo estado parametrizado A Exemplo Sejam as regras r y 1 ro X Z Considerando o vector de estado s x y z o grafo de execu o parametrizado correspondente 92 Termina o determinismo e velocidade de termina o do processamento de regras 1 xo 1 Ne P 20 YO z0 H um nico estado final parametrizado e n o h caminhos infinitos pelo que este conjunto de regras terminante e determin stico x0 YO z0 z0 1 z0 75 Exemplo Sejam as regras ri x gt 0 gt y 1 r2 X Z Considerando o vector de estado s x y z o grafo de execu o parametrizado correspondente x0 x0 gt 0 1 y0 z0 2 z0 x0 gt 0 1 y0 z0 Ls 20 z0 gt 0 x0 gt 0 1 y0 z0 r A x0 YO z0 BN 20 70 20 29 20 gt 0 1 y0 20 Nas express es o operador tern rio do C usado com significado semelhante a if then else H dois estados finais parametrizados pelo que este conjunto de regras n o determin stico Por exemplo o grafo de execu o instanciado para o estado inicial 1 0 0 antes de juntar estados id nticos depois de juntar estados id nticos 1 1 0 230 1 0 L gt 0 1 0 1 1 0 2 gt 0 1 0 r 7 r 1 0 0 1 0 0 oNe 0 0 L gt o 0 0 No 0 0 6 2 4 Regras comutativa
384. persistent que armazena o identificador nico e imut vel identidade do objecto persistente como em persistent Emp e Emp o nome da classe Contrariamente aos objectos vol teis os objectos persistentes s o alocados numa rea de armazenamento persistente onde continuam a existir mesmo depois do programa que os criou terminar As transac es em O t m a forma dum bloco com prefixo trans como em trans As transac es s o abortadas com a instru o t abort Abortar uma transac o implica desfazer rollback as altera es ocorridas nos objectos persistentes As transac es proporcionam as propriedades de atomicidade isolamento e durabilidade relativamente aos objectos persistentes e s a esses Revis o do estado da arte 31 S o suportadas restri es hard e soft e ainda constru es especiais para suportar integridade referencial e integridade relacional de associa es Estas constru es espaciais n o s o abordadas aqui 2 3 6 2 Restri es hard As restri es hard s o especificadas na sec o constraint da defini o de uma classe da seguinte forma constraint constraint handler constraint handler constraint uma express o Booleana que referencia componentes da classe e handler uma instru o que executada quando a restri o violada i e quando constraint tem valor false Se handler n o for especificado a transac o a
385. pes of rules and not a concrete application lxl gt 100 gt true gt Z X gt y l gt w l u max x y A v min x y y lyl x20 gt y x q 1 b a c c b a b Rule variable data dependency graph Hep abort rule handled as a derivation rule unconditional derivation rule conditional derivation rule self recursive mutually conflicting with rs mutually recursive with rs c Rule rule data dependency graph e Order dependency graph heavier edges link pairs of non confluent rules
386. plamento n o est ligado explicitamente regra pela associa o On RPP a activa o n o tem efeito Implementa o de um motor de regras activas dirigidas pelos dados 137 A opera o signal na meta classe RPP origina uma inst ncia do PPR indicado na transac o corrente Imp em se as seguintes restri es e tem de estar corrente uma transac o n o abortada e n o interrompida e n o pode estar em curso um PPR na transac o corrente e um PPR intra objecto s pode ocorrer ser instanciado numa transac o intra objecto sobre o mesmo objecto Estas restri es servem para organizar a execu o das regras As duas ltimas restri es n o s o penalizadoras porque facilmente se pode criar at de forma impl cita uma sub transac o sem rollback local As regras ligadas pela associa o On RPP a um PPR sinalizado com mandatory true s o activadas de acordo com as restri es explicadas no m dulo de defini o de regras ou seja e se uma regra ou a respectiva classe tem enabled false a regra n o activada e se uma liga o tem self triggering false e a regra est a ser executada a regra n o activada e se uma regra tem other rpps false e o PPR em que a regra seria executada de acordo com o modo de acoplamento n o est ligado explicitamente regra pela associa o On RPP a activa o n o tem efeito isto s pode acontecer com o modo de acoplamento diferido Quando uma regra activa
387. ple in appendix A 5 Rule types As it will be seen the following types of rules are potential sources of non termination or non determinism of rule execution conditional rules recursive rules and conflicting rules Conditional rules have already been described Data driven Active Rules for the Maintenance of Derived Data and 233 Integrity Constraints in User Interfaces to Databases A rule with overlapping sets of input and output variables is called self recursive because it defines the new value of a variable using the old value of the same variable Examples of useful self recursive rules are e rules for input conversion like rule r in appendix A e rules used in iterative methods like rio y exp y Sets of rules that participate in a cycle of the RVDDG with two or more rules otherwise it s the case of a single self recursive rule are called mutually recursive because they define the new value of a variable using the old value of the same variable Examples of useful mutually recursive rules are e rules with mutually exclusive conditions like ru x 0 gt y z and ri Xt0 gt z y e rules that enforce the same constraint in multiple ways like rules rs and ry in appendix A Pairs of rules with common output variables are called mutually conflicting or simply conflicting because of the potential for contradictory updates Examples of admissible conflicting rules ones that in fact do not perform contradictory
388. ples entendem se formul rios de ecr uni registo constitu dos por um conjunto fixo de campos at micos Por conseguinte a simplicidade reside no modelo de dados Este caso tratado em primeiro lugar porque as solu es encontradas para o tratamento de restri es de integridade e dados derivados em formul rios de ecr simples s o uma boa base de partida para o caso de formul rios e outros interfaces para o utilizador mais complexos a tratar no cap tulo 7 alguns problemas de an lise e processamento de regras n o t m a ver com a complexidade do modelo de dados e s o mais facilmente estudados no quadro de um modelo de dados simples Mesmo em formul rios de ecr com um modelo de dados simples encontram se j necessidades relativamente complexas ao n vel de manuten o de dados ou propriedades derivados e restri es de integridade de que se destacam as seguintes i ii iil iv v vi vii viii x itens de dados calculados em fun o doutros itens de dados calculados itens de dados calculados condicionalmente i e itens de dados que s o calculados em algumas circunst ncias e introduzidos pelo utilizador noutras circunst ncias c lculo de v rios itens de dados atrav s da mesma f rmula para evitar repetir c lculos dispendiosos tais como os que envolvem o acesso a disco c lculo do mesmo item de dados por v rias f rmulas n o contradit rias que surgem naturalmente quando s o suportado
389. ponding acyclic sub graph without the edges added in 9 Since there is no edge u v v u in H intersected by an external cycle according to 7 and we know that all the edges in J are intersected by external cycles according to 10 we conclude that there is no edge u v v u in J Consequently when sorting topologically the vertices of J v may be moved to the first last position 12 With respect to the resulting ordering R for any edge u w of H intersected by an external cycle with u v w both u and w will precede or follow v in R because either the edge u w belongs to a different SCC in H other than J or it belongs to the same SCC J and v is in the first last position within J A Lemma A4 local reordering and rotation Given a vertex v in a sub sequence S of a cycle preserving ordering L of the vertices of a graph G there is a permutation P of S for the same number of feedback edges per cycle with v in the first last position of P iff there is no cycle in G simultaneously intersecting a vertex outside S a vertex before after v in S and v itself Proof Necessity Assume the condition is false that is assume there is a cycle C intersecting a vertex outside S a vertex before after vin S and v itself Let u be the vertex immediately before after v intersected by C in S Since cycles are preserved C has only one feedback edge induced by L linking the first and the last vertex of C in L
390. por MAX OPEN CURSORS pelo menos era assim no Oracle7 segundo CW96 e Os gatilhos podem ser desactivados disabled e reactivados enabled e Podem se criar gatilhos do tipo INSTEAD OF em vistas os quais servem para implementar de uma forma definida pelo utilizador atrav s do bloco de c digo em PL SQL as opera es de manipula o de vistas Estes gatilhos s o sempre FOR EACH ROW e no caso de UPDATE Revis o do estado da arte 25 n o se podem indicar as colunas Os gatilhos AFTER e BEFORE s s o aplic veis a tabelas e os gatilhos INSTEAD OF s s o aplic veis a vistas Exemplo Para obter o mesmo efeito dos gatilhos em SQL3 apresentados anteriormente basta escrever o seguinte gatilho em Oracle8 REATE TRIGGER propagaMov FTER INSERT OR DELETE OR UPDATE OF codigo artigo nt entrada N Movimento OR EACH ROW EGIN E NSERTING OR UPDATING THEN UPDATE Artigo SET quant_actual quant_actual NEW quant_entrada WHERE codigo NEW codigo_artigo w H OO PQ G w T TING OR UPDATING THEN E Artigo SET quant actual quant actual OLD quant_entrada WHERE codigo OLD codigo artigo END IF D fra Z 2 3 4 Regras activas no sistema Starbust
391. posta a esses eventos o motor de regras desencadeia a execu o das regras que coordenada com a execu o de transac es Para servir para diferentes aplica es o motor de regras trata apenas da execu o das regras que s o declaradas ao motor de regras j compiladas Ainda assim o motor de regras acompanhado de um compilador analisador e avaliador de express es escritas numa linguagem extens vel que pode ser til para suportar regras definidas dinamicamente pelo utilizador conforme se ver no cap tulo 9 A descri o baseada em UML Unified Modeling Language na vers o descrita em UML97 8 1 Arquitectura l gica O motor de regras est organizado em tr s m dulos packages indicados no diagrama de m dulos da figura seguinte juntamente com as depend ncias existentes entre eles M dulo de M dulo de processamento de processamento de regras RuleProc transac es TransProc Legenda M dulo de DA m dulo package defini o de regras RuleDef gt rela o de depend ncia Fig 8 1 Diagrama de m dulos packages do motor de regras Estes m dulos s o descritos nas sec es seguintes 126 Implementa o de um motor de regras activas dirigidas pelos dados 8 2 M dulo de defini o de regras RuleDef Este m dulo mant m meta informa o sobre as regras e os dados controlados por essas regras de acordo com o diagrama da figura seguinte Consideram se as regras e o
392. pplication development tools and generic assertions in SQL are examples of entities that may be treated as data driven active rules The main contribution of the work reported in this thesis is the proposal of a model of data driven active rules specially suited for the maintenance of derived data calculated data and integrity constraints data validation in interactive database applications namely screen forms and reports more flexible and with better integration than other types of data driven active rules previously proposed Two important characteristics of the proposed model are the fixpoint semantics and the sequential execution The fixpoint semantics means that a rule should be executed i e the condition should be evaluated and in case it evaluates to true the action should be executed whenever a change in the state of the data may result from its execution Sequential execution is important to guarantee that the changes caused by the execution of a rule are not affected by the existence of other rules Inference rules are established to obtain the triggering events and priorities of data driven active rules for their efficient and safe execution possibly in combination with other types of active rules Conditions on sets of rules are determined that guarantee termination and determinism of rule execution The specialized nature of the proposed rules allows the determination of less conservative conditions than the ones that are known fo
393. presenta o abstracta duas regras semanticamente equivalentes isto com o mesmo efeito l quido mas escritas de forma diferente podem referenciar conjuntos diferentes de vari veis ou as mesma vari veis em modos diferentes A pr pria escolha entre a forma incondicional e a forma condicional pode afectar as vari veis referenciadas conforme mostram os exemplos seguintes Exemplo 1 As regras seguintes em que r prov m da figura 3 1 t m o mesmo efeito l quido i x se x20 j y gt E ev gt y gt ro X20 y x oa Y ET rob X20 AV X gt yY X No entanto i vars r6 x i vars r6q x y i vars rsp A forma do lado esquerdo a mais simples e a que referencia menos vari veis A forma do meio incondicional A forma da direita tem a condi o o mais restritiva poss vel nega o da restri o imposta pela regra Exemplo 2 As regras seguintes em que rz prov m da figura 3 1 t m o mesmo efeito l quido ro Z X y Fa Z E X Y gt 7 X No entanto i vars r2 x y i vars r2a x y z A forma da esquerda incondicional a mais simples e a que referencia menos vari veis A forma da direita tem a condi o mais restritiva poss vel nega o da restri o imposta pela regra Exemplo 3 As regras seguintes t m o mesmo efeito l quido r X gt y gt y x r y max x y As entradas e sa das mant m se mas a refer ncia a y passa para o lado da condi o o que pode ser relevante para o c
394. qualquer Ent o o n mero de execu es de regras n o excede n n 1 em que n o n mero de regras Demonstra o Intuitivamente o pior caso acontece quando i o grafo de activa o produtiva um grafo ac clico completo ii o crit rio de activa o t o conservador que todas as regras s o activadas quando alterado o valor de qualquer vari vel de estado iii as regras s o ordenadas por ordem inversa nica ordem topol gica do grafo de activa o produtiva i e a ordem topol gica do 102 Termina o determinismo e velocidade de termina o do processamento de regras grado de activa o r mr e a ordem de execu o das regras rjr2 ra iv todas as regras est o inicialmente activadas No final da 1 itera o uma passagem completa por todas as regras foi atingido um ponto fixo para a regra r Assim em itera es subsequentes mesmo que r seja executada n o activa outras regras Ao fim de n 1 itera es no m ximo atingido um ponto fixo para a regra r Na itera o n 1 nenhuma regra activa outras regras O n mero m ximo de itera es portanto n 1 Se todas as regras forem executadas em todas as itera es o n mero de execu es de regras n n 1 A Este n mero de execu es quadr tico compara muito favoravelmente com o n mero de execu es exponencial obtido no teorema 6 3 para o pior caso de uma ordem de execu o do tipo r1 r2 ra 6 3 2 Ordens d
395. que o crit rio de ordena o da forma ORDER BY cy C2 cn Ent o poss vel definir n agrupamentos de registos da forma GROUP BY c ci fi ci para valores de i n vel de agrupamento desde 1 at n A fun o fi c d um valor em fun o de c No layout do relat rio podem definir se sec es de cabe alho e rodap para cada n vel de agrupamento No m ximo podem existir as seguintes sec es pela ordem indicada cabe alho do relat rio cabe alho de p gina cabe alho de grupo de n vel 1 cabe alho de grupo de n vel n detalhe rodap rodap de grupo de n vel n rodap de grupo de n vel 1 rodap de p gina rodap do relat rio Um cabe alho rodap de grupo de n vel i s impresso no primeiro ltimo registo de cada grupo de registos de n vel i Podem se colocar controlos calculados em qualquer sec o de um relat rio Um controlo de uma sec o cabe alho ou rodap de n vel i pode ser calculado por uma fun o de agrega o aplicada a campos de n vel gt i ou por uma express o simples sem fun es de agrega o envolvendo controlos ou campos de n vel i ou n vel lt i por exemplo para apresentar uma percentagem em rela o ao total de um grupo Isto tamb m se aplica em rela o a controlos colocados no cabe alho ou rodap do relat rio caso em que o n vel 0 e a controlos colocados na sec o de detalhe caso em que o n vel n 1 Um relat rio pode in
396. que tem uma oportunidade de execu o i e executada se estiver activada De qualquer forma o resultado o mesmo se todas as regras forem executadas quando t m oportunidade de execu o porque o crit rio de activa o garante que as regras que n o est o activadas n o s o produtivas De seguida obt m se condi es suficientes a que R e P devem obedecer para garantir o determinismo do processamento de regras por uma ordem de execu o justa Note se que o grafo de execu o n o adequado para analisar o determinismo de regras executadas por ordens justas porque as regras que podem ser executadas a partir de um estado s n o dependem apenas de s e P Lema 6 9 Duas ordena es totais O e O de um conjunto R de regras vistas como sequ ncias de execu o de regras s o equivalentes no sentido de produzirem o mesmo estado final para qualquer estado final se quaisquer duas regras n o comutativas t m as mesmas posi es relativas em O e O isto se r e rj s o regras n o comutativas e r precede r em O ent o r tamb m precede rj em 09 Demonstra o Suponhamos que O e O s o duas ordena es de R tais que quaisquer duas regras n o comutativas de R t m as mesmas posi es relativas em O e O Indica se em primeiro lugar um m todo para transformar uma das ordena es digamos O na outra O pela troca de pares de regras consecutivas comutativas Sem qualquer perda de generalidade seja O r rz r Se
397. quer estado s ou n o existe nenhum estado final ating vel a partir de s caso em que o processamento de regras nunca termina ou existe exactamente um estado final e nenhum caminho infinito ating vel a partir de s caso em que o processamento de regras termina sempre no mesmo estado final Este tipo de determinismo mais interessante porque garante que a ordem por que as regras s o escolhidas para execu o n o tem impacto na sem ntica do conjunto de regras Obviamente as duas no es de 90 Termina o determinismo e velocidade de termina o do processamento de regras determinismo equivalem se no caso do conjunto de regras ser terminante que o caso em que o determinismo mais facilmente analisado Um conjunto R de regras diz se confluente ou globalmente confluente se dados quaisquer dois estados s e sz ating veis a partir do mesmo estado s no grafo de execu o de R existe um estado s ating vel tanto a partir de s como a partir de sz Esta no o de conflu ncia equivale no o de conflu ncia de H80 aplicada rela o bin ria de transi es de estado 77 e no o de conflu ncia de caminhos path confluence de AWH92 Um conjunto R de regras diz se localmente confluente se dadas quaisquer duas arestas s gt s e ss partindo do mesmo estado s no grafo de execu o de R existe um estado s ating vel tanto a partir de s como a partir de s2 Esta no o de conflu ncia local prov m de H
398. r o do tuplo actualizado e se um tuplo actualizado e depois eliminado o efeito l quido a elimina o do tuplo original e se um tuplo actualizado mais do que uma vez o efeito l quido uma nica actualiza o do valor original para o valor mais recente e se um tuplo inserido e depois eliminado n o aparece no efeito l quido Desta forma garante se que cada tuplo alterado identificado pelo seu identificador interno s aparece numa das tabelas de transi o excepto no caso de old updated e new updated em que aparece em ambas as tabelas e dentro dessa tabela de transi o s aparece uma vez Dado que em caso de execu o repetida duma regra as tabelas de transi o s contabilizam as altera es ocorridas desde o in cio da ltima execu o a mesma altera o inser o elimina o ou actualiza o 2 de um tuplo n o vista mais do que uma vez pela mesma regra Os pr prios eventos activadores s o considerados em termos l quidos Uma regra s se considera activada se pelo menos uma das suas tabelas de transi o n o for vazia raz o pela qual as opera es Revis o do estado da arte 27 activadoras t m os nomes das tabelas de transi o Assim uma regra pode ser desactivada untriggered por eventos de altera o de dados Na opini o do autor as principais vantagens do sistema de regras do Starbust s o e a simplicidade conceptual do modelo de execu o e a flexibilida
399. r acrescido de arestas que ligam regras com vari veis de sa da comuns isto regras conflituosas Os ciclos no grafo de interfer ncias assinalam a presen a de regras recursivas ou conflituosas O processo de obten o do grafo de interfer ncias a partir do grafo r v ilustrado na figura 4 4 Um exemplo de um grafo de interfer ncias dado na figura 4 5 Activa o das regras 53 i interfer ncia escrita leitura ii interfer ncia escrita leitura iii interfer ncia escrita escrita entre regras diferentes dentro da mesma regra entre regras diferentes GD gt Fig 4 4 Constru o do grafo de interfer ncias entre regras a partir do grafo r v Fig 4 5 Grafo de interfer ncias entre regras correspondente ao conjunto de regras da fig 3 1 4 2 Crit rios de activa o Nesta sec o s o apresentados crit rios de activa o isto eventos de activa o e desactiva o das regras dirigidas pelos dados do tipo A s ac o ou CA condi o ac o necess rios para a sua tradu o para regras EA ou ECA No mbito das regras dirigidas pelos dados o primeiro objectivo de um crit rio de activa o garantir a termina o do algoritmo de processamento de regras sequencial algoritmo 3 1 depois e s depois de ter sido atingido um ponto fixo para todas as regras O segundo objectivo de um crit rio de activa o evitar execu es de regras desnecess rias apresentado primeiro um crit rio b
400. r n o est j na 1 posi o em O move se r para a 1 posi o de O trocando de posi o sucessivamente com a regra imediatamente precedente em O Em cada troca de r com uma regra rj uma vez que as posi es relativas de r e r s o diferentes em O e O as duas regras t m de ser comutativas As posi es relativas de todos os pares de regras que n o cont m r n o s o afectadas Ent o prossegue se da mesma maneira com as restantes regras de O Uma vez que O pode ser obtido de O e vice versa pela troca de pares de regras consecutivas comutativas as duas ordena es vistas como sequ ncias de execu o de regras produzem o mesmo estado final para qualquer estado inicial A Teorema 6 16 Um conjunto R de regras com um conjunto P de prioridades processado por qualquer ordem de execu o justa compat vel com P deterministico em sentido forte se quaisquer duas regras n o comutativas est o ordenadas em P Demonstra o Sejam O e O quaisquer duas ordena es totais de R compat veis com P De acordo com as condi es do teorema se duas regras r e r n o s o comutativas ent o r gt r e P ou r lt r P Portanto se O e O s o compat veis com P r e rj t m as mesmas posi es relativas em O e O Pelo lema anterior O e O s o equivalentes pelo que o processamento de regras O equivalente a O A de notar que para for ar o determinismo n o suficiente ordenar os pares de regras n
401. r sticas distintivas do modelo proposto de regras dirigidas pelos dados s o e a sem ntica de ponto fixo que significa que uma regra deve ser executada i e a condi o deve ser avaliada e se for verdadeira a ac o deve ser executada sempre que dessa execu o possa resultar uma altera o no estado dos dados e a aus ncia de qualquer limita o ao tipo de altera es no estado dos dados que podem ser efectuadas por uma regra havendo apenas a obriga o de cada regra ser determin stica e a aus ncia de qualquer limita o aos conjuntos de regras que se podem definir por exemplo a rela o entre itens de dados derivados e regras que derivam os seus valores pode ser de muitos para muitos e a forte integra o entre regras dirigidas pelos dados para a imposi o de restri es de integridade e para o c lculo de dados derivados Introdu o 5 e a forte integra o com regras dirigidas por eventos porque as regras dirigidas pelos dados s o essencialmente traduzidas para regras dirigidas por eventos com prioridades para efeito da sua execu o Apesar de motivado por uma finalidade concreta o modelo de regras apresentado de uma forma muito gen rica para potenciar a sua aplica o a outras reas S o estabelecidas regras de infer ncia dos eventos activadores de cada regra e das prioridades entre as regras por forma a garantir a sua execu o segura e eficiente possivelmente em combina o com regras ac
402. r Advanced Database Processing J Widom e S Ceri editores pp 111 149 Morgan Kaufmann 1996 Michael Stonebreaker e Dorothy Moore Object Relational DBMSs The next great wave Morgan Kaufmann Publishers Inc 1996 Michael Sannela John Maloney Bjorn Freeman Benson e Alan Borning Multi way versus one way constraints in user interfaces experience with the DeltaBlue algorithm In Software Practice and Experience vol 23 5 pp 529 566 Maio de 1993 K Thulasiraman e M N S Swamy Graphs Theory and Algorithms John Wiley amp Sons 1992 Jeffrey D Ullman Principles of Database and Knowledge Base Systems Volumes I e II Computer Science Press Inc USA 1988 UML Notation Guide Version 1 1 Rational Software e outras empresas Setembro de 1997 VMF93 W96 WC96 WC96a WF90 ZCF 97 Refer ncias 183 Raul M Vidal Jos M Moreira Jo o P Faria Implementa o de Novas Tecnologias da Informa o na Administra o Local e Regional PIM Projecto de Informatiza o Municipal Um exemplo de aplica o In ENDIEL 93 Porto 1993 Jennifer Widom The Starbust Rule System In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 87 109 Morgan Kaufmann 1996 Jennifer Widom e Stefano Ceri editores Active Database Systems Triggers and Rules for Advanced Database Processing Morgan Kaufmann 1996 Jennifer Widom e Stefano Ceri
403. r again reason why it may remain detriggered Now we give the rational behind point iv Assume that a rule r was executed and became in a detriggered state As long as neither the input nor the output variables of r are modified subsequently a new execution of r would assign the same values to the same unmodified output variables causing no change of the state of the system Hence there is no need to execute r again reason why it may remain detriggered are 6 2 Static improvements based on the elimination of redundant triggering variables The sets of triggering variables presented above may be too conservative Possible ways by which less conservative sets of externaktriggering variables may be obtained e Take for et vars r the variables referenced in the underlying static constraint of r This is the optimal static choice that can be made based only on the knowledge of r 11 e Incase it is known in advance that the updates performed by others the user or other rules on the output variables of r do not contradict the ones performed by r those variables may be excluded from et vars r Possible ways by which less conservative sets of self triggering variables may be obtained are e In case it is known in advance that r is idempotent take st vars r A rule r is called idempotent when r s r s for any state s Rules with disjoint sets of input and output variables are trivially idempotent A rule such that the execution of
404. r generic active rules It is shown how to incorporate into the proposed model the optimizations required to deal efficiently with complex data by means of the differentiation of set oriented rules and the encapsulation of rules within objects Finally it is described a concrete implementation of an active rule system integrated in a rapid application development tool developed at INESC supporting both data driven and event driven rules demonstrating the advantages of the proposed approach by comparison to other tools in spite of some compromises taken in the implementation Regles Actives Command es par les Donn es pour la Maintenance des Donn es D riv es et des Restrictions d Int grit en Applications Interactives de Bases de Donn es Resum Une r gle active trigger est une triade v nement condition action qui signifie si 1 v nement survient valuer la condition et si celle ci est vraie ex cuter action Le terme r gle active est apparu dans le domaine des Bases de Donn es Actives ou les r gles actives sont utilis es pour imposer des restrictions d int grit statique ou dynamique pour le calcul automatique de donn es d riv es pour imposer de r gles de commerce etc Dans certains syst mes il est possible de sp cifier des priorit s absolues ou relatives entre les r gles qui conditionnent leur ordre d ex cution Une application interactive de bases de donn es est un logiciel qui permet
405. r3 gt r 3 gt r As ordens totais compat veis com Pz s o O e O3 Com os estados iniciais s ou s2 tanto O2 como O3 terminam no estado ss Portanto o processamento de regras determin stico Se as regras forem processadas de acordo com P2 mas por uma ordem injusta o processamento de regras ainda n o determin stico De facto com o estado inicial sy r3 r gt r1 termina no estado ss enquanto que r3 r r2 termina no estado s4 6 3 Velocidade de termina o Para al m do impacto que pode ter no estado final atingido quando o conjunto de regras n o determin stico a ordem por que as regras s o executadas tem quase sempre impacto na efici ncia temporal velocidade de termina o do processamento de regras Na aus ncia de informa o adicional a efici ncia pode ser medida pelo n mero de vezes que cada regra executada ou pelo n mero total de execu es de regras No cap tulo 5 foram indicados diversos crit rios de ordena o e foi analisado o impacto de alguns desses crit rios na efici ncia temporal do processamento de regras O objectivo desta sec o n o o de desenvolver m todos gen ricos para analisar a efici ncia do processamento de regras mas antes apresentar alguns resultados que complementam os do cap tulo 5 Na sec o 6 3 1 demonstra se a vantagem referida mas n o demonstrada na sec o 5 5 2 das ordens de execu o justas para o processamento de regras falsamente recurs
406. ra associada a um objecto composto o executada num PPR p de uma opera o m todo m de 0 pode invocar uma opera o mz sobre um objecto componente 02 com um PPR p2 na qual executada uma regra rz associada a 02 Diz se que o PPR pz ocorre de forma encaixada em p e que a regra rz executada de forma encaixada em r A ocorr ncia de PPR s encaixados nested e a consequente execu o das regras de forma encaixada constitui uma diferen a significativa em rela o situa o em que as regras s o executadas sequencialmente num nico PPR Para suportar regras de restri o sup e se que as modifica es do estado db sistema raiz da hierarquia de objectos s o protegidas por transac es Essas transac es constituem as opera es m todos de altera o do estado do objecto raiz As opera es de manipula o dos outros objectos da hierarquia de objectos podem ser ou n o protegidas por sub transac es com rollback local isto podem ser ou n o transaccionais de acordo com o modelo de transac es encaixadas nested O facto de as regras serem executadas nas mesmas opera es em que ocorrem os eventos activadores garante que no caso de uma opera o transaccional ser abortada tanto os eventos como os efeitos das regras activadas por esses eventos s o desfeitos 7 3 1 3 Exemplos Nos exemplos seguintes utiliza se a seguinte nota o para definir regras intra objecto regra como fun o membro de cl
407. rada isto n o causa a activa o da regra Os v rios tipos de eventos activadores e modos de activa o acima referidos permitem suportar diferentes tipos de regras e regras de restri o ou de deriva o destinadas imposi o de restri es de integridade est ticas normalmente activadas pela cria o de um objecto ou classe e reactivadas pela altera o de atributos referenciados na regra para leitura ou escrita Implementa o de um motor de regras activas dirigidas pelos dados 131 e regras de restri o ou de deriva o destinadas imposi o de restri es de integridade locais a um PPR sem o que a respectiva opera o n o pode prosseguir normalmente activadas pela ocorr ncia do PPR e reactivadas pela altera o de atributos referenciados na regra para leitura ou escrita e regras de propaga o que s o executadas possivelmente com efeitos laterais sempre que certos dados atributos consultados pela regra s o alterados e regras intra objecto destinadas a impor restri es intra objecto ou restri es inter objecto e regras que servem simplesmente para aumentar ou restringir opera es de uma forma livre e arbitr ria sendo executadas uma nica vez em PPR s dessas opera es 8 2 8 Gera o autom tica dos eventos activadores A opera o generate triggering events da classe Rule gera automaticamente os eventos activadores de uma regra a partir dos atributos cujo estado consultado
408. ras de uma classe Implementa o de um motor de regras activas dirigidas pelos dados 129 A opera o generate triggering events explicada mais adiante 8 2 5 Associa o Rule Precedence Esta associa o ou melhor classe associa o association class permite especificar prioridades ou preced ncias relativas entre pares de regras que s o usadas com peso m ximo para ordenar a execu o das regras conforme se ver adiante As prioridades relativas n o podem ter ciclos As prioridades relativas podem ser transitivas ou n o transitivas de acordo com um par metro de configura o No caso de serem transitivas sempre que adicionada uma prioridade relativa pela aplica o que fica com derived false s o automaticamente adicionadas com derived true as prioridades relativas que resultam transitivamente da prioridade relativa adicionada e do conjunto de prioridades existentes Quando uma prioridade relativa eliminada procede se de forma sim trica Na implementa o corrente do motor de regras este automatismo ainda n o est implementado 8 2 6 Associa es Reads e Writes As associa es Reads e Writes relacionam cada regra com os atributos lidos e actualizados respectivamente pela regra Estas associa es definem o grafo r v mencionado no cap tulo 4 com os refinamentos do cap tulo 7 Qualquer destas associa es tem uma propriedade que indica a granularidade do acesso ao atributo que pode
409. rate processing and analysis techniques As in the first approach maintenance of integrity constraints is similar to the maintenance of derived data This approach is best suited for the maintenance of derived attributes and restrictions on the values of the attributes and can accommodate complex derivations that are specified in a procedural language We think that data driven rules as proposed in the PARDES system are also well suited for the maintenance of derived data and integrity constraints in user interfaces to databases However the concept of data driven rules is interpreted in a limited way in the PARDES project For example features iii when different rules are involved and iv mentioned above are contrary to the restrictions of uniqueness and non reflexiveness of the PARDES model Our approach starts by removing such restrictions at the rule definition level 2 Data model and rule definition language 2 1 Data model For the purpose of rule processing the data items controlled by rules are represented abstractly by state variables The set of state variables is denoted by V It s assumed that V is finite The set of possible values of the state variables is called the state space and is denoted by S State variables may represent screen fields dynamically varying properties of those fields must fill locked etc screen records screen tables etc but its internal structure is ignored in the generic approach presented h
410. re falsa no final da execu o de r Isto implica que o estado atingido no final da execu o de r sempre um ponto fixo para r Consequentemente r tamb m n o tem um lacete no grafo de activa o produtiva A Lema 6 3 Uma regra r sem um lacete no grafo de activa o da condi o tem as mesmas ou menos arestas a ela dirigidas no grafo de activa o produtiva do que no grafo de activa o da condi o Demonstra o Pelo lema anterior r tamb m n o tem um lacete no grafo de activa o produtiva Seja r gt r uma aresta dirigida a r no grafo de activa o produtiva em que r distinta de r Isto quer dizer que existe um estado s tal que s um ponto fixo para r e r s n o um ponto fixo para r Se s um ponto fixo para r e a condi o de r sempre falsa no final da execu o de r ent o a condi o de r falsa em s Se r s n o um ponto fixo para r a condi o de r tem de ser verdadeira em r s Consequentemente a aresta r gt r tamb m tem de existir no grafo de activa o da condi o A Teorema 6 5 Se um conjunto R de regras reduzido a um conjunto vazio pelo algoritmo de redu o de regras ent o o grafo de activa o produtiva de R ac clico 86 Termina o determinismo e velocidade de termina o do processamento de regras Demonstra o Sejam GC o grafo de activa o da condi o GA o grafo de activa o e GP o grafo de activa o produtiva Suponhamos que se aplica um alg
411. re neither recursive nor conflicting are executed at most once 11 In the absence d recursive rules this criterion fixes the semantic of the rule set That is further ordering choices have no impact on the termination of rule processing and in case of termination the final state reached 11 9 2 Ordering of recursive rules Mutually recursive rules are not ordered by the basic criterion Several heuristics that can be used in isolation or in combination to order such rules are e Either statically or dynamically eliminate a minimal set of cyclic edges from the RVDDG and then apply the basic ordering criterion This tends to minimize the number of rule executions e Use the order by which rules are defined This gives the programmer higher control over the system e Give precedence to rules with input variables most recently updated by the user This tends to preserve the most recent user updates giving the user higher control over the system see example below It has the disadvantage of being dynamic Example Assume that one wants to impose the static constraint b a c in multiple ways by the following mutually recursive rules from appendix A rs b a c ro c b a Assume that the user updates c and then rules are processed Rule rg is first selected for execution The user update is preserved and b is recalculated Rule ro is executed with no effect A symmetric situation occurs if the user updates b If the user updates a the valu
412. re not traversed by external cycles is called a critical vertex of H and the selected vertex v is called the decomposing vertex of H The initial SCC s are also called top level SCC s and the sub SCC s are also called nested SCC s The level of nesting is quantified as follows Level 1 is assigned to the top level SCC s The decomposition of a non trivial SCC of level k originates nested SCC s of level k 1 For convenience level O is assigned to the entire graph With respect to a decomposition process the level of a vertex edge cycle or sub graph is the level of the smallest nested SCC top level SCC or entire graph that contains it Theorem 1 Algorithm 1 has the following properties i it always terminates il if it succeeds then F is a minimal CPFES correctness ii any minimal CPFES F may be generated by it completeness iv if it fails then G has no CPFES irrevocability Proof i We assume each step terminates so we only have to prove that the number of iterations of steps 3 to 7 is finite In each iteration of step 6 at least one vertex the decomposing vertex is excluded from further consideration because it becomes a trivial sub SCC So after at most IVI iterations of steps 3 to 7 the algorithm must terminate ii If algorithm 1 succeeds then F is a CPFES because the criteria followed in step 5 guarantees that all the cycles are broken and a cycle is never broken twice Since all the edges in F belong to cycles
413. realidade todos os operadores e constru es especiais s o tratados internamente como fun es Algumas fun es utilit rias importantes s o listadas no quadro seguinte Integra o numa ferramenta de desenvolvimento de aplica es 169 undo mensagem Aborta a transac o corrente O argumento opcional uma mensagem de erro a mostrar ao utilizador E usada nas regras de restri o doinstead exp Avalia a express o argumento e a seguir interrompe a transac o corrente no sentido explicado no cap tulo 8 E til para usar em regras que redefinem opera es msg mensagem Afixa uma mensagem de alerta string no ecr input prompt Pede uma string ao utilizador e retorna a string introduzida Existem outras variantes mais sofisticadas E til para usar em regras que seguem um curso dependente da vontade do utilizador system comando Executa um comando da shell do sistema operativo Unix ou DOS isnull exp Testa se o valor da express o argumento o valor nulo 9 3 1 1 Fun es de manipula o de vistas As opera es de manipula o de vistas referidas na sec o 9 2 6 correspondem a fun es da linguagem de regras e comandos As fun es de agrega o indicadas no quadro seguinte s o teis para definir campos de sum rio rsum exp vi Soma o valor da express o para todos os registos da vista ignorando os registos em que d valor nulo rmin exp vi Obt m o valor m ximo d
414. regra ou no in cio da transac o conforme o que for mais recente pode se substituir old y por y ficando rey HY ED SE at iT Le aoi Em todo o caso as vari veis de entrada e sa da da regra devem ser estabelecidas com base na regra n o incremental equivalente r pelo que y n o deve ser considerado uma vari vel de entrada da regra Exemplo Seja a seguinte regra de restri o n o incremental que verifica uma restri o de integridade em todos os elementos de um conjunto ry Aiex i lt 0 gt true ou equivalentemente com nota o diferente da introduzida no cap tulo 3 ri Viex i lt 0 gt true A regra incremental correspondente ri da ie Atx i lt 0 gt true ou equivalentemente ri Vie Ax i lt OS true Exemplo A tabela seguinte mostra as regras incrementais correspondentes s regras n o incrementais e idempotentes da figura 7 4 Regra n o incremental Regra incremental EE Aga Oa OAD 7 2 3 2 Regras incrementais que manipulam rela es Uma vez que as rela es s o conjuntos podem se usar as vari veis delta da sec o anterior Isso corresponde a tratar a altera o de um tuplo de uma rela o como uma elimina o seguida de uma inser o No entanto obt m se uma precis o superior se forem consideradas vari veis delta correspondentes s 3 opera es habituais de manipula o de rela es inserir insert eliminar delete e actualizar update tup
415. regras AWH92 E poss vel acrescentar o seguinte Teorema 6 1 Se o grafo de activa o para um conjunto R de regras ac clico ent o o processamento desse conjunto de regras termina sempre para qualquer estado inicial e qualquer ordem de execu o das regras AWH92 Al m disso o n mero total de execu es de regras n o excede 2 1 em que n o n mero de regras em R Demonstra o Se o grafo de activa o ac clico poss vel numerar as regras por uma ordem topol gica do grafo de activa o Suponhamos o pior caso em que i o grafo de activa o um grafo ac clico completo isto tem um m ximo de arestas sem criar ciclos ii todas as regras se encontram inicialmente activadas iii quando uma regra executada activa todas as sucessoras no grafo de activa o iv as regras s o executadas por ordem inversa ordem topol gica do grafo de activa o isto seleccionada para execu o a regra activada com n mero mais alto por ordem topol gica do grafo de activa o Seja a o n mero de execu es da regra com n mero i por ordem topol gica do grafo de activa o No pior caso tem se a 1 porque a regra com n mero 1 por ordem topol gica n o reactivada por qualquer regra e aj a a 2 i 2 n porque a regra com n mero i por ordem topol gica executada uma vez antes das regras com n meros inferiores serem executadas reactivada cada vez que uma regra com um n mero inf
416. regras com os nomes no estilo habitual 1 antepassado X Y progenitor X Y 2 antepassado X Y antepassado X Z amp antepassado Z Y 5 6 2 Compara o de sequ ncias de execu o de pares de regras recursivas mon tonas Dadas duas regras r e r2 mon tonas no sentido indicado acima e auto recursivas nas suas vari veis de sa da poss vel comparar a efici ncia em termos de velocidade de aproxima o do estado final da sequ ncia de execu o r r executar r e depois rz sem nenhuma outra regra pelo meio com a sequ ncia oposta r2r executar rz e depois r7 e Seas regras r e rz n o estiverem ligadas por nenhuma aresta no grafo Fr ent o as duas sequ ncias s o equivalentes e Seas regras r e rz estiverem ligadas por uma aresta apenas no grafo r r digamos de r e rz o outro caso sim trico ent o a sequ ncia r r2 decididamente melhor do que a sequ ncia rzr A execu o de rz antes de r n o beneficia a execu o de r n o activa r nem produz dados que sejam usados por r Pelo contr rio a execu o de r antes de rz s beneficia a execu o de rp Assim os valores de todas as vari veis ap s a execu o de r rz est o mais pr ximos ou pelo menos n o est o mais afastados dos seus valores finais do que no caso contr rio e Seas regras r e r estiverem ligadas por arestas nos dois sentidos no grafo r r n o poss vel dizer qual das sequ ncias melhor na falta de mais inform
417. regras condicionais No caso de regras condicionais basta considerar para st vars r as vari veis que s o simultaneamente entradas e sa das da parte de ac o i e pode se ignorar a parte de condi o Este crit rio exige a determina o separada das vari veis de entrada da parte de ac o e da parte de condi o Exemplo Seja a seguinte regra r x gt y gt y x Activa o das regras 57 Pode se tomar st vars r Pelo crit rio b sico ter se ia st vars r y 4 2 2 4 Optimiza es est ticas para regras idempotentes Uma regra r diz se idempotente quando r s r s para qualquer estado s Isto significa que um ponto fixo atingido numa nica execu o da regra Uma regra idempotente tem obviamente um conjunto m nimo de vari veis de auto activa o vazio e vice versa Sabendo se que uma regra r idempotente toma se st vars r Regras com conjuntos disjuntos de vari veis de entrada e de sa da i e regras que n o s o auto recursivas s o trivialmente idempotentes Regras condicionais em que a execu o da ac o torna sempre falsa a condi o tamb m s o idempotentes No caso geral necess ria uma an lise sem ntica para determinar se uma regra idempotente Por exemplo a regra rs na figura 3 1 idempotente as outras regras na mesma figura s o trivialmente idempotentes Quase todas as regras com interesse pr tico s o idempotentes Devido import ncia desta propriedade e d
418. regras e n o para efeito de rollback O diagrama de classes deste m dulo indicado na figura seguinte As classes que aparecem no diagrama s o descritas nas sec es seguintes Implementa o de um motor de regras activas dirigidas pelos dados 133 a RuleDef Class level integer rollback changes granularity object global commit changes local rollback boolean tart log top bool epa chord Gooleiat ordered callback function pointer data bytes push item get item query Fig 8 3 Diagrama de classes do m dulo de processamento de transac es 8 3 1 Classe Transaction Nesta classe registada a pilha de transac es em curso num dado momento na mem ria de trabalho da aplica o isto a transac o de n vel de topo e as sub transac es iniciadas mas ainda n o terminadas Cada inst ncia desta classe um elemento transac o da pilha de transac es O conjunto de inst ncias que constitui a pilha de transac es Cada transac o tem um n vel que come a em 1 na transac o de n vel de topo e vai crescendo ao longo da pilha Note se que a transac o de n vel de topo est na base e n o no topo da pilha A transac o de n vel mais alto num dado momento designada transac o corrente Conforme foi explicado acima permitem se transac es dos seguintes dois tipos e com rollback local Se a transac o for abortada s o desfeitas apenas as altera
419. ribute eeeeseeeeeesreseserrreerssseserrree 130 8 2 8 Gera o autom tica dos eventos activadores ssesseeeeeeesessserrretsssseserrreesssseseereee 131 8 3 M DULO DE PROCESSAMENTO DE TRANSAC ES TRANSPROC ccccceeerereneeeseaaasenanenas 132 8 3 1 Classe Transaction essas ea riam sr EEE EEE nadas ETEK E EOE EEE ESERE TEOSE 133 8 3 2 Classes Log e LOg Hem aniren eea ae RE E EEEE E ENEE 134 8 4 M DULO DE PROCESSAMENTO DE REGRAS RULEPROC cccececeeereeeeeeaeeeeaaaaaeanasanananas 135 8 4 1 Sinaliza o de eventos signal e signal modified e activa o de regras trigger 136 8 4 2 Execu o das regras CxeCUte Tules ccccccccsccscecececenecececenececececececececececeeeceseeeeeees 137 8 4 3 Escolha da pr xima regra a executar choose rule eererenenos 138 8 5 ORDENA O DOS V RTICES DE UM GRAFO POR ORDEM TOPOL GICA DE COMPONENTES FORTEMENTE CONEXOS MINIMIZANDO INVERS ES DE ARESTAS E DE PRIORIDADES DOS VERTICES cia ita fei EE saints isa su ana ia Dia ap a nas 143 8 5 1 Ordena o topOlOgica is s csccceesavesseeceasesscctdensneothsesscesanbsncnanaessecaiebossuabecsencaasesoonses 144 8 5 2 Ordena o topol gica minimizando invers es de prioridades 146 8 5 3 Obten o dos componentes fortemente conexos por ordem topol gica 149 8 5 4 Minimiza o de invers es de arestas nos componentes fortemente conexos 150 8 5 9 Algoritmo finale seriam ber
420. rit rio de activa o A forma da esquerda tem a condi o o mais restritiva poss vel nega o da restri o imposta pela regra enquanto que a forma da direita incondicional 4 1 3 Formas can nicas Quando n o poss vel rescrever uma regra r por forma a referenciar menos vari veis de entrada ou de sa da mantendo o efeito l quido diz se que r est em forma can nica Por exemplo todas as regras da figura 3 1 est o em forma can nica incluindo as regras rz e r acima transcritas Interessa que as regras sejam escritas em forma can nica referenciando assim conjuntos m nimos de entradas e sa das para tornar mais precisos os m todos de processamento activa o e ordena o e de an lise de regras baseados no conhecimento das vari veis de entrada e de sa da Al m disso as formas can nicas s o em geral mais simples Em alguns casos como no 1 exemplo acima s existe a forma can nica condicional Noutros casos como no 2 exemplo acima s existe a forma can nica incondicional Noutros casos como no exemplo 1 acima existem formas can nicas dos dois tipos Esta uma boa justifica o para suportar tanto regras condicionais como regras incondicionais Em alguns casos em linguagens de regras pr ticas n o conveniente escrever as regras em forma can nica por raz es de efici ncia Exemplo A regra r y x z Aw x z 2 pode ser traduzida de forma eficiente pela seguinte fun o em linguagem C
421. rnal cycles already broken A 202 An algorithm to find feedback edge sets with on edge per cycle Appendix D Detailed algorithm CPSORT Inputs V ordered set of vertices Vi V2 Viv For each vertex ve V Adj v set of the immediate successors of v that is ue V v u e E Adj v set of the immediate predecessors of v that is ue V u v e E Outputs failed true if the graph has no cycle preserving ordering V reordered in place Comments The algorithm works in place by successive improvements It may be easily modified so that after a failure decomposition into nested SCC s still proceeds in order to minimize feedback edges Main procedure procedure CPSORT begin initialize data for i 1 IVI do index V i current V lt startSCC V lt ingate V newingate V lt outgate V lt newoutgate V false for we Adj V do inextcycle V w false failed false k 0 level So 1 start index of the current SCC of level O to IVI stop index of the current SCC of level 0 work recursively CPSORTR end Recursively sorts the vertices of the current SCC of level k procedure CPSORTR begin Divide into sub SCC s topologically sorted TOPSORTSCC Scan the ordered sub components k k l Sk Ski while s lt t A failed do find the end of the current SCC of level k tk minfi s lt i lt t A i te1 V st
422. rque pode ser necess rio repetir o mesmo bloco de c digo em v rios gatilhos por exemplo v rios gatilhos do tipo When Validate Item e cada gatilho pode ter de tratar de v rios itens calculados As facilidades de manuten o autom tica de certos itens calculados introduzidas na vers o 2 constituem um progresso significativo mas h casos que t m de continuar a ser tratados atrav s de gatilhos 2 2 2 Microsoft Access O Microsoft Access ou simplesmente Access um produto comercial muito popular que permite desenvolver rapidamente aplica es de bases de dados constitu das principalmente por formul rios e relat rios colectivamente chamados interfaces O Microsoft Access tamb m inclui um motor de base de dados pr prio o Microsoft Jet Database Engine que n o impede a conex o a outros SGBD s e facilidades interactivas de defini o interroga o e manipula o directa da base de dados que n o s o abordadas aqui A descri o que se segue baseada na consulta da documenta o online do Microsoft Access 97 Recentemente foi lan ado o Microsoft Access 2000 que n o afecta significativamente os aspectos tratados aqui 2 2 2 1 Formul rios Os formul rios gerados com o Microsoft Access t m estrutura propriedades e comportamento muito semelhantes aos dos formul rios gerados com o Oracle Developer 2000 16 Revis o do estado da arte Os formul rios do Microsoft Access n o t m a estrutura de blocos dos formu
423. rtir do v rtice v procedure DFSSCC v begin ic HI lowlink v i visited v lt true isroot v lt true push v S foru Succ v do if visited v then DFSSCC u 150 Implementa o de um motor de regras activas dirigidas pelos dados if ue S A lowlink u lt lowlink v then isroot v lt false lowlink v lowlink u if isroot v then retira este CFC de S e numera os v rtices repeat u lt pop S ne n l num u n until u v end Algumas partes do algoritmo s o executadas uma vez por cada v rtice e outras s o executadas uma vez por cada aresta Assim a complexidade temporal do algoritmo O IVI IEI 8 5 4 Minimizagao de invers es de arestas nos componentes fortemente conexos O algoritmo da sec o anterior n o garante que seja invertido um conjunto m nimo de arestas em cada CFC Isso acontece porque os v rtices de cada CFC s o ordenados por ordem de visita Na figura seguinte s o apresentadas duas ordens de visita poss veis do mesmo CFC partindo da mesmo raiz v rtice 1 r mQ 1 2 o 2 Es 3 gt 3 No caso da esquerda invertido um conjunto m nimo de arestas mas no caso da direita isso j n o acontece Para inverter um conjunto m nimo de arestas em cada CFC e consequentemente no grafo completo porque os CFC s s o ordenados topologicamente basta de acordo com o teorema 8 1 proceder como no 1 algoritmo de ordena o topol gica Isso corresponde a efectu
424. rule analysis by means of triggering and activation graphs In Proceedings Rules in Database Systems Second International Workshop RIDS 95 pp 165 181 Atenas Gr cia Setembro de 1995 Elena Baralis e Jennifer Widom Using Delta Relations to Optimize Condition Evaluation in Active Databases In Proceedings Rules in Database Systems Second International Workshop RIDS 95 pp 292 308 Atenas Gr cia Setembro de 1995 Christine Collet NAOS In Active Rules in Database Systems N Paton editor pp 279 296 Springer Verlag 1998 Thierry Coupaye e Christine Collet Denotational Semantics for an Active Rule Execution Model In Proceedings Rules in Database Systems Second International Workshop RIDS 95 pp 36 50 Atenas Gr cia Setembro de 1995 Stefano Ceri Pietro Fraternali Stefano Paraboschi e Leticia Branca Active Rule Management in Chimera In Active Database Systems Triggers and Rules for Advanced Database Processing J Widom e S Ceri editores pp 151 176 Morgan Kaufmann 1996 Stefano Ceri e Jennifer Widom Deriving Production Rules for Constraint Maintenance In Proceedings of the 16th VLDB Conference pp 566 577 Brisbane Austr lia Agosto de 1990 Stefano Ceri e Jennifer Widom Deriving Production Rules for Incremental View Maintenance In Proceedings of the 17th VLDB Conference pp 577 589 Barcelona Espanha Setembro de 1991 180 CW94 CW96 D88 D95 DBC96 DGG95
425. s correspondem ao pressionamento de teclas e eventos do interface interface event triggers correspondem a eventos normalmente gerados pelo sistema de janelas para al m dos eventos do teclado tais como o pressionamento de um bot o a activa o ou desactiva o de uma janela a expira o de um temporizador timer etc e eventos definidos pelo utilizador s o eventos com nomes definidos pelo utilizador programador e sinalizados explicitamente no c digo PL SQL S o os eventos gatilhos do primeiro tipo que interessam mais aqui A programa o atrav s de gatilhos do primeiro tipo exige a compreens o pr via do modelo de execu o das aplica es geradas com o Designer 2000 o qual descrito atrav s de um conjunto de processos de v rios tipos navegacionais de interroga o de valida o de processamento de transac es etc Esses processos explicam os pontos onde s o sinalizados os eventos built in Os gatilhos disparados por esses eventos servem para aumentar e em alguns casos redefinir os comportamentos pr definidos descritos nesses processos Um gatilho assinala uma falha atrav s da instru o RAISE Form Trigger Failure O efeito depende do evento em causa mas normalmente corresponde ao cancelamento do processo que gerou o evento S o consideradas diversas restri es e medidas para evitar ciclos infinitos devidos a gatilhos como por exemplo e os gatilhos que s o executados
426. s Para analisar a conflu ncia e determinismo de um conjunto de regras importante analisar a comutatividade das regras duas a duas Duas regras r e r dizem se comutativas se para qualquer estado s executar a regra r e depois a regra rj a partir do estado s produz o mesmo estado que executar a regra r e depois a regra r Formalmente Vse S ri rj s r ri s ou ri rj rj ri em que denota a composi o de fun es Tamb m se diz que r e rj comutam Para um dado conjunto de regras R os pares de regras n o comutativas podem ser representados num grafo de n o comutatividade com conjunto de v rtices R e arestas n o dirigidas a ligar pares de regras n o comutativas O grafo de n o comutatividade n o tem lacetes porque qualquer regra comuta consigo pr pria Indicam se de seguida outras propriedades teis na constru o do grafo de n o comutatividade Teorema 6 7 Para que duas regras r e r comutem suficiente mas n o necess rio que n o interfiram uma com a outra Termina o determinismo e velocidade de termina o do processamento de regras 93 Demonstra o Sufici ncia Sejam r e r duas regras n o interferentes entre si Isto quer dizer que o vars r N vars r e o vars r A vars ri Seja y uma vari vel de sa da de r A condi o na qual r actualiza y assim como o valor atribu do s dependem do valor inicial de i vars r Uma vez que o vars r A i vars r o valor i
427. s o c lculo pode ser baseado nos valores residentes no pr prio bloco Caso contr rio o c lculo deve ser baseado directamente m base de dados aquando duma interroga o para o que necess rio activar a op o Precompute Summaries Posteriormente o Developer 2000 actualiza automaticamente o valor do item de sum rio sempre que alterado inserido ou removido um registo no bloco de sumariza o Estes itens calculados n o podem ser database items Aparentemente n o se admitem itens calculados por f rmulas de forma c clica Em situa es mais complexos database items que s o ao mesmo tempo calculados itens calculados s em algumas situa es etc necess rio usar gatilhos H diversas valida es que s o efectuadas automaticamente pelo Designer 2000 a partir de propriedades de alto n vel dos itens de dados tais como e a m scara de formata o de um item de texto e a obrigatoriedade de preenchimento de um item 12 Revis o do estado da arte e otipo de dados e comprimento m ximo em alguns casos de um item e o intervalo de valores permitidos num item e a lista de valores permitidos num item Outras valida es s o programadas atrav s de gatilhos Um formul rio pode ter par metros Um par metro de um formul rio uma vari vel do formul rio qual se atribui um valor atrav s de um argumento passado quando se lan a o formul rio Os par metros podem ser usados por exemplo como vari
428. s Para cada v rtice ve V num v numera o por ordem topol gica inversa minimizando viola es de prioridades de forma local sem garantia de optimalidade global h uma viola o de prioridade quando num v gt num u e priority v lt priority u Dados tempor rios Para cada v rtice ve V indegree v n mero de predecessores imediatos de v por ordenar H heap com v rtices n o ordenados com indegree 0 m tamanho do heap Procedimento principal procedure TOPSORTPRI begin n amp IVI ERASEHEAP for ve V do indegree v 0 for ve V do for ve Succ v do indegree u indegree u 1 for ve V do if indegree v 0 then INSERTRAW v HEAPIFY while m gt 0 do v DELETEMAX num v n ne n 1 for ue Succ v do indegree u indegree u 1 if indegree u 0 then INSERT u end Seguem se rotinas de gest o de heaps Fun o de compara o de dois elementos do heap usada pelas rotinas de gest o de heap Retorna gt 0 0 ou lt 0 conforme o 1 elemento maior igual ou menor do que o segundo function COMPARE u v begin return priority u priority v end Esvazia o heap procedure ERASEHEAP begin m lt 0 end Insere um elemento no fim sem organizar o heap procedure INSERTRAW e begin 148 Implementa o de um motor de regras activas dirigidas pelos dados m lt ml Han amp e end Organiza o heap procedure HEAPIFY begin fori Lm 2 2
429. s chamadas de fun es e algumas constru es especiais As constantes podem ser dos seguintes tipos inteiros reais strings entre pelicas e listas de constantes dos tipos anteriores entre chavetas com elementos separados por v rgulas A lista vazia uma constante especial com o significado de valor nulo diferente de O e da string vazia 3 O valor nulo absorvente na maioria das opera es A convers o entre n meros inteiros ou reais e strings autom tica Na convers o de string para n mero s o entendidos formatos de representa o de datas horas e valores monet rios Por exemplo a express o 1999 1 30 1999 1 20 subtrai duas datas e d 10 O operador un rio promove o valor nulo para string vazia ou O conforme o tipo preferido no ponto de invoca o do operador e mant m inalterados outros valores de forma semelhante fun o Nz do Microsoft Access Os operadores aritm ticos l gicos e de compara o relacionais t m a mesma nota o e preced ncia que na linguagem C embora nem todos os operadores de C estejam dispon veis Nos operadores aritm ticos e de compara o o valor nulo absorvente O quadro seguinte indica o significado das express es l gicos e condicionais mais importantes Note se a complica o perniciosa devida aos valores nulos tamb m encontrada noutros sistemas Express o Descri o expl exp2 D o valor de exp1 sem que exp2 seja avaliada se e
430. s devem ser executadas Em primeiro lugar preconiza se que a execu o das regras destinadas manuten o de restri es de integridade e dados derivados esteja associada execu o das transac es tirando partido das propriedades de atomicidade e preserva o de consist ncia das mesmas componentes A e C das propriedades ACID GR93 Por um lado a gest o de transac es pressup e um mecanismo de recupera o de falhas rollback para garantir a propriedade de atomicidade o qual pode e deve ser usado para suportar as regras de restri o Por outro lado para garantir a propriedade de preserva o de consist ncia deve existir um ponto de processamento de regras pelo menos no final de cada transac o on commit podendo existir pontos de processamento de regras interm dios Entende se por ponto de processamento de regras PPR um ponto no tempo em que invocado um algoritmo de processamento execu o de regras 44 Regras activas dirigidas pelos dados com sem ntica de ponto fixo de notar que no dom nio de aplica o que mais nos interessa formul rios de ecr as transac es incidem n o nos dados armazenados de forma persistente e partilhada numa BD mas sim nos dados armazenados de forma tempor ria e privativa na mem ria de trabalho da aplica o Nesse contexto as propriedades de isolamento I e durabilidade D n o s o importantes o que em nossa opini o n o impede a utiliza o do conce
431. s SGBD s relacionais nomeadamente servi os de interroga o e de controlo de concorr ncia e a ferramenta mais pequena e mais f cil de manter 9 2 Defini o e manipula o de vistas Apesar de serem normalmente definidos ao mesmo tempo conv m distinguir as seguintes componentes na defini o de uma vista no SAGA e defini o da estrutura de dados e defini o do mapeamento para a camada de armazenamento persistente base de dados e defini o do mapeamento para a camada de apresenta o e interac o com o utilizador interface com o utilizador A terceira componente n o ser abordado aqui porque a sua compreens o n o importante para a compreens o do mecanismo de regras 9 2 1 Estrutura de dados b sica de uma vista Em termos do seu conte do de dados uma vista do SAGA basicamente uma tabela conjunto de registos do mesmo tipo i e com os mesmos campos intra registo mais um conjunto de campos globais Todos os campos s o at micos Podem existir vistas apenas com campos globais e vistas 158 Integra o numa ferramenta de desenvolvimento de aplica es apenas com campos intra registo com estrutura semelhante s vistas que se definem em SQL E principalmente sobre vistas do seguinte tipo que concentraremos a nossa aten o A estrutura de dados b sica de uma vista especificada por uma lista de campos com no m nimo o nome tipo de dados e granularidade global ou intra registo de cada camp
432. s as regras estiverem activadas a regra r n o pode ser seleccionada para execu o A inexist ncia de um caminho em sentido contr rio de r para r exigida para evitar a gera o de preced ncias circulares no caso do grafo r r conter ciclos Este crit rio f cil de aplicar porque se baseia apenas na informa o de natureza sint ctica traduzida no grafo r r Al m disso garante as boas propriedades do processamento de regras indicadas no teorema seguinte Teorema 5 1 Se as regras forem executadas de acordo com o esquema de prioridades relativas do crit rio 5 1 a qualquer regra r n o recursiva auto recursiva ou mutuamente recursiva com outras regras s executada depois das suas vari veis de entrada terem atingido valores finais por outras palavras as vari veis de entrada de r n o s o alteradas ap s o in cio da primeira execu o de r b qualquer regra r n o recursiva e n o conflituosa executada no m ximo uma vez em cada ponto de processamento de regras PPR Demonstra o a Seja r uma regra n o recursiva Seja Pred r o conjunto de regras com preced ncia sobre r Uma vez que r n o mutuamente recursiva com outras regras r e Pred r se e s r re existe um caminho de r para r no grafo r r Assim pelo princ pio calcular antes de usar quando r seleccionada para execu o n o pode estar activada nenhuma r e Pred r Uma vez que r n o auto recursiva n o altera as suas pr prias
433. s dados da aplica o organizados em classes da aplica o por forma a suportar de forma limitada as regras intra objecto descritas no cap tulo 7 Para evitar confus o com as classes da aplica o as classes deste m dulo s o designadas meta classes name string enabled boolean register unregister name string granularity class object operation create modify delete other s time before after middle granularity class object E sensitivity set of create modify delete register I 7 unregister Attribute name string name string granularity class object granularity class object description text register exec argument pointer gr anularity class object y priority integer ER boolean other rpps boolean COUP MRE moge enabled boolean immediate deferred granularity class object SR O N modes set of create modify d Ci bas 900 eel preceded F rule granularity class object i lf tri ing bool EOR ae ena Rule Precedence coupling mode immediate deferred derived boolean add delete Fig 8 2 Diagrama de meta classes do m dulo de defini o de regras Segue se uma descri o das meta classes e associa es deste diagrama Implementa o de um motor de regras activas dirigidas pelos dados 127 8 2 1 Meta classe Class Aqui s o registadas dinamicamente atrav s das opera es register e unregister as classes da aplica o que t
434. s e vari veis designado abreviadamente grafo r v e definido da seguinte forma e As regras e vari veis de estado s o os v rtices do grafo e Uma aresta v gt r dirigida de uma vari vel v para uma regra r significa que v uma vari vel de entrada de r e Uma aresta r gt v dirigida de uma regra r para uma vari vel v significa que v uma vari vel de sa da de r A figura 4 2 mostra o grafo rv correspondente ao conjunto de regras da figura 3 1 usada a nota o dos diagramas de fluxos de dados tal como apresentada em R91 porque as regras podem ser vistas como processos as vari veis de estado podem ser vistas como dep sitos de dados e as rela es de entrada e sa da entre regras e vari veis podem ser vistas como fluxos de dados Legenda 1 regra mini processo Crs Es vari vel de estado mini dep sito de dados bo fluxo de dados Fig 4 2 Grafo de depend ncias entre regras e vari veis relativo ao conjunto de regras da fig 3 1 O grafo r v tem as seguintes caracter sticas e dirigido e simples isto n o tem arestas paralelas nem lacetes e bipartido isto h v rtices de dois tipos regras e vari veis e todas as arestas ligam v rtices de tipos diferentes O grafo r v pode ter ciclos que assinalam a presen a de regras recursivas As regras que pertencem a um ciclo do grafo r v com duas ou mais regras s o chamadas mutuamente recursivas o caso
435. s eea aeae doy vase dees RA ee been pa tla vos sa e go E akeas ai 164 9 2 9 Pontos de processamento de regras ee cececcceceseesesnececececeeeeneancaeceeeeeeeseeseaeeeeeees 164 9 3 REGRAS DEFINIDAS NA LINGUAGEM DE REGRAS E COMANDOG sccccceeceseeeestneeeeeees 165 9 3 1 Linguagem de regras e comandos scesccececeseeeeseseecececeeeseenenncaececeeeseseeetaeaeeeees 167 93 2 Compila o das T sras cs cascades senene e re eE r EAEn EE EEE EERE opa nina casal 171 93 3 EXEMPplOS SEA A EEEE AE toceseas vhanh onglagacessebeeecesmecgevad 171 9 4 REGRAS GERADAS AUTOMATICAMEN T Bessscesscssnsctves ansnasesontnvsenonshdshsontuantuonbds suennonenges 174 9 4 1 Regra de reimicialiZagao cececececececececeeeceeececeeeceeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeens 174 9 4 2 Regras de acesso por chave a tabelas da base de dados ssesccececeeeeseeenneeeeeees 174 9 4 3 Regras de agrega o cccececececececeeecececececeeeceeeeeeeeeeeeeeeeeeeceeeeeeeeeeeeeeeeeeeeeeneeeeeeenens 175 9 5 EXPERI NCIA DE UTILIZA O E LINHAS DE EVOLUGCAO cccccecececececececececececececeeeeeeeeeees 175 10 CONCLUS ES saarna a danada Lad dada tada abadia ada 177 10 1 RESULTADOS ALCAN ADOS cra eeaeee enaid a aa A a G E 177 10 2 SUGEST ES PARA TRABALHO FUT TURO sseseseesrerseserrtssereessrreersereerresteeessreeessreeesseeeereet 178 T REFERENCIAS cs E AA R a SRAN 179 ANEXO 1 AN ALGORITHM TO FIND FEEDBACK EDGE SETS WI
436. s expl citos no modo de defini o mas n o no modo de execu o que dirigido por eventos por raz es de efici ncia e de integra o F rmulas de c lculo de dados derivados em folhas de c lculo ou em ferramentas de desenvolvimento r pido de aplica es e asser es gen ricas em SQL s o exemplos de entidades que podem ser tratadas como regras activas dirigidas pelos dados A principal contribui o deste trabalho a proposta de um tipo ou modelo de regras activas dirigidas pelos dados especialmente adaptado para a manuten o de dados derivados calculados e restri es de integridade valida es em aplica es interactivas de bases de dados nomeadamente em formul rios de ecr e relat rios mais flex vel e melhor integrado do que outros tipos de regras activas dirigidas pelos dados propostos anteriormente tanto na rea de bases de dados como na rea de desenvolvimento r pido de aplica es Duas caracter sticas importantes do modelo de regras proposto s o a sem ntica de ponto fixo e a execu o sequencial A sem ntica de ponto fixo significa que uma regra deve ser executada i e a condi o deve ser avaliada e se for verdadeira a ac o deve ser executada sempre que dessa execu o possa resultar uma altera o no estado dos dados A execu o sequencial importante para garantir que as altera es causadas pela execu o duma regra n o s o afectadas pela exist ncia doutras regras S o estabelecida
437. s in Database Systems pp 92 108 Edimburgo Esc cia Agosto de 1993 Jo o P Faria SAGA Uma Ferramente Interactiva para a Gera o e Gest o de Aplica es baseadas em Vistas e Regras Trabalho de s ntese elaborado para as provas de aptid o pedag gica e capacidade cient fica FEUP Outubro de 1990 Jo o P Faria SAGA 1 15 Manual do Utilizador INESC Porto Maio de 1993 Jo o P Faria SAGA 1 15 Manual do Programador Parte I Dicion rio de vistas INESC Porto Junho de 1993 Jo o P Faria SAGA 1 15 Manual do Programador Parte II Linguagem de Regras e Comandos INESC Porto Julho de 1993 Jo o P Faria M rio J Leit o Jos M Moreira e Ant nio V Bou a Aspectos Tecnol gicos do SIGMA e do Projecto de Informatiza o Municipal In Informa o e Inform tica Revista do Instituto de Inform tica do Minist rio das Finan as 1995 Jo o P Faria Jo o V Ranito SAGA Uma Ferramenta Interactiva para o Desenvolvimento Expedito e F cil Manuten o de Aplica es de Bases de Dados In ENDIEL 91 ST2 Ind strias do Software e da informa o Proceedings pp 33 40 Lisboa Portugal Junho de 1991 Jo o P Faria e Raul M Vidal Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in User Interfaces to Databases Aceite para publica o nos Proc XIV Simposium Brasileiro de Bases de Dados SBBD 99 Florianopolis Santa Catarina Brazil Outubro de 1999 G95 G
438. s nas ferramentas de desenvolvimento de aplica es As especifica es declarativas encontradas nas ferramentas e sistemas analisadas sofrem das limita es referidas no cap tulo 1 regras CA Especifica es declarativas de dados derivados condicionalmente ou restri es de integridade com ac o de repara o expl cita Caso por exemplo de restri es com estabilizadores no sistema PARDES deriva es condicionais nos sistemas sucessores do projecto PARDES e restri es com handlers no sistema Ode As ferramentas de desenvolvimento r pido de aplica es disp em de gatilhos do tipo EA muito limitados e a rela o entre eventos e gatilhos de um para um um gatilho s monitora um evento e um evento s monitorado por um gatilho o que tem os inconvenientes j explicados no cap tulo e em cada gatilho o modo de acoplamento entre o evento e a ac o sempre imediato o que tem os inconvenientes j explicados no cap tulo 1 Em contrapartida os SGBDA s comerciais ou de investiga o disp em de gatilhos mais flex veis que podem ser transpostos com relativa facilidade para as ferramentas de desenvolvimento r pido de aplica es No que se refere ao suporte para especifica es declarativas de restri es de integridade existe alguma semelhan a entre as restri es em tabelas especificadas com check constraints em SQL e as regras de valida o suportadas pelas ferramentas de desenvolvimento r pi
439. s ordena es induzem o mesmo conjunto F de arestas de realimenta o em G Pelo lema anterior poss vel passar de O a O pela troca de v rtices desligados em G Esses v rtices est o desligados em G ou est o ligados apenas por uma aresta eliminada pertencente a F F9 Seja u e v o 1 par de v rtices trocados do 2 tipo e seja u v a aresta eliminada Uma vez que u v e F v tem de estar antes de u antes da troca Assim que esse par de v rtices trocado tem se uma nova ordena o O que induz em G um novo conjunto de arestas de realimenta o dado por F F f u v em G Se F F basta aplicar os resultado do lema anterior Sen o recome a se o processo a partir de O em vez de O A Teorema 5 4 Sejam O e O duas ordena es de um conjunto R de regras recursivas mon tonas processadas por uma ordem justa O e O respectivamente Sejam F e F os conjuntos de arestas de realimenta o induzidas por O e O respectivamente no grafo rr Se FCF ent o ao fim de qualquer n mero de itera es as vari veis de estado t m valores mais pr ximos ou igualmente pr ximos dos seus valores finais se for seguida a ordem O em vez da ordem O Demonstra o Resulta do lema anterior e das observa es da sec o anterior A Assim interessa ordenar as regras de acordo com o seguinte crit rio Crit rio 5 5 Ordenar as regras por forma a induzir um conjunto m nimo de arestas de realimenta o no grafo r r Not
440. s os tipos de deriva es referidos nos dois pontos anteriores f rmulas para convers o e correc o de dados introduzidos pelo utilizador varia o din mica de propriedades dos campos em fun o dos valores dos dados tais como a obrigatoriedade e possibilidade de preenchimento restri es ao dom nio restri es de integridade gen ricas tanto em dados primitivos como em dados derivados restri es multi via multi way constraints i e restri es com v rias escolhas poss veis de itens de dados derivados calculados e primitivos de entrada e g para impor a restri o c b a permitir que o utilizador introduza quaisquer dois valores sendo o terceiro valor calculado defini o procedimental de c lculos complexos 38 Regras activas dirigidas pelos dados com sem ntica de ponto fixo 3 1 1 Insufici ncia das abordagens puramente dirigidas por eventos A generalidade das ferramentas actuais de desenvolvimento r pido de aplica es de que s o exemplos representativos as ferramentas analisadas no cap tulo 2 proporcionam mecanismos dirigidos por eventos gatilhos da forma evento ac o EA que podem ser usados para manter todos os tipos de dados derivados e restri es de integridade normalmente encontrados em aplica es reais Os gatilhos s o flex veis mas obrigam o programador a determinar os eventos em resposta aos quais os itens de dados derivados devem ser recalculados e as restri es de integridade
441. s ou actualizadas pela execu o da opera o activadora e OLD linha tuplo l gica acess vel em gatilhos FOR EACH ROW quando a opera o activadora DELETE ou UPDATE contendo os valores antigos duma linha afectada eliminada ou actualizada pela execu o da opera o activadora e NEW linha tuplo l gica acess vel em gatilhos FOR EACH ROW quando a opera o activadora INSERT ou UPDATE contendo os novos valores duma linha afectada inserida ou actualizada pela execu o da opera o activadora Estas tabelas e linhas de tabelas de transi o est o dispon veis tanto em gatilhos AF TER como em gatilhos BEFORE e mant m se inalteradas durante a execu o de cada gatilho O modelo de execu o dos gatilhos em particular o momento preciso da execu o dos gatilhos AFTER e BEFORE e 0 significado preciso das tabelas de transi o complica se grandemente ao lidar com os seguintes aspectos e combina o com a verifica o das restri es de integridade declarativas a estrat gia seguida consiste genericamente em incluir j nas tabelas de transi o as altera es causadas pelas ac es de reposi o de integridade referencial CASCADE SET NULL SET DEFAULT e em aplicar os gatilhos AFTER s depois de todas as restri es de integridade declarativas com verifica o imediata
442. s regras sem prioridades confluente Indicam se de seguida algumas propriedades teis para averiguar se duas regras r e rj s o confluentes Teorema 6 9 Se duas regras r e r s o comutativas ent o s o confluentes Demonstra o Sejam dois estados s e sz ating veis a partir do mesmo estado s Sejam E e E gt as sequ ncias de execu o de regras correspondentes aos caminhos de s para s e de s para sz respectivamente Se as regras s o comutativas a sequ ncia de execu o E E gt E seguida de E gt equivalente no sentido que produz o mesmo estado final para o mesmo estado inicial sequ ncia de execu o EE porque as duas sequ ncias t m o mesmo n mero de ocorr ncias de cada regra e todas as ocorr ncias da mesma regra ou de regras diferentes s o comutativas Assim executando a sequ ncia E gt a partir de s atinge se o mesmo estado que executando a sequ ncia E a partir de s2 Portanto as duas regras s o confluentes A Teorema 6 10 Se duas regras r e rj s o idempotentes e n o se activam mutuamente de forma produtiva ent o s o confluentes se e s se s o comutativas Demonstra o Dado o teorema anterior basta provar que se r e r n o s o comutativas ent o n o s o confluentes Suponhamos que n o s o comutativas isto que rjo r r er Uma vez que se sup e que as regras s o idempotentes e n o se activam mutuamente o estado que se atinge ao executar quer rj r quer r e rj
443. s regras de acesso a tabelas por chaves alternativas quando existem campos da vista que t m como alvo campos de chave alternativa Estas regras interessam essencialmente para dar um feedback imediato ao utilizador durante o modo de edi o de registos de dados No modo de busca da base de dados load gerada uma express o de selec o abrangendo o maior n mero poss vel de tabelas da base de dados e s o inibidas as regras de acesso por chave correspondentes a essas tabelas Todas as regras de acesso por chaves alternativas e de teste de integridade referencial s o inibidas durante load Integra o numa ferramenta de desenvolvimento de aplica es 175 9 4 3 Regras de agrega o As regras de agrega o definidas pelo programador que s o totalmente internas a uma vista s o substitu das por uma nica regra de agrega o total e opcionalmente uma regra de agrega o incremental Numa nica passagem a regra de agrega o total calcula os valores de todos os campos de sum rio Al m disso quando executada em after load verifica as restri es de selec o relativas aos campos de sum rio removendo os grupos de registos que n o obedecem s restri es Opcionalmente os dados de uma vista podem ser armazenados de uma forma hier rquica de acordo com a divis o de campos e registos por n veis explicada na sec o 9 2 4 Nesse caso a ordena o dos registos efectuada incrementalmente durante o modo de edi
444. s regras de infer ncia dos eventos activadores de cada regra e das prioridades entre as regras por forma a garantir a sua execu o segura e eficiente possivelmente em combina o com outros tipos de regras activas S o determinadas as condi es a que um conjunto de regras do tipo proposto deve obedecer para garantir a termina o e o determinismo da sua execu o A natureza especializada destas regras permite obter condi es menos conservadoras do que as que s o conhecidas para regras activas gen ricas Mostra se ainda como podem ser incorporadas no modelo de regras proposto as optimiza es necess rias para lidar eficientemente com dados complexos de que se destacam a diferencia o de regras orientadas a conjuntos e o encapsulamento de regras em objectos Finalmente descrita uma implementa o concreta de um sistema de regras activas numa ferramenta de desenvolvimento r pido de aplica es desenvolvida no INESC suportando regras dirigidas pelos dados e regras dirigidas por eventos demonstrando as vantagens da abordagem proposta em rela o s abordagens seguidas por outras ferramentas apesar de alguns compromissos considerados na implementa o Data driven Active Rules for the Maintenance of Derived Data and Integrity Constraints in Interactive Database Applications Abstract An active rule or trigger is an event condition action rule with the following meaning if the event occurs evaluate the condition and in ca
445. s the transitive combination of the correspondence from Gz to Gr plus the correspondence from Gp to Gz 6 1 5 Notice however that the vertices in the iteration of G will not necessarily have vertices in a minimum number of iterations of Gz 6 2 Since before interchanging the two vertices we have d lt d 2 after interchanging the vertices d and d will be closer to each other Hence we get closer to the condition d d gt d that corresponds to the situation where all the correspondence lines are parallel to each other 7 At the same time we transform L and obtain L we also transform the initial vertex sequence L We rewrite this vertex sequence as P L A Q B where Q corresponds to the vertices of Gr without superscripts comprised between the first and the last vertex of Gr that have corresponding vertices in the first N iterations of Gz This vertex sequence will be transformed into a vertex sequence of the form P A Q B where Q is defined in the same way as Q with respect to Gz instead of Gr Since the first iteration of G is mapped to the first 7 h iterations of Gr the first N iterations of G are mapped to the first N h iterations of Gy For instance with respect to the example given and for N we get Q as follows Gy v v ve pe ee a e Gr 12 ve yo ye v v q v 2 1 3 4 2 1 3 4 Es v v v v v v v v 2 1 3 4 2 1 3 4 A o B 7 1 L was obtained from L by interchanging two vertices v a
446. sa as outras propriedades de isolamento I e durabilidade D normalmente associadas s transac es GR93 Essas propriedades interessam quando os dados s o partilhados e persistentes respectivamente Caso seja necess rio essas propriedades podem no entanto ser mantidas pela aplica o A propriedade de atomicidade mantida custa de um registo log de altera es que permite a reposi o do estado existente no in cio de uma transac o rollback no caso da transac o ser abortada No entanto este m dulo apenas disponibiliza os mecanismos gen ricos para esse efeito Compete aplica o solicitar o registo dos itens alterados no log de altera es Uma aplica o pode inclusiv n o suportar rollback basta n o colocar nada no log ou suportar rollback parcialmente A propriedade de preserva o de consist ncia mantida atrav s do processamento de regras que invocado automaticamente no fim de cada transac o podendo ser invocado explicitamente pela aplica o em pontos interm dios das transac es Note se no entanto que as regras n o se destinam exclusivamente a manter a consist ncia dos dados pelo que est em causa algo mais do que a propriedade de preserva o de consist ncia seguido um modelo de transac es encaixadas nested transactions conforme descrito em GR93 Isto podem ocorrer transac es chamadas sub transac es dentro de transac es Uma transac
447. sa minimizar de alguma forma as viola es ao princ pio calcular antes de usar para tornar mais eficiente o processamento de regras Nesta sec o descrito um crit rio que minimiza de uma certa forma as viola es ao princ pio calcular antes de usar e permite tratar eficazmente certos conjuntos de regras recursivas Em muitos casos de acordo com a experi ncia do autor o conjuntos de regras recursivas tal que um ponto fixo para todas as regras se pode atingir com uma nica execu o de cada regra desde que as regras sejam executadas por uma ordem apropriada Interessam nos aqui em especial os casos em que isso poss vel mesmo quando se usa o crit rio de activa o b sico Esses casos est o relacionados com a presen a de regras redundantes que imp em as mesmas restri es de diferentes maneiras 5 4 1 Regras redundantes que imp em as mesmas restri es de maneiras diferentes Uma regra r diz se redundante em sentido est tico em rela o a um conjunto R de regras que n o inclui r se os pontos fixos de R definidos como pontos fixos para todas as regras de R s o tamb m pontos fixos de r ou equivalentemente se a restri o imposta por r implicada pela restri o imposta por R definida como a conjun o das restri es impostas pelas regras de R Formalmente NV se S Vr e R r s s gt r s s Duas regras r e r dizem se mutuamente redundantes se qualquer delas redundante em re
448. sair de um estado s com etiqueta r Tal aresta existe se r produtiva em s e n o existe nenhuma outra regra r produtiva em s com preced ncia sobre r Temos que provar que mesmo que existam outras regras activadas n o produtivas no estado s a regra r pode ser sempre a 1 regra a ser executada de forma produtiva a partir de s Para come ar podem se executar todas as regras activadas n o produtivas que n o s o precedidas directa ou indirectamente por regras activadas produtivas Suponhamos que resta uma regra r activada n o produtiva com preced ncia sobre r Isso s pode acontecer se existir uma regra Termina o determinismo e velocidade de termina o do processamento de regras 89 activada produtiva r com preced ncia sobre r Se as preced ncias forem transitivas ent o r tamb m tem preced ncia sobre r o que contradiz a hip tese inicial acerca de r de que n o existe nenhuma outra regra r produtiva em s com preced ncia sobre r Assim s pode restar uma regra r nas condi es indicadas se as preced ncias n o forem transitivas A Note se que se fossem inclu dos lacetes no grafo de execu o correspondentes a execu es de regras n o produtivas nem todos os caminhos no grafo de execu o corresponderiam a sequ ncias de execu o v lidas Por exemplo um caminho que atravessasse duas vezes seguidas o mesmo lacete n o seria v lido porque o mecanismo de activa o impede que a mesma regra seja execut
449. se it evaluates to true execute the action Active rules have appeared in active database systems where they are used for the enforcement of static or dynamic integrity constraints the automatic calculation of derived data the enforcement of business rules etc In some systems it is possible to specify absolute or relative priorities among rules that condition the order by which multiple triggered rules are executed An interactive database application is a computer program that allows a user to query and manipulate data stored in a database through a user interface based on forms reports graphics etc In rapid application development tools triggers with more limited capabilities are also used for data validation for the automatic calculation of derived data for the dynamic control of properties of data items to extend or override automatic behavior embedded in those tools etc A data driven active rule is an active rule with implicit triggering events of a restricted type data modification events which can be inferred from the condition and or the action of a rule according to some assumptions Data driven active rules differ from event driven active rules i e active rules with explicit events in the way they are defined but not in the way they are executed the execution of data driven active rules is also event driven for efficiency and integration reasons Formulae for the calculation of derived data in spreadsheets or in rapid a
450. sec o 8 5 As prioridades num ricas din micas s o calculadas imediatamente antes de escolher a pr xima regra a executar no passo 1 1 do algoritmo 8 1 As prioridades s o calculadas n o s para as regras que se encontram activadas mas tamb m para todas as regras que podem ser atingidas a partir das regras activadas por caminhos do grafo de depend ncias as quais s o adicionadas num estado de n o activadas ao conjunto de regras ligadas ao PPR Isso feito por duas raz es essas regras tamb m t m de ser consideradas para efeito da aplica o dos dois primeiros crit rios acima enunciados essas regras podem vir a ser activadas em resultado da execu o de regras que se encontram j activadas atendendo ao significado do grafo de depend ncias Mesmo assim ap s a execu o da 1 regra podem ser activadas regras que n o tinham ainda sido consideradas e prioritizadas Por raz es de efici ncia em vez de voltar a recalcular de novo todas as prioridades o calculadas prioridades apenas para as regras do conjunto constitu do pelas regras activadas que n o tinham sido ainda prioritizadas mais todas as regras n o prioritizadas que podem ser atingidas a partir das primeiras por caminhos do grafo de depend ncias Formalmente sejam com significado local a um PPR A conjunto de regras que se encontram activadas para executar no PPR em causa no momento de escolher a i sima regra a executar na i sima itera o
451. seguintes opera es i rota o ii troca de regras consecutivas comutativas A Este lema tem entre outras a seguinte consequ ncia bvia Teorema 6 18 Sejam O e O duas ordena es totais de um conjunto de regras R que induzem o mesmo n mero de arestas de realimenta o em cada ciclo do grafo de n o comutatividade de R Seja D a dist ncia m xima entre quaisquer duas regras conexas no grafo de n o comutatividade de R ou O no caso de todas as regras comutarem duas a duas Ent o se o processamento de O termina em N itera es no m ximo para qualquer estado inicial o processamento de O2 termina em N2 N D 1 itera es no m ximo para qualquer estado inicial Demonstra o Pelo lema anterior ON AOB Se o processamento de O termina em N itera es no m ximo AO Fa um ponto fixo para todas as regras Portanto AO B 09 tamb m Como pode ser necess ria mais uma itera o depois de se ter atingido um ponto fixo para todas as regras o processamento de 0 termina ao fim de N h 1 itera es no m ximo Como A lt D o processamento de O2 termina ao fim de N D itera es no m ximo A Neste sentido pode se dizer que O e O2 t m velocidades de termina o semelhantes 1 A dist ncia entre dois v rtices conexos ligados por algum caminho de um grafo a dist ncia em n mero de arestas do caminho mais curto que une os dois v rtices TS92 7 Refinamentos para o tratamento de dados complexos
452. ser e object O atributo acedido no mesmo objecto para que a regra instanciada Tamb m se diz que o acesso intra objecto S pode acontecer no caso do atributo e a regra serem intra objecto e da mesma classe e class Outros casos Tamb m se diz que o acesso global No caso do acesso global para escrita a um atributo intra objecto visto como uma vari vel de estado que representa o conjunto de valores do atributo para todos os objectos da classe em fun o dos identificadores dos objectos podem se especificar os modos de actualiza o conforme sugerido na sec o 7 2 2 que podem ser e create Por cria o de objectos da classe Note se que a cria o de objectos de uma classe altera o conjunto de valores de qualquer atributo intra objecto da classe e delete Por elimina o de objectos da classe Note se que a elimina o de objectos de uma classe altera o conjunto de valores de qualquer atributo intra objecto da classe e modify Por modifica o do valor do atributo em objectos da classe No caso do acesso global para leitura consulta a um atributo intra objecto visto como uma vari vel de estado que representa o conjunto de valores do atributo para todos os objectos da classe em fun o dos identificadores dos objectos podem se especificar os modos de actualiza o a que a regra sens vel conforme sugerido na sec o 7 2 2 Note se que quando se criam ou eliminam objectos de uma classe o con
453. ser ptima mas eficiente em tempo n log n durante a ordena o topol gica dos CFC s conforme veremos a seguir Estas observa es sugerem um m todo eficiente para ordenar os v rtices atrav s destes crit rios obedecendo completamente aos 2 primeiros crit rios e parcialmente porque de forma local ao ltimo O m todo baseada na combina o e adapta o de algoritmos conhecidos conforme se explica por passos nas sec es seguintes 8 5 1 Ordena o topol gica sabido que a ordena o topol gica topological sorting dos v rtices de um grafo dirigido ac clico G V E pode ser efectuada em tempo O IVI IEI em que IVI designa o n mero de v rtices e IEI designa o n mero de arestas S o conhecidos dois algoritmos de ordena o topol gica e um algoritmo recursivo baseado na visita em profundidade depth first search conforme descrito por exemplo em RNN77 ou AU92 e um algoritmo n o recursivo mas que exige uma estrutura de dados auxiliar conforme descrito por exemplo em K97 Relembramos de seguida estes dois algoritmos Os algoritmos s o organizados de tal forma que o acesso aos sucessores um v rtice v pode ser facilmente implementado atrav s de uma fun o visitsucc v visitfunc que chama a fun o visitfunc para cada sucessor de v Isto til quando o grafo calculado e n o armazenado conforme foi explicado anteriormente O algoritmo recursivo pode ser descrito em pseudo c digo da
454. sico que exige apenas o conhecimento de natureza essencialmente sint ctica das vari veis de entrada e de sa da de cada regra e de seguida s o discutidos diversos melhoramentos que exigem informa o adicional de natureza sint ctica ou sem ntica 4 2 1 Crit rio de activa o b sico Define se de seguida um crit rio de activa o conservador baseado apenas no conhecimento est tico das vari veis de entrada e sa da de cada regra e na monitoriza o din mica dos eventos de altera o de estado das vari veis de estado A atribui o de um novo valor a uma vari vel igual ao valor anterior da mesma vari vel n o considerada uma altera o Crit rio 4 1 activa o de regras i Todas as regras nascem activadas i As regras s o desactivadas imediatamente antes de serem executadas ii Uma regra r que est a ser executada activada quando uma vari vel de entrada da regra alterada Esta altera o tem de ser causada pela pr pria regra porque se pro bem altera es de estado n o provocadas pelas regras e as regras s o executadas sequencialmente A vari vel alterada tem de ser tamb m como bvio uma vari vel de sa da da regra 54 Activa o das regras iv Uma regra r que n o est a ser executada activada quando uma vari vel de entrada ou de sa da da regra alterada por outras regras ou pelo utilizador Justifica o i bvio por falta de informa o em contr rio Costuma ser
455. ssinalados atrav s de mensagens para o utilizador e de RAISE Form Trigger Failure Tamb m pode ser usado para propagar altera es ocorridas num item para outros itens itens calculados Pode se utilizar o comando SELECT mas n o os comandos de manipula o de dados INSERT UPDATE e DELETE de SQL e When Validate Record Dispara durante o processo de valida o de um registo alterado num bloco ap s as valida es autom ticas terem sido conclu das com sucesso E normalmente usado para efectuar valida es que envolvem mais do que um item De resto em semelhante ao anterior O seguinte exemplo retirado de OF93 o caracter precede os nomes de blocos ou itens de formul rios Revis o do estado da arte 15 F Experiment Start Date gt Experiment End Data THEN MESSAGE Your date range ends before it starts RAISE Form Trigger Failure END IF e When New Form Instance Dispara no arranque de um formul rio Pode ser usado para inicializar vari veis globais e efectuar outras inicializa es e When Create Record Dispara quando criado um novo registo num bloco o que acontece por exemplo quando o operador pressiona uma tecla apropriada normalmente usado para definir valores por omiss o complexos para alguns itens j que valores por omiss o simples podem ser definidos como propriedades est t
456. sso eficiente com apontador da transac o para a cabe a da sub lista de inst ncias de regras prioritizadas de novo e para cada re A A acesso eficiente com apontador da transac o para a cabe a da sub lista de inst ncias de regras activadas de novo e se r eD teste eficiente com apontador de regra para a cabe a da lista de inst ncias da regra ordenada por transac es de n veis decrescentes recorde se que o algoritmo acima executada na transac o corrente que por defini o a que tem n vel mais alto e se r EA N Ai teste eficiente com apontador como no caso anterior e compara o de timestamps triggering timestamp e last exec rule timestamp Note se que normalmente n o h nenhuma regra ou h poucas regras a considerar no passo 3 do algoritmo acima devido natureza do grafo de depend ncias 8 4 3 3 Grafo de depend ncias din mico O grafo de depend ncias considerado no c lculo das prioridades din micas traduz de forma aproximada a seguinte rela o entre pares de regras r e rz r pode activar r para o mesmo PPR por alterar dados directamente ou indirectamente por interm dio de uma regra r3 executada de forma encaixada durante a execu o de rz que s o usados por r2 A obten o deste grafo tem v rias dificuldades associadas e A rela o traduzida neste grafo varia de PPR para PPR mesmo entre diferentes ocorr ncias do mesmo tipo de PPR Isso acontece principalmente porque
457. stos linhas produzidos por uma interroga o em grupos de registos com igual valor numa coluna ou conjunto de colunas chamadas colunas de quebra break columns Normalmente isso interessa para efeito de sumariza o Este grupos podem por sua vez ser agrupados em grupos de n vel mais alto Generalizando cada registo individual pode ser visto como um grupo de registos do n vel mais baixo poss vel e o conjunto de todos os registos pode ser visto como um grupo de registos do n vel mais alto poss vel No modelo de dados do relat rio as colunas s o subdivididas em grupos de colunas de n veis correspondentes aos n veis de agrupamento dos registos Em cada grupo de colunas encontram se as colunas com igual valor ou um nico valor dentro de um grupo de registos do n vel correspondente O grupo de colunas de n vel mais baixo chamado o record group e os grupos de colunas de n veis interm dios s o chamados break groups O grupo de colunas de nivel mais alto pode ser chamado query group Por exemplo a tabela hier rquica da figura seguinte corresponderia a um relat rio hier rquico com tr s grupos de colunas definidos no cabe alho da tabela As colunas de sum rio t m o nome em it lico e a coluna de quebra tem o nome sublinhado Revis o do estado da arte 13 QCA C_A G_Artigo G_Compra_Artigo Despesa Nome Quantidade Pre o Data Quantidade Pre o Total Total Total Resma papel A4 1 1099 1 6008 ia
458. stri o for violada afixada a mensagem indicada Uma vez que o handler n o rep e a consist ncia a transac o abortada Ac es n o relacionadas como a base de dados como a instru o printf n o s o desfeitas 2 3 6 3 Restri es soft As restri es soft s o especificadas na sec o soft constraint da defini o de uma classe com a mesma sintaxe das restri es soft 32 Revis o do estado da arte As restri es soft s o verificadas apenas no fim da transac o portanto em modo diferido Uma restri o soft ser normalmente usada quando envolve outros objectos Exemplo class person persistent person spouse soft constraint spouse NULL this spouse gt spouse Note se que se esta restri o fosse especificada como hard nunca seria poss vel registar o casamento ou o div rcio de duas pessoas 2 3 6 4 Conceito de restri o intra objecto e restri o inter objecto No sistema Ode s o introduzidas as no es de restri o intra objecto e restri o inter objecto Uma restri o chamada intra objecto se 1 est associada a um objecto espec fico e 2 a condi o associada restri o avaliada apenas quando o objecto actualizado Caso contr rio a restri o chamada inter objecto Uma restri o intra objecto pode referenciar outros objectos tanto na parte de condi o como na parte de ac o handler No entanto a restri o n
459. t ncias como a conjuntos Note se que no mbito dos SGBD relacionais a norma SQL3 e os SGBD comerciais mais importantes tamb m prev em gatilhos orientados a inst ncias for each row e a conjuntos for each statement embora os gatilhos orientados a conjuntos sejam processados imediatamente ap s a execu o de cada instru o SQL e n o no fim da transac o conforme vimos nas sec es 2 3 2 e 2 3 3 O modelo de execu o de regras orientadas a inst ncias significativamente diferente do modelo de execu o de regras orientadas a conjuntos No caso de regras orientadas a conjuntos basta um nico PPR no final de cada transac o ou em checkpoints interm dios onde as regras s o executadas de forma diferida No caso de regras orientadas a inst ncias ocorrem m ltiplos PPR s encaixados nested onde as regras s o executadas de forma imediata Nas sec es seguintes discutem se v rias abordagens para a integra o de regras orientadas a inst ncias em combina o com regras orientadas a conjuntos no modelo de regras dirigidas pelos dados introduzido no cap tulo 3 Considera se um modelo de dados orientado a objectos que se julga mais adequado para capturar a complexidade dos interfaces para o utilizador que se encontram em aplica es interactivas de bases de dados mesmo que estas sejam relacionais Considera se tamb m um modelo de transac es encaixadas nested GR93 que permite tirar melhor partido d
460. t effect should be excluded from consideration It can be shown that the minimal sets of input and output variables that can be achieved by rewriting a rule r while preserving its net effect are unique 11 If no input or output variables of a rule r could be eliminated by rewriting r while preserving its net effect it is said that r is in canonical form For example all the rules in the appendix are in canonical form Rules with the same net effect of rules rz and rs from the appendix but not in canonical form are i Jx if x20 Toa ZEX y gt Z x y and T a Y EE In some cases it is not convenient to write rules in canonical form for efficiency reasons Two approaches are possible to obtain minimal input and output variables in such cases e they are explicitly provided by the programmer e the system performs a dataflow analysis during rule compilation to detect read and write operations that could be avoided by rule rewriting e g a read operation after a write operation can be avoided by using an auxiliary local variable A global picture of the possible interferences between rules via the variables queried and updated by them is given by a rule rule data dependency graph RRDDG for short The vertices of this graph are the rules A directed edge r r with i j means that r updates some variable that is referenced queried or updated by r A self loop r r means that r updates some variable also queried by r See the exam
461. t out Na pr tica a pilha implementada por um buffer de mem ria geralmente com o topo da pilha mais um ficheiro tempor rio para dados excedentes Os itens s o identificados pela sua posi o relativa na pilha que cresce por ordem cronol gica Por uma quest o de flexibilidade e generalidade cada item do log tem uma sequ ncia de bytes e um apontador para uma fun o que conhece o significado desses bytes Esses bytes podem conter o valor antigo de um atributo global alterado o estado antigo de um objecto modificado o identificador de um objecto criado porque basta saber o identificador do objecto para desfazer a cria o do objecto o estado antigo de um objecto eliminado etc O log destina se apenas a suportar rollback relativamente a itens de dados relevantes o que depende da aplica o Assim n o interessa registar no log todas as altera es Por exemplo se um objecto inserido e depois modificado sem que entretanto seja iniciada uma transac o com rollback local basta registar o identificador do objecto inserido Se um objecto modificado v rias vezes sem Implementa o de um motor de regras activas dirigidas pelos dados 135 que entretanto seja iniciada uma transac o com rollback local basta registar o estado do objecto antes da primeira modifica o A opera o get top indica o topo corrente do log Interessa a startrans A opera o push item adiciona um item ao log Tem como ar
462. t present an algorithm to transform an ordering L of the vertices of a strongly connected directed graph G V E into a given Q equivalent ordering L by applying only the operations mentioned in Lemma 3 The algorithm is based on a circular representation of vertex orderings as shown below for two orderings of the vertices of the strongly connected graph of example B1 gt An edge of a graph G is said to be a cyclic edge or circuit edge if there exists a cycle in G containing the edge TS92 On the equivalence of vertex orderings modulo the number of backward edges per cycle 217 L 1 3 2 4 L 2 1 3 4 0 x The method is also based on the notion of circular length of a path P under a vertex ordering L denoted Len P L defined as the length of P in the circular representation measured in number of vertices For instance with respect to the above example the path P 4 1 2 has circular length 3 under L and circular length 5 under L Algorithm 1 transform an ordering L of the vertices of a strongly connected directed graph G V E into a given d equivalent ordering L by applying only the operations mentioned in Lemma B3 1 Repeat until L and L differ at most by a rotation 1 1 Pick two vertices x and y obeying the following conditions 1 1 1 x and y are circularly consecutive vertices in L i e x is followed by y in the circular representation of L 1 1 2 x and y are not joined by any edge of G Note in fact
463. ta driven rules attached to a composite object of a sufficient high level of granularity or via partial intra object data driven rules attached to each of the objects involved essentially as proposed in the Ode system 18 In the latter case accesses to other objects involved are viewed as side effects to external systems Important issues related to the distribution of reactive processing by means of active rules between the user interface layer our main target and the database layer in a centralized client server or three tier architecture have not been addressed here Some of them are analyzed in 15 12 References 1 M Sannela J Maloney B Freeman Benson and A Borning Multiway versus one way constraints in user interfaces experience with the DeltaBlue algorithm In Software Practice and Experience Vol 23 5 pp 529 566 May 1993 2 U Dayal Active database management systems In Proc of Third International Conference on Data and Knowledge Bases Jerusalem Israel June 1998 2 S Ceri and J Widom Active Database Systems Triggers and Rules For Advanced Database Processing Morgan Kaufmann 1996 4 C Zaniolo S Ceri C Faloutsos R Snodgrass V Subrahmanian and R Zicari Advanced Database Systems Morgan Kaufmann 1997 5 S Ceri and J Widom Deriving production rules for constraint maintenance In Proc of the 16th VLDB Conference pp 566 577 Brisbane Australia August 1990 240 6 7 8
464. tained from L by interchanging these two vertices L will induce one more backward edge in C than L Hence L and L are not a equivalent with respect to G Notice that if C had length 1 in case of a self loop or 2 in case of two symmetric edges L would induce the same number of backward edges in C as L Now assume that in G the vertices u and v are not joined by an edge u v or v u contained in a cycle C of G with length gt 2 However u and v may be joined by edges belonging to a cycle of length 2 two symmetric edges A cycle of length 2 has always one backward edge with respect to any vertex ordering When u and v are interchanged no other cycles are affected Hence L and L are o equivalent with respect to G Since L and L are O equivalent with respect to G but not with respect to G these two graphs are not B equivalent Consequently G and G are not B equivalent either Now consider the case where one or both graphs are undirected Let G4 and G be the directed graphs obtained from G and G by replacing any undirected edge by a pair of symmetric directed edges It s obvious that G and G as well as G and G have the same pairs of vertices in the conditions described in the theorem statement According to lemma B1 G and G as well as G and G are B equivalent As proved above G4 and G are B equivalent if and only if they have the same pairs of vertices in the conditions described in the theorem statement Hen
465. taneamente No caso da condi o ser suprimida tem se uma regra evento ac o ou regra EA Os gatilhos que se encontram nas ferramentas de DRA s o normalmente deste tipo No caso do evento ser suprimido o que s poss vel em muito poucos sistemas como por exemplo o sistema Ariel H92 tem se uma regra condi o ac o ou regra CA semelhante a uma regra de produ o padr o ac o em Intelig ncia Artificial Os eventos podem ser simples primitivos ou compostos A forma de composi o normalmente suportada a composi o ou Os eventos simples mais comunemente suportados s o eventos de modifica o de dados Outros eventos suportados por alguns sistemas s o eventos de consulta de dados no sistema POSTGRES PS96 por exemplo eventos transaccionais commit rollback etc eventos temporais eventos do interface com o utilizador em ferramentas de desenvolvimento r pido de aplica es etc Alguns eventos podem ter associados valores que podem ser usados na parte de condi o ou de ac o Por exemplo um evento que se refere inser o de um registo pode ter associado os valores do registo que est a ser inserido As opera es suportadas na parte de ac o incluem sempre opera es de manipula o e consulta de dados e opera es para assinalar erros A ocorr ncia do evento a avalia o da condi o e a execu o da ac o podem estar separados no tempo e em termos transaccionais o que especific
466. tarbust WF90 W96 Ariel H92 H96 e Chimera CFPB96 que usam vari veis delta tamb m chamadas tabelas de transi o deste tipo Uma vez que os identificadores internos n o s o relevantes para o utilizador as vari veis delta definidas desta forma t m alguns inconvenientes Suponhamos que os identificadores internos s o ignorados ou eliminados nas vari veis delta Desde que n o possam existir dois tuplos com os mesmos valores o que acontece se todas as rela es tiverem pelo menos uma chave garante se que ins x N new upd x e del x A old upd x No entanto n o se garante que del x O old upd x O ins x O new_upd x Isto acontece porque pode ser inserido ou alterado um tuplo com novos valores iguais aos valores antigos doutro tuplo eliminado ou alterado Assim tem se de forma pouco natural A x x old x ins x O new upd x del x O old upd x Ax old x x del x O old upd x ins x O new upd x J no caso do sistema A RDL SK96 as vari veis delta s o definidas de forma a garantir que ins x O new upd x del x O old upd x pelo que nesse caso A x x old x ins x O new upd x Ax old x x del x O old upd x Exemplo Para a imposi o incremental da restri o R3 da figura 7 3 c lculo do total da factura pode escrever se a seguinte regra incremental r3 TOTAL old TOTAL L PRE O TOTAL L PRE O TOTAL L PRE O TOTAL old L PRE O TO
467. te forma e S o proibidas inser es INSERT e actualiza es UPDATE na tabela referenciante a tabela em que definida a restri o que violem a integridade referencial a instru o SQL que as provocou desfeita 20 Revis o do estado da arte e As elimina es DELETE e actualiza es UPDATE na tabela referenciada que violam a integridade referencial s o tratadas de acordo com a ac o indicada CASCADE propaga as elimina es e actualiza es para a tabela referenciante SET NULL coloca valores nulos nas colunas referenciantes SET DEFAULT coloca valores por omiss o nas colunas referenciantes NO ACTION pro be essas actualiza es ou elimina es a instru o SQL desfeita 2 3 1 3 Asser es gen ricas Uma asser o uma restri o de integridade gen rica envolvendo uma ou mais tabelas A sintaxe da defini o de uma asser o em SQL 92 lt SQL 92 assertion gt CREATE ASSERTION lt constraint name gt CHECK lt condition gt lt constraint evaluation gt lt constraint evaluation gt NOT DEFERRABLE INITIALLY DEFERRED IMMEDIATE A condi o restri o propriamente dita um predicado arbitr rio em SQL Uma asser o pode ser avaliada verificada num dos seguintes modos e IMMEDIATE restri o verif
468. te e em caso afirmativo obter uma ordena o dos v rtices de um grafo dirigido que induza apenas uma aresta de realimenta o por ciclo foi deixado em aberto em RSS90 e resolvido de forma que se julga satisfat ria no anexo 1 a este documento 5 7 Outros crit rios 5 7 1 Testar restri es o mais cedo poss vel As regras de restri o devem ter preced ncia sobre as regras de deriva o porque interessa testar as restri es o mais cedo poss vel para evitar efectuar c lculos que podem ser depois abortados De qualquer forma as regras de restri o s devem ser executadas depois das suas vari veis de entrada terem atingido valores finais o que garantido pelo crit rio 5 1 Assim o crit rio de dar preced ncia s regras de restri o sobre as regras de deriva o tem menos for a do que o crit rio 5 1 5 7 2 Prioridades definidas pelo programador Os crit rios apresentados anteriormente podem n o produzir o efeito pretendido pelo programador n o s em termos de efici ncia e de sem ntica mas tamb m em termos da ordem por que os efeitos laterais produzidos pelas regras ocorrem como por exemplo mensagens para o utilizador Assim o programador de regras deve poder indicar prioridades absolutas e ou relativas com mais for a do que as que resultam dos crit rios anteriormente apresentados 5 7 3 Seguir a ordem de cria o das regras Mesmo aplicando os crit rios descritos pode existir mais do que
469. tera es Em muitas casos n o interessa calcular o campo no registo de crit rio pelo que se define a propriedade modos da regra ver figura 9 1 com BM Dessa forma a regra s desinibida enabled no decurso da opera o load modo B ou durante a edi o de registos de dados modo M 2 Express o geral de regra para definir um campo calculado em certas condi es e preenchido pelo utilizador noutras condi es if campo gt locked condi o then campo express o que equivale a 172 Integra o numa ferramenta de desenvolvimento de aplica es if condi o then campo gt locked 1 campo express o else campo gt locked 0 para permitir utilizador preencher Neste caso a permiss o de altera o varia dinamicamente 3 Express o de regra que obriga a preencher um campo A quando outro campo B est por preencher A gt mandat isnull B 4 Express o de regra na sub vista de linhas de factura da figura 7 1 para verificar se o c digo do artigo introduzido pelo utilizador existe na tabela de artigos e em caso afirmativo obter o respectivo nome restri es R5 e R6 da figura 7 3 e pre o unit rio por omiss o if isnull codigo artigo then nome artigo else if dbacc artigo codigo artigo then nome artigo Sartigo nome preco unitario Sartigo preco_unitario else undo N o existe um artigo com o codigo codigo artigo A proprieda
470. teradas mas nem sempre assim pelo que os eventos activadores t m em geral de ser fornecidos pelo programador a n o ser que as regras intra objecto parciais sejam geradas automaticamente Exemplo Seja o formul rio da figura 7 1 Indicam se de seguida regras intra objecto para a manuten o incremental de algumas restri es com acessos a objectos exteriores indicadas a sublinhado Para a manuten o incremental sempre que poss vel do TOTAL em FACTURA definem se as seguintes regras uma regra para cada tipo de objecto ou tipo de evento envolvido rule FACTURA r3a on create modify TOTAL TOTAL select sum PRE O TOTAL from LINHAS FACTURA rule LINHA FACTURA r3d on create TOTAL TOTAL PRE O TOTAL rule LINHA FACTURA r3c on destroy Refinamentos para o tratamento de dados complexos 123 TOTAL TOTAL old PRE O TOTAL rule LINHA FACTURA r3b on modify PRE O TOTAL excepto dentro de create ou destroy TOTAL TOTAL PRE O TOTAL old PRE O TOTAL Para a manuten o incremental sempre que poss vel de pre o total de cada linha incluindo IVA taxa indicada no campo TAXA IVA do cabe alho da factura definem se as seguintes regras rule FACTURA r2a on create modify TAXA IVA update LINHAS_FACTURA set PRECO_TOTAL QUANTIDADE PRECO_UN TARIO 1 TAXA IVA
471. termin stico se o estado final atingido em caso de termina o do processamento de regras n o depende de qual a regra escolhida para execu o entre as v rias regras activadas candidatas a execu o em qualquer passo do processamento de regras qualquer que seja o estado de partida do processamento de regras Em termos do grafo de execu o isto equivale a dizer que existe no m ximo um estado final ating vel por um caminho de comprimento O ou mais a partir de qualquer estado s No trabalho de refer ncia de AWH92 um conjunto de regras que obedece a esta propriedade chamado confluente No entanto prefere se usar o termo confluente num sentido mais tradicional conforme H80 e mais literal a definir adiante Os estados finais correspondem s formas normais de H80 pelo que esta no o de determinismo equivale exist ncia de no m ximo uma forma normal para cada elemento sE S pela rela o bin ria de transi es de estado 7 Um conjunto R de regras diz se determin stico em sentido forte se a pr pria termina o ou n o termina o do processamento de regras para al m do estado final atingido em caso de termina o n o depende de qual a regra escolhida para execu o entre as v rias regras activadas candidatas a execu o em qualquer passo do processamento de regras qualquer que seja o estado de partida do processamento de regras Em termos do grafo de execu o isto equivale a dizer que para qual
472. terminating and every two rules in the rule set are confluent then it is confluent 11 There is another important difference with respect to the requirement presented in 12 The definition of rule commutativity in 12 is based on execution states that also include the triggered rules and their corresponding transition tables besides the database state corresponding here to the state of the state variables The specialized nature of data driven active rules dispenses the inclusion of the triggered rules and the transition tables The following properties are useful to check if two rules 7 and r are confluent e If two rules are commutative and terminating then they are obviously confluent e If two rules 7 and r have an acyclic AG then they are confluent iff r or or r e rr 11 Data driven Active Rules for the Maintenance of Derived Data and 237 Integrity Constraints in User Interfaces to Databases e In particular if two rules r and r are not recursive and not conflicting and the execution of any of the rules cannot falsify change value from true to false the condition upon which the value of a variable is derived by the other rule then they are confluent 11 For example with respect to the rule set in the appendix the execution of rule rs can falsify the condition y upon which the value of w is derived by rule r3 Consequently if a rule set R has no recursive rules no conflicting rules and no rules whose executi
473. tes existentes nas opera es de manipula o de vistas e a sua classifica o para efeito de registo no motor de regras Estes PPR s podem ser vistos como eventos com execu o imediata de regras Opera o mbito Tipo de Notas E O O eeo o open open after open after open vista create before query a after query registo create Ocorre em sub transac o intra registo para inicializa o do registo de crit rio en vista modify O mbito vista porque o registo ainda n o existe Integra o numa ferramenta de desenvolvimento de aplica es 165 after load record registo create Ocorre em sub transac o intra registo after load load Ocorrem em sub transac o intra ecse via mai ae opdeoo va mod e eeose visa o o Opera o mbito Tipo de Notas opera o insrec before_add vista modify O mbito vista porque o registo ainda n o existe after_add registo create Ocorre em sub transac o intra registo para inicializa o do registo inserido arerupa egito mod delrec Caso de elimina o de registo seleccionado ou modificado Caso de elimina o de registo 9 3 Regras definidas na linguagem de regras e comandos A defini o de uma vista pode ser refinada atrav s da defini o de regras numa linguagem de regras e comandos A defini o de uma regra tem as seguintes partes obrigat rias e o nome da vista a que a regra pertence e um n mero de or
474. the first last vertex of S is already in those conditions so step 5 cannot fail If another vertex is selected in the required conditions we may reorganise S in a way similar to S and proceed recursively This is true also for nested SCC s of higher levels So we conclude that step 5 never fails independently of the choices made in previous iterations A 200 An algorithm to find feedback edge sets with on edge per cycle Appendix B Proof of theorem 4 Proof Let H be the corresponding ancestor SCC of level k and let v be its decomposing vertex Assume the case where n k 1 and H is not v By the definition of in gate and out gate there must exist vertices w and z not necessarily distinct and edges w x and y z inside H but outside H By the definition of SCC there must exist a simple path P from z to w in H This path must intersect v otherwise z and w would belong to the same SCC of level k as x and y that is H We next prove that P doesn t intersect H If z w the proof is done Otherwise assume that P intersects H and let s and t be the first and last vertex not necessarily distinct of P in H Let P and Pw be the portions of P from z to s and from t to w Without any loss of gnerality the other case is symmetric assume that it is P that contains v Since P and P are disjoint except possibly for s and t in case s t and s and t are contained in H and H doesn t contain v we conclude that P
475. there cannot exist any cyclic edge joining v and v in G 5 3 1 Assume that there exists a cyclic edge v v inG Then there would exist the edge v v in Gr and the corresponding edge vi Wo in Gz But such a vertex cannot exist in G because k d gt k 1 dj 5 3 2 A similar contradiction arises if we assume that there exists a cyclic edge v v in G Then there would exist the edge v v in Gy and the corresponding edge v vi in Gz But such a vertex cannot exist in G because k n d k 1 d gt n Both of these situations are illustrated in the figure below G yy G v gt v k l d k d k l d kd k n d Gi v Fu y Ge v Joy ae vyo X ko kal k kl kan Gr vi vj Gy Vi V Vi La PR ee 5 4 Having found vertices v and vit in the required conditions we exchange vertices v and v in L getting a new vertex ordering L As we proved above there is no cyclic edge connecting vertices v and v in G Hence L induces the same number of backward edges per cycle as L 5 5 With respect to the foregoing example by exchanging vertices v and vz in L we get L V4 V1 V3 V2 6 We next show that the correspondence between Gz and Gz is obtained from the correspondence between Gz and Gz simply by incrementing d and decrementing dj In the pictorial representation this means moving the lines that reach vertices vi and yo in Gr together with them when they are interchanged
476. ticas com pouca for a foi j referida e Dar prioridades s regras activadas mais recentemente Este crit rio introduzido para resolver os casos em que os crit rios anteriores n o chegam para determinar uma ordena o total das regras Corresponde a usar a estampa temporal de activa o de cada regra como uma prioridade num rica por omiss o Assim pode ser aplicado ao mesmo tempo que o crit rio anterior na pr tica isso feito numa fun o de compara o de prioridades de pares de regras baseado na ideia de que na falta de informa o adicional a ordem de execu o das regras deve estar relacionada deterministicamente com a ordem de activa o das regras O crit rio inverso dar prioridade s regras activadas h mais tempo tamb m podia ser usado mas menos conveniente em termos de facilidade de implementa o conforme se ver adiante Por raz es de efici ncia estes crit rios s o conjugados de uma forma que satisfaz totalmente aos dois primeiros crit rios e satisfaz parcialmente aos dois ltimos crit rios Isto pode ser produzida uma ordena o total O quando existe outra ordena o O que satisfaz igualmente aos dois primeiros crit rios e tem menos viola es aos dois ltimos crit rios H uma viola o das prioridades est ticas quando prior din mica de r gt prior din mica de rz A prior est tica de r lt prior est tica de r2 O algoritmo concreto utilizado descrito na
477. tion avec d autres types de r gles actives On d termine les conditions auxquelles doit ob ir un ensemble de r gles du type propos pour garantir l ach vement et le d terminisme de leur ex cution La nature sp cialis e de ces r gles permet d obtenir des conditions moins conservatrices que celles que l on connait pour des r gles actives g n rales On montre encore comment au mod le de r gles propos peuvent tre incorpor es les optimisations n cessaires pour manier efficacement des donn es complexes a souligner la diff rentiation de r gles orient es vers des ensembles et encapsulage de r gles dans des objets On d crit une mise en oeuvre concr te d un syst me de r gles actives dans un outil de d veloppement rapide d applications d velopp a I INESC qui admet des r gles command es par les donn es et des r gles command es par des v nements d montrant les avantages de approche propos e par rapport aux approches suivies par d autres outils malgr certains compromis adopt s lors de sa mise en oeuvre Agradecimentos O autor gostaria de agradecer ao Prof Raul Moreira Vidal a sua orienta o e incentivo inestim veis Gostaria de agradecer ao INESC Porto sobretudo na pessoa do Prof M rio Jorge Leit o pelo apoio log stico proporcionado e pelo contexto proporcionado para a liga o deste trabalho pr tica Agrade o ainda a todos os colegas da FEUP e do INESC Porto que me apoiara
478. tiva o em cascata isto activa o duma regra causada por um evento gerado por outra regra Algumas op es poss veis s o executar as regras activadas em cascata recursivamente sem esperar pela conclus o da execu o da regra causadora da activa o em cascata executar as v rias activadas em cascata iterativamente depois de terminada a execu o da regra causadora da activa o em cascata Uma vis o geral actualizada das op es existentes em diferentes sistemas dada em PD99 Algumas aplica es sugeridas para regras activas em SGBD s s o e imposi o de restri es de integridade gen ricas e c lculo autom tico de dados derivados materializados 10 Revis o do estado da arte e imposi o de regras do neg cio por exemplo gerar automaticamente uma ordem de compra quando o stock de um artigo desce abaixo de um certo limite e manuten o autom tica de r plicas em bases de dados distribu das e implementa o de regras de autoriza o e auditoria auditing e registo logging de eventos e gest o de fluxos de trabalho workflow management que envolvem transfer ncia de dados entre tarefas As aplica es que mais interessam no contexto deste trabalho s o as duas primeiras 2 2 Ferramentas de desenvolvimento r pido de aplica es de bases de dados Relativamente a duas ferramentas de desenvolvimento r pido de aplica es de bases de dados representativas analisam se de s
479. tivadas num dado momento e r1 precedes r2 ou r2 follows r1 aregrar1 executada primeiro No caso de nenhuma das regras ter preced ncia sobre a outra directa ou indirectamente por transitividade tem preced ncia a regra criada h mais tempo como acontece em SQL3 As prioridades relativas s o implicitamente transitivas e n o podem ter ciclos Tanto na parte de condi o como na parte de ac o duma regra poss vel usar tabelas de transi o Dada uma regra sobre uma tabela T as tabelas de transi o s o e inserted tabela l gica acess vel numa regra com opera o activadora inserted contendo os tuplos que foram inseridos em T causando a activa o da regra e deleted tabela l gica acess vel numa regra com opera o activadora deleted contendo os tuplos que foram eliminados de T causando a activa o da regra e new updated tabela l gica acess vel numa regra com opera o activadora updated contendo os novos valores dos tuplos actualizados em T causando a activa o da regra e old updated tabela l gica acess vel numa regra com opera o activadora updated contendo os valores antigos dos tuplos actualizados em T causando a activa o da regra a cada tuplo em old updated corresponde um tuplo em new updated com o mesmo identificador interno Estas tabelas de transi o desempenham papel semelhante mas n o id ntico como veremos a seguir s tabelas OLD TABLE e NEW TABLE de SQL3
480. tivas dirigidas por eventos Esses crit rios garantem em muitos casos que cada regra executada no m ximo uma vez em qualquer ponto de processamento de regras Garantem tamb m que as restri es de integridade s o verificadas o mais cedo poss vel S o determinadas as condi es a que um conjunto de regras do tipo proposto deve obedecer para garantir a termina o e o determinismo da sua execu o A natureza especializada destas regras permite obter ndigdes menos conservadoras do que as que s o conhecidas para regras activas gen ricas Mostra se ainda como podem ser incorporadas no modelo de regras proposto as optimiza es necess rias para lidar eficientemente com dados complexos de que se destacam a diferencia o de regras orientadas a conjuntos e o encapsulamento de regras em objectos Uma contribui o pr tica a re engenharia de uma ferramenta de desenvolvimento de aplica es desenvolvida no INESC Porto com algoritmos e solu es pr ticas para a integra o de regras dirigidas pelos dados e regras dirigidas por eventos e casos de uso concretos dessas regras Existem tamb m algumas contribui es laterais com poss vel interesse noutras reas e um algoritmo eficiente para achar um conjunto de arestas de realimenta o feedback edge set de um grafo dirigido com apenas uma aresta de realimenta o por cada ciclo do grafo no anexo 1 com benef cios comprovados para a ordena o de certos conjuntos de re
481. to das arestas do grafo de activa o esta condi o de termina o menos conservadora do que a obtida com base no grafo de activa o No entanto a constru o do grafo de activa o produtiva exige uma an lise sem ntica das regras que em geral n o pode ser automatizada enquanto que a constru o do grafo de activa o requer apenas uma an lise sint ctica f cil de automatizar Assim ambas as condi es s o teis Exemplo O grafo de activa o produtiva da figura 6 2 ac clico pelo que o processamento do conjunto de regras a que esse grafo se refere da figura 3 1 termina sempre Note se que em contrapartida o grafo de activa o tem ciclos Termina o determinismo e velocidade de termina o do processamento de regras 85 6 1 3 An lise interm dia baseada no grafo de activa o da condi o Foi proposto em BCP95 um m todo refinado de an lise da termina o de regras ECA gen ricas que combina a an lise do grafo de activa o triggering graph no original com a an lise de um grafo de activa o da condi o activation graph no original que traduz o efeito da execu o de cada regra no valor l gico da condi o dessa e doutras regras O grafo de activa o da condi o para um conjunto R de regras definido da seguinte forma BCP95 e Os v rtices s o as regras de R e Uma aresta dirigida r gt r i4j significa que a execu o de r pode activar a condi o de r isto
482. todos os pares de regras n o ordenadas se enquadram nas condi es do caso 1 do requisito de conflu ncia e consequentemente obedecem ao requisito de conflu ncia porque todos os pares de regras n o ordenadas s o confluentes desde a considera o de P Portanto o conjunto de regras da figura 3 1 com o conjunto de prioridades P2 determin stico Na realidade pode se verificar que seria determin stico mesmo com o conjunto de prioridades P 6 2 8 Imposi o do determinismo atrav s do princ pio calcular antes de usar Na aus ncia de regras recursivas as prioridades estabelecidas de acordo com o princ pio calcular antes de usar s o suficientes para for ar o determinismo conforme demonstra o teorema seguinte Termina o determinismo e velocidade de termina o do processamento de regras 99 Teorema 6 15 Se forem estabelecidas prioridades entre as regras de acordo com o princ pio calcular antes de usar crit rio 51 e n o existirem regras recursivas o processamento de regras determin stico em sentido forte Demonstra o Suponhamos primeiro o caso em que n o h regras conflituosas De acordo com o teorema 6 2 o processamento de regras termina sempre Basta portanto verificar se o requisito de conflu ncia satisfeito Considere se qualquer par de regras n o ordenadas r e rj Se n o est o ordenadas pelo crit rio 5 1 e n o h regras conflituosas nem mutuamente recursivas as regras r rj n o interfer
483. topologically ordered in L The construction of a CPFES F by algorithm 1 corresponds to a sequence of transformations of L preserving the number of feedback edges per cycle in each transformation such that in the end L corresponds to F Let H be a non trivial SCC of level 1 of G as referred in step 5 of algorithm 1 Let S be the corresponding sub sequence in L According to lemma A4 a vertex v of H may be moved to the first last position of S still preserving cycles if and only if there is no external cycle with respect to H intersecting an edge u v v u for some vertex u in H This condition is exactly the one stated in step 5 of algorithm 1 Moving v to the first last position of S corresponds in terms of feedback edges to add its incoming outgoing edges in H to the resulting feedback edge set F In this case SCC of level 1 there are no external cycles and so any vertex may be selected and step 5 cannot fail Consequently assume S is reorganised as stated in lemma A4 Obviously it may be further reorganised without modification of the feedback edges so that the vertices of each resulting sub SCC are kept together and the sub SCC s are topologically ordered Let H be a non trivial sub SCC of level 2 with parent SCC H and let S be the corresponding sub sequence in the reorganised vertex ordering Again any vertex v of H in the conditions of lemma A4 or step 5 may be moved to the first last position of S At least
484. tradit rias Suponhamos que O ideal Suponhamos que uma regra r actualiza o valor de uma vari vel y Se a actualiza o for com altera o y n o pode fazer parte de nenhuma regra antes de r pela ordem O por defini o de ordena o ideal Se a actualiza o for sem altera o n o h contradi o com uma eventual regra que tenha actualizado y antes de r Isto em conjunto com o facto de que em consequ ncia da ordena o ser ideal cada regra executada no m ximo uma nica vez pela ordem O implica que n o podem ocorrer actualiza es contradit rias Entradas preservadas e aus ncia de actualiza es contradit rias Ideal Seja uma ordem total O tal que quando as regras s o executadas pela ordem O as entradas de O s o preservadas e n o ocorrem actualiza es contradit rias Suponhamos que uma regra r altera o valor de uma vari vel y que tamb m uma vari vel de sa da de uma regra precedente r Considerando o pior caso em que todas regras est o inicialmente activadas a regra r teria sido executada antes de r actualizando o valor de y porque se sup e que todas as regras s o puramente incondicionais Como se sup e a aus ncia de actualiza es contradit rias a regra r n o pode actualizar y com um valor diferente do produzido por r isto n o pode alterar y Portanto se uma regra r altera o valor de uma vari vel y y n o pode ser uma vari vel de sa da de uma regra precedente Pode no entanto ser u
485. ualquer aresta a ela dirigida no GP corrente Consequentemente se o GP inicial tiver ciclos n o poss vel reduzir o conjunto R a um conjunto vazio Uma vez que se sup e que R reduzido a um conjunto vazio conclui se que o GP inicial n o tem ciclos A Apesar de tudo a constru o do grafo de activa o da condi o exige uma an lise sem ntica mais simples do que a exigida para a constru o do grafo de activa o produtiva pelo que o teorema 6 4 pode ter alguma utilidade Note se que os grafos de activa o produtiva e de activa o da condi o s o id nticos se cada regra for escrita numa forma condicional com a condi o o mais restritiva poss vel a nega o da restri o imposta pela regra Nesse caso o grafo de activa o da condi o tem um subconjunto das arestas do grafo de activa o pelo que o conjunto de regras reduzido a um conjunto vazio pelo algoritmo de redu o de regras se e s se o grafo de activa o da condi o ac clico Portanto as condi es do teorema 6 3 e 6 4 equivalem se nesse caso 6 1 4 Detec o din mica de actualiza es contradit rias que impedem a termina o Duas actualiza es da mesma vari vel de estado com valores diferentes produzidas em execu es de regras diferentes necessariamente conflituosas ou em execu es diferentes da mesma regra no decurso de um PPR dizem se contradit rias A n o termina o do processamento de regras est associada oc
486. ualquer aresta de G Demonstra o Considera se um grafo G id ntico a G a menos das arestas que se encontram em F que s o substitu das por arestas dirigidas em sentido contr rio Isto cada aresta u v e F substitu da pela aresta u v se j existir uma aresta nesse sentido n o necess rio acrescentar Em rela o ao grafo G as ordena es O e O induzem um conjunto vazio de arestas de realimenta o isto O e O s o ordena es topol gicas de G Pelo lema anterior poss vel passar de uma ordena o a outra pela troca de v rtices desligados em G e portanto tamb m desligados em G A Lema 5 5 Sejam O e O duas ordena es dos v rtices de um grafo dirigido G V E Sejam F e F as arestas de realimenta o induzidas por O e O respectivamente Suponhamos que FDF Ent o poss vel passar de O a O pela troca de v rtices consecutivos digamos v rtices u e v com v antes de u em O que n o s o ligados por qualquer aresta de G ou s o ligados apenas por uma aresta dirigida de u para v pertencente a F mas n o a F Ordena o das regras 77 Demonstra o Considere se um grafo G V E id ntico a G mas sem as arestas pertencentes a F F Para cada aresta u v e F F n o pode existir uma aresta sim trica v u em G caso contr rio seria v u e F e v u F pelo que n o poderia ser FDF Portanto os pares de v rtices u e v com uma aresta u v e F F ficam desligados em G As dua
487. ue equivale a dizer que s n o um ponto fixo para r Define se um grafo de activa o produtiva para um conjunto R de regras da seguinte forma e Os v rtices s o as regras de R e Uma aresta dirigida rr entre duas regras distintas significa que r pode tornar a execu o de r produtiva ou pode activar r de forma produtiva isto a execu o de r a partir de um estado s em que a execu o de r n o produtiva pode produzir um estado t em que a execu o de r produtiva Formalmente ds te S rj s s A t ri s A ri t Zt e Um lacete r r significa que a execu o de r pode terminar num estado em que a execu o de r continua a ser produtiva Formalmente ds te S t r s A r t t Isto equivale a dizer que r n o idempotente Desde que o crit rio de activa o seja correcto garanta que todas as regras produtivas est o activadas o grafo de activa o produtiva tem as mesmas ou um subconjunto das arestas do grafo de activa o Como por sua vez o grafo de activa o tem as mesmas ou um subconjunto das arestas do grafo de interfer ncias conclui se que o grafo de activa o produtiva tem as mesmas ou um subconjunto das arestas do grafo de interfer ncias Exemplo No caso do conjunto de regras da figura 3 1 o grafo de activa o produtiva apresentado na figura 6 1 direita tem algumas arestas a menos em rela o ao grafo de activa o j considerando o crit rio de activa o mais refinado poss
488. uida uma pequena lista de modo algum exaustiva de problemas para os quais as solu es encontradas neste trabalho n o s o plenamente satisfat rias As garantias de termina o e determinismo do processamento de regras s o na pr tica extremamente importantes para o desenvolvimento de aplica es confi veis Vimos que a simples presen a de regras condicionais num conjunto de regras n o ordenado sem prioridades pode ser suficiente para causar o n o determinismo Felizmente o n o determinismo causado por regras condicionais afastado atrav s da ordena o prioritiza o das regras pelo princ pio calcular antes de usar que parece ser de aplica o inquestion vel por raz es de sem ntica e efici ncia Afastado este tipo de n o determinismo vimos que a n o termina o poderia ser causada por regras conflituosas ou por regras recursivas enquanto que o n o determinismo podia ser causado apenas por regras recursivas Para resolver estes problemas importante no futuro i refinar as condi es de termina o e determinismo relativamente a regras deste tipo ii automatizar a verifica o dessas condi es iii estabelecer claramente as medidas que o utilizador deve tomar para resolver as situa es de potencial n o termina o ou n o determinismo prioridades rescrita de regras etc Por outro lado na an lise de termina o e determinismo do processamento de regras n o se entrou em conta com a possibilidade
489. ular est grandemente automatizada a manipula o atrav s de um nico formul rio de registos de uma tabela base que s o estendidos m campos de tabelas referenciadas por chaves estrangeiras da tabela base tamb m chamadas lookup tables Diferentemente do que se passa no Designer 2000 em cada formul rio plano ou hier rquico s pode estar alterado um registo de cada vez Quando se elimina um registo num formul rio o Access pede confirma o e elimina imediatamente o s registo s correspondente s na base de dados Quando se insere ou altera um registo e se passa a outro registo o Access salva automaticamente o registo inserido ou alterado Este modo de funcionamento simplifica grandemente a valida o de dados mas limitativo em algumas aplica es Podem se definir facilmente controlos calculados isto controlos que mostram o resultado de uma express o em vez do valor dum dado armazenado Basta indicar a express o Os tipos mais importantes de controlos calculados s o e Controlos do n vel do registo com um valor vari vel de registo para registo cujo valor calculado em cada registo em fun o dos valores doutros controlos ou campos do formul rio no mesmo registo incluindo controlos e campos calculados e Controlos do n vel do formul rio com um nico valor para todo o formul rio cujo valor calculado por uma fun o de agrega o SUM MAX MIN etc aplicada a uma express o em campos ou contr
490. ultados anteriores facilmente se conclui que a complexidade temporal deste algoritmo O IVI log IVI IEI no pior caso 9 Integra o numa ferramenta de desenvolvimento de aplica es Neste cap tulo descreve se a integra o do motor de regras descrito no cap tulo anterior o SAGRES e de regras activas dirigidas pelos dados numa ferramenta integrada de desenvolvimento r pido e execu o de aplica es interactivas de bases de dados relacionais 0 SAGA As aplica es constru das com o SAGA s o constitu das essencialmente por vistas interactivas com regras activas As vistas s o as classes da aplica o controladas pelo motor de regras Algumas regras s o geradas automaticamente pela ferramenta a partir de propriedades de mais alto n vel das vistas e das tabelas da base de dados nelas referenciadas A parte de ac o dessas regras implementada por fun es em C codificadas na ferramenta por raz es de efici ncia O mecanismo de regras serve neste caso para automatizar a gest o de depend ncias dependency tracking Outras regras s o definidas pelo programador de aplica es numa linguagem de regras e comandos dispon vel para o efeito As regras deste tipo servem para especificar restri es de integridade dados derivados e comportamento reactivo em geral que n o pode ser especificado por propriedades de mais alto n vel das vistas O cap tulo termina com a apresenta o de algumas conclus es tiradas da experi n
491. uma regra candidata a execu o num dado passo do processamento de regras Ora conv m que o processamento de regras seja completamente determin stico para facilitar a programa o e teste Assim pode se seguir o seguinte crit rio final com menos for a do que todos os outros no caso de existirem v rias regras candidatas a execu o seleccionar a regra mais antiga isto criada h mais tempo 5 7 4 Minimizar o conjunto de vari veis de realimenta o Na presen a de regras com deriva es condicionais em vez de minimizar o conjunto de vari veis que s o usadas antes de serem calculadas por pelo menos uma regra como preconizado no crit rio 5 4 faz mais sentido minimizar o conjunto de vari veis ditas de realimenta o que s o usadas antes de serem calculadas por todas as regras capazes de o fazer Aqui usar e calcular deve ser entendido no sentido de fazer parte do conjunto de entradas e sa das respectivamente Como em geral existem regras com deriva es condicionais um crit rio de uso mais gen rico do que o crit rio 5 4 mas possivelmente com piores resultados no caso espec fico tratado na sec o 5 4 seleccionar ordena es totais com um conjunto m nimo de vari veis de realimenta o isto um conjunto m nimo de vari veis que fazem parte do conjunto de entradas de uma regra e fazem parte do conjunto de sa das da pr pria regra ou de pelo menos uma regra subsequente 5 7 5 Crit rios
492. unto de regras da figura 77 4 em que todas as vari veis de estado representam conjuntos Note se que express es do tipo x x U e x x corresponderiam numa linguagem pr tica procedimental invoca o de opera es de inser o e de elimina o A restri o imposta por r x x Uy que equivalente a y c x Esta restri o n o violada quando se inserem elementos em x ou quando se eliminam elementos de y Portanto a regra r n o deve ser activada por eventos de altera o de dados desses tipos A situa o semelhante no caso da regra ro A restri o imposta por r y y w que equivalente a y MN w Esta restri o n o violada quando se eliminam elementos de y ou de w Portanto a regra r n o deve ser activada por eventos de altera o de dados desses tipos A restri o imposta pela regra rg z a N b a qual pode ser violada por qualquer tipo de altera o de z a ou b Estas conclus es encontram se traduzidas no grafo r v anotado da figura 7 4 As anota es traduzem a forma como as vari veis de estado s o consultadas e actualizadas por cada regra 108 Refinamentos para o tratamento de dados complexos A partir do grafo rv anotado da figura 7 4 e atendendo ao facto de que todas as regras s o idempotentes obt m se o grafo de activa o refinado da figura 7 5 b Note se que se fosse seguido o crit rio de activa o b sico se obteria o grafo de activa o da figura 7
493. updates are e rules with mutually exclusive conditions like riz x 0 gt y z and ri X 0 gt y w e rules with identical actions like ris x lt 0 gt true and ris y lt 0 gt true abort rules e rules with cumulative actions like Fiz Z Z x and ri ELO Y e rules that act on different partitions of a state variable like rio Z ZU 1 and r2 Z z 2 assuming z is set valued Recursive rules are more powerful because mutually conflicting rules may be converted into mutually recursive rules 11 6 Triggering criteria In this section it is presented triggering criteria triggering and detriggering events for action only data driven rules needed for their translation into event action rules The primary purpose of the triggering criteria is to guarantee termination of rule processing after and only after a fixpoint for all the rules has been reached The secondary purpose is to avoid unnecessary rule executions as much as possible It is first presented a basic triggering criterion that only requires the knowledge of the input and output variables of each rule and several improvements are subsequently discussed 6 1 Basic triggering criterion Conservative triggering criterion for data driven rules may be defined based solely on the static knowledge of their input and output variables and on the dynamic monitoring of state variable modification events A modification event occurs when a variable
494. urrence of an event etc where rule execution is invoked is called a rule processing point RPP The precise localization of RPP s is not important here It is only assumed that during rule execution the rule set R does not change and user updates or other updates not produced by rules are not allowed Triggering criteria triggering events and ordering criteria rule priorities are developed next based on a preliminary analysis of the data dependencies existing between variables and rules 4 Data dependency analysis The sets of variables queried and updated by each rule constitute important information for rule processing and analysis The variables queried read by a rule r are called the input variables of r denoted i vars r The variables updated written by a rule r are called the output variables of r denoted o vars r They correspond to the variables with unprimed and primed references respectively in the abstract representation In a practical language they can be obtained by a simple syntactic analysis A global picture of the relationship between variables and rules is given by a rule variable data dependency graph RVDDG for short Due to obvious analogies it s used the notation of dataflow diagrams An example of a RVDDG is given in appendix A Since we assume that only the net effect of rules is important any input and output variables of a tule r that could be eliminated by rewriting the rule while preserving its ne
495. ut ii if H has a single gate then none of its edges is traversed by external cycles and consequently any vertex may be selected and either its incoming or its outgoing edges may be safely cut Proof i Let v be a single in gate The external cycles that traverse H will traverse an edge u v for some external vertex u Consequently they cannot also traverse an edge w v for any internal vertex w A similar reasoning applies to a single out gate ii Obvious since only the single gate is intersected by external cycles A Condition i is a special case of condition ii However condition ii enables the construction of any CPFES while condition i may not Corollary 7 1 single in gates or out gates Problem 1 may be solved with a positive answer in polynomial time O IVI IVIEI if every nested SCC in algorithm 1 has a single in gate or a single out gate Proof Combination of theorems 2 and 7 A Notice that for a given graph this may happen only for an appropriate choice of the first decomposing vertex and appropriate choices between single in gates and single out gates which are not known in advance The conditions stated in theorem 7 may not apply for a sub SCC of level n gt k in which case its edges traversed by external cycles have to be found Fortunately the following theorem shows that we only have to inspect the paths connecting the in gates and out gates of the SCC of level n and have not to return to the SCC s
496. v v2 Vm aS vari veis de estado j numeradas dessa forma Considere se um estado inicial qualquer Seja v a vari vel com n mero mais baixo que calculada por uma ou mais regras As vari veis de entrada das regras que actualizam v n o s o actualizadas por qualquer regra pelo que os valores atribu dos a v por essas regras assim como as condi es nas quais essas actualiza es ocorrem s o independentes da ordem de execu o das regras Se essas regras actualizam v com valores diferentes o processamento de regras n o termina seja qual for a sequ ncia de execu o das regras Se essas regras actualizam v com o mesmo valor ou n o actualizam com qualquer valor o valor final de v independente da sequ ncia de execu o das regras Passe se ent o vari vel com n mero seguinte que calculada por uma ou mais regras digamos vj De acordo com o crit rio 5 1 no caso dessas regras lerem v s s o executadas depois de v ter atingido um valor final que como vimos independente da sequ ncia de execu o das regras Em geral as regras que actualizam v s s o executadas depois das suas vari veis de entrada terem atingido valores finais os quais s o independentes da sequ ncia de execu o das regras desde que compat vel com o crit rio 5 1 Portanto a situa o semelhante das regras que actualizam v Se essas regras actualizam v com o mesmo valor ou n o actualizam com qualquer valor passa se
497. v lidos dos dados ou din micas restri es nas transi es de estado v lidas e c lculo autom tico de dados derivados materializados armazenados e manuten o autom tica de r plicas em bases de dados distribu das 2 Introdu o Nos SGBD s actuais sobretudo relacionais e objecto relacionais SM96 algumas restri es de integridade dados derivados e r plicas s o especificados de forma declarativa e existe um mecanismo gen rico gatilhos triggers ou regras activas para tratar os casos em que a especifica o declarativa n o poss vel ou satisfat ria Uma regra activa ou gatilho na sua forma mais geral um terno evento condi o ac o com o seguinte significado se o evento ocorrer avaliar a condi o e se esta for verdadeira executar a ac o automaticamente A comunica o entre a aplica o e o utilizador processa se por interm dio de um sistema de gest o do interface com o utilizador SGIU tal como o MS Windows ou o X Windows ou um sistema de mais alto n vel Dentro da aplica o podem se distinguir tr s tarefas principais e Gest o de dados nas vistas da aplica o Os dados visualizados numa vista da aplica o s o mantidos em mem ria tempor ria da aplica o em maior ou menor grau s o registo corrente todos os registos vis veis todos os registos seleccionados etc Assim uma das tarefas da aplica o a gest o destes dados inser o elimina o ou modif
498. v s de eventos compostos como o caso do sistema Ode conforme vimos na sec o 2 3 6 5 4 2 4 Optimizagoes din micas baseadas na monitoriza o de eventos de leitura e escrita Na pr tica pode se optimizar o crit rio de activa o b sico se forem monitorados os eventos de leitura consulta e escrita actualiza o de dados para al m dos eventos de altera o de dados dispensando at o conhecimento est tico das vari veis de entrada e de sa da de cada regra A ideia associar a cada regra conjuntos din micos de entradas e sa das que evoluem da seguinte forma e Inicialmente os conjuntos din micos de entradas e sa das est o vazios e Os conjuntos din micos de entradas e sa das s o esvaziados no in cio da execu o de cada regra e Uma vari vel x adicionada ao conjunto din mico de entradas de uma regra r quando ida durante a execu o de r mas s no caso de n o estar j no conjunto din micos de sa das de r i e ignoram se leituras depois de escritas e Uma vari vel y adicionada ao conjunto din mico de sa das de uma regra r quando escrita durante a execu o de r antes de tratar o poss vel evento de altera o Activa o das regras 59 e No caso de regras condicionais se a condi o for verdadeira o conjunto din mico de entradas esvaziado antes de executar a ac o O crit rio b sico ainda se aplica mas com base nos conjuntos din micos em vez dos conjuntos est t
499. v to E A In fact d is not rigorously the expected out degree per vertex because a probability d n is used instead of d n 1 remember that each vertex may have n 1 outgoing edges and because non strongly connected graphs are rejected For each number of vertices n from 4 to 28 1700 strongly connected graphs 100 for each value of d in the range 0 8 1 0 4 0 possibly with repetitions were generated according to the above algorithm and then processed by CPSORT Higher numbers of vertices above 28 where not tried because of the time spent by algorithm 3 and not because of CPSORT itself The performance results obtained are summarized in Fig 2 From Fig 2 we conclude that in experiment 1 the average execution time of CPSORT is approximately linear in the number of vertices Since in this experiment the expected number of edges per cycle is approximately proportional to the number of vertices approximately 0 8 4 0 2xn edges expected we can also conclude that in this experiment the average execution time of CPSORT is approximately linear in the size of the graph measured in number of vertices plus number of edges By 194 An algorithm to find feedback edge sets with on edge per cycle contrast the average number of cycles per graph as well as the time spent to count them using an algorithm similar to the one presented in 5 to generate all the cycles of a directed graph presented an exponential growth with the numb
500. ved rule analysis by means of triggering and activation graphs In Proc Rules in Database Systems Second International Workshop RIDS 95 pp 165 181 Athens Greece September 1995 G rard Huet Confluent Reductions Abstract Porperties and Applications to Term Rewriting Systems In Journal of the ACM Vol 27 No 4 October 1980 pp 797 821 J Faria Concep o de um sistema de regras activas para a manuten o de restri es de integridade e dados derivados em aplica es interactivas de bases de dados FEUP Porto Portugal September 1999 Ph D thesis to be submitted in portuguese J Faria and J Ranito SAGA Uma ferramenta interactiva para o desenvolvimento expedito e f cil manuten o de aplica es de bases de dados In Proc ENDIEL 91 ST2 Ind strias do Software e da Informa o pp 33 40 Lisboa Portugal June 1991 in portuguese N Paton and O Diaz Active Database Systems 1999 survey to be published in ACM Computing Surveys url http www cs man ac uk norm papers surveys ps N Gehani and H Jagadish Ode as an Active Database Constraints and Triggers In Proc of the 17 International Conference on Very large Data Bases pp 327 336 Barcelona September 1991 Data driven Active Rules for the Maintenance of Derived Data and 241 Integrity Constraints in User Interfaces to Databases Appendix A Example of a rule set and corresponding graphs a Rule set intended to illustrate several ty
501. veis direita relativos ao conjunto de regras das figuras 3 1 e 4 2 4 1 7 Grafo de depend ncias entre vari veis grafo v v Uma imagem global das depend ncias entre vari veis por via das regras que as manipulam dada por uma grafo de depend ncias entre vari veis designado abreviadamente grafo v v e definido da seguinte forma e As vari veis de estado s o os v rtices do grafo e Uma aresta x gt y em que x e y podem denotar a mesma vari vel significa que existe pelo menos uma regra r com vari vel de entrada x e vari vel de sa da y pode se dizer que y depende de x por interm dio da regra r Ver um exemplo na figura 4 4 4 1 8 Grafo de interfer ncias entre regras O grafo r r traduz interfer ncias entre regras do tipo escrita leitura mas n o interfer ncias do tipo escrita escrita que por vezes interessa considerar nomeadamente para a an lise de termina o e determinismo do processamento de regras Os v rios tipos de interfer ncias entre regras podem ser traduzidos por um grafo de interfer ncias entre regras definido da seguinte forma e As regras s o os v rtices do grafo e Uma aresta r gt r entre regras diferentes significa que r actualiza uma vari vel referenciada lida ou actualizada por r isto o vars r vars r e Um lacete r gt r significa que r actualiza uma vari vel tamb m lida por r isto io vars r Note se que este grafo id ntico ao grafo r
502. ver adiante As restri es numa tabela s o verificadas imediatamente nas linhas inseridas pelo comando NSERT e nas linhas actualizadas pelo comando UPDATE dependendo das colunas restringidas e das colunas actualizadas Se uma restri o for violada desfeto rolled back o comando SQL que causou a viola o e sinalizado um erro 2 3 1 2 Restri es de integridade referencial Uma restri o de integridade referencial especifica que determinadas colunas de uma tabela referenciante s podem tomar combina es de valores existentes em determinadas colunas de uma tabela referenciada A restri o de integridade referencial pode ser declarada na instru o CREATE TABLE da tabela referenciante com a seguinte sintaxe lt foreign key clause gt FOREIGN KEY lt referencing columns gt REFERENCES lt table name gt lt referenced columns gt lt foreign key actins gt lt foreign key action gt lt event gt lt action gt lt event gt ON UPDATE ON DELETE lt action gt CASCADE SET DEFAULT SET NULL NO ACTION Usa se a seguinte nota o opcional alternativa agrupamento Por omiss o as colunas referenciadas s o a chave prim ria da tabela referenciada A integridade referencial verificada no fim de cada instru o SQL capaz de a violar da seguin
503. verificadas Mesmo assim o tratamento de restri es de integridade gen ricas problem tico Uma abordagem mais flex vel mas igualmente dirigida por eventos ocorre na maioria dos SGBDA s onde dados derivados e restri es de integridade podem ser mantidos atrav s de regras activas ou gatilhos da forma evento ac o EA ou evento condi o ac o ECA conforme vimos no cap tulo 2 Nestes sistemas as restri es de integridade gen ricas mesmo em dados calculados s o mais facilmente suportadas devido exist ncia de mecanismos de rollback 3 1 2 Procura de abordagens dirigidas pelos dados As ferramentas de desenvolvimento de aplica es suportam especifica es declarativas de dados derivados seguindo um paradigma muito semelhante ao das folhas de c lculo No entanto n o disp em em geral da flexibilidade necess ria para suportar a maioria dos tipos de deriva es e restri es acima mencionados Algumas ferramentas de constru o de interfaces gr ficos para o utilizador utilizam um paradigma de alto n vel satisfa o de restri es pelo modelo perturbacional que poderia ser usado para suportar de forma elegante algumas das caracter sticas acima mencionadas especialmente restri es multi via SMBB93 No entanto os tipos de rela es entre os dados que s o suportados s o limitados lineares e pouco mais No mbito dos SGBDA s para evitar as desvantagens de uma abordagem puramente dirigida por
504. versa Note se ainda que nem todas as opera es nas vistas podem ser desfeitas caso de close por exemplo por raz es de efici ncia e facilidade de implementa o 9 2 8 Classes e atributos Cada vista registada como classe da aplica o no motor de regras Os campos globais e par metros de cada vista s o registados como atributos globais porque s se admite uma inst ncia aberta de cada tipo de vista Os campos intra registo s o registados como atributos intra objecto Para cada campo c s o tamb m registados atributos c gt locked e c gt mandat com a mesma granularidade do campo para possibilitar o controlo atrav s de regras das restri es locked e mandatory referidas na sec o 9 2 5 Os atributos que armazenam os identificadores dos registos acedidos da base de dados ver sec o 9 2 2 s o tamb m registados com a granularidade apropriada Estes atributos s o usados nas regras geradas automaticamente Adicionalmente para efeito de activa o e ordena o de algumas regras s o criados os seguintes atributos globais em cada vista Atributo Significado record set Designa o conjunto de identificadores internos dos registos existentes sem incluir os registos marcados como eliminados record current Designa o identificador interno do registo corrente 9 2 9 Pontos de processamento de regras Os dois quadros seguintes descrevem os pontos de processamento de regras PPR s mais importan
505. xecu o das regras Demonstra o Sejam e e ez dois v rtices consecutivos de um ciclo C do grafo de execu o parametrizado Uma vez que se sup e que as express es de e e ez n o s o equivalentes existe pelo menos um estado inicial concreto s tal que no grafo de execu o instanciado para s os v rtices e e2 n o s o condensados num nico v rtice Mesmo que todos os outros pares de v rtices de C se reduzam ao mesmo v rtice no grafo de execu o instanciado para s continua a existir um ciclo contendo e e e2 Por conseguinte o processamento de regras n o termina para esse estado inicial e pelo menos uma ordem de execu o das regras A Lema 6 8 Um conjunto R de regras determin stico em sentido fraco se e s se o respectivo grafo de execu o parametrizado tem no m ximo um estado final Demonstra o Suponhamos que o grafo de execu o parametrizado tem dois estados parametrizados finais e e ez Uma vez que se sup e que as express es de eje ez n o s o equivalentes existe pelo menos um estado inicial concreto s tal que no grafo de execu o instanciado para s os v rtices e ez n o s o condensados num nico v rtice Por outro lado os estados parametrizados finais do grafo de execu o parametrizado correspondem a estados finais em qualquer grafo de execu o instanciado Portanto no grafo de execu o instanciado para s existem dois estados finais diferentes que podem ser atingidos a partir de s
506. xp tiver o valor nulo ou um valor n o nulo diferente de O d o valor de exp2 no caso contr rio expl amp amp exp D o valor de exp1 sem que exp2 seja avaliado se exp1 tiver o valor O ou nulo d o valor de exp2 no caso contr rio lexp D o valor nulo O ou 1 conforme o valor de exp seja nulo diferente de O ou 0 respectivamente expi exp2 exp5 D o valor nulo sem que exp2 ou exp3 sejam avaliados o valor de exp2 sem que exp3 seja avaliado ou o valor de exp3 sem que exp2 seja avaliado conforme o valor de exp1 seja nulo diferente de O ou 0 respectivamente if expl then exp2 Mesmo que anterior a menos da preced ncia else exp3 if expl then exp2 Mesmo que expi exp2 a menos da preced ncia 3 O autor prefere a designa o de valor vazio em vez de valor nulo mas a segunda designa o j est consagrada No interface para o utilizador o valor nulo apresentado da mesma maneira do que a string vazia pelo que muito discut vel a distin o interna entre valor nulo e string vazia 168 Integra o numa ferramenta de desenvolvimento de aplica es O operador ler semelhante a usado para testar se a string do lado esquerdo obedece ao padr o com meta caracteres do lado direito O operador a nega o de O operador concatena strings om O operador o operador de atribui o Tal como em C a express o vari vel express o tem como efeito later
Download Pdf Manuals
Related Search
Related Contents
Manual do Usuário Nokia 6110 Navigator User`s Manual - MyNikon.com.pl Aquastop 120 日本語取扱説明書 8月1日号(PDF:2528KB) Vanne de régulation de débit à 2 orifices Electronique numérique Sony DVP-CX875P DVD Player Macro-8014取扱説明書(日本語版) Manual del usuario Copyright © All rights reserved.
Failed to retrieve file