Professional Documents
Culture Documents
So Paulo
2008
So Paulo
2008
Assinatura do autor
Assinatura do orientador
FICHA CATALOGRFICA
Dedico este trabalho a minha esposa Flvia e ao meu filho Breno Augusto.
AGRADECIMENTOS
Aos meus pais, Alcio e Antnia pela constante motivao aos estudos, desde a
infncia.
Prof Dr Mrcia Valrio Serdio Carbone, pelas horas dedicadas para a reviso
deste trabalho.
RESUMO
ABSTRACT
This work describes a model whose main objective is to store historic data, resulting in the
Analytic-Temporal Databases. The origins of the data are the Operational Databases. This
model can aid in the design and implementation of the Analytic-Temporal Databases that
constitutes a very adequate foundation to help in the medium and long time decision taking
process. The model is divided into three main activities. In the first activity the objective is to
map the Operational Data Models into a Unified Data Model. This last model is the base for
the second activity, which is the generation of the Analytical-Temporal Data Model.
Considering these two activities, there were elaborated some steps, which encompass the
main characteristics to be evaluated and developed. In the third activity the objective is to
make available mechanisms, allowing the generation, the transport and the storage of the
Analytical-Temporal data. For this third activity, there were specified generic triggers and
stored procedures.
LISTA DE ILUSTRAES
Figura 1 - Representao simplificada de um Sistema de Banco de Dados ............ 21
Figura 2 - Fases do Projeto de um Banco de Dados ................................................ 23
Figura 3 - Arquitetura de esquemas em trs nveis para um banco de dados.......... 26
Figura 4 - Ilustrao de um Ambiente de Data Warehousing ................................... 36
Figura 5 - Processo de ETL ..................................................................................... 37
Figura 6 - Estrutura bsica do modelo multidimensional .......................................... 38
Figura 7 - Diagrama Geral da Proposta de Modelagem e Implementao de Bancos
de Dados Analtico-Temporais.................................................................. 44
Figura 8 - Etapas da Proposta de Modelagem e Implementao de Bancos de Dados
Analtico-Temporais.................................................................................. 45
Figura 9 - Proposta de Modelagem e Implementao de Bancos de Dados AnalticoTemporais x Ambiente de Data Warehousing .......................................... 47
Figura 10 - Passos para a Gerao Modelo de Dados Unificado ............................. 49
Figura 11 - Exemplo do Passo A1 ............................................................................ 51
Figura 12 - Exemplo de Modelos de Dados Operacionais - Passo A2 ..................... 52
Figura 13 - Exemplo do Passo A2 ............................................................................ 52
Figura 14 - Exemplos de Entidades - Passo A3 ....................................................... 53
Figura 15 - Exemplo do Passo A3 ............................................................................ 54
Figura 16 - Trechos de Modelos de Dados - BDO1 e BDO2 ...................................... 55
Figura 17 - Ilustrao do uso das Chaves Primrias como Chaves Estrangeiras .... 57
Figura 18 - Passos para a Gerao do Modelo de Dados Analtico-Temporal ......... 59
Figura 19 - Exemplo de aplicao do Passo B1 ....................................................... 60
Figura 20 - Modelo Analtico-Temporal..................................................................... 61
Figura 21 - Modelo de Dados Operacional entre FUNCIONRIO e CARGO ........... 61
Figura 22 - Exemplo do Passo B2 ............................................................................ 62
Figura 23 - Exemplo do Passo B3 ............................................................................ 63
Figura 24 - Exemplo 1 do Passo B4 ......................................................................... 64
Figura 25 - Entidade VENDA .................................................................................... 65
Figura 26 - Exemplo 2 do Passo B4 ......................................................................... 66
Figura 27 - Esquema Geral da Etapa C.................................................................... 67
Figura 28 - Esquema de Comunicao Cliente/Servidor e/ou Servidor/Servidor... 68
LISTA DE TABELAS
Tabela 1 - Identificao de diferentes representaes de valores.......................... 103
Tabela 2 - Seleo dos conjuntos de entidades ..................................................... 107
Tabela 3 - Seleo dos conjuntos de relacionamento ............................................ 107
AUDESP
BDO
BDAT
ECA
E-R
- Entidade-Relacionamento
ETL
FK
- Foreign Key
IDEF1X
NIST
OLAP
SGBD
SQL
RHS
TCP/IP
TF-ORM
TRM
TVM
UML
XML
SUMRIO
1 INTRODUO ...................................................................................16
1.1 JUSTIFICATIVAS E MOTIVAES ........................................................ 16
1.2 OBJETIVOS ............................................................................................. 18
1.3 ESTRUTURA DO TRABALHO................................................................. 19
3.3.1.1 Passo A1: Renomeao de conjuntos de entidades com nomes iguais, mas
com dados distintos..................................................................................... 50
3.3.1.2 Passo A2: Renomeao de conjuntos de entidades com nomes distintos,
mas com dados comuns ............................................................................. 51
3.3.1.3 Passo A3: Renomeao de atributos com nomes distintos, mas com dados
comuns........................................................................................................ 53
3.3.1.4 Passo A4: Transformao de atributos com dados comuns, mas com
representao diferente de valores ............................................................. 54
3.3.1.5 Passo A5: Transformao de atributos chaves primrias ........................... 55
3.3.1.6 Passo A6: Transformao de atributos chaves estrangeiras ...................... 56
3.3.1.7 Passo A7: Gerao do Modelo de Dados Unificado ................................... 57
3.3.2 Etapa B: Mapeamento do Modelo de Dados Unificado em um Modelo de
Dados Analtico-Temporal........................................................................... 58
3.3.2.1 Passo B1: Seleo dos conjuntos de entidades e atributos para o Banco de
Dados Analtico-Temporal........................................................................... 59
3.3.2.2 Passo B2: Criao dos conjuntos de entidades para o armazenamento dos
dados analtico-temporais ........................................................................... 60
3.3.2.3 Passo B3: Incluso de elementos de tempo nos conjuntos de entidades... 62
3.3.2.4 Passo B4: Incluso de atributos derivados ................................................. 64
3.3.2.5 Passo B5: Gerao do Modelo de Dados Analtico-Temporal .................... 66
5 ESTUDO DE CASO............................................................................94
5.1 DESCRIO DAS APLICAES OPERACIONAIS ............................... 94
5.1.1 Folha de Pagamento (BDO_FOLHA) .......................................................... 94
5.1.2 Controle Acadmico (BDO_ACADEMICO)................................................. 95
5.3 CONFIGURAES.................................................................................. 97
5.3.1 Bancos de Dados ......................................................................................... 97
5.3.2 Funcionamento da Plataforma Oracle........................................................ 98
6 CONCLUSES.................................................................................130
6.1 RESULTADOS ALCANADOS ............................................................. 130
6.2 TRABALHOS FUTUROS ....................................................................... 132
REFERNCIAS .....................................................................................134
APNDICE A - Especificao do scripts - Etapa C - Captulo 3 .....141
APNDICE B - Banco de Dados Operacional BDO_FOLHA ...........144
APNDICE C - Banco de Dados Operacional BDO_ACADEMICO .148
APNDICE D - Configurao dos nomes de servios.....................153
APNDICE E - Banco de Dados Analtico-Temporal BDAT ............155
APNDICE F - Especificao dos scripts do Estudo de Caso .......158
16
INTRODUO
1.1
JUSTIFICATIVAS E MOTIVAES
17
18
80%
do
esforo
total
de
desenvolvimento
(VASSILIADIS;
SIMITSIS;
SKIADOPOULOS, 2002).
Sendo assim, outra grande motivao presente pesquisa est em propor
mecanismos distintos dos tradicionalmente utilizados em ambientes de Data
Warehousing para esse processo de extrao, transformao e carga dos dados,
visando reduzir, significativamente, o tempo total consumido nessas tarefas.
1.2
OBJETIVOS
19
1.3
ESTRUTURA DO TRABALHO
20
2.1
21
Segurana
Controle
de
Concorrncia
(SILBERSCHATZ;
KORTH;
SUDARSHAN, 2006).
A Figura 1 ilustra uma representao simplificada de um sistema de banco de dados
com as suas partes integrantes.
Usurios
Banco de Dados
SBD
22
2.2
quatro,
conforme
ilustra
Figura
(MACHADO;
ABREU,
1995;
23
conceitual
de
banco
de
dados,
chamado
projeto
conceitual,
24
A terceira fase, conhecida por projeto lgico, tem seu incio a partir do modelo
conceitual, levando em considerao uma das abordagens de banco de dados
possveis, tais como a abordagem relacional e a abordagem orientada a objetos.
Nesta fase so descritas as estruturas que estaro contidas no banco de dados, de
acordo com as possibilidades da abordagem. Contudo, no se considera, ainda,
nenhuma caracterstica especfica de um sistema gerenciador de banco de dados.
A fase de projeto lgico contempla, tambm, as especificaes das necessidades
funcionais, nas quais os usurios descrevem os tipos de operaes a serem
realizadas sobre os dados.
Na quarta fase, a do projeto fsico, o projeto lgico mapeado para o modelo de
implementao de dados; modelo este, especificamente dependente dos recursos
do sistema gerenciador de banco de dados que ser usado. Tais recursos incluem
as formas de organizao de arquivos e as estruturas internas de armazenamento,
tais como: tamanho de atributos, ndices, tipos de atributos, nomenclaturas, dentre
outros.
25
da semntica de dados
e das
regras
de consistncia
26
possvel especificar tambm como esse banco de dados ser estruturado para
atender plenamente a essas exigncias, bem como s regras de negcio impostas.
Conforme Heuser (1999, p. 5), um modelo de dados uma descrio dos tipos de
informaes que esto armazenadas em um banco de dados. Pelo entendimento
dos modelos de dados, possvel identificar quais informaes esto contidas no
banco de dados, ou seja, qual a descrio formal da estrutura de um banco de
dados. Para se construir um modelo de dados, usa-se uma linguagem de
modelagem de dados, que pode ser classificada em linguagem textual ou grfica, de
acordo com a forma de apresentar modelos (HEUSER, 1999).
Um modelo de dados deve apresentar uma estrutura de objetos que podem ser
manipulados pelas linguagens textuais. Estas, por sua vez, so derivadas do SQL.
Tais linguagens devem oferecer mecanismos para atualizar e consultar esses
objetos, e tambm mecanismos para expressar restries de integridade
(EDELWEISS, 1998).
Segundo Melo, Silva e Tanaka (1997) e Silberschatz, Korth e Sudarshan (2006), a
arquitetura para Banco de Dados possui trs diferentes nveis, conforme
apresentado na Figura 3.
27
28
29
construes
sintticas
relacionamento e atributo.
bsicas
da
linguagem
IDEF1X
so:
entidade,
30
Esses
diagramas
mostram
um
conjunto
de
classes,
interfaces,
31
2.3
INTEGRAO DE MODELOS
32
2.4
33
Fanderuff
(2000,
p.151),
os
procedimentos
armazenados
so
2.4.2 Gatilhos
34
2.5
35
INMON, Bill. et al. Building the Data Warehouse (John Wiley & Sons Inc., 1996).
36
diferentes.
Em geral, a passagem de dados de um ambiente operacional para um ambiente
corporativo constitui-se em uma tarefa bastante complexa. Muitas vezes h a
necessidade de transformao e consolidao dos dados. Existem ferramentas que
implementam o processo ETL (Extrao, Transformao e Carga) dos dados; elas
so muito teis para auxiliar no processo de criao de um Data Warehouse
(PASSOS, 2005).
37
Operacional
Transformao
ODS
Carga
Warehouse
38
SANTIAGO,
2003).
estrutura
fundamental
do
modelo
39
2.6
QUALIDADE DE DADOS
Preciso: a medida de quo correto, quo livre de erros, quo prximo est
esse dado do fato verdadeiro. o princpio fundamental da qualidade de dados;
se um dado no correto, as outras dimenses so menos importantes. Para ser
correto, um valor deve ser certo e deve ser representado de uma forma
consistente e sem ambigidade.
40
q
41
3.1
42
43
3.2
44
45
46
47
48
3.3
Esta fase tem por objetivo identificar e extrair, dos modelos operacionais, os
conjuntos de entidades e atributos essenciais gerao de dados analticotemporais, transformando-os em um Modelo Operacional Unificado (Etapa A) e,
posteriormente, em um Modelo Analtico-Temporal (Etapa B). Esse mapeamento
implica descartar todos os atributos puramente operacionais; ou seja, atributos que
no se modificam com o passar do tempo, como, por exemplo, data de nascimento,
sexo, etc., sempre de acordo com as necessidades da aplicao em questo.
O descarte dos atributos puramente operacionais, durante o processo de
mapeamento, visa, primeiramente, a uma otimizao do tempo de processamento,
j que, para gerenciar grandes volumes de dados, demanda-se mais tempo. Em
segundo lugar, esse nus seria desnecessrio, visto que, normalmente, tais
atributos no sero utilizados para a finalidade bsica do Banco de Dados AnalticoTemporal, que a tomada de decises.
O processo de mapeamento contm diversos passos a fim de se obter o Modelo
Analtico-Temporal ideal para uma aplicao especfica. Tais passos so descritos
nos prximos itens.
De maneira geral, esta etapa visa ao mapeamento dos Modelos dos Bancos de
Dados Operacionais, em um Modelo de Dados Unificado, com o objetivo de integrar
todos os conjuntos de entidades utilizados nos Bancos de Dados Operacionais.
Para que se consiga uma integrao adequada dos Modelos de Dados
Operacionais, mantendo um bom nvel de qualidade dos dados, foi elaborada uma
seqncia de passos a serem aplicados.
49
importante salientar que nenhuma das etapas aqui propostas tem como objetivo
alterar os Modelos de Dados Operacionais, que permanecero implementados em
seu formato original.
Com a realizao desta etapa, pretende-se minimizar alguns problemas, tais como:
mesmos dados com nomes diferentes, dados diferentes com mesmo nome,
diferentes unidades de medida, valores nulos, chaves duplicadas, etc. Esses
problemas podem ocorrer principalmente pelo fato de se trabalhar com mais de um
Banco de Dados Operacional.
Na Figura 10, apresenta-se a seqncia de passos proposta para a realizao desta
etapa.
50
Justificativa
Dentre os Bancos de Dados Operacionais que viro a compor o Banco de Dados
Analtico-Temporal, podem existir conjuntos de entidades que possuam os mesmos
nomes, armazenando, porm, dados com finalidades diferentes. Assim, torna-se
necessrio identificar tais conjuntos de entidades e atribuir diferentes denominaes
a eles.
Dessa forma, neste passo, aps tais identificaes, define-se um nome alternativo
na modelagem para cada um desses conjuntos de entidades, evitando-se, assim,
que sejam confundidos durante o processo de mapeamento.
Exemplo
Sejam os trechos de modelos de dados da Figura 11, nos quais se pode notar que
h um conjunto de entidades chamado PESSOA em cada uma das partes. No
Banco de Dados Operacional 1 - BDO1, a idia , de fato, representar clientes de
uma empresa e no BDO2 a idia representar funcionrios que trabalhem em um
projeto. Tal caracterstica implica que os dois conjuntos de entidades possuam
atributos com diferentes significados. Assim, o conjunto de entidades PESSOA, do
BDO1, poderia ser identificado pelo nome alternativo CLIENTE e o conjunto de
entidades PESSOA, do BDO2, por FUNCIONRIO.
Outra opo seria usar o prprio nome do banco de dados operacional como parte
integrante do nome do conjunto de entidades, na forma de prenome. Assim, os
nomes dos conjuntos de entidades poderiam ser definidos por [BDO1]_PESSOA e
[BDO2]_PESSOA.
51
Justificativa
Considerando-se os Bancos de Dados Operacionais que podero a vir a compor o
Banco de Dados Analtico-Temporal, podem existir conjuntos de entidades com
nomes distintos, mas com tipos de dados comuns. Assim, imprescindvel identificar
tais
conjuntos
de
entidades
e,
eventualmente,
atribuir-lhes
as
mesmas
denominaes.
Na verdade, esse o passo no qual deve ser feito um rastreamento em todos os
Modelos de Dados Operacionais, com o propsito de unificar todos os conjuntos de
entidades com semelhanas em seus contedos e estruturas.
Exemplo
Sejam os trechos de modelos de dados da Figura 12, pertencentes ao BDO1 e ao
BDO2, respectivamente.
52
53
3.3.1.3 Passo A3: Renomeao de atributos com nomes distintos, mas com
dados comuns
Justificativa
Dentre os Bancos de Dados Operacionais que viro a compor o Banco de Dados
Analtico-Temporal pode haver, nos diversos conjuntos de entidades identificados
durante o Passo A2, atributos com nomes distintos, porm com dados comuns.
Assim, a identificao de tais atributos de suma importncia, visando a sua
unificao.
Exemplo
Sejam trechos de modelos de dados da Figura 14, pertencente ao BDO1 e ao BDO2,
respectivamente.
54
3.3.1.4 Passo A4: Transformao de atributos com dados comuns, mas com
diferente representao de valores
Justificativa
Dentre os Bancos de Dados Operacionais a compor o Banco de Dados AnalticoTemporal, podem existir, nos diversos conjuntos de entidades identificados, atributos
que armazenam dados comuns, porm com representaes diferentes em relao
aos valores propriamente ditos. Torna-se, dessa forma, necessrio identificar tais
atributos, visando sua padronizao.
Este passo tem a funo de identificar quais atributos, dos conjuntos de entidades
comuns, possuem a mesma finalidade, visto que, para a gerao do Modelo de
Dados do Passo A3, imprescindvel analisar cada um dos atributos dos conjuntos
de entidades comuns, a fim de reuni-los.
Exemplo
A representao diferente de valores entre Bancos de Dados Operacionais pode
ocorrer de diversas maneiras. Um exemplo refere-se a unidades de medidas, que,
em um determinado banco de dados, podem ser representadas por centmetros,
em outro por metros, ou at mesmo em milmetros. Dessa forma, ao fazer a
transferncia para o Banco de Dados Analtico-Temporal, essas unidades de
medidas devem ser padronizadas.
55
Justificativa
A importncia deste item est no fato de que, como possvel ocorrer a unificao
de conjuntos de entidades ou de atributos, conforme descrito nos Passos A2 e A3,
pode acontecer de, no momento da gerao dos dados analtico-temporais, haver
duplicao dos valores de atributos utilizados como chaves primrias, o que no
admissvel. Dessa forma, este passo justifica-se no sentido de solucionar tal tipo de
problema. Conforme j citado, este passo deve ser aplicado apenas aos conjuntos
de entidades comuns e que sero unificados.
Exemplo
Sejam os trechos de modelos de dados da Figura 16, pertencente ao BDO1 e ao
BDO2, respectivamente.
56
Justificativa
A importncia deste item est no fato de que, caso ocorra a modificao dos valores
de chaves primrias, como sugerido no Passo A5 e como tais valores podem ser
utilizados em outros conjuntos de entidades como chaves estrangeiras, pode haver
perda de integridade referencial. Portanto, esses novos valores devem ser
propagados para todos os conjuntos de entidades, a fim de evitar a falta de
integridade entre os dados.
Exemplo
A Figura 17 contm um exemplo de converses de chaves estrangeiras, ilustrado
pelo atributo CID_MUN, do conjunto de entidades COMPRADOR.
57
Figura 17. Ilustrao do uso das Chaves Primrias como Chaves Estrangeiras
58
59
Justificativa
Este passo toma por base o fato de que essencial que sejam selecionados todos
os conjuntos de entidades e atributos que realmente participaro do processo de
gerao de dados analtico-temporais.
A primeira funo deste passo identificar, no Modelo de Dados Operacional
Unificado, quais so os conjuntos de entidades e atributos puramente operacionais,
para que os mesmos possam ser descartados durante a elaborao do Modelo de
Dados Analtico-Temporal.
No devem ser descartados os conjuntos de entidades que podem ter seus valores
alterados ao longo do tempo, j que so, normalmente, vitais ao processo de
anlise. Tambm no devem ser totalmente descartados os conjuntos de entidades
que contero os valores descritivos, j que os mesmos podem tambm ser teis na
gerao do banco de dados analtico-temporal.
Este passo visa a evitar a seleo de atributos que no sejam essenciais para o
processo de tomada de decises. O no descarte desses atributos pode,
eventualmente, causar problemas de sobrecarga ao Banco de Dados Analtico-
60
Temporal.
Exemplo
Seja o trecho de modelo de dados da Figura 19.
Justificativa
A relevncia deste passo assenta-se no fato de que necessrio definir as
entidades para o armazenamento dos dados analtico-temporais. Sua funo
oferecer um meio para a representao dos vrios valores que uma entidade ou
atributo pode assumir ao longo do tempo, j que nos Bancos de Dados Operacionais
as representaes baseiam-se em valores atuais do negcio.
O modelo adotado o que se apresenta na Figura 20. Por esta figura, pode-se notar
que o modelo utilizado difere em certa medida do modelo multidimensional,
61
Atributos Numricos
......
Atributos Temporais
......
Atributos Derivados
......
Exemplo
Seja o trecho de modelo de dados operacional da Figura 21.
62
Justificativa
primordial, em alguns casos, a incluso de atributos que controlaro os perodos
nos quais os valores contidos nos conjuntos de entidades permanecero vlidos. Ou
seja, em um perodo, determinado valor foi considerado vlido. Para que isso seja
possvel, necessria a incluso de novos atributos de tempo para o controle dos
perodos.
Dessa forma, a funo deste passo incluir, no Banco de Dados Analtico-Temporal,
um ou mais elementos de tempo, na estrutura de cada um dos conjuntos
63
64
Justificativa
Em alguns casos, pode ser necessrio realizar consultas muito complexas que
impliquem acessar um grande volume de tuplas, juntamente com inmeros clculos.
Isso poder atrasar a obteno das informaes. Por isso, necessrio a adio de
atributos derivados, j que tal procedimento pode eliminar a necessidade da
realizao de clculos durante o processo de recuperao de valores.
A funo deste passo adicionar atributos totalizadores, derivados de outros
atributos como, por exemplo: o total de uma venda; a idade de uma pessoa, dentre
outros.
Exemplo
A Figura 24 ilustra a adio de um atributo derivado (elipse com fundo preenchido
por cor cinza) em um conjunto de entidades HIST_VENDA, representando parte do
Banco de Dados Analtico-Temporal. A parte de cima da figura representa parte de
um modelo de dados operacional.
65
Exemplo
A Figura 25 lustra parte de um modelo de dados operacional.
Analisando o modelo de dados representado pela Figura 25, nota-se que pode ser
necessrio o clculo de valores que envolvam faixas de perodos, tais como
perodos semanais, mensais ou at mesmo anuais, de acordo com o agrupamento
desses dados.
A Figura 26 ilustra um exemplo de clculo cuja finalidade agrupar e totalizar as
vendas feitas mensalmente, por cliente e por produto.
66
3.4
67
que
comporo
Banco
de
Dados
Analtico-Temporal.
68
atualizaes vindas
dos
Bancos
de Dados
Operacionais.
operaes
automaticamente,
os
gatilhos
dos usurios
procedimentos
finais
armazenados
acionaro,
programados
69
Analtico-Temporal, toda vez em que ocorrer alguma transao que afete as tabelas
selecionadas para a gerao de dados analtico-temporais. Isso poder causar uma
queda no desempenho das aplicaes que utilizam os Bancos de Dados
Operacionais. A anlise de desempenho, porm, no faz parte do escopo da
presente proposta de trabalho.
Conforme ilustrado na Figura 28, sero criados gatilhos somente nos Bancos de
Dados Operacionais. J os procedimentos armazenados podero ser criados tanto
nos Bancos de Dados Operacionais quanto no Banco de Dados Analtico-Temporal.
Os procedimentos armazenados nos Bancos de Dados Operacionais justificam-se
pelo fato de que podero ser utilizados para enviar dados j agrupados e
sumarizados ao Banco de Dados Analtico-Temporal. J no Banco de Dados
Analtico-Temporal, os procedimentos armazenados so relevantes pelo fato de que
podem ser utilizados para aumentar o nvel de agrupamento ou at mesmo criar
novos agrupamentos, caso seja necessrio, sobretudo em se tratando do
crescimento da base de dados analtico-temporal.
exemplos
utilizados
neste
item
so
os
mesmos
apresentados
no
70
Este passo visa criao de um gatilho para implementar o passo B3, anteriormente
descrito, de acordo com o fluxograma da Figura 29.
A finalidade deste gatilho enviar dados dos Bancos de Dados Operacionais para o
Banco de Dados Analtico-Temporal. Isto, quando ocorrer alguma operao de
incluso e alterao nos conjuntos de entidades e/ou atributos dos Bancos de Dados
71
72
cada um dos funcionrios, bem como o perodo exato em que o funcionrio ocupou
determinado cargo. A especificao do gatilho pode ser encontrada no Apndice A.
INCIO
Gatilho T_PASSO_C1
Tempo de Disparo: antes da efetivao dos dados junto ao Banco de Dados Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de um novo funcionrio ou a
modificao do valor da chave estrangeira referente ao cargo a um funcionrio j existente
Acionamento: a chave estrangeira do cargo localizada na tabela de funcionrio quem
causar o disparo do gatilho
So definidas as variveis necessrias para armazenar a descrio e o valor do salrio,
bem como nome do usurio e o nome do banco de dados operacional
ALTERAO
INSERO
Insero ou
Alterao
So includos os dados
analtico-temporais das
mudanas de cargos
ocorridas com o
funcionrio, bem como a
data de incio da mudana
So includos os dados
analtico-temporais das
mudanas de cargos
ocorridas com o
funcionrio, bem como a
data de incio da mudana
FIM
73
74
75
Define as variveis que sero utilizadas como parmetro para a varivel cursor
Declara a varivel cursor, que deve ser realizada por meio de uma consulta,
filtrando, agrupando e sumarizando os dados para o armazenamento;
NO
Efetiva as eliminaes
e as inseres
ocorridas no loop
(COMMIT)
A varivel cursor
ainda possui linhas para
serem lidas ?
SIM
76
77
SIM
Grava fisicamente
os dados
FIM
Terminou a
leitura das linhas do
cursor?
NO
78
4.1
abranger
um
grande
volume
de
dados,
tendo
como
base,
79
80
81
TABELA ANALTICOTEMPORAL
Chave Primria
Atributos Descritivos
......
Atributos Numricos
......
TABELA OPERACIONAL 2
Chave Primria 2
Atributo Descritivo 2
Atributo 2.1
Atributo 2.2
......
Atributo 2.n
Atributos Temporais
......
Atributos Derivados
......
Data Warehousing
TABELA DIMENSO 1
Chave Dimenso 1
Atributo 1.1
Atributo 1.2
......
Atributo 1.n
TABELA FATO
Chave Dimenso 1
Chave Dimenso 2
Fato 1
Fato 2
......
Fato n
TABELA DIMENSO 2
Chave Dimenso 2
Atributo 2.1
Atributo 2.2
......
Atributo 2.n
82
caracterstica
corresponde
flexibilidade
de
alterao
de
um
modelo
83
Bancos de Dados Operacionais, tais como arquivos texto, cotaes de moedas, etc.,
o que no est previsto no Banco de Dados Analtico-Temporal aqui abordado,
conforme apresentado na Figura 41.
Em se tratando de Bancos de Dados Operacionais, os dados so, em sua maioria,
introduzidos de forma manual, salvo algumas excees, tais como: importaes de
arquivos XML e arquivos texto e clculos para atualizao de dados.
Figura 41. Comparao com relao origem dos dados entre o banco de
dados proposto e os ambientes de Data Warehousing
84
Figura 42. Comparao com relao origem e obteno dos dados entre o
banco de dados proposto e os ambientes de Data Warehousing
4.1.6 Desempenho
85
86
87
88
89
A Figura 44 ilustra a comparao relativa aos modos de atualizao dos trs tipos de
bancos de dados aqui analisados.
A forma de utilizao dos Bancos de Dados Operacionais impe a necessidade de
emprego das quatro operaes bsicas de um banco de dados, ou seja, incluso,
alterao, excluso e consulta.
Figura 44. Modos de atualizaes mais freqentes nos trs tipos de bancos
de dados
90
4.2
Esta seo tem por objetivo apresentar outros estudos feitos nessa rea e mostrar
em que tais pesquisas se assemelham ou diferem do presente trabalho.
H os trabalhos que se intitulam Sistemas de Bancos de Dados Temporais, com
caractersticas e funcionalidades para o tratamento da temporalidade. Esses
trabalhos, geralmente, focalizam mais a questo do controle do tempo das
transaes e validade dos dados. No se tem, nesses trabalhos, a preocupao de
oferecer uma metodologia para a modelagem unificada dos diversos Bancos de
Dados Operacionais, bem como para a posterior modelagem de um Banco de
Dados Analtico-Temporal.
91
92
desenvolvedoras
fornecedoras
de
softwares
comerciais
93
94
ESTUDO DE CASO
5.1
95
5.2
96
CARGO
ocupa
possui
Cdigo
Descrio
Cdigo
Descrio
Salrio
CIDADE
reside
Cdigo
Nome
Estado
SITUACAO
Cdigo
Nome
GRAU_INSTRUCAO
possui
FUNCIONARIO
Matrcula
Nome
Endereo
Nascimento
Sexo
Data_Adms
.....
RECEBE
Ms_Ano
Quantidade
Valor
VERBA
Cdigo
Descrio
Categoria
Referncia
.....
97
5.3
CONFIGURAES
Para a validao prtica, foi utilizado o Sistema de Banco de Dados Oracle 10g, por
ser um Banco de Dados Relacional, que possibilita a utilizao de Gatilhos e
Procedimentos Armazenados.
So utilizados, no estudo de caso, dois servidores de banco de dados: um servidor
contm os dois Bancos de Dados Operacionais; o outro servidor contm o Banco de
Dados Analtico-Temporal proposto, conforme ilustrado na Figura 47.
98
99
5.4
100
100
5.4.1.1 Passo A1: Renomeao de conjuntos de entidades com nomes iguais, mas
dados distintos
BDO_ACADEMICO,
deve
ser
modelado
com
nome
de
ACADEMICO_SITUACAO.
5.4.1.2 Passo A2: Renomeao de conjuntos de entidades com dados comuns, mas
com nomes distintos
101
101
do
Banco
de
Dados
Operacional
BDO_FOLHA,
Operacional
BDO_ACADEMICO,
modelados,
por
exemplo,
pela
denominao CATEGORIA.
5.4.1.3 Passo A3: Renomeao de atributos com dados comuns, mas com nomes
distintos
O presente passo somente deve ser aplicado nas entidades unificadas no Passo A2.
Considere-se que as entidades CIDADE, do BDO_FOLHA, e MUNICIPIO, do
BDO_ACADEMICO, tenham os seguintes atributos:
CIDADE = (Cdigo, Nome, Estado)
MUNICIPIO = (Cdigo, Descrio, Estado)
102
102
sejam
os
atributos
das
entidades
GRAU_INSTRUCAO
PROF_CATEGORIA:
GRAU_INSTRUCAO = (Cdigo, Descrio)
PROF_CATEGORIA = (Cdigo, Descrio, Categoria_atual)
A entidade CATEGORIA ser composta pelos atributos:
CATEGORIA = (ID, Descrio, Categoria_atual)
5.4.1.4 Passo A4: Transformao de atributos com dados comuns, mas com
representao diferente de valores
Assim como no Passo A3, nesse Passo A4, somente devem ser analisadas as
entidades unificadas no Passo A2.
Dentre tais entidades, no foi detectado nenhum problema quanto a dados comuns
com representao diferente de valores nos pares de entidades CIDADE /
MUNICIPIO e GRAU_INSTRUCAO / PROF_CATEGORIA.
103
103
representao
M masculino
F feminino
A admitido
D demitido
F afastado
BDO_ACADEMICO
(PROFESSOR)
SEXO
SITUACAO
representao
1 masculino
2 feminino
1 ativo
0 inativo
104
104
origem
operacional,
torna-se
necessrio
localizao
dos
estrangeiras
das
tabelas
CARGO,
CIDADE,
SITUACAO
verifica-se
que
alterao
da
chave
primria
da
entidade
105
105
CARGO
possui
possui
FOLHA_SITUACAO
Cdigo
Descrio
Salrio
Cdigo
Nome
VERBA
RECEBE
Cdigo
Descrio
Categoria
Referncia
.....
possui
CATEGORIA
Ms_Ano
Quantidade
Valor
EMPREGADO
LOCALIDADE
ID
Nome
Dt_nasc
Sexo
Endereo
Dt_admis
.....
reside
ID
Descrio
Estado
DISCIPLINA
EXERCE
COORDENADORIA
Cdigo
Descrio
SITUACAO_MATRICULA
RA
Cdigo
Turma
Descrio
Ano
Nota1
Nota2
Mdia
Faltas1. . .Faltas12
.....
NOTA_FALTA
Cdigo
Descrio
reside
ALUNO
ACADEMICO_SITUACAO
Cdigo
Descrio
ID
Descrio
Categoria_atual
possui
possui
Matricula
Nome
Srie
Turma
.....
possui
CURSO
Cdigo
Coordenadoria
Descrio
.....
106
106
5.4.2.1 Passo B1: Seleo dos conjuntos de entidades e atributos para o Banco de
Dados Analtico-Temporal.
Para o setor de Recursos Humanos, o essencial armazenar dados analticotemporais referentes s seguintes situaes:
I-
II- Ter a possibilidade de recuperar todos os totais pagos anualmente para cada um
dos funcionrios de acordo com cada verba recebida.
Para o setor de Superviso Acadmica, o essencial armazenar dados analticotemporais referentes s seguintes situaes:
III- Ter a possibilidade de recuperar todas as mudanas de coordenadorias (A), de
categorias (titulao) (B) e de endereos (incluindo municpios) (C), ocorridas
com um determinado professor, bem como as pocas exatas dessas mudanas.
IV- Ter a possibilidade de recuperar todas as alteraes de mdias (A) e de faltas
(B) ocorridas em cada disciplina com um determinado aluno, bem como as
pocas exatas dessas mudanas.
Portanto, com base nessas situaes que devem ser selecionados os conjuntos de
entidades operacionais e/ou atributos que fornecero as devidas informaes a
serem armazenadas no Banco de Dados Analtico-Temporal, bem como a sugesto
para se usarem novos conjuntos de entidades necessrios para atend-las.
As tabelas 2 e 3 contm a justificativa da escolha de cada um dos conjuntos de
entidades operacionais, bem como de seus conjuntos de relacionamentos (tabelas
associativas), que devem fornecer algum tipo de informao ao Banco de Dados
Analtico-Temporal, bem como a sugesto de se criar outros conjuntos de entidades
necessrios para tais armazenamentos.
107
107
Conjunto de Entidades:
Nomes
Justificativa de Escolha
Oferece informaes sobre todos os cargos e salrios que um
funcionrio tenha assumido na Instituio.
CARGO
FUNCIONARIO e
PROFESSOR
(EMPREGADO)
VERBA
CIDADE e
MUNICIPIO
(LOCALIDADE)
GRAU_INSTRUCAO e
PROF_CATEGORIA
(CATEGORIA)
COORDENADORIA
ALUNO
DISCIPLINA
SITUACAO
(ACADEMICO_SITUACAO)
(FOLHA_SITUACAO)
Justificativa de Escolha
RECEBE
EXERCE
NOTA_FALTA
108
108
5.4.2.2 Passo B2: Criao dos conjuntos de entidades para o armazenamento dos
dados analtico-temporais
109
109
110
110
111
111
112
112
113
113
114
114
criao
de
atributos
derivados
so:
BDAT_MEDIA,
BDAT_FALTA
115
115
116
116
BDAT_MEDIA = (ID_ALUNO, ID_DISCIPLINA, NOME_ALUNO, DESCRICAO_DISCIPLINA, ANO,
VELHA_NOTA_1, VELHA_NOTA_2, NOVA_NOTA_1, NOVA_NOTA_2, ID_USUARIO_BDO,
DT_ALTERACAO, VELHA_MEDIA, NOVA_MEDIA);
BDAT_FALTA = (ID_ALUNO, ID_DISCIPLINA, NOME_ALUNO, DESCRICAO_DISCIPLINA, ANO,
TOTAL_FALTA, TURMA);
BDAT_ENDER_EMPREGADO = (ID_EMP, ID_LOCAL, NOME_EMP, DESCRICAO_LOCAL,
ID_USUARIO_BDO, ENDERECO_EMP, ORIGEM, DT_INICIAL, DT_FINAL);
BDAT_CARGO
CARGO
possui
possui
FOLHA_SITUACAO
BDAT_CATEGORIA
BDAT_ANUAL_EMP
VERBA
RECEBE
possui
CATEGORIA
BDAT_COORDENADORIA
BDAT_ENDER_EMPREGADO
EMPREGADO
EXERCE
LOCALIDADE
COORDENADORIA
reside
BDAT_MEDIA
DISCIPLINA
NOTA_FALTA
SIT_MAT
possui
reside
ALUNO
possui
CURSO
BDAT_FALTA
ACADEMICO_SITUACAO
possui
117
117
118
118
INCIO
Gatilho PASSO_C1_BDAT_CARGO
Tempo de Disparo: dispara antes da efetivao dos dados junto ao Banco de
Dados Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de um novo funcionrio ou
a modificao da chave estrangeira referente ao cargo do funcionrio
Acionamento: a chave estrangeira do cargo localizada na tabela de funcionrio
que causar o disparo do gatilho
So definidas as variveis necessrias para armazenar a descrio e o valor do
salrio, bem com os nomes do usurio e do banco de dados operacional
ALTERAO
N
Ocorreu mudana
no atributo cargo?
INSERO
Insero ou
Alterao ?
So includos os dados
analtico-temporais das
mudanas de cargos
ocorridas com o
funcionrio, bem como a
data de incio da mudana
119
119
Tempo de Disparo: dispara antes da efetivao dos dados junto ao Banco de Dados
Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de um novo funcionrio ou
a modificao da chave estrangeira referente ao grau de instruo do funcionrio
Acionamento: a chave estrangeira do grau de instruo localizada na tabela de
funcionrio que causar o disparo do gatilho
ALTERAO
Ocorreu
mudana no
atributo grau de
instruo?
INSERO
Insero ou
Alterao ?
So includos os dados
analtico-temporais das
mudanas de grau de
instruo ocorridas com o
funcionrio, bem como a
data de incio da mudana
120
120
INCIO
Gatilho PASSO_C1_BDAT_CAT2
Tempo de Disparo: dispara antes da efetivao dos dados junto ao Banco de Dados
Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de um novo professor ou a
modificao da chave estrangeira referente a categoria do professor
Acionamento: a chave estrangeira da categoria localizada na tabela de professor
que causar o disparo do gatilho
ALTERAO
Ocorreu
mudana no
atributo
categoria?
INSERO
Insero ou
Alterao ?
So includos os dados
analtico-temporais das
mudanas de categoria
ocorridas com o professor,
bem como a data de incio
da mudana
121
121
INCIO
Gatilho PASSO_C1_BDAT_COORDENADORIA
Tempo de Disparo: dispara antes da efetivao dos dados junto ao Banco de Dados
Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de uma nova coordenao
ou a mudana de coordenao
Acionamento: a tabela exerce que causar o disparo do gatilho
So definidas as variveis necessrias para armazenar a descrio da
coordenadoria e o nome do professor, bem com o nome de usurio e o nome do
banco de dados operacional
Obtm-se a descrio da coordenadoria, o nome do professor, o nome do usurio e
o nome do banco de dados operacional
INSERO
ALTERAO
Ocorreu
mudana de
coordenao?
Insero ou
Alterao ?
So includos os dados
analtico-temporais das
mudanas de coordenao
ocorridas no curso, bem
como a data de incio do
novo coordenador
S
atualizada a data final
de permanncia do
professor na
coordenao em
questo
FIM
So includos os dados
analtico-temporais das
mudanas de coordenao
ocorridas no curso, bem
como a data de incio do
novo coordenador
60.
So dois
gatilhos,
PASSO_C1_BDAT_ENDER_EMP1
122
122
Tempo de Disparo: dispara antes da efetivao dos dados junto ao Banco de Dados
Operacional
Evento de Acionamento: toda vez que ocorrer a incluso de um novo funcionrio ou
a modificao do endereo ou da cidade de um funcionrio
Acionamento: os atributos endereo e cidade localizados na tabela de funcionrio
que causaro o disparo do gatilho
So definidas as variveis necessrias para armazenar a descrio da cidade, bem
com o nome de usurio e o nome do banco de dados operacional
ALTERAO
Ocorreu
mudana do
endereo ?
INSERO
Insero ou
Alterao ?
So includos os dados
analtico-temporais das
mudanas de endereo
ocorridas com o
funcionrio, bem como a
data de incio da mudana
123
123
124
124
INICIO
Gatilho PASSO_C2_BDAT_MEDIA
Ocorreu
alterao nas
notas?
FIM
So includos os dados
analtico-temporais das
alteraes ocorridas
com as notas do aluno
125
125
126
126
127
127
128
128
129
129
130
130
CONCLUSES
A metodologia apresentada nesta tese tem a finalidade de servir como condutor para
a modelagem e implementao de Bancos de Dados Analtico-Temporais. O modelo
proposto objetiva ser completo, no sentido de abranger todas as atividades
importantes na definio de um banco de dados desse tipo.
Nesse sentido, o conjunto das atividades propostas constitui-se em uma importante
contribuio aos desenvolvedores de tal tipo de sistemas, considerando-se as
significativas vantagens de tempo no desenvolvimento e implementao do modelo
proposto.
Uma das atividades mais relevantes diz respeito identificao dos dados a serem
aproveitados, total ou parcialmente em um Banco de Dados Analtico-Temporal.
Questes relacionadas qualidade e integrao dos dados esto tambm
contempladas na modelagem sugerida, tendo em vista que os principais problemas
encontrados nos Bancos de Dados Operacionais so considerados e resolvidos,
quando da fase inicial da modelagem. Tal tipo de problema ocorre, principalmente,
quando h a necessidade de integrar mais do que um Banco de Dados Operacional
para formar o Banco de Dados Analtico-Temporal. Alm disso, considera-se ser
este ltimo um dos fatores mais importantes da referida tese.
Finalmente, a forma de extrao, transformao e carga dos dados, dos Bancos de
Dados Operacionais para os Bancos de Dados Analtico-Temporais, por meio de
gatilhos e procedimentos armazenados, representa um ganho considervel em
relao ao processo tradicionalmente utilizado em ambientes de Data Warehousing.
6.1
RESULTADOS ALCANADOS
Pode-se dizer que os objetivos inicialmente estabelecidos para este trabalho foram
alcanados, j que a proposio de uma nova forma de modelagem voltada para a
gerao de Bancos de Dados Analtico-Temporais, bem como a proposio de
131
131
132
132
6.2
TRABALHOS FUTUROS
133
133
Temporais. Essa ferramenta teria a funo de gerar, automaticamente, uma prcodificao dos gatilhos e dos procedimentos armazenados, com base nos
esquemas dos Bancos de Dados Operacionais e no Banco de Dados AnalticoTemporal.
Outra sugesto de trabalhos futuros refere-se possibilidade de se ter uma
documentao automatizada dos metadados relativos aos dados transferidos para o
Banco de Dados Analtico-Temporal, tendo em vista que um registro preciso dos
metadados de vital importncia para eventuais manutenes do modelo proposto.
A criao de ferramentas do tipo OLAP, com base no o tipo de modelagem proposta,
que possibilitariam uma explorao plena do ambiente proposto, facilitando
sobremaneira a tarefa de gerao de relatrios a partir do Banco de Dados AnalticoTemporal, se configura em outra possibilidade de desenvolvimento de futuros
trabalhos.
Uma ltima sugesto de trabalhos futuros a ser desenvolvida o aprimoramento do
modelo proposto em relao ao tratamento de falhas de comunicao entre os
Bancos de Dados Operacionais e o Banco de Dados Analtico-Temporal, j que caso
isso ocorra, acarretar na no atualizao do Banco de Dados Analtico-Temporal,
visto que os gatilhos so preparados para propagar as atualizaes no ato em que
as mesmas ocorrem junto aos Bancos de Dados Operacionais.
134
REFERNCIAS
COREY, Michael; ABBEY, Michael; ABRAMSON, Ian; TAUB, Ben. Oracle 8i Data
Warehouse. Rio de Janeiro: Editora Campus (Autorizado por Oracle Press), 2001.
COSTA, Rogrio Lus de C. SQL: guia prtico. 2. ed. Rio de Janeiro: Editora
Brasport, 2006.
135
136
MANAGEMENT, 1, 2003, New Orleans, USA. ACM - WIDM03. New Orleans, 2003.
p. 29-36.
HEUSER, Carlos Alberto. Projeto de Banco de Dados. 3. ed. Porto Alegre: Editora
Sagra Luzzato (Instituto de Informtica da UFRGS), 1999.
INMON, Bill. Building the Data Warehouse. 2. ed. New York: Wiley Computer
Publishing, 1996.
137
MELO, lvaro Nunes Lemos de; SILVA, Juliano Tonezer da Silva; CERVI, Cristiano
Roberto; PAVAN, Willingthon. PyDbDiff uma ferramenta para comparao de
estruturas de bancos de dados. In: ESCOLA REGIONAL DE BANCO DE DADOS
ERBD, 2, 2006, Passo Fundo, Universidade de Passo Fundo. Anais da II Escola
Regional de Banco de Dados, abril, 2006. 6 p.
MELO, Rubens Nascimento; SILVA, Sidney Dias da; TANAKA, Asterio Kyoshi.
Banco de Dados em Aplicaes Cliente-Servidor. Rio de Janeiro: Editora
Infobook, 1997.
MERGEN, Srgio Luis Sardi; HEUSER, Carlos Alberto. Ferb: um framework para
casamento de esquemas. In: ESCOLA REGIONAL DE BANCO DE DADOS ERBD,
2, 2006, Passo Fundo, Universidade de Passo Fundo. Anais da II Escola Regional
de Banco de Dados, abril, 2006. 6 p.
138
OLIVEIRA, Wilson Jos de. Data Warehouse. 1. ed. Florianpolis: Editora Visual
Books, 2002.
RAMALHO, Jos Antonio. Oracle 10g: Ideal para quem deseja iniciar o
aprendizado do Oracle. So Paulo: Editora Pioneira Thomson Learning, 2005.
139
SOUZA, Solange Nice Alves de; CAMPOS, Edit Grassiani Lino; SANTOS, Andr
Roberto Doreto dos. Uma ferramenta para a definio de consultas baseada em
entidades e papis. Revista IEEE Amrica Latina. v.4, junho, 2006. p. 277-282.
WANG, Fusheng; ZHOU, Xin; ZANIOLO, Carlo. Bridging relational database history
and the web: the XML approach. In: WORKSHOP ON WEB INFORMATION AND
DATA MANAGEMENT. Proceedings of the eighth ACM international workshop
140
APNDICE A
Especificao dos scripts utilizados para implementar os exemplos
de fluxogramas apresentados na Etapa C do Captulo 3
142
142
143
143
APNDICE B
Scripts para a criao do Banco de Dados Operacional
(BDO_FOLHA) utilizado pelo setor de Recursos Humanos
145
145
146
146
147
147
APNDICE C
Scripts para a criao do Banco de Dados Operacional
(BDO_ACADEMICO) utilizado pelo setor Acadmico
149
149
150
150
151
151
152
152
APNDICE D
Scripts para a configurao dos nomes de servios dos Bancos de
Dados Operacionais e do Banco de Dados Analtico-Temporal
154
154
APNDICE E
Scripts para a criao do Banco de Dados Analtico-Temporal
(BDAT) utilizado para armazenar os dados analtico-temporais
156
156
157
157
APNDICE F
Especificao dos Scripts utilizados no Estudo de Caso
159
159
160
160
161
161
162
162
163
163
164
164
165
165
166
166
167
167