31

O conte - ic.unicamp.br

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O conte - ic.unicamp.br

O conte�udo do presente relat�orio �e de �unica responsabilidade do(s) autor(es).(The contents of this report are the sole responsibility of the author(s).)Incorpora�c~ao do Tempo em um SGBDOrientado a ObjetosAngelo Roncalli Alencar BraynerClaudia Bauzer MedeirosRelat�orio T�ecnico DCC{94-02Abril de 1994

Page 2: O conte - ic.unicamp.br

Incorpora�c~ao do Tempo em um SGBD Orientadoa ObjetosAngelo Roncalli Alencar BraynerClaudia Bauzer Medeiros�Sum�arioEste artigo descreve a Camada de Gerenciamento Temporal,um subsistema de gerenciamento temporal implementado para obanco de dados orientado a objetos O2. Este subsistema permitea de�ni�c~ao de esquemas temporais e a manipula�c~ao (consultas eatualiza�c~oes) de objetos nesses esquemas. Estes comandos s~aotraduzidos pelo subsistema em programas e consultas executadospelo banco de dados subjacente. O trabalho apresentado contribuipara a discuss~ao sobre a implementa�c~ao de sistemas temporais ori-entados a objetos, pouco explorado na literatura.1 Introdu�c~aoH�a v�arios anos vem sendo realizadas pesquisas ligadas �a incorpora�c~ao dotempo a sistemas de bancos de dados. Uma revis~ao bibliogr�a�ca recente[Soo91] permite veri�car a atividade de pesquisa na �area, com cerca de300 trabalhos citados, todos publicados nos �ultimos anos. A maioriadestes trabalhos limita-se a incorporar facilidades temporais a bancos dedados relacionais. O primeiro trabalho mais abrangente que trata dotempo em bancos de dados orientados a objetos data de 1991 [SC91].�Departamento de Ciencia da Computa�c~ao, Universidade Estadual de Campinas,13081-970 Campinas, SP 1

Page 3: O conte - ic.unicamp.br

Desde ent~ao, poucos trabalhos foram realizados neste contexto, devido adois fatores principais:� as di�culdades introduzidas pelo tratamento de dimens~oes tem-porais, tanto do ponto de vista de modelagem quanto de imple-menta�c~ao, mesmo se limitado a sistemas relacionais. Em sistemasorientados a objetos, tais di�culdades s~ao acrescidas pela introdu�c~aode heran�ca e composi�c~ao, que permitem combina�c~oes arbitr�arias deobjetos e suas propriedades;� a pequena propor�c~ao de sistemas orientados a objetos existentesno mercado, aliada �a n~ao padroniza�c~ao do conceito de objetos.Com isto, torna-se mais dif��cil realizar um trabalho de tratamentotemporal em sistemas orientados a objetos.Este trabalho apresenta uma contribui�c~ao para o desenvolvimentodas pesquisas nesta �area. A contribui�c~ao consiste na descri�c~ao da im-plementa�c~ao de um sistema de gerenciamento de tempo para um bancode dados orientados a objetos a partir do modelo toodm proposto por[Lin93]. Este sistema, a Camada de Gerenciamento Temporal, foi imple-mentado sobre o sistema O2 [dddO91] e permite a de�ni�c~ao e o geren-ciamento de dados temporais, bem como o processamento de consultastemporais neste banco de dados.As principais contribui�c~oes deste trabalho s~ao portanto as seguintes:� incorpora�c~ao de um sistema de gerenciamento e consultas de dadostemporais a um sgbd orientado a objetos.� descri�c~ao da implementa�c~ao realizada, identi�cando problemas e-xistentes.O restante do texto est�a organizado da seguinte forma. A se�c~ao2 apresenta uma revis~ao bibliogr�a�ca da pesquisa e implementa�c~ao embancos de dados temporais, evidenciando a quase inexistencia de trabal-hos relativos a orienta�c~ao a objetos. A se�c~ao 3 descreve as principaispropriedades e caracter��sticas do modelo toodm e da linguagem tool.2

Page 4: O conte - ic.unicamp.br

A se�c~ao 4 apresenta a Camada de Gerenciamento Temporal, respons�avelpela interface entre o usu�ario e o sgbd e descreve como �e realizado ogerenciamento temporal de objetos. A se�c~ao 5 descreve o processamentode consultas realizado pela Camada. A se�c~ao 6 descreve as estruturasde dados implementadas e apresenta exemplos do mapeamento realizadopela Camada entre comandos do usu�ario e comandos em O2. Finalmente,a se�c~ao 7 apresenta conclus~oes e extens~oes.2 Bancos de Dados TemporaisSistemas temporais tem sido propostos nos mais diversos contextos, comopor exemplo, em automa�c~ao de escrit�orios [Ede94] ou em sistema de su-porte �a decis~ao. Este trabalho se ocupa exclusivamente da incorpora�c~aode tempo em bancos de dados, sem se preocupar com as aplica�c~oes quemanipular~ao o banco.2.1 Representa�c~ao Temporal de DadosAs propostas de incorpora�c~ao de tempo em bancos de dados utilizarambasicamente as seguintes abordagens: (i) introduzir o conceito de tempona semantica de um modelo de dados; ou (ii) introduzir, em um modelode dados qualquer, atributos que representem as dimens~oes temporais.Na primeira abordagem, torna-se necess�aria a especi�ca�c~ao de umal�ogica para formalizar a semantica temporal [CW83]. Na segunda abor-dagem, �e necess�ario apenas de�nir fun�c~oes para mapear opera�c~oes tem-porais em opera�c~oes b�asicas do modelo. Esta segunda abordagem temsido a mais utilizada.A maioria dos modelos temporais limita-se a incorporar o contextotemporal no modelo relacional. O n�umero de propostas que incorporamo conceito de tempo no modelo orientado a objetos �e reduzido.Pode-se caracterizar as propostas de modelos temporais de dadosatrav�es dos seguintes fatores:Modelo de Dados Suporte : Nas propostas de modelos de dadostemporais apresentadas em [S. 79, SA85a, SA85b, Tan86, TA86,3

Page 5: O conte - ic.unicamp.br

Ari86, NA87, NA89, Sad87, Gad88], o modelo relacional �e es-tendido para incorporar o contexto temporal. A incorpora�c~ao detempo no modelo orientado a objetos �e proposta em [WD92, Wol92,Lin93]. Em [EW90] a incorpora�c~ao de tempo �e feita sobre o modeloEER (Enhanced Entity-Relationship);N�umero de Dimens~oes Temporais : Existem modelos que incorpo-ram apenas uma dimens~ao temporal, na maioria das vezes a di-mens~ao Tempo V�alido como em [S. 79, EW90, Tan86, Sad87]. Ou-tros modelos representam a evolu�c~ao temporal de dados em duasdimens~oes temporais, Tempo de Transa�c~ao e Tempo V�alido [SA85a,NA87, WD92, Wol92, Lin93]. H�a ainda modelos que prop~oemum n�umero um n�umero in�nito de dimens~oes temporais [Ari86,Gad88];N��vel de incorpora�c~ao do Tempo : As dimens~oes temporais podemser incorporadas em dois n��veis: n��vel de um objeto do mundoreal (o que corresponde a tupla no modelo relacional, entidade nomodelo ER e objeto no modelo orientado a objetos) [S. 79, SA85a,Ari86, Wol92]; ou n��vel de atributos de um objeto (o que corres-ponde a atributos nos modelos relacional e ER e componentes deum objeto no modelo orientado a objetos) [Tan86, NA87, Gad88,EW90, WD92, Lin93].2.2 Consultas TemporaisAs linguagens de consulta e �algebras temporais propostas introduzem, narealidade, extens~oes �as opera�c~oes b�asicas dos modelos de dados suporte.A maioria das propostas introduz as opera�c~oes de Sele�c~ao Tempo-ral e Proje�c~ao Temporal. A opera�c~ao de sele�c~ao temporal retorna dadosem fun�c~ao de um predicado temporal. Por exemplo, a linguagem tool[Lin93] introduz as cl�ausulas TSlice e VSlice para processar opera�c~oesde sele�c~ao temporal sobre os eixos temporais Tempo-de-Transa�c~ao eTempo-V�alido, respectivamente. A linguagem TQUel [Sno87] introduz4

Page 6: O conte - ic.unicamp.br

as cl�ausulas When para operar sobre o eixo Tempo-V�alido e As-of paraoperar sobre o eixo Tempo-de-Transa�c~ao.A opera�c~ao de proje�c~ao temporal retorna valores de tempo. Estesvalores s~ao representados atrav�es de atributos espec���cos. Na linguagemtool implementada neste trabalho, opera�c~oes de proje�c~ao temporal s~aorealizadas atrav�es das cl�ausulas TWhen e VWhen que retornam valoresde Tempo de Transa�c~ao e de Tempo V�alido, respectivamente.Os predicados temporais s~ao especi�cados atrav�es de construtorese operadores temporais. Os operadores temporais (operadores que re-tornam um valor booleano) mais comuns s~ao: Before, After, Overlap,During. Estes construtores s~ao propostos em [Sno87, Ari86, Gad88,Wol92, Lin93]. Os construtores temporais (operadores que retornam val-ores de tempo) propostos na maioria das linguagens de consultas tem-porais [Sno87, Gad88, EW90, Lin93] s~ao: Last Instant, Last Interval,First Instant, First Interval, Adjacent.Independente do modelo de dados e da linguagem de consulta, oprocessamento de consultas temporais apresenta o seguinte conjunto deproblemas:� O volume de dados armazenados em um BDT �e de uma ordem degrandeza bastante superior ao volume de dados de um BD conven-cional. Isto implica que novos m�etodos de indexa�c~ao (estruturas ealgoritmos de busca) devem ser desenvolvidos;� Os m�etodos tradicionais de indexa�c~ao s�o podem ser utilizados paravalores sobre os quais pode ser executado algum tipo de ordena�c~ao.Valores do tipo intervalo n~ao suportam ordena�c~ao completa. Torna-se necess�ario o desenvolvimento de novas estruturas de acesso paraintervalos (por exemplo, a estrutura de acesso �Indice Temporal pro-posta por [DW92]);� Manipula�c~ao de informa�c~oes incompletas:{ Valores de objetos desconhecidos ou inexistentes. Em certoscasos, incertezas quanto �a existencia de um objeto em certospontos no tempo; 5

Page 7: O conte - ic.unicamp.br

{ Indetermina�c~ao temporal.3 O Modelo TOODMO toodm �e uma extens~ao ao modelo de dados orientado a objetos, in-troduzindo, neste modelo, as dimens~oes temporais Tempo de Transa�c~aoe Tempo V�alido. Estas dimens~oes temporais est~ao representadas atrav�esde atributos impl��citos. O modelo toodm apresenta tres tipos de obje-tos:� objetos do tipo time: objetos utilizados para representar as di-mens~oes temporais;� objetos invariantes no tempo: objetos que n~ao s~ao compostos pornenhum objeto do tipo time;� objetos variantes no tempo: objetos complexos compostos por pelomenos um objeto do tipo time.Segundo [Lin93], categoria temporal de uma classe �e a classi�ca�c~aodesta quanto ao n�umero de dimens~oes temporais incorporadas a seusobjetos. Assim, podem existir quatro tipos de categoria temporal emum banco de dados: classes Instantaneas, classes Tempo-de-Transa�c~ao,classes Tempo-V�alido e classes Bitemporais.Os relacionamentos entre objetos s~ao representados no modelo orien-tado a objetos atrav�es dos grafos de heran�ca e composi�c~ao. As pro-priedades de heran�ca e composi�c~ao podem gerar con itos durante aevolu�c~ao de esquemas. Ao se incorporar o contexto temporal em umbanco de dados orientado a objetos, o n�umero destes con itos podecrescer como decorrencia do que denominamos de con itos temporais. Otoodm apresenta heur��sticas que tentam resolver os con itos temporais.O processo de execu�c~ao destas heur��sticas �e denominado de temporal-iza�c~ao [Lin93]. Este processo deve ser executado durante a evolu�c~ao deesquemas (cria�c~ao e altera�c~ao).O processo de temporaliza�c~ao �e composto de duas fases: resolu�c~aode con itos temporais pelo grafo de heran�ca e pelo grafo de composi�c~ao.6

Page 8: O conte - ic.unicamp.br

Para de�nir o processo de temporaliza�c~ao foi proposta uma propriedadetemporal para os grafos de heran�ca e de composi�c~ao. Denominamosesta propriedade como invariante temporal dos grafos de heran�ca e decomposi�c~ao (o conceito de invariantes no modelo orientado a objetos �ede�nido em [Jay87]). A invariante garante que uma classe deve manterno m��nimo as dimens~oes temporais incorporadas por suas antecessoras.Para consultar o toodm, [Lin93] propos a linguagem tool. Estalinguagem permite consultas que retornam:� valores de tempo (objetos do tipo time);� valores invariantes no tempo;� objetos, classes ou estados temporais.Consultas que retornam valores de tempo correspondem �as opera�c~oesde VWhen (para Tempo V�alido) e TWhen (para Tempo de Transa�c~ao).Consultas que retornam objetos, classes ou estados temporais referem-sea opera�c~oes de sele�c~ao temporal (TSlice, VSlice). A linguagem permitecombinar arbitrariamente estas opera�c~oes.O processador de consultas descrito neste trabalho implementou estasopera�c~oes atrav�es de uma interface interativa.4 A Camada de Gerenciamento TemporalA incorpora�c~ao do tempo a bancos de dados se faz de duas maneiras:modi�cando o sgbd ou criando uma interface entre o sgbd e o usu�ario.O trabalho desenvolvido segue esta segunda linha, por impossibili-dade de modi�car o sgbd utilizado. Desta forma, a incorpora�c~ao dotempo foi implementada atrav�es da cria�c~ao da Camada de Gerencia-mento Temporal, que se comporta como uma interface entre o usu�arioe o sgbdoo O2. Sua fun�c~ao b�asica �e suprir o O2 com uma plataformatemporal.O princ��pio b�asico de funcionamento da Camada de GerenciamentoTemporal �e o de aliar as fun�c~oes b�asicas de gerenciamento temporal �as7

Page 9: O conte - ic.unicamp.br

fun�c~oes de evolu�c~ao de esquema e de gerenciamento de objetos apresen-tadas pelo O2. Assim, especi�ca�c~oes de opera�c~oes no toodm e na tools~ao mapeadas em comandos O2.Para representar a incorpora�c~ao do contexto temporal em um sgbd,o modelo toodm pressup~oe a existencia pr�evia de um modelo de da-dos e de uma linguagem de consulta neste sgbd. Com base nesta pre-missa, o mapeamento de opera�c~oes temporais solicitadas pelo usu�arioem comandos pertencentes �a sintaxe O2 �e principal tarefa da Camada deGerenciamento Temporal.Este mapeamento pode gerar comandos que podem ser agrupadosem tres conjuntos distintos de comandos O2. Estes conjuntos s~ao osseguintes:Comandos de manipula�c~ao de esquema: tem a fun�c~ao de de�niresquemas, bases, classes, aplica�c~oes, programas, fun�c~oes em�etodos;Instru�c~oes imperativas: s~ao utilizadas para codi�car programas,m�etodos, fun�c~oes e trechos de c�odigos. A principal fun�c~ao das in-stru�c~oes imperativas �e alterar objetos e valores;Comandos de consulta: tem a fun�c~ao de recuperar objetos e valoresno BD;Atrav�es destes mapeamentos, a Camada de Gerenciamento Temporalinterage indiretamente com dois componentes da arquitetura do O2: ogerenciador de esquema e o gerenciador de objetos.A �gura 1 ilustra o processo de intera�c~ao da Camada de Gerencia-mento Temporal com o usu�ario e com o O2. A representa�c~ao do O2 foifeita atrav�es de sua arquitetura funcional (composta das tres camadasespeci�cadas na �gura 1) [dddO91].Durante o processamento de mapeamento dos comandos do usu�arioem comandos O2, a Camada de Gerenciamento Temporal precisa garan-tir:1. a manuten�c~ao da semantica das especi�ca�c~oes do usu�ario (por ex-emplo, garantir que, em uma consulta especi�cada pelo o usu�ario,os comandos O2 gerados corespondam �a execu�c~ao da solicita�c~ao);8

Page 10: O conte - ic.unicamp.br

........................................................................................................................................................................ ....................................................................................

Camada deGerenciamentoTemporal de esquemaComandos de consultaem comandos O2Comandos de manipula�c~ao O2Gerenciador de ObjetosGerenciador de ArquivosGerenciador de EsquemaUsuario

Instru�c~oes imperativasSolicita�c~aoSolicita�c~ao mapeada

Figura 1: Processo de intera�c~ao da Camada de Gerenciamento Temporalcom o usu�ario e o O2 9

Page 11: O conte - ic.unicamp.br

2. as restri�c~oes de integridade temporal do modelo toodm (por exem-plo, garantir que uma classe Bitemporal n~ao possa ser declaradacomo superclasse de uma classe Instantanea);3. a gera�c~ao de comandos O2 sintaticamente corretos.Atrav�es da Camada de Gerenciamento Temporal �e poss��vel manipularqualquer objeto do modelo de dados do O2 dentro do plano temporal.Em outras palavras, �e poss��vel criar, alterar e remover esquemas, basese classes de um banco de dados O2.5 Gerenciador de ConsultasO Gerenciador de Consultas Temporais �e um m�odulo da Camada deGerenciamento Temporal que traduz consultas tool em consultas O2,processadas pelo O2query (processador de consultas apresentado peloO2).O Gerenciador de Consultas permite as seguintes opera�c~oes:� Consultas que operam sobre o eixo Tempo-de-Transa�c~ao. Muitosautores denominam este tipo de consultas como opera�c~ao de Roll-back. Estas consultas retornam valores de tempo ou objetos, de-pendendo da cl�ausula temporal a ser utilizada;� Consultas que operam sobre o eixo Tempo-V�alido. Este tipo deconsulta tamb�em �e denominada Hist�orica. Estas consultas retor-nam valores de tempo ou objetos;� Consultas atemporaisO princ��pio b�asico de funcionamento do Gerenciador de Consultas �eo seguinte: atrav�es de janelas, o gerenciador solicita ao usu�ario a especi-�ca�c~ao de parametros necess�arios �a constru�c~ao de uma consulta tem-poral. Com base nestes parametros, o Gerenciador de Consultas faz omapeamento da consulta temporal em uma consulta da sintaxe O2SQL.Ap�os isto, submete a consulta ao processador de consultas do O2.10

Page 12: O conte - ic.unicamp.br

Os parametros de consulta necess�arios �a formula�c~ao de uma consultatemporal s~ao os seguintes:� Nome da classe a ser consultada (Obrigat�orio);� Nome da extens~ao da classe a ser consultada (Obrigat�orio);� Cl�ausula Temporal a ser utilizada - TWhen, VWhen, TSlice, VS-lice, Atemp1 (Obrigat�orio);� Predicado atemporal (Opcional);� Predicado temporal (Opcional);� Operadores temporais (Opcional) (por exemplo, Before, After);� Construtores temporais (Opcional) (por exemplo, Min interval).O parametro predicado atemporal tem a fun�c~ao de selecionar um sub-conjunto de objetos da extens~ao da classe a ser consultada. Por exem-plo, um usu�ario deseja aplicar uma consulta temporal aos funcion�ariosde sobrenome \Vitorino". Para formular esta consulta, o usu�ario deveespeci�car um predicado em sintaxe O2SQL para restringir a consulta aosubconjunto de funcion�arios de sobrenome \Vitorino". Caso o usu�arion~ao especi�que nenhum predicado atemporal, o conjunto de objetos aoqual ser�a aplicada a consulta temporal corresponder�a �a extens~ao da classea ser consultada.O parametro predicado temporal tem a fun�c~ao de restringir o inter-valo de tempo a ser consultado. Por exemplo, um usu�ario pode desejaraplicar uma consulta temporal a um conjunto de funcion�arios quandoestes ganhavam um sal�ario maior que US$ 1,200. Para formular estaconsulta, �e necess�ario que o usu�ario especi�que um predicado para re-stringir o intervalo de tempo sobre o qual ser�a aplicado a consulta parao intervalo correspondente ao per��odo no qual cada funcion�ario recebiasal�ario maior que 1,200.1Esta op�c~ao refere-se �a aplica�c~ao de consultas n~ao temporais, caracterizadas pelaausencia de cl�ausulas temporais. 11

Page 13: O conte - ic.unicamp.br

O trabalho descrito em [ea93] prop~oe um conjunto b�asico de consul-tas que um sgbd temporal deve poder prover. Esta proposta de bench-mark foi realizada para sistemas temporais relacionais. No entanto, omesmo tipo de consulta pode ser de�nido em sistemas orientados a ob-jetos. A Camada de Gerenciamento Temporal permite executar todas asconsultas especi�cadas neste benchmark, al�em de v�arios outros tipos deconsulta n~ao contemplados. Assim sendo, o sistema implementado n~aoapenas satisfaz estes requisitos, mas prove uma maior exibilidade emtermos de navega�c~ao temporal.Atrav�es do Gerenciador de Consultas proposto, conseguiu-se efetuarconsultas do tipo:� Qual o funcion�ario que permaneceu o maior per��odo sem receberaumentos de sal�ario ?� Quando foi o �ultimo aumento de sal�ario para cada funcion�arioantes de 10/11/1992 ?� Quando foi o primeiro aumento de sal�ario ap�os 25/12/1991 ?� Listar o hist�orico salarial dos funcion�ario lotados no departamentoDCC ap�os 15/03/90;� A partir de quando e quais foram os funcion�arios tem sal�ariosmaior que US$ 1,500 ?� Quando os objetos de sobrenome \Vitorino" foram inclu��dos noBD ?6 Tempo: armazenamento e representa�c~ao emBDOONesta se�c~ao s~ao apresentadas as estruturas propostas para armazenartempo em Bancos de Dados Orientados a Objetos, dando-se enfase �aimplementa�c~ao destas estruturas no O2. �E apresentado tamb�em como oconceito de Tempo est�a representado nestas estruturas.12

Page 14: O conte - ic.unicamp.br

6.1 Estruturas para incorporar o Plano Temporal em umBDOOA Camada de Gerenciamento Temporal manipula objetos O2 estendidoscom estruturas espec���cas que permitem gerenciamento temporal. Estasestruturas foram de�nidas de forma a garantir a e�ciencia na navega�c~aode tempo dando suporte a todas as opera�c~oes especi�cadas no toodm.A inclus~ao das dimens~oes temporais em objetos foi feita com base emdois parametros: tipo de construtor utilizado e n��vel de encapsulamentodo objeto.� Tipo de Construtor. A incorpora�c~ao de dimens~oes temporaisTempo de Transa�c~ao e Tempo V�alido a objetos depende do tipode construtor utilizado na de�ni�c~ao destes objetos. As duas di-mens~oes podem ser associadas a objetos de�nidos pelo construtortuple. Para objetos de�nidos pelos construtores set ou list, �eassociada somente a dimens~ao Tempo de Transa�c~ao. A justi�ca-tiva para a utiliza�c~ao desta estrat�egia �e de ordem pr�atica, pois n~aoidenti�camos um �unico tipo de aplica�c~ao que necessitaria controlara dimens~ao temporal Tempo V�alido para conjuntos de objetos;� N��vel de Encapsulamento. Para o n��vel mais externo de um ob-jeto complexo, foi incorporada somente uma dimens~ao temporal,dependendo do construtor utilizado. Por exemplo, se for utilizadoo construtor tuple para de�nir o n��vel mais externo de um objeto,ent~ao ser�a incorporada a dimens~ao Tempo V�alido neste n��vel. Casoseja utilizado o construtor set ou list, a dimens~ao a ser incorpo-rada ser�a Tempo de Transa�c~ao. Em n��vel de componentes de umobjeto (ou seja, em n��vel de atributos) podem ser associadas asduas dimens~oes temporais, conforme a regra anterior. A de�ni�c~aodesta estrat�egia se deve aos seguintes fatores:(i) Permite redu�c~ao na replica�c~ao de dados, j�a que n~ao se ar-mazenar�a os estados de um objeto, mas sim, de seus atributos(componentes); 13

Page 15: O conte - ic.unicamp.br

(ii) Permite recuperar um estado qualquer de um objeto a partirde uma opera�c~ao de uni~ao dos valores dos atributos desteobjeto para o dado estado.Assim, um objeto de tipo set(tuple(x:set(integer), y:tuple(z:string)))poder�a ter os seguintes eixos temporais associados: tt, ao n��vel maisexterno (set); tt e tv ao n��vel de tuple; tt ao componente x da tupla;e tt e tv ao componente y da tupla.A representa�c~ao da evolu�c~ao temporal de um objeto ao longo de um�unico eixo, Tempo-V�alido ou Tempo-de-Transa�c~ao, utiliza a estruturade listas encadeadas. Cada elemento da lista �e uma tupla, do tipo:<valor, valor tempo> onde valor �e um ponteiro para um objeto (OID)ou um valor atomico, e valor tempo �e um valor de tempo no eixo tem-poral que est�a sendo representado. Este valor de tempo pode ser umn�umero real (para representar valores no eixo Tempo-de-Transa�c~ao) ouum intervalo (caso o eixo representado seja Tempo-V�alido).Para incorporar as duas dimens~oes temporais simultaneamente (ob-jetos bitemporais), efetua-se o aninhamento da lista de tv dentro da listade tt. Com este aninhamento, a incorpora�c~ao das duas dimens~oes tem-porais ocorre da seguinte forma: cada estado de um atributo no BD�e acompanhado do hist�orico deste atributo no mundo real. No n��velmais externo de objeto a estrutura se mantem inalterada, pois nesten��vel h�a a incorpora�c~ao de apenas uma dimens~ao temporal. Em n��velde atributo h�a a seguinte altera�c~ao: para cada elemento da lista querepresenta a dimens~ao Tempo de Transa�c~ao, �e embutida a lista que re-presenta a dimens~ao Tempo V�alido no lugar do atributo valor da tupla<valor, valor tempo>.A seguir, �e apresentada uma sequencia de �guras que ilustra a incor-pora�c~ao do contexto temporal em um objeto atrav�es destas estruturas.Para facilitar o entendimento, os valores para a dimens~ao Tempo V�alidorepresentam a quantidade de segundos ap�os a marca de tempo utilizadacomo origem do eixo Tempo-V�alido. Os valores para a dimens~ao Tempo-de-Transa�c~ao foram expressos em valores simb�olicos para destacar a or-togonalidade dos dois eixos temporais.14

Page 16: O conte - ic.unicamp.br

Considere que os seguintes eventos ocorreram na sequenciacronol�ogica (no eixo Tempo-de-Transa�c~ao) em que s~ao apresentados na�gura 2:1. em um instante TT1, um objeto, o Objeto 1, �e inclu��do na classeBitemporal C. Este objeto come�ca a existir no mundo real um se-gundo ap�os a marca de tempo de�nida como origem para o eixoTempo-V�alido. O objeto Objeto 1 �e composto pelos atributos tem-porais atributo-1 (atomico) e atributo-2 (n~ao atomico, ou seja, �eum objeto pertencente a uma outra classe qualquer), e pelo atri-buto hist�orico (lista encadeada gerida pela Camada de Gerencia-mento Temporal representando a evolu�c~ao temporal do objeto noeixo Tempo-V�alido). Neste mesmo instante TT1 s~ao atribu��dosvalores aos atributos atributo-1 e atributo-2. O valor atribu��do aatributo-1 passa a ser v�alido no momento em que se inicia a va-lidade do objeto Objeto 1 no mundo real. O valor atribu��do paraatributo-2 s�o come�ca a ser v�alido dois segundos ap�os a origem doeixo Tempo-V�alido (considerando que o objeto correspondente aOID1 j�a �e v�alido neste instante). O s��mbolo OID no hist�orico doatributo-2 signi�ca a presen�ca de um ponteiro que aponta para oobjeto de�nido como valor para este atributo;2. em um instante TT2, o valor do atributo-1 �e alterado de valor-1para valor-2. Seu per��odo de validade no mundo real inicia-se doissegundos ap�os a origem do eixo Tempo-V�alido. Com isso, �e inseridoum novo estado na lista de estados de atributo-1, o estado TT2. Nalista de hist�orico do mundo real deste atributo �e inserido tamb�emum novo elemento que representa o per��odo de validade (o intervalo[2,1)) deste novo valor.6.2 O Armazenamento do Contexto Temporal no O2As estruturas para armazenar a evolu�c~ao temporal de objetos nos eixosTempo-de-Transa�c~ao e Tempo-V�alido foram implementadas a partir dosconstrutores de tipos list e tuple existentes no O2. Estes construtores15

Page 17: O conte - ic.unicamp.br

........................................................ .................................................................................... ........................................................ ............................ ............................ .................................................................................... ............................atributo-1atributo-2historico [1,1)TT1Objeto 1 atributo-1atributo-2 [1,1)historico [1,1)TT1Objeto 1

TT1 OID1[2,1) TT2valor-1[1,1) valor-1 valor-2TT1 valor-1[1,1) [2,1)[1,2)OID1(2)(1)Figura 2: Os estados de Objeto 1 nos instantes TT1 e TT2.

16

Page 18: O conte - ic.unicamp.br

foram utilizados por serem a forma mais e�ciente para reduzir espa�co dearmazenamento e tempo de consulta, pois s~ao otimizados internamentepelo O2. A seguir, s~ao apresentadas estas implementa�c~oes para cada tipode classe temporal.Classe Bitemporal. Esta �e a mais gen�erica no plano temporal, j�a queapresenta as duas dimens~oes temporais poss��veis.Para implementar a estrutura que armazena o hist�orico de objetos dotipo tuple, a Camada de Gerenciamento Temporal especi�ca automati-camente o atributo <historico objeto>, cuja de�ni�c~ao �e a seguinte:historico objeto: list( tuple( inicio tv: real,�m tv : real))A implementa�c~ao da estrutura que armazena os estados de objetosdo tipo set, unique set, list apresenta a seguinte de�ni�c~ao:list(tuple( valor: <tipo-especi�cado-usu�ario>,tt set list: real))Dependendo do tipo de um atributo temporal, foram de�nidas difer-entes estrat�egias para implementar a estrutura que armazena sua evolu�c~aoem cada eixo temporal. Existem estrat�egias distintas para os seguintestipos de atributos:� (i) um tipo primitivo do O2 (integer, real, string, char, boolean);� (ii) um tipo complexo (atributos que correspondem a objetos com-plexos).Todos atributos s~ao implementados com a seguinte de�ni�c~ao:nome atributo: list(tuple( tt nome atributo: real,historico nome atributo:list(tuple(valor nome atributo: TIPO j OID,inicio tv nome atributo: real,�m tv nome atributo : real))))17

Page 19: O conte - ic.unicamp.br

No caso de atributos atomicos, valor nome atributo indica o tipodiretamente (por exemplo integer). No caso de atributos complexos,valor nome atributo cont�em o OID do objeto correspondente.Classe Tempo-V�alido. Este tipo temporal de classe s�o apresenta adimens~ao temporal Tempo-V�alido. Sua implementa�c~ao �e semelhante �adas classes Bitemporais, com a remo�c~ao da estrutura que armazena adimens~ao Tempo de Transa�c~ao.nome atributo: list(tuple (valor nome atributo: TIPO j OID,inicio tv nome atributo: real,�m tv nome atributo : real))Classe Tempo-de-Transa�c~ao. �E necess�aria apenas a remo�c~ao das lis-tas que armazenam a dimens~ao Tempo V�alido. Um atributo de�nidocomo temporal em uma classe deste tipo apresenta a seguinte especi-�ca�c~ao:nome atributo: list (tuple (tt nome atributo: real,valor nome atributo: TIPO j OID ))6.3 Representa�c~ao do TempoAs estruturas descritas conseguem armazenar valores de tempo represen-tados atrav�es de um modelo linear (onde os valores de tempo ocorremde forma linear e ordenada, no sentido passado ! futuro) e discreto detempo, apresentando as duas dimens~oes temporais, Tempo de Transa�c~aoe Tempo V�alido, de�nidas para o toodm.Para a de�ni�c~ao da granularidade das marcas de tempo nos eixos tem-porais Tempo-de-Transa�c~ao e Tempo-V�alido, considerou-se a existenciade dois n��veis de abstra�c~ao na representa�c~ao de granularidade:1. n��vel do usu�ario (n��vel de abstra�c~ao mais alto), e;2. n��vel interno da Camada de Gerenciamento Temporal.Para o n��vel de abstra�c~ao mais baixo (o n��vel interno da Camada deGerenciamento Temporal), as marcas de tempo nos dois eixos temporais18

Page 20: O conte - ic.unicamp.br

foram representadas por uma granularidade do tipo simples e que utilizaa m�etrica segundo. A vantagem desta padroniza�c~ao de granularidade non��vel interno da Camada de Gerenciamento Temporal �e evitar a incom-patibilidade de granularidades entre objetos do BD (que pode ocorrerem opera�c~oes sobre o eixo Tempo-V�alido). Os valores de tempo nesten��vel s~ao de�nidos como sendo do tipo real.Para representar a granularidade no n��vel do usu�ario, foi introduzidoo conceito de granularidade virtual. Granularidade virtual �e a pro-priedade que permite ao usu�ario \enxergar" e manipular uma granular-idade distinta da granularidade interna da Camada de GerenciamentoTemporal. Em outras palavras, com base na propriedade da granular-idade virtual, a Camada de Gerenciamento Temporal garante a inde-pendencia da implementa�c~ao temporal.Para cada eixo temporal, foram de�nidas estrat�egias distintas paraimplementar o conceito de granularidade virtual. O princ��pio b�asico dapropriedade da granularidade virtual consiste na transforma�c~ao do tipode granularidade de uma marca de tempo.Por de�ni�c~ao, o usu�ario n~ao exerce nenhum tipo de controle sobrea evolu�c~ao temporal de objetos no eixo Tempo-de-Transa�c~ao. Em out-ras palavras, ao usu�ario �e permitido apenas consultar valores de temposobre este eixo temporal. Desta forma, padronizou-se que, neste eixo,a granularidade virtual (com a qual o usu�ario ir�a trabalhar) �e do tipocomposta e formada pelos seguintes elementos: <ano, mes, dia, hora,minuto, segundo>. Isto implica que as marcas de tempo sobre o eixoTempo-de-Transa�c~ao s~ao apresentadas ao usu�ario atrav�es desta granu-laridade virtual.Muitas vezes, o usu�ario deseja recuperar estados do BD especi�candovalores de Tempo de Transa�c~ao atrav�es de uma granularidade virtualque apresenta um re�namento menor. Por exemplo, o usu�ario podedesejar recuperar um estado do BD especi�cando uma marca de tempocom granularidade virtual: < ano,mes,dia>. Para viabilizar este tipode opera�c~ao, foi introduzida um novo tipo de opera�c~ao temporal quedenominou-se de Proje�c~ao Temporal sobre Granularidade (PTG).Por exemplo, considere que um evento e �e representado segundo a19

Page 21: O conte - ic.unicamp.br

granularidade <ano, mes, dia, hora, minuto, segundo>. Considere aindaque e apresenta os seguintes valores de tempo <1993,10,12,10,30,45>.A opera�c~ao de PTG G[dia, segundo] para o evento e retorna os valores<12,45>.A implementa�c~ao do conceito de granularidade virtual (no n��vel dousu�ario) para representar valores de tempo sobre o eixo Tempo-V�alidobaseou-se na seguinte estrat�egia: durante a especi�ca�c~ao de atributostemporais, a Camada de Gerenciamento Temporal solicitar�a ao usu�arioque de�na uma granularidade virtual para estes atributos.Marcas de tempo no eixo temporal Tempo-de-Transa�c~ao s~ao repre-sentadas como eventos. Em outras palavras, para a Camada de Geren-ciamento Temporal, um evento no eixo Tempo-de-Transa�c~ao representaa mudan�ca de um estado E1 do Banco de Dados para um estado E2.Cada evento representa o valor do Tempo de M�aquina correspondenteao tempo de compromisso (commit) de uma transa�c~ao.Para representar marcas de tempo no eixo temporal Tempo-V�alido,foi de�nido o formato de intervalos.6.4 ExemploEm fun�c~ao das estruturas descritas, mostramos a seguir o mapeamentode comandos gerados automaticamente pela Camada de GerenciamentoTemporal. Suponha a classe Funcion�ario de�nida (esta de�ni�c~ao tamb�em�e gerada pela Camada) como:class Funcionario public typetuple(nome: list(tuple(tt nome:real,historico nome:list(tuple(valor nome:string,inicio tv nome:real,�m tv nome:real)))),salario: list(tuple(tt salario:real,historico salario:list(tuple(valor salario:real,inicio tv salario:real,�m tv salario:real)))),historico objeto: list(tuple(inicio tv:real,�m tv:real)))end; 20

Page 22: O conte - ic.unicamp.br

name Funcionarios: set(Funcionario); /* Reposit�orio de dados*/A consulta Quando os funcion�arios de sobrenome \Vitorino" rece-beram sal�ario maior que US$ 1,200 gera uma consulta O2SQL em qua-tro etapas: duas sele�c~oes sucessivas, uma proje�c~ao e uma opera�c~ao deagrupamento dos valores de tempo por objeto.! Consulta toolVWhen View (nome like \*Vitorino*")From Funcion�arioINDB (during (salario > 1,200))! Consulta O2SQL gerada1. Sele�c~aode�ne q1 as select o from o in Funcionarioswhere (element( select (last(last(p.nome).historico nome)).valor nomefrom p in Funcionarioswhere o=p)) like \*Vitorino*" and(element( select (last(q.historico objeto)).�m tvfrom q in Funcionarioswhere o=q)) = 0 and(element( select (last(q.historico objeto)).inicio tvfrom q in Funcionarioswhere o=q)) != 02. Sele�c~ao e Proje�c~aode�ne q2 as select tuple(objeto: t, inicio:l.inicio tv salario, �m:l.�m tv salario)from t in q1,p in (select last(o.salario) from o in q1where o=t),l in p.historico salariowhere l.valor salario > 1,2004. Agrupamentoq3: group resposta in q2 by (objeto: resposta.objeto)with (intervalos: select tuple(inicio:p.inicio, �m:p.�m)from p in partition)7 Conclus~oes e extens~oesEste artigo apresentou uma descri�c~ao da implementa�c~ao de um sistemade gerenciamento temporal, a Camada de Gerenciamento Temporal. As21

Page 23: O conte - ic.unicamp.br

principais caracter��sticas desta implementa�c~ao s~ao: (i) utilizar o toodmcomo modelo temporal de dados, bem como a linguagem de consultatool proposta por [Lin93]; (ii) funcionar como uma camada sobrepostaa um sgbdoo j�a existente, o O2; (iii) apresentar um m�odulo espec���copara processamento de consultas temporais, o Gerenciador de Consultas.Uma descri�c~ao mais detalhada pode ser encontrada em [Bra94].As principais contribui�c~oes apresentadas neste trabalho s~ao:� a identi�ca�c~ao e a resolu�c~ao de problemas inerentes �a incorpora�c~aodo conceito de tempo em um bdoo.� a apresenta�c~ao de estruturas que viabilizam a representa�c~ao daevolu�c~ao temporal de objetos. Estas estruturas foram de�nidas apartir dos construtorese de tipos Tuple e List. Isto implica queestas estruturas podem ser implementadas em qualquer sgbdooque apresente estes construtores;� a descri�c~ao de um processador de consultas temporais implemen-tado capaz de efetuar consultas nos dois eixos temporais;Aliado �a portabilidade apresentada pela implementa�c~ao, deve-se ressaltarque as consultas temporais por ela processadas superam o conjunto deconsultas temporais apresentado pelo benchmark de [ea93].Como extens~oes a este trabalho, podemos citar:� Incorpora�c~ao do contexto temporal no gerenciamento da evolu�c~aode esquemas;� Incorpora�c~ao do contexto temporal no controle de vers~oes de m�etodos;� A partir da �algebra que suporta o processamento de consultas doO2, de�ni�c~ao de novas opera�c~oes sobre os atributos que represen-tam as dimens~oes temporais para introduzir opera�c~oes temporaisnesta �algebra; 22

Page 24: O conte - ic.unicamp.br

Referencias[Ari86] G. Ariav. A Temporally Oriented Data Model. ACM Transac-tions on Database Systems, 11(4):499{527, December 1986.[Bra94] Angelo Roncalli Alencar Brayner. Implementa�c~ao de um Sis-tema Temporal em um Banco de Dados Orientado a Objetos.Master's thesis, Universidade Estadual de Campinas, 1994.[CW83] James Cli�ord and David S. Warren. Formal semantics fortime in databases. ACM Transactions on Database Systems,8(2):214{254, June 1983.[dddO91] Grupo de desenvolvimento do O2. O2. Communications ofthe ACM, 34(10):35{48, 1991.[DW92] Umeshwar Dayal and Gene T.J. Wuu. A Uniform Approach toProcessing Temporal Queries. In Proceedings of the 18th VLDBConference, pages 407{418, 1992.[ea93] Christian S. Jensen et al. The TSQL Benchmark. In Proceedingsof the International Workshop on a Infrastructure for TemporalDatabases, pages QQ{1{QQ{28, June 1993.[Ede94] N. Edelweiss. Sistemas de Informa�c~ao de Escrit�orios: Um Mod-elo para Especi�ca�c~oes Temporais. PhD thesis, DI-UFRGS,1994.[EOP93] N. Edelweiss, J. P. Oliveira, and B. Pernici. An Object-orientedTemporal Model. In Proc CAISE Conference, 1993.[EW90] Ramez Elmasri and Gene T. J. Wuu. A TEMPORAL MODELAND QUERY LANGUAGE FOR ER DATABASES. In Pro-ceedings of the 6th Conference on Data Engineering, pages 76{83, February 1990. 23

Page 25: O conte - ic.unicamp.br

[Gad88] Shashi K. Gadia. A Homogeneous Relational Model and QueryLanguages for Temporal Databases. ACM Transactions onDatabase Systems, 13(4):418{448, December 1988.[Jay87] Jay Banerjee, Hong-T Chou, Jorge Garza, Won Kim, DarrellWoelk, Nat Ballou and H. J. Kim. DataModel Issues for Object-Oriented Applications. ACM TOIS, 1987.[Lin93] Lincoln Cesar Medina de Oliveira. Incorpora�c~ao da Dimens~aoTemporal em Bancos de Dados Orientados a Objetos. Master'sthesis, Universidade Estadual de Campinas, 1993.[NA87] Shamkant B. Navathe and Ra� Ahmed. TSQL - A languageinterface for history databases. In Proceedings of the Conferenceon Temporal Aspects in Information Systems, pages 113{128,1987.[NA89] Shamkant B. Navathe and Ra� Ahmed. A temporal relationalmodel and a query language. Information Sciences, (49):147{175, 1989.[S. 79] S. Jones, P. Mason and R. Stamper. LEGOL 2.0: A relationalspeci�cation language for complex rules. Information Systems,4(4):293{305, November 1979.[SA85a] Richard Snodgrass and I. Ahn. A Taxonomy of Time inDatabases. In Proceedings of the ACM SIGMOD InternationalConference on Manegement of Data, pages 236{246, May 1985.[SA85b] Richard Snodgrass and I. Ahn. Temporal Databases. IEEEComputer, pages 35{42, September 1985.[Sad87] Sadeghi,R., Samson, W.B., Deen, S.M. Hql: A historical querylanguage. Technical report, Dundee College of Technology, 1987.[SC91] Stanley Y. W. Su and Hsin-Hsing M. Chen. A temporal knowl-edge representation model OSAM*/T and its query language24

Page 26: O conte - ic.unicamp.br

OQL/T. In Proceedings of the International Conference on VeryLarge Data Bases, pages 431{442, september 1991.[Sno87] Richard Snodgrass. The Temporal Query Language TQuel.ACM Transactions on Database Systems, 12(2):247{298, June1987.[Soo91] Michael D. Soo. Bibliography on Temporal Database. ACMSIGMOD Record, 20(1):14{23, March 1991.[TA86] Adullah U. Tansel and M.E. Arkun. HQUEL: A query languagefor historical relational databases. In Proceedings of the 3rdInternational Workshop on Statistical and Scienti�c Databases,1986.[Tan86] Adullah U. Tansel. Adding time dimension to relationalmodel and extending relational algebra. Information Systems,11(4):343{355, 1986.[WD92] Gene T. J. Wuu and Umeshwar Dayal. A uniform model fortemporal object-oriented databases. In Proceedings of the Inter-national Conference on Data Engineering, pages 584{593, 1992.[Wol92] Wolfgang K�afer and Harald Sch�oning. Realizing a TemporalComplex-Object Data Model. In Proceedings of the ACM SIG-MOD International Conference on Management Data, pages266{275, 1992.25

Page 27: O conte - ic.unicamp.br

Relat�orios T�ecnicos { 199292-01 Applications of Finite Automata Representing Large Vo-cabularies, C. L. Lucchesi, T. Kowaltowski92-02 Point Set Pattern Matching in d-Dimensions, P. J.de Rezende, D. T. Lee92-03 On the Irrelevance of Edge Orientations on the AcyclicDirected Two Disjoint Paths Problem, C. L. Lucchesi,M. C. M. T. Giglio92-04 A Note on Primitives for the Manipulation of GeneralSubdivisions and the Computation of Voronoi Diagrams,W. Jacometti92-05 An (l; u)-Transversal Theorem for Bipartite Graphs,C. L. Lucchesi, D. H. Younger92-06 Implementing Integrity Control in Active Databases,C. B. Medeiros, M. J. Andrade92-07 New Experimental Results For Bipartite Matching,J. C. Setubal92-08 Maintaining Integrity Constraints across Versions in aDatabase, C. B. Medeiros, G. Jomier, W. Cellary92-09 On Clique-Complete Graphs, C. L. Lucchesi, C. P. Mello,J. L. Szwarc�ter92-10 Examples of Informal but Rigorous Correctness Proofs forTree Traversing Algorithms, T. Kowaltowski92-11 Debugging Aids for Statechart-Based Systems, V. G. S.Elias, H. Liesenberg92-12 Browsing and Querying in Object-Oriented Databases,J. L. de Oliveira, R. de O. Anido26

Page 28: O conte - ic.unicamp.br

Relat�orios T�ecnicos { 199393-01 Transforming Statecharts into Reactive Systems, AntonioG. Figueiredo Filho, Hans K. E. Liesenberg93-02 The Hierarchical Ring Protocol: An E�cient Schemefor Reading Replicated Data, Nabor das C. Mendon�ca, Ri-cardo de O. Anido93-03 Matching Algorithms for Bipartite Graphs, Herbert A. BaierSaip, Cl�audio L. Lucchesi93-04 A lexBFS Algorithm for Proper Interval Graph Recog-nition, Celina M. H. de Figueiredo, Jo~ao Meidanis, C�elia P. deMello93-05 Sistema Gerenciador de Processamento Cooperativo,Ivonne. M. Carrazana, Nelson. C. Machado, C�elio. C. Guimar~aes93-06 Implementa�c~ao de um Banco de Dados Relacional Dotadode uma Interface Cooperativa, Nascif A. Abousalh Neto, Ari-adne M. B. R. Carvalho93-07 Estadogramas no Desenvolvimento de Interfaces, F�abio N.de Lucena, Hans K. E. Liesenberg93-08 Introspection and Projection in Reasoning about OtherAgents, Jacques Wainer93-09 Codi�ca�c~ao de Seq�uencias de Imagens com Quantiza�c~aoVetorial, Carlos Antonio Reinaldo Costa, Paulo L��cio de Geus93-10 Minimiza�c~ao do Consumo de Energia em um Sistema paraAquisi�c~ao de Dados Controlado por Microcomputador,Paulo Cesar Centoducatte, Nelson Castro Machado27

Page 29: O conte - ic.unicamp.br

93-11 An Implementation Structure for RM-OSI/ISO Transac-tion Processing Application Contexts, Fl�avio Morais de AssisSilva, Edmundo Roberto Mauro Madeira93-12 Boole's conditions of possible experience and reasoningunder uncertainty, Pierre Hansen, Brigitte Jaumard, MarcusPoggi de Arag~ao93-13 Modelling Geographic Information Systems using an Ob-ject Oriented Framework, Fatima Pires, Claudia BauzerMedeiros, Ardemiris Barros Silva93-14 Managing Time in Object-Oriented Databases, Lincoln M.Oliveira, Claudia Bauzer Medeiros93-15 Using Extended Hierarchical Quorum Consensus to Con-trol Replicated Data: from Traditional Voting to LogicalStructures, Nabor das Chagas Mendon�ca, Ricardo de OliveiraAnido93-16 LL { An Object Oriented Library Language ReferenceManual, Tomasz Kowaltowski, Evandro Bacarin93-17 Metodologias para Convers~ao de Esquemas em Sistemasde Bancos de Dados Heterogeneos, Ronaldo Lopes de Oliveira,Geovane Cayres Magalh~aes93-18 Rule Application in GIS { a Case Study, Claudia BauzerMedeiros, Geovane Cayres Magalh~aes93-19 Modelamento, Simula�c~ao e S��ntese com VHDL, Carlos Ger-aldo Kr�uger e M�ario L�ucio Cortes93-20 Re ections on Using Statecharts to Capture Human-Computer Interface Behaviour, F�abio Nogueira de Lucena eHans Liesenberg 28

Page 30: O conte - ic.unicamp.br

93-21 Applications of Finite Automata in Debugging Natu-ral Language Vocabularies, Tomasz Kowaltowski, Cl�audioLeonardo Lucchesi e Jorge Stol�93-22 Minimization of Binary Automata, Tomasz Kowaltowski,Cl�audio Leonardo Lucchesi e Jorge Stol�93-23 Rethinking the dna Fragment Assembly Problem, Jo~aoMeidanis93-24 EGOLib | Uma Biblioteca Orientada a Objetos Gr�a�cos,Eduardo Aguiar Patroc��nio, Pedro Jussieu de Rezende93-25 Compreens~ao de Algoritmos atrav�es de Ambientes Dedi-cados a Anima�c~ao, Rackel Valadares Amorim, Pedro Jussieu deRezende93-26 GeoLab: An Environment for Development of Algorithmsin Computational Geometry, Pedro Jussieu de Rezende, Wel-son R. Jacometti93-27 A Uni�ed Characterization of Chordal, Interval, Indi�er-ence and Other Classes of Graphs, Jo~ao Meidanis93-28 Programming Dialogue Control of User Interfaces UsingStatecharts, F�abio Nogueira de Lucena e Hans Liesenberg93-29 EGOLib { Manual de Referencia, Eduardo Aguiar Patroc��nio ePedro Jussieu de Rezende29

Page 31: O conte - ic.unicamp.br

Relat�orios T�ecnicos { 199494-01 A Statechart Engine to Support Implementations of Com-plex Behaviour, F�abio Nogueira de Lucena, Hans K. E. Liesen-berg

Departamento de Ciencia da Computa�c~ao | IMECCCaixa Postal 6065Universidade Estadual de Campinas13081-970 { Campinas { [email protected] 30