• Nenhum resultado encontrado

Meta-esquema Temporal em Estrela (MET*)

5.2.4 Modelos Temporais

Vários modelos para bancos de dados temporais como extensões do modelo relacional foram propostos. Esses modelos podem ser divididos em dois grandes grupos:

Modelos Agrupados

São modelos que associam tempo aos atributos individuais. Cada valor de um atributo tem um ou mais timestamps associados. Esses modelos são baseados em relações N1NF (Non-First Normal Form : Não-Primeira Forma Normal). O lifespan de um atributo é representado em uma única tupla através de elementos temporais. Um elemento temporal é uma união finita de intervalos disjuntos [Gadia&Nair 93] [Jensen

et al 94]. Uma relação temporal típica de um modelo agrupado tem o aspecto da Figura 5.2. Ela não está em primeira forma normal, seus atributos são multivalorados. O lifespan do atributo empregado é definido em apenas uma tupla.

Empregado Gerente [1, 4] ∪ [10, NOW] Jonas [1,2] Tom [2,4] Manoel [10, NOW] David [2,3] ∪ [6,9] João [2,3] Manoel [6,9] Luciano [1, NOW] Sérgio [1,2] Tom [2,4] Manoel [6,9] Luciano [10, NOW] David

Figura 5.2 – Relação temporal Empregado-Gerente num modelo agrupado.

Os modelos agrupados podem ser classificados em homogêneos e heterogêneos. Nos homogêneos todos os atributos de uma tupla são definidos em um mesmo período de tempo [Tansel 97]. Por exemplo, os atributos da primeira tupla da relação da Figura 5.2 estão definidos nos intervalos [1, 4] e [10, NOW]. Modelos heterogêneos não fazem esta restrição.

Como exemplo de modelos temporais agrupados podemos citar o HRDM [Clifford&Croker 93], o TRDM [Tansel 97] e o TempSQL [Gadia&Nair 93].

Modelos desagrupados

Modelos desagrupados associam tempo a tuplas individuais. Cada tupla tem um ou mais timestamps associados. As relações dos modelos desagrupados estão em 1NF (First Normal Form : primeira forma normal). A relação da Figura 5.2 é equivalente à relação da Figura 5.3 num modelo desagrupado.

Empregado Gerente Timestamp

Jonas Tom [1,2]

Jonas Manoel [2,4]

Jonas David [10, NOW]

João Manoel [2,3]

João Luciano [6,9]

Sérgio Tom [1,2]

Sérgio Manoel [2,4]

Sérgio Luciano [6,9]

Sérgio David [10, NOW]

Em tais modelos o lifespan de um atributo pode estar dividido entre várias tuplas como podemos observar na Figura 5.3. Note que a chave de uma relação temporal não pode ser apenas um atributo invariável no tempo. A chave deve ser composta de um atributo invariável mais um dos instantes inicial ou final do intervalo.

Alguns modelos implementam os timestamps como propriedades implícitas das relações. Um exemplo é o TSQL2 [Snodgrass et al 94] [Snodgrass 95]. Outros os implementam explicitamente como um atributo comum da relação. Exemplo : TRM [Navathe&Ahmed 93] e o IXRM [Lorentzos 93].

5.3

Meta-esquema Temporal em Estrela (MET*)

Um esquema baseado no MET* tem o aspecto geral da Figura 5.4. Neste esquema, o histórico de um atributo é guardado numa tabela separada chamada tabela de histórico. Um tabela de histórico pode guardar valores antigos de um atributo ou de um conjunto de atributos (veja HistóricoAtributo2-n). Uma tabela de histórico típica possui as seguintes colunas: #Dimensão, contém a chave que identifica à qual linha da dimensão pertence o atributo histórico (esse é um relacionamento de chave estrangeira como outro qualquer); AtributoHistórico, que guarda os valores antigos do atributo (ou conjunto de atributos) dimensional que sofre alterações ao longo do tempo; De e Até : que indica o período de tempo (intervalo) em que o valor contido em AtributoHistórico foi válido para o atributo dimensional.

Tomemos como exemplo o esquema em estrela da Figura 2.1. Para guardar os históricos do atributo Gerente da dimensão Loja e dos atributos de hierarquia de produto da dimensão Produto, estendemos tal esquema para o da Figura 5.5. A funcionalidade do MET*, tomando como exemplo a dimensão Loja, é a seguinte:

1. Para cada atributo (ou conjunto de atributos) de uma dimensão para o qual se deseja guardar o histórico (Gerente da tabela Loja, Figura 5.5) constrói-se uma tabela histórica (HistóricoGerente, Figura 5.5) com as seguintes colunas: chave da dimensão do(s) atributo(s) (Loja#, Figura 5.5), o(s) atributo(s) histórico(s) (Gerente, Figura 5.5) e os atributos De, o instante do tempo em que o registro se torna válido, e Até, o instante onde se encerra o ciclo de vida do registro;

2. Na dimensão (Loja, Figura 5.5) mantém-se o valor atual do atributo histórico (Gerente, Figura 2);

3. O valor atual também é mantido na tabela histórica. Neste caso Até contém a palavra-chave NOW para indicar que tal valor continua válido no instante atual, que é variável;

4. As chaves das tabelas de histórico são compostas pela chave da dimensão mais o atributo De. Os domínios dos atributos De e Até são o domínio da chave da dimensão Tempo (domínio de Tempo#, Figura 5.5). Note-se o relacionamento de chave estrangeira entre as tabelas históricas e a dimensão Tempo;

5. Cada vez que um atributo histórico for alterado, o atributo Até do valor antigo é atualizado para o tempo atual e o valor atual é apropriadamente incluído na tabela de histórico da dimensão correspondente; na tabela de dimensão, é mantido o novo valor atual.

Figura 5.5 – MET* para vendas no varejo. As vantagens do esquema MET* são:

v1 - O Star Squema original é preservado, portanto todas as operações OLAP não temporais continuam aplicáveis;

v2 – É possível manter o histórico integral dos atributos de interesse;

v3 - Os domínios dos atributos De e Até, sendo compatíveis com o domínio da chave da dimensão Tempo, permitem:

- fazer junção direta de tabelas históricas com a tabela de fatos (junção de HistóricoGerente e Vendas, com De θ Tempo# e/ou Até θ Tempo#). Isso é particularmente relevante porque as junções mais onerosas no esquema em estrela são aquelas feitas com as tabelas de fatos [Kimball 98], que geralmente são enormes;

- tornar iguais as granularidades de tempo das tabelas históricas e a granularidade de tempo da tabela de fatos (ou seja, a granularidade do DW continua sendo regida pela semântica da dimensão Tempo);

v4 - as tabelas históricas, como projetadas, são compatíveis com aquelas de modelos relacionais temporais formalmente definidos [Navathe&Ahmed 87] [Natvathe&Ahmed 93] [Lorentzos 93];

v5 - a transformação de um DW não temporal em um DW com um esquema MET* é bastante simples;

v6 - as versões de registros de dimensões são restritas aos atributos que mudam com o tempo, evitamos assim dados redundantes como encontrado em outras propostas.

A Figura 5.6 contém um exemplo de tabela de histórico para guardar o histórico do atributo Gerente da dimensão Loja.