Individual

Transcrição

Individual
Instituto Superior de Ciências do Trabalho e da Empresa
SISTEMAS INTELIGENTES DE APOIO À DECISÃO
Mestrado em Gestão de Sistemas de Informação
2000/2001
Desenvolvimento de uma Ferramenta OLAP
Sobre Informações dos Alunos do ISCTE
Docente: Professora Doutora Maria José Trigueiros
Realizado por:
João Nascimento
Lisboa, 11 de Setembro de 2001
Sistemas Inteligentes de Apoio à Decisão
Sistema OLAP sobre DataMart ISCTE
Índice
1.
Introdução .............................................................................................................................. 2
2.
Conceitos Teóricos ................................................................................................................. 3
3.
Enquadramento...................................................................................................................... 7
4.
Metodologia.......................................................................................................................... 11
5.
Arquitectura dos DataMarts ................................................................................................ 13
6.
Extracção, Tratamento e Carregamento dos Dados........................................................... 18
Dimensões................................................................................................................................. 19
Dimensão Temporal.............................................................................................................. 20
Dimensão Curso .................................................................................................................... 20
Dimensão Disciplina ............................................................................................................. 20
Dimensão Geografia.............................................................................................................. 20
Dimensão Curricular ............................................................................................................. 20
Dimensão Aluno.................................................................................................................... 20
Tabelas de Factos .................................................................................................................... 29
2 – Inscrições acumuladas ..................................................................................................... 29
3 – As reprovações no ISCTE............................................................................................... 36
6 – Rendimento escolar dos alunos ingressados em regimes especiais ................................ 38
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do ISCTE.................. 43
10 – As médias finais de curso e a sua relação com as notas de ingresso............................. 46
Ano ........................................................................................................................................ 46
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com as mesmas
consoante o núcleo a que pertencem..................................................................................... 50
14 – Distrito de origem dos alunos do ISCTE ...................................................................... 53
17 – Mudanças de curso ........................................................................................................ 57
7.
Implementação da Ferramenta OLAP................................................................................ 61
Criação das Dimensões ........................................................................................................... 62
Criação dos Cubos................................................................................................................... 73
2 – Inscrições acumuladas ..................................................................................................... 74
3 – As reprovações no ISCTE............................................................................................... 80
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do ISCTE.................. 83
10 – As médias finais de curso e a sua relação com as notas de ingresso............................. 84
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com as mesmas
consoante o núcleo a que pertencem..................................................................................... 85
14 – Distrito de origem dos alunos do ISCTE ...................................................................... 87
17 – Mudanças de curso ........................................................................................................ 87
8.
Navegação............................................................................................................................. 90
Utilizando o SQL Server......................................................................................................... 90
Utilizando Outros Clientes ..................................................................................................... 93
Microsoft Excel 2000 ............................................................................................................ 94
Microsoft Front Page 2000.................................................................................................. 102
9.
Conclusão ........................................................................................................................... 107
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
10.
Futuros Trabalhos.......................................................................................................... 108
11.
Índice Fotografias.......................................................................................................... 109
12.
Bibliografia e outras fontes de informação................................................................... 111
1
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
1. Introdução
Este trabalho foi desenvolvido no âmbito da disciplina de Sistemas
Inteligentes de Apoio à Decisão, do Mestrado em Gestão de Sistemas de
Informação do ISCTE. Resultou do desafio lançado pela Docente –
Professora Doutora Maria José Trigueiros - para que fosse dado mais um
contributo para a construção e utilização do Data WareHouse sobre a
situação do ensino no ISCTE.
Partindo de um estudo magnífico (realizado pela mesma professora e
alguns dos seus alunos da Licenciatura em Informática e Gestão deste
Instituto), este trabalho terá como objectivo a construção de um
instrumento OLAP, provando a utilidade do Microsoft Analisys Services
(incluído no Microsoft SQL Server 2000-Enterprise Edition) na execução
de projectos desta natureza. Desta forma, espera-se que seja possível obter
as confirmações às hipóteses geradas no decorrer do estudo já mencionado,
anteriormente.
2
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
2. Conceitos Teóricos
Para se poder obter a informação necessária, é preciso pesquisar
grandes quantidades de dados (seja por data mining ou por outro
processo), pelo que é necessário guardar todos estes dados em enormes
Bases de Dados (na ordem dos TeraBytes). Uma maneira de guardar
informação é através da criação de um Data Warehouse, tal como veremos
de seguida.
Quando uma organização, como o ISCTE, quer tomar importantes
decisões de fundo que podem decidir o seu rumo, irá provavelmente
basear-se em informação histórica. Com essa informação, poderá através
de técnicas como Data Mining, obter informações valiosas, que lhe
permitirão tomar as decisões certas.
Um Data Warehouse é exactamente isso: A Base de dados que gere
toda essa informação histórica (isto colocado de um modo muito simplista).
Como se pode ver pela figura, Data Mining não é a única técnica que
pode ser usada num Data Warehouse. Deve-se isso sim, usar uma série de
técnicas (como OLAP – Online Analytical Processing), que será utilizada
3
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
neste trabalho) que se complementem entre si, formando uma poderosa
ferramenta de análise de informação. A informação extraída por estas
técnicas, pode ainda voltar para o Data Warehouse, para ser extraída
novamente com o objectivo de refinar os dados.
A informação que está contida num Data Warehouse é composta por
informação recolhida na organização, das chamadas "Bases de Dados
Operacionais".
Em muitas organizações, já existem aplicações específicas para as
operações do dia a dia, tendo estas as suas próprias bases de dados,
vulgarmente chamadas de "Bases de Dados Operacionais".
Estas aplicações estão completamente optimizadas para o trabalho
especifico que têm que realizar, não tendo assim informação histórica
desnecessária para tal. De tempos a tempos (podem ser horas, dias ou
semanas - depende da organização em causa), toda a informação contida
nessas bases de dados é transferida para um Data Warehouse, onde vai
ficar inalterada. A todos esses dados é ainda acrescentada um "selo
temporal", para diferenciar um mesmo dado, numa altura diferente (por
exemplo, se alterar a ficha de um cliente, a informação da ficha anterior
ainda fica no Data Warehouse, mas com uma data diferente). Pelo exposta
se começa a perceber que as regras de Codd, tendo em vista a normalização
podem não se aplicar a estes ambientes.
Alguns dados encontram-se repetidos em várias bases de dados
operacionais, pelo que é necessário que não hajam repetições na cópia para
o Data Warehouse. Nem todos os dados são suficientemente importantes
para guardar, pelo que para o Data Warehouse só é guardada a informação
"interessante". Por esta razão, é necessário que o Data Warehouse esteja
4
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
preparado para ser alterado, de acordo com as crescentes necessidades da
organização.
Algumas considerações elementares devem ser levadas em conta,
quando se vai implementar um Data Warehouse.
A informação deve estar dependente do tempo, ou seja, deve conter
um "selo temporal" para que haja uma ligação entre a informação e a data
em que ela entrou no Data Warehouse.
A informação nunca é actualizada. Os dados contidos no Data
Warehouse nunca são alterados, podendo apenas ser consultados. Isto quer
dizer que se uma Base de Dados Operacional altera determinados dados, o
Data Warehouse conserva os dados antigos e as novas alterações, com
"selos temporais" diferentes. Um data Warehouse está assim sempre cheio
de informação histórica.
Num Data Warehouse é necessário que todos os intervenientes no
processo (administradores e utilizadores) tenham acesso a toda a
informação nela contida (tabelas e atributos). Sendo assim, é necessário
alguma coisa que diga que tipo de informação existe, onde está essa
informação, em que formato está, qual a relação entre os diversos dados e
qual a sua origem.
Por estas razões, é necessário existirem dados independentes, apenas
com este tipo de informação. Estes dados são chamados Metadata e servem
para definir a estrutura de uma base de dados. Quando se quer
implementar um sistema bastante complexo, a Metadata é indispensável
para determinar a estrutura das bases de dados operacionais e do Data
Warehouse. Metadata é, então, usada pelos utilizadores para poderem
pesquisar as bases de dados e pelo administrador para poder
correctamente estruturar a organização dos dados.
5
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
A Metadata também é usada como registo das alterações que vão
sendo efectuadas num mesmo registo mas com novas entradas em datas
diferentes.
Um Data Warehouse pode conter informação sobre toda uma
organização,
mas
por
vezes
dentro
das
organizações
existem
departamentos que apenas precisam de ter acesso a parte da informação
existente.
Para esses departamentos deve-se então criar Data Marts, que são
fracções do Data Warehouse mais pequenas, contendo apenas informação
específica para determinado grupo de utilizadores. Consegue-se assim
optimizar estas bases de dados para a sua utilização específica, uma vez
que não contêm demasiada informação supérflua para os seus utilizadores.
Para além disso, isto permite tornar o processamento mais distribuído, logo
tornar todo este processo mais eficiente.
Depois de construído o Data Wharehouse, entra em acção o OLAP. O
objectivo de uma ferramenta OLAP, como a que vai ser implementada no
decorrer deste trabalho, é conseguir a verificação de hipóteses prévias.
Depois de colocada a questão, são formuladas hipóteses que lhe dão
resposta e, com a ajuda da ferramenta OLAP, é possível confirmar ou
refutar cada hipótese enunciada.
Para que seja possível construir uma ferramenta que possa validar as
hipóteses geradas para cada questão, é necessário ter os dados essenciais,
correctos e guardados num local acessível com essa ferramenta.
6
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
3. Enquadramento
Como se pode perceber pelas referências anteriores, a construção de
um Data Warehouse envolve um trabalho hercúleo. A prova disso é o facto
de
terem sido precisos alguns contributos valiosos de diversos
colaboradores para que se tenha chegado, no caso em análise, aos
resultados que serviram de base a este trabalho. E este não será o processo
final. Depois de concluída esta fase, muito trabalho ainda está para fazer,
sendo necessário passar os resultados a futuras gerações de alunos que o
continuarão.
Como se pode ler no documento produzido pelo trabalho a que se vai
dar continuidade: “... pretende-se analisar os aspectos críticos que
condicionam a evolução do ensino Universitário no ISCTE... ”.
Segundo o mesmo documento: “Os aspectos a focar mediante esta
proposta de estudo serão:
? a exigência requerida por cada curso;
? os antecedentes dos alunos, em questões de habilitações literárias ,
família, naturalidade, idade, opções de candidatura, entre outros;
? avaliação da evolução das notas finais de curso ao longo de um
período de tempo;
? avaliar a relação entre o modo de ingresso e as notas obtidas ao longo
do curso;
? avaliar o aproveitamento escolar dos alunos;
? analisar a tendência do tempo de realização pelos alunos nos vários
cursos;
7
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
? avaliar a situação profissional de cada aluno relacionada com o seu
curso;
? estudar a relação existente entre a reforma de educação do ensino
secundário e o aproveitamento no ISCTE;
? avaliar a relação entre o distrito de origem e as notas obtidas ao longo
do curso; “
Como resultado do estudo: “Estes aspectos encontram-se integrados
nos seguintes módulos:
1 – O ingresso no ISCTE
2 – Inscrições acumuladas
3 – As reprovações no ISCTE
4 – Os abandonos no ISCTE
5 – Rendimento escolar dos alunos por contingente de ingresso
6 – Rendimento escolar dos alunos ingressados em regimes especiais
7 – Rendimento escolar dos alunos bolseiros
8 – Rendimento escolar dos alunos que frequentam actividades
extracurriculares do ISCTE
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do
ISCTE
10 – As médias finais de curso e a sua relação com as notas de ingresso
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com as
mesmas consoante o núcleo a que pertencem
12 – Relação entre as notas de ingresso e as cadeiras complementares às
cadeiras base do curso
8
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
13 – Relação entre a área de ensino secundário com a tendência das notas
no ensino superior
14 – Distrito de origem dos alunos do ISCTE
15 – Comparação dos alunos ingressados no ISCTE com os de licenciaturas
suas congéneres
16 – Conhecimento da situação dos recém licenciados perante o emprego
17 – Mudanças de curso
18 – Comparação de notas entre alunos que ingressam após a reforma
educativa e do antigo regime.”
Por uma questão de tempo disponível apenas serão implementados os
módulos definidos como sendo prioritários (a desenvolver a curto prazo),
ou seja:
2 – Inscrições acumuladas
3 – As reprovações no ISCTE
6 – Rendimento escolar dos alunos ingressados em regimes especiais
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do
ISCTE
10 – As médias finais de curso e a sua relação com as notas de ingresso
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com as
mesmas consoante o núcleo a que pertencem
14 – Distrito de origem dos alunos do ISCTE
17 – Mudanças de curso
Já que se trata de uma fracção do problema global, diremos que, em
vez de um Data Warehouse se fará um pequeno DataMart.
9
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Cada uma destas questões está bem definida no documento que serviu
de suporte à realização deste trabalho, pelo que será dispensada a
descrição de cada módulo.
10
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
4. Metodologia
A execução de uma ferramenta OLAP pressupõe, como se pôde
verificar no capítulo dos conceitos teóricos, a existência de um
Datawarehouse, ou pelo menos de um DataMart. Isto porque, como foi
dito, a estrutura das bases de dados operacionais não são as mais
adequadas para o efeito. Portanto, antes de proceder à construção da
ferramenta OLAP há que proceder à transformação da base de dados
operacional num estado mais apropriado para conseguir colocar a
ferramenta a trabalhar.
Deste facto resultou a necessidade de proceder ao processo de ETL
(Extracção, Tratamento e Carregamento) dos dados. Este processo não
pode ser alheio ao objectivo, nem ao estado inicial dos dados, pois a sua
finalidade é, exactamente, colocar os dados operacional numa situação de
integridade e isenção de erros que permita retirar conclusões reais.
Para cada módulo vai ser necessário definir métricas e dimensões que
permitam navegar e obter informação para responder às questões que lhe
estão inerentes.
Posteriormente, é necessário reunir todas essas métricas e dimensões
numa estrutura única à qual se juntarão os dados. Esta pode ser
redundante, conter dados repetidos, mas há-de ser a que melhor se adequa
às necessidades.
11
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
ETL
Alulicen.mdb
DM alunos
OLAP
Figura 1 : Esquema da transformação dos dados operacionais
Por fim, é necessário colocar em prática tudo isto no Microsoft SQL
2000 Server.
Resumindo:
1º Definir Arquitectura dos DataMarts (Métricas, Dimensões e factos);
2º Procurar os dados necessários nas bases de dados operacionais;
3º Criar os dados e informações não disponíveis;
4º Criar cubos;
5º Navegar...
12
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
5. Arquitectura dos DataMarts
As informações que vão ser necessárias para cada um dos módulos são
apresentados de seguida:
2 – Inscrições acumuladas
Aluno
Curso
Semestre
Ano Lectivo
Ano do Curso
N.º Disciplinas inscritas
N.º Disciplinas concluídas
N.º Disciplinas em atraso
N.º Inscrições acumuladas
3 – As reprovações no ISCTE
Curso
Disciplina
Ano Lectivo
N.º Inscritos
N.º Reprovações
Percentagem Reprovações
6 – Rendimento escolar dos alunos ingressados em regimes especiais
Curso
Ano do Curso
Ano Lectivo
N.º Disciplinas inscritas
N.º Disciplinas concluídas
Média de Curso
Regime de ingresso
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do
ISCTE
Curso
13
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Turma
Ano Lectivo
Disciplina
N.º alunos avaliados
N.º alunos inscritos
N.º alunos aprovados
10 – As médias finais de curso e a sua relação com as notas de ingresso
Ano
Aluno
Curso
Ano de Ingresso
Nota de Seriação
Média de Curso
Média das Notas do Curso
Média das Notas de Ingresso do Curso
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com as
mesmas consoante o núcleo a que pertencem
Curso
Disciplina
Departamento
Ano Lectivo
Nota de Seriação
Média da Disciplina
14 – Distrito de origem dos alunos do ISCTE
Aluno
Curso
Ano Lectivo
N.º de Alunos
Distrito
Concelho
Freguesia
17 – Mudanças de curso
Aluno
Curso
Ano de Ingresso
14
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Ano Lectivo
Nota de Seriação
Nº Disciplinas concluídas
Ano Conclusão
Média Curso anterior
Ano Ingresso Novo Curso
Como é possível perceber pela descrição anterior, existe um conjunto
grande de elementos em comum entre os vários módulos. Este facto facilita
a reunião de todas as dimensões e métricas numa única tabela de factos
(fact table).
Uma análise insensível daria o seguinte resultado:
Aluno
Ano Conclusão
Ano de Ingresso
Ano do Curso
Ano Ingresso Novo Curso
Ano Lectivo
Concelho
Curso
Departamento
Disciplina
Distrito
Freguesia
Média Curso anterior
Média da Disciplina
Média das Notas de Ingresso do Curso
Média das Notas do Curso
Média de Curso
N.º alunos aprovados
N.º alunos avaliados
N.º alunos inscritos
N.º alunos reprovados
N.º de Alunos
N.º Disciplinas concluídas
N.º Disciplinas em atraso
N.º Disciplinas inscritas
N.º Inscrições acumuladas
N.º Inscritos
15
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
N.º Reprovações
Nota de Seriação
Percentagem Reprovações
Regime de ingresso
Semestre
Tipo de Disciplina
Turma
Os elementos assinalados a Negrito são considerados métricas, já que
resultam dos factos. Alguns deles podem ser obtidos através de simples
contas sobre outros dados. No entanto, optou-se por proceder à sua
inclusão na tabela de factos para facilitar a consulta.
Quanto aos elementos em itálico, estes são considerados dimensões ou
parte delas.
Com base no exposto, a estrutura aconselhada teria o seguinte aspecto:
16
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Tabela de Factos
Dimensão Curso
Curso
Designação Curso
Dimensão Disciplina
Disciplina
Departamento
DesignaçãoDisciplina
Tipo de Disciplina
DesignaçãoDepartamento
Dimensão Temporal
Ano Lectivo
Lectivo Completo
Dimensão Curricular
CodCurricular
Ano do Curso
Semestre
Aluno
Ano Conclusão
Ano de Ingresso
Ano Ingresso Novo Curso
Ano Lectivo
Disciplina
Média Curso anterior
Média das Notas de Ingresso do Curso
Média das Notas do Curso
Média de Curso
N.º alunos aprovados
N.º alunos avaliados
N.º alunos inscritos
N.º alunos reprovados
N.º de Alunos
N.º Disciplinas concluídas
N.º Disciplinas em atraso
N.º Disciplinas inscritas
N.º Inscrições acumuladas
N.º Inscritos
N.º Reprovações
Média da Disciplina
Percentagem Reprovações
Regime de ingresso
Turma
Nota de Seriação
CodGeograf
CodCurricular
Figura 2 : Estrela do Data Warehouse com as dimensões e as métricas
17
Dimensão Geográfica
Cod_Geograf
Distrito
Concelho
Freguesia
Região
País
Dimensão Aluno
Aluno
Nome
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
6. Extracção, Tratamento e Carregamento dos Dados
Para obter as informações, identificadas anteriormente como sendo
necessárias, há que buscar nas bases de dados operacionais por “matériaprima” que possibilite a obtenção do que se pretende.
Esta tarefa não é fácil, atendendo ao estado em que se encontra a base
de dados operacional ao alcance. Contudo, com a excelente ajuda
providenciada pelo Enterprise Manager do Microsoft SQL 2000, é possível,
depois de algum trabalho, obter o que é necessário.
Segue-se uma explicação do processo de produção das informações
necessárias, bem como do processo de gestão da MetaData.
O trabalho a realizar decorre, essencialmente ao nível do Enterprise
Manager do SQL Server 2000. Numa primeira fase constrói-se a Staging
Area (também conhecida por ODS – Operational Data System)
directamente das bases de dados operacionais. Desta forma consegue-se
obter todos os dados relevantes (quer por cópia directa, quer por
construção de fórmulas) agrupados por tema (Dimensões).
Numa segunda fase, procede-se à união de todas tabelas de factos,
dando origem ao verdadeiro DataWarehouse. Alternativamente, a este
procedimento, pode deixar-se as tabelas de factos como estão (separadas),
interligando-as apenas através de elementos comuns.
Neste trabalho optou-se por realizar a primeira hipótese. Mais
trabalhosa mas é a que melhor realça as potencialidades do Microsoft SQL
Server 2000.
18
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Dimensões
O primeiro trabalho (e o mais fácil) será, antes de mais, trazer para a
Staging Area as tabelas das dimensões. Incluímos neste grupo a tabela de
Disciplinas, Cursos, Curricular, Geográfica, Aluno.
Para cada uma é necessário procurar na base de dados operacional por
elementos que as preencham. As tarefas que farão essa busca baseiam-se
nos seguintes princípios:
Elemento
Código do Curso
Designação do Curso
Código da Disciplina
Designação da Disciplina
Tipo de Disciplina
Código de Departamento
Nome do Departamento
Cod_Curricular
Ano Curricular
Semestre
Ano Lectivo
Lectivo Completo
Numero do Aluno
Nome do Aluno
Nota de Seriação
Cod_Geograf
Cód_Geograf
Frequesia
Concelho
Distrito
Região
País
Tabela origem
Campo Origem
Codigo
NomeCurto
Codigo
Cadeiras
Designacao
Teoricas/Praticas/TeorPrat
Departamento Codigo
Departamento Designação
Hstins
AnoCurr
Hstins
SemesCurr
Lectivos
Lectivo
Lectivos
Lectivo+”/”+Lectivo+1
Numero
Nome
NotaIngr
AlunosGeograf
NatuNaci/Naturalidade
/NataFreg/NataConc
/NataDist
Cursos
Tabela dos Distritos, Concelhos e Freguesias
Nacionais (retirada na internet)
Resultando, então, nas seguintes instruções:
19
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Dimensão Temporal
SELECT lectivos.lectivo, (str(lectivos.lectivo)+”/”+
str(lectivos.lectivo+1)) as LectivoCompleto
FROM lectivos
Dimensão Curso
SELECT cursos.codigo, cursos.NomeCurto
FROM cursos
Dimensão Disciplina
SELECT cadeiras.codigo, cadeiras.designacao,
IIf([cadeiras].[Teoricas]<>"",'T',IIf([cadeiras].[Praticas]<>"",'P',II
f([cadeiras].[TeorPrat]<>"",'M','I'))) AS Tipo, departamento.codigo as
Departamento, departamento.designacao as DesignacaoDepartamento
FROM cadeiras inner join departamento on
(left(cadeiras.codigo,2)=departamento.codigo);
Dimensão Geografia
SELECT geografia.cod_geograf, geografia.Freguesia, geografia.Concelho,
geografia.Distrito, geografia.Região, geografia.Pais
FROM geografia
Dimensão Curricular
SELECT Distinct Hstins.AnoCurr, Hstins.SemesCurr
FROM Hstins
O campo CodCurricular terá de ser preenchido gerando um número para
cada nível.
Dimensão Aluno
SELECT alunos.numero, alunos.nome
FROM Alunos
20
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
As imagens seguintes resumem apenas a passagem de uma das tabelas
(neste caso, a tabela relativa à dimensão Temporal). Será escusado voltar a
descrever o trabalho realizado para as restantes dimensões, dado que se
tornaria bastante repetitivo.
Para conseguir preencher essa tabela será utilizado um package no
Data Transformation Services. O SQL Server 2000 disponibiliza um editor
de packages que facilita a construção de ferramentas de ETL. O ambiente
de trabalho do Enterprise Manager é mostrado na figura seguinte.
Base de dados a criar.
(Staging area)
Lista de tabelas vazia.
Ferramentas de ETL a
utilizar para criar as
tabelas.
Figura 3: Ambiente de trabalho do Enterprise Manager
Resta agora criar um novo package que permita seleccionar os dados
da Base de dados operacional para dentro da Staging Area. A figura
seguinte mostra como o ambiente de trabalho do editor de package.
21
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 4 : Ambiente de trabalho do DTS
Dado que a Base de dados operacional se encontra em Microsoft
Access, o primeiro elemento a levar para o package é representado na barra
lateral por uma chave (símbolo do Microsoft access mostrada uma janela de auxílio à identificação do ficheiro.
22
). Será então
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 5 : Identificação do Ficheiro correspondente à BD Operacional
O resultado será o que se mostra na figura seguinte.
Figura 6 : Criação de um package – Ligação à BD Operacional
23
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
O segundo passo consiste na ligação à Staging Area. Dado tratar-se de
uma estrutura do SQL Server 2000, o símbolo ( ) que a representa é o
primeiro da lista. Terá de ser arrastado para o interior do package e
definido convenientemente, como se pode ver na figura seguinte.
Figura 7 : Definição da ligação à Staging Area - SIAD
Por último, falta o mais importante – definir a regra de transposição
entre BD Operacional e a Staging Area. Isso faz-se através de uma
Transform Data Task (
). Basta fazer clique nesta ferramenta, clique
sobre a origem (BD Operacional) e novo clique sobre o destino (Staging
Area). Aparecerá um traço que simboliza a transformação. Resta agora
alterar as propriedades desta tarefa, por forma a que faça exactamente o
que dever ser feito.
24
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 8 : Definição da transformação
O trabalho principal desenvolve-se a este nível. Todo o segredo da
transformação da base de dados operacional para o Sistema de apoio à
decisão está aqui em foco.
Se na base de dados operacional já existir uma consulta (view) cujo
resultado seja exactamente o que se pretende, é só preencher o campo
Table/View com o seu nome. Caso contrário, é possível especificar um novo
comando SQL no campo SQL query. Este último pode ser preenchido com a
ajuda de um editor de expressões SQL, acessível pelo botão de comando
Build Query...
25
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 9 : Editor de Queries
Com a lista de tabelas à esquerda e com os campos, a construção da
consulta que se pretende torna-se facilitada.
Como a tabela de origem não está em condições de ser copiada
integralmente para a Staging Area, nem existe nenhuma consulta na base
de dados operacional que transforme os dados da forma pretendida, há
que preencher o campo SQL Query. Depois de vários cliques, obtemos o
seguinte:
26
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 10 : Definição da Instrução SQL da Dimensão Temporal
De seguida define-se o destino dos dados recolhidos, utilizando o
separador Destination. Aqui, como não foi criada previamente uma
estrutura que acolhesse os dados, é possível fazê-lo neste momento.
Figura 11 : Definição da Estrutura da Dimensão Temporal
27
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
O único reparo a fazer, nesta circunstância, é a alteração do nome da
tabela de destino (New Table, não é muito elucidativo). Chamemo-lhe
apenas Lectivos.
No separador Transformations verificaremos, simplesmente, como a
origem passa para o destino.
Figura 12 : Transformações Origem/Destino da Dimensão Temporal
As definições necessárias estão feitas, pelo que accionaremos o botão
OK. Resta, agora, gravar o package (utilizando a
e proceder à sua execução (utilizando o botão
28
), para utilização futura,
).
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 13 : Resultado da Execução do Package
Tabelas de Factos
Uma vez passadas as tabelas das dimensões para o interior da Staging
Area, segue-se a construção das tabelas de factos, para cada um dos
módulos.
2 – Inscrições acumuladas
Campo na Staging Area
AlunoNum
CodCurso
CodCurricular
AnoLectivo
DInscritas
Dfeitas
Rep
InscAcum
BDO Origem
Hstins
Hstins
Hstins
Hstins
Cadins
Cadfei
Cadfei
Cadins
29
Origem
Numero
CodCurso
SemesCurr e AnoCurr
DataInscr
Contar em Hstins
Contar em CadFei
CadIns - CadFei
Inscrição Duplicada
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Os elementos a negro terão de ser calculados, ao passo que os restantes
serão apenas copiados. Vai então ser gerada uma tabela na Staging Area
que terá a estrutura constituída pelas linhas da tabela anterior.
Para este primeiro exemplo teremos uma expressão ligeiramente
complexa. Devido às limitações das expressões SQL do SQL Server 2000
(não permite a contagem de elementos distintos automaticamente), foi
necessário implementar uma consulta no Access (fonte dos dados
operacionais), por forma a conseguir obter as inscrições acumuladas.
Na construção desta expressão, assumiu-se que todos os registos na
tabela cadfei (na BD operacional) se referem a disciplinas realizadas,
independentemente da nota que se encontra no campo Nota (dado que
alguns registos não têm nota ou têm uma nota inferior a 9, assumiu-se que
sejam erros de preenchimento).
A expressão que permitiu preencher o primeiro Data Mart é a
seguinte:
SELECT hstins.numero AS AlunoNum, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataI
nscr)-1) AS AnoLectivo, Count(hstins.numero) AS DInscritas,
Count(cadfei.Nota) AS DFeitas, [DInscritas]-[DFeitas] AS Rep,
DSum("InsRepetidas","[01-InscRepet]", "AlunoNum=val("+Str(AlunoNum)+")
and (AnoLectivo<val("+Str(AnoLectivo)+") or
(AnoLectivo=val("+Str(AnoLectivo)+") and
(AnoCurr<val("+Str(oAnoCur)+") or (Anocurr=val("+Str(oAnoCur)+") and
SemesCurr<='"+oSemestre+"'))))") AS InscAcum
FROM hstins LEFT JOIN cadfei ON (hstins.numero = cadfei.numero) AND
(hstins.codigo = cadfei.codigo)
GROUP BY hstins.numero, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataI
nscr)-1)
30
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
ORDER BY hstins.numero, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataI
nscr)-1);
Onde a subquery 01-InscRepet contém o seguinte código (no sentido
de obter o número de disciplinas que o aluno se encontra a repetir num
determinado ano):
SELECT H1.numero AS AlunoNum,
IIf(Month([h1.DataInscr])>8,Year([h1.DataInscr]),Year([h1.DataInscr])1) AS AnoLectivo, H1.CodCurso AS oCurso, H1.AnoCurr, H1.SemesCurr,
Count(H1.codigo) AS InsRepetidas
FROM hstins AS H1 WHERE (((Exists (SELECT H2.numero FROM hstins H2
WHERE (H1.numero=H2.numero) and (H1.codigo=H2.codigo) and
(IIf(Month([h1.DataInscr])>8,Year([h1.DataInscr]),Year([h1.DataInscr])
-1) >
IIf(Month([h2.DataInscr])>8,Year([h2.DataInscr]),Year([h2.DataInscr])1))))<>False)) GROUP BY H1.numero,
IIf(Month([h1.DataInscr])>8,Year([h1.DataInscr]),Year([h1.DataInscr])1), H1.CodCurso, H1.AnoCurr, H1.SemesCurr ORDER BY H1.numero,
IIf(Month([h1.DataInscr])>8,Year([h1.DataInscr]),Year([h1.DataInscr])1);
Definidas as expressões, procede-se à criação de um novo package
(Modulo 2) que assegure a transformação. O processo é idêntico ao
descrito para as tabelas das dimensões pelo que não será repetido aqui. O
que se descreve de seguida é, simplesmente, as fases do processo que são
distintas. Nesse caso, inicia-se pela definição da fonte de dados (como
sendo a connection ao Access).
31
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 14 : Definição da Query que preenche o primeiro Data Mart
Posteriormente o destino dos resultados das expressões (como sendo
uma tabela na connection ao SQL), a fase seguinte consiste na definição do
destino dos dados recolhidos. Ao passar para o separador Destination,
nesta caixa de diálogo, é proposta a criação de uma tabela nova (uma vez
que a Staging Area se encontra vazia). Aceitando a sugestão da estrutura
para a tabela na Staging Area, altera-se apenas o nome.
32
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 15 : Criação da Tabela de Destino dos Dados
De volta à Caixa de mensagem de parametrização de transformações,
teremos criado a estrutura da tabela em função dos campos da origem.
Figura 16 : Estrutura Completa da Tabela de Destino
33
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Verificaremos, agora, as correspondências entre campos de origem e
de destino. No separador Transformations. O DTS sugere uma
correspondência directa de cópia.
Figura 17 : Correspondência na passagem Origem-Destino
Neste caso, porque há interesse nisso, mantém-se a configuração
sugerida pelo DTS. No entanto, noutras circunstâncias poder-se-ia definir
expressões de transformação como, por exemplo:
34
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 18 : Transformação Personalizada do Número de Aluno
Se fosse necessário transformar o número de Aluno num outro 10
vezes superior. A instrução que faria tal transformação seria:
DTSDestination("AlunoNum") = DTSSource("AlunoNum") * 10
Neste ponto atingiu-se a situação de ter o Package devidamente
configurado para realizar a transformação dos dados Operacionais em
informações
na
Staging
Area.
Basta
executar
seleccionando-a e accionando o botão de execução (
35
a
).
transformação,
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
3 – As reprovações no ISCTE
Campo na Staging Area
BDO Origem
Curso
Hstins e Curric
Disciplina
Hstins e Curric
Ano Lectivo
Hstins
DInscritas
Hstins
DFeitas
Cadfei
Origem
CodCurso
codigo
Ano da (DataInscr)
Contar DataInscr
Contar Nota
Mais uma vez, os elementos a negro terão de ser calculados, ao passo
que os restantes serão apenas copiados. Vai então ser gerada uma tabela
(Reprovacoes) na Staging Area que terá a estrutura constituída pelas linhas
da tabela anterior. O elemento PercRep (percentagem de reprovações), não
será incluído por uma questão facilidade de manipulação no Analysis
Services.
Para proceder à transformação dos dados será necessário recorrer à
seguinte instrução SQL:
SELECT hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1) AS AnoLectivo,
Count(hstins.numero) AS DInscritas, Count(cadfei.Nota) AS DFeitas
FROM curric INNER JOIN (hstins LEFT JOIN cadfei ON (hstins.numero =
cadfei.numero) AND (hstins.codigo = cadfei.codigo)) ON (curric.CodCurso = hstins.CodCurso)
AND (curric.codigo = hstins.codigo)
GROUP BY hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1)
ORDER BY hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1);
Um novo package (Modulo 3) ajudará a transformar e transportar os
dados necessários da base de dados operacional para a Staging Area.
A sua definição encontra-se, resumidamente, nas figuras seguintes.
36
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 19 : Definição da Origem(Source) Módulo 3
Figura 20 : Definição do Destino - Módulo 3
37
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 21 : Definição da Transformação - Módulo 3
6 – Rendimento escolar dos alunos ingressados em regimes especiais
Campo na Staging Area
BDO Origem
Origem
Curso
Hstins e Curric
CodCurso
oAnoCur
Hstins
AnoCurr
AnoLectivo
Hstins
Ano da (DataInscr)
Dinscritas
Hstins
Contar DataInscr
Dfeitas
Cadfei
Contar Nota
MédiaNota
Cadfei
Média Nota
RegimeIngresso
Alunos
HabiIngr
Contingente
Alunos
NatuNaci
Com a estrutura anterior fica resolvido também o Módulo 5, que
apesar de não ser requerido a esta altura do trabalho, a facilidade de
obtenção dos dados que permitem executá-lo levou a que se optasse por
desenvolvê-lo já também.
38
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Vai então ser gerada uma tabela (Ingressados) na Staging Area que
terá a estrutura constituída pelas linhas da tabela anterior.
Em relação ao Contingente, como não existe na base de dados
operacional um campo que explicite claramente o objectivo, recorreu-se ao
campo da naturalidade do aluno para definir o regime em que terá feito o
seu ingresso no Ensino Superior (ISCTE).
Observando a tabela Tabelas da base de dados operacional, verifica-se
que a forma como o campo NatuNaci é preenchido pela seguinte regra:
tabela
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
B
codigo
04
06
08
10
12
14
16
20
22
24
26
28
30
34
40
44
48
52
54
58
60
62
64
66
68
70
72
74
76
78
80
81
82
83
84
designacao
PORTUGUES
ES
NATURAIS
ACORES
MADEIRA
MACAU
PORTUGUES
ES DAS
PORTUGUES
ES NATURAIS
ARGENTINA
valor1
valor2
ANGOLA
BRASIL
CABO VERDE
GUINE BISSAU
MOCAMBIQU
E
SAO TOME E
PRINCIPE
BELGICA
FRANCA
HOLANDA
ITALIA
REPUBLICA
FEDERAL
DA
REINO UNIDO
AFRICA DO
SUL
VENEZUELA
QUENIA
TIMOR
ZAIRE
ROMENIA
INDIA
CANADA
ESPANHA
FILANDIA
SUÉCIA
ESTADOS
UNIDOS
DA
MARROCOS
MAURITÂNIA
HUNGRIA
POLONIA
39
0
0
0
0
0
0
0
0
Sistemas Inteligentes de Apoio à Decisão
tabela
B
B
codigo
85
87
OLAP sobre DataMart Alunos
designacao
ESLOVAQUIA
ÁUSTRIA
valor1
valor2
0
0
0
0
Da observação destes dados foi possível constituir a seguinte regra:
04 => Geral
06 => Esp. Açores
08 => Esp. Madeira
10 => Esp. Macau
restantes => Esp. Emigrantes
Relativamente ao Regime de Ingresso (que é o que interessa para este
módulo) estão estabelecidos os seguintes:
Transferências (de outros estabelecimentos) => 6 / J / D / E / F / M
Reingressos => 4 / H
Mudanças de Curso => 7 a 112 / G
Concursos de Acesso => C / A / L / N
Atletas de Alta Competição =>
Oriundos dos PALOP’S => 5 / B / I
Os códigos anteriormente apresentados resultaram de uma observação
da tabela Tabelas da base de dados operacional. É com base nestes códigos
que se dá o preenchimento do campo HabiIngr.
Para proceder à transformação dos dados será necessário recorrer à
seguinte instrução SQL:
SELECT hstins.CodCurso AS Curso, hstins.AnoCurr AS oAnoCur,
IIf(Month([hstins].[DataInscr])>8,Year([hstins].[DataInscr]),Year([hstins].[DataInscr])-1) AS
AnoLectivo, (IIf([NatuNaci]="04","Geral",IIf([NatuNaci]="06","Esp.
Açores",IIf([NatuNaci]="08","Esp. Madeira",IIf([NatuNaci]="10","Esp. Macau","Esp.
Emigrantes"))))) AS Contingente, Count(hstins.numero) AS DInscritas, Count(cadfei.Nota) AS
40
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
DFeitas, Avg(cadfei.Nota) AS MédiaNota, (IIf([Habiingr]="6" Or [Habiingr]="J" Or
[Habiingr]="D" Or [Habiingr]="E" Or [Habiingr]="F" Or
[Habiingr]="M","Transferências",IIf([Habiingr]="4" Or
[Habiingr]="H","Reingressos",IIf([Habiingr]="G" Or (Val([Habiingr])>=7 And
Val([Habiingr])<=112),"Mudança de Curso",IIf([Habiingr]="C" Or [Habiingr]="A" Or
[Habiingr]="L" Or [Habiingr]="N","Concurso",IIf([Habiingr]="5" Or [Habiingr]="I" Or
[Habiingr]="B","PALOP´S","OUTROS")))))) AS RegimeIngresso
FROM alunos INNER JOIN (hstins LEFT JOIN cadfei ON (hstins.numero =
cadfei.numero) AND (hstins.codigo = cadfei.codigo)) ON alunos.numero = hstins.numero
GROUP BY hstins.CodCurso, hstins.AnoCurr,
IIf(Month([hstins].[DataInscr])>8,Year([hstins].[DataInscr]),Year([hstins].[DataInscr])-1),
(IIf([NatuNaci]="04","Geral",IIf([NatuNaci]="06","Esp. Açores",IIf([NatuNaci]="08","Esp.
Madeira",IIf([NatuNaci]="10","Esp. Macau","Esp. Emigrantes"))))), (IIf([Habiingr]="6" Or
[Habiingr]="J" Or [Habiingr]="D" Or [Habiingr]="E" Or [Habiingr]="F" Or
[Habiingr]="M","Transferências",IIf([Habiingr]="4" Or
[Habiingr]="H","Reingressos",IIf([Habiingr]="G" Or (Val([Habiingr])>=7 And
Val([Habiingr])<=112),"Mudança de Curso",IIf([Habiingr]="C" Or [Habiingr]="A" Or
[Habiingr]="L" Or [Habiingr]="N","Concurso",IIf([Habiingr]="5" Or [Habiingr]="I" Or
[Habiingr]="B","PALOP´S","OUTROS"))))))
ORDER BY hstins.CodCurso, hstins.AnoCurr,
IIf(Month([hstins].[DataInscr])>8,Year([hstins].[DataInscr]),Year([hstins].[DataInscr])-1),
(IIf([NatuNaci]="04","Geral",IIf([NatuNaci]="06","Esp. Açores",IIf([NatuNaci]="08","Esp.
Madeira",IIf([NatuNaci]="10","Esp. Macau","Esp. Emigrantes")))));
Posto isto, será construído um package (Modulo 6) para transformar
os dados da base de dados operacional para a tabela de destino. As figuras
seguintes mostram as definições deste package, relativo ao Módulo 6.
41
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 22 : Definição Origem (source) – Módulo 6
Figura 23 : Definição Destino - Módulo 6
42
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 24 : Definição Transformação - Módulo 6
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do
ISCTE
Campo na Staging Area
BDO Origem
Origem
Curso
Hstins e Curric
CodCurso
Turma
Hstins
Turma
AnoLectivo
Hstins
Ano da (DataInscr)
Disciplina
Hstins
codigo
Ainscritos
Hstins
Contar numero
Aavaliados
Hstins
Contar Notas > 0
Aaprovados
Cadfei
Contar Nota
Ao criar a estrutura anterior, não sendo evidente na Base de Dados
operacional a inferência sobre os alunos que foram avaliados, optou-se por
43
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
realizar a selecção sobre o campo Nota, assumindo que os alunos avaliados
são todos os que apresentam um valor superior a 0 neste campo.
Assim sendo, a expressão que permite transportar os dados da BD
operacional para a Staging Area é:
SELECT IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1)
AS oAnoLectivo, hstins.CodCurso AS oCurso, hstins.codigo AS aDisciplina, hstins.Turma AS
aTurma, Count(hstins.numero) AS Ainscritos, Count(cadfei.Nota) AS Aaprovados, (SELECT
Count(H1.Nota) FROM hstins as H1 Where trim(H1.Turma)=trim(hstins.Turma) and
val(hstins.codigo)=val(H1.codigo) and
IIf(Month([H1.DataInscr])>8,Year([H1.DataInscr]),Year([H1.DataInscr])1)=IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1) and
val(H1.codcurso)=val(hstins.codCurso) and H1.Nota>0) AS Aavaliados
FROM hstins LEFT JOIN cadfei ON (hstins.codigo = cadfei.codigo) AND (hstins.numero
= cadfei.numero)
GROUP BY IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)1), hstins.CodCurso, hstins.codigo, hstins.Turma
ORDER BY IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)1), hstins.CodCurso, hstins.codigo, hstins.Turma;
As figuras seguintes mostram a configuração do package (Modulo 9)
que permite criar e carregar os dados da tabela (Rendimento) de suporte a
este módulo.
44
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 25: Definição Origem (Source) - Módulo 9
Figura 26 : Definição Destino - Módulo 9
45
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 27 : Definição de Transformação - Módulo 9
10 – As médias finais de curso e a sua relação com as notas de ingresso
Ano
Campo na Staging Area
BDO Origem
Origem
Aluno
Alunos
Numero
Curso
Alunos
CodCurso
AnoIngresso
Alunos
Ano da (DataIngr)
NotaIngresso
Alunos
NotaIngress
AnoConclusão
Hstins
Ano da (DataInscr)
MediaCurso
Alunos
NotaFinal
MediaIngresso
Alunos
Notaingress
AnosDoCurso
Alunos/Hstins
Conclusão-Ingresso
Mais uma vez os dados disponíveis na Base de dados não são
conclusivos. Neste caso, torna-se impossível pelos dados disponíveis
determinar as notas de ingresso. Dado que, o objectivo deste trabalho em
46
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
particular, não é primordialmente o rigor, mas sim a construção de um
modelo que permita representar uma ferramenta de visualização de
informação. Assim sendo, optou-se por gerar os dados necessário, ficando
para posteriores fases do trabalho, a substituição dos dados fictícios por
dados reais. Esta situação afecta apenas o campo das notas de ingresso,
sendo todos os restantes verdadeiros e retirados de campos da bases de
dados.
Irá ser utilizada uma fórmula que fará uma série de cálculos gerando
um número entre 10 e 20 (assumindo que só ingressaram alunos com nota
positiva). A fórmula é construída conjugando a naturalidade do aluno e a
sua habilitação de ingresso, numa combinação sem significado intencional.
Em termos de Média de Curso, para evitar cálculos demasiado
complexos a este nível, optou-se pela criação de um membro calculado na
ferramenta OLAP do SQL Server. Assim sendo, a expressão que permite
transportar os dados da BD operacional para a Staging Area não
contemplará este parâmetro, ficando com o seguinte aspecto:
SELECT A1.numero AS Aluno, (select int(avg(year(A2.DataIngr))) from alunos A2 where
A1.numero<A2.numero) AS altano, A1.CodCurso, IIf(round(10+(IIf([Habiingr] Is Not
Null,Asc([HabiIngr]),10)*IIf([naturalidade]
Is
Not
naturalidade<>"",Asc(Left([naturalidade],1)),(IIf([natunaci]
Null
Is
Null,[natunaci],10)*10)))/1000)>20,15,(round(10+(IIf([Habiingr]
Null,Asc([HabiIngr]),10)*IIf([naturalidade]
Is
Not
naturalidade<>"",Asc(Left([naturalidade],1)),(IIf([natunaci]
Null,[natunaci],10)*10)))/1500)))
AS
NotaIngresso,
And
Not
Is
Not
Null
And
Is
IIf([DataIngr]
Not
Is
Null,[altano],Year([DataIngr])) AS AnoIngresso, A1.NotaFinal AS MediaCurso, (Select max(
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr)+1,Year(hstins.DataInscr))) From Hstins
where Hstins.numero=A1.numero and Hstins.codcurso = A1.codcurso) AS AnoConclusao,
[AnoConclusao]-[AnoIngresso] AS AnosdoCurso
FROM alunos AS A1
47
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
WHERE (((A1.FimCurso)="S"));
As figuras seguintes mostram a configuração do package (Modulo 10)
que permite criar e carregar os dados da tabela (ComparaES) de suporte a
este módulo.
Figura 28 : Definição Origem (Source) - Módulo 10
48
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 29 : Definição Destino - Módulo 10
Figura 30 : Definição de Transformação - Módulo 10
49
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com
as mesmas consoante o núcleo a que pertencem
Campo na Staging Area
Curso
Disciplina
AnoLectivo
MediaDisciplina
MediaIngresso
BDO Origem
Alunos
Hstins
Hstins
Hstins
Alunos
Origem
CodCurso
Codigo
Ano da (DataInscr)
Média(Nota)
Média(Notaingress)
Tal como aconteceu no módulo anterior, também aqui se vai proceder
à
geração
da
Média
de
Ingresso,
pelos
motivos
apresentados
anteriormente. A expressão que permite transportar os dados da BD
operacional para a Staging Area tem o seguinte aspecto:
SELECT hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1) AS AnoLectivo,
(SELECT round(avg(h1.Nota)) from hstins as H1 where (H1.codCurso=hstins.codcurso) and
(H1.codigo=hstins.codigo) and
IIf(Month(H1.DataInscr)>8,Year(H1.DataInscr),Year(H1.DataInscr)-1)=
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1)
group by H1.codigo, H1.codcurso,
IIf(Month(H1.DataInscr)>8,Year(H1.DataInscr),Year(H1.DataInscr)-1)) AS MediaDisciplina,
(SELECT round(avg(IIf(round(10+(IIf([a1.Habiingr] Is Not
Null,Asc([a1.HabiIngr]),10)*IIf([a1.naturalidade] Is Not Null And
[a1.naturalidade]<>"",Asc(Left([a1.naturalidade],1)),(IIf([a1.natunaci] Is Not
Null,[a1.natunaci],10)*10)))/1000)>20,15,(round(10+(IIf([a1.Habiingr] Is Not
Null,Asc([a1.HabiIngr]),10)*IIf([a1.naturalidade] Is Not Null And
[a1.naturalidade]<>"",Asc(Left([a1.naturalidade],1)),(IIf([a1.natunaci] Is Not
Null,[a1.natunaci],10)*10)))/1500))))) as MediaIngresso from Alunos as A1 group by
A1.CodCurso, IIf(Month(a1.DataInscr)>8,Year(a1.DataInscr),Year(a1.DataInscr)-1) having
A1.CodCurso= hstins.CodCurso and
50
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)1)=IIf(Month(a1.DataInscr)>8,Year(a1.DataInscr),Year(a1.DataInscr)-1)) AS MediaIngresso
FROM alunos INNER JOIN (curric INNER JOIN hstins ON (curric.CodCurso =
hstins.CodCurso) AND (curric.codigo = hstins.codigo)) ON alunos.numero = hstins.numero
GROUP BY hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1)
ORDER BY hstins.codigo, hstins.CodCurso,
IIf(Month(hstins.DataInscr)>8,Year(hstins.DataInscr),Year(hstins.DataInscr)-1);
As figuras seguintes mostram a configuração do package (Modulo 11)
que permite criar e carregar os dados da tabela (CadeIngresso) de suporte a
este módulo.
Figura 31 : Definição Origem (Source) - Módulo 11
51
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 32 : Definição Destino - Módulo 11
Figura 33 : Definição de Transformação - Módulo 11
52
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
14 – Distrito de origem dos alunos do ISCTE
Campo na Staging Area
BDO Origem
Curso
Hstins
AnoLectivo
Hstins
CodGeograf
Geografia
NAlunos
Alunos
Origem
CodCurso
Ano da (DataIngr)
Concelho
NotaFinal
Este módulo é, talvez o que implica mais trabalho. Isto porque os
campos que constituem a sua essência - identificação geográfica – estão
preenchidos na Base de Dados Operacional de uma forma, perfeitamente,
anárquica. Isto impossibilita que se possa extrair, directamente, os dados
que se pretende.
Para ultrapassar esta dificuldade, é aconselhável separar a tabela dos
Alunos (existente na Base de dados Operacional), nos vários Distritos de
Portugal. Posteriormente, dentro de cada grupo será mais fácil contabilizar.
Continente
Distrito
Concelho
Freguesia
Ilhas
Distrito
Concelho
Freguesia
Nacionais
Estrangeiros Divisão Por Países
Isto será feito recorrendo à tabela de Concelhos e Freguesias obtida a
partir da internet.
De referir ainda a necessidade de tratar os dados das inscrições de
alunos por forma a que seja possível contabilizar apenas um registo de
cada aluno por ano lectivo, independentemente das disciplinas que
frequenta, já que aqui o que importa é o número de alunos por curso e não
o número de inscrições (que é dados pela tabela Hstins da Base de Dados
Operacional). Para agrupar as inscrições dos alunos por ano, criou-se uma
53
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
consulta (Matriculas) que terá um registo de cada aluno por ano. A
expressão inerente a esta consulta é a seguinte:
SELECT h1.numero, IIf(Month(h1.DataInscr)>8,Year(h1.DataInscr),Year(h1.DataInscr)-1)
AS AnoLectivo, h1.CodCurso
FROM hstins AS h1
GROUP BY h1.numero,
IIf(Month(h1.DataInscr)>8,Year(h1.DataInscr),Year(h1.DataInscr)-1), h1.CodCurso
ORDER BY h1.numero;
O resultado desta consulta servirá para o agrupamento das inscrições
por curso e ano lectivo.
De seguida, fez-se a contagem de alunos por cada Distrito. Depois de
divididos os registos de alunos por grupos em função do Distrito,
procurou-se na consulta Matriculas, todos os alunos inscritos que
pertencem a esse grupo. Em simultâneo, procurou-se identificar mais
precisamente a freguesia a que pertence o aluno, atendendo à coincidência
entre as primeiras 5 primeiras letras da freguesia e concelho
face à
designação de naturalidade do aluno.
Este processo terá que ser feito 18 vezes (já que existem exactamente 18
Distritos em Portugal Continental). Os alunos provenientes das ilhas e de
países estrangeiros serão processados separadamente.
O código seguinte tem como objectivo contabilizar as inscrições de
alunos do Distrito de Aveiro, identificando a sua freguesia, comparando a
sua naturalidade com a designação de Freguesia da tabela retirada da
internet (com todas as Freguesias deste Concelho).
SELECT Matriculas.AnoLectivo, Geografia.Cod_GeografCount(Matriculas.numero) AS
NAlunos, Matriculas.CodCurso
54
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
FROM (Matriculas INNER JOIN AVEIRO ON Matriculas.numero = AVEIRO.numero)
INNER JOIN Geografia ON ((AVEIRO.naturalidade) Like Left([Geografia].[Freguesia],5)+"*"
and ([AVEIRO].[naturalidade]) Like "*"+Left([Geografia].[Concelho],4)+"*")
WHERE Geografia.Cod_Distrito=1
GROUP BY Matriculas.AnoLectivo, Geografia.Cod_Geograf, Matriculas.CodCurso;
Este código é apenas para contabilizar os alunos do Distrito de Aveiro.
Para os restantes Distritos efectuou-se a mesma consulta, variando as
palavras de “Aveiro” para “Bega” e, na clausula “Where”, em vez de 1
utilizou-se o código 2 (correspondente ao Distrito de Bega, na tabela
geografia retirada da internet). Para os restantes Distritos procedeu-se de
igual forma.
As imagens seguintes demonstram a obtenção dos dados para a
concretização do módulo actual. Os dados serão agrupados na tabela
Origem, na Staging Area.
Figura 34 : Definição Origem (Source) - Módulo 14
55
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 35 : Definição Destino - Módulo 14
56
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 36 : Definição de Transformação - Módulo 14
17 – Mudanças de curso
Campo na Staging Area
Aluno
Curso
AnoLectivo
AnoCurricular
Tipo
CursoAnt
AnoIngresso
NotaIngressoAnt
Ncadeiras
MediaAnt
BDO Origem
Alunos
Alunos
Hstins
Hstins
Alunos
Hstins
Alunos
Mudcur
Hstins
Hstins
Origem
Numero
CodCurso
Ano da (DataInscr)
AnoCurr
HabiIngr
CodCurso
Ano da (DataIngr)
NotaIngress
Count(codigo)
Média(Nota)
Para construir a tabela (Mudança) de factos que suportará este
módulo, foi necessário recorrer à seguinte expressão:
SELECT alunos.numero AS Aluno, alunos.CodCurso AS Curso, hstins.AnoCurr AS
AnoCurricular, IIf(Val([Alunos.HabiIngr])>1 And
Val([Alunos.HabiIngr])<999,"Interno","Externo") AS Tipo, mudcur.CodCurso AS CursoAnt,
IIf(Month([Alunos].[DataIngr])>8,Year([Alunos].[DataIngr]),Year([Alunos].[DataIngr])-1) AS
57
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
AnoIngresso, (mudcur.NotaIngr/10) AS NotaIngrAnt,
IIf(Month([hstins].[DataInscr])>8,Year([hstins].[DataInscr]),Year([hstins].[DataInscr])-1) AS
AnoLectivo, Count(H1.codigo) AS Disciplinas, Int(Avg(H1.Nota)) AS MédiaNota
FROM (alunos INNER JOIN hstins ON (alunos.numero = hstins.numero) AND
(alunos.CodCurso = hstins.CodCurso)) INNER JOIN (mudcur INNER JOIN hstins AS H1 ON
(mudcur.Numero = H1.numero) AND (mudcur.CodCurso = H1.CodCurso)) ON
alunos.numero = mudcur.Numero
WHERE (((H1.Nota)>0))
GROUP BY alunos.numero, alunos.CodCurso, hstins.AnoCurr, IIf(Val([Alunos.HabiIngr])>1
And Val([Alunos.HabiIngr])<999,"Interno","Externo"), mudcur.CodCurso,
IIf(Month([Alunos].[DataIngr])>8,Year([Alunos].[DataIngr]),Year([Alunos].[DataIngr])-1),
mudcur.NotaIngr,
IIf(Month([hstins].[DataInscr])>8,Year([hstins].[DataInscr]),Year([hstins].[DataInscr])-1);
Com este código assume-se que o campo HabiIngr da tabela Hstins
contém a forma como o aluno acedeu à inscrição. Consultando a tabela
Tabelas, pode verificar-se que, na sua maioria, códigos numéricos indicam
alteração de curso internamente, enquanto que códigos alfabéticos indicam
acesso externo (quer sejam vindos de outras escolas superiores quer
venham de secundárias).
As figuras seguintes mostram a definição do processo de transferência
dos dados entre a Base de Dados operacional e a Staging Area.
Figura 37 : Definição de Origem (Source) - Módulo 17
58
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 38 : Definição Destino - Módulo 17
Figura 39 : Definição de Transformação - Módulo 14
59
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Considerações Finais
Em vez de agrupar todos os dados numa só tabela do Data
Wharehouse, optou-se por manter as vária tabelas de factos isoladamente,
por forma a se adaptarem mais facilmente a cada um dos cubos.
Isto faz com que a estrutura se apresente da seguinte forma:
Figura 40 : Esquema de Relações no interior do Data Warehouse
60
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
7. Implementação da Ferramenta OLAP
Depois de conseguida toda a estrutura de suporte (realizada na secção
anterior), temos a matéria-prima para conseguir realizar o verdadeiro
objectivo deste trabalho – Cubos OLAP.
A ferramenta a utilizar deixa de ser o Enterprise Manager do SQL
Server 2000, para passar a ser o Analysis Manager do mesmo SQL Server
2000.
Após ter acedido ao produto, a primeira operação a realizar é a criação
de uma nova ligação à Staging Area. Só assim será possível criar toda a
estrutura necessária ao suporte dos cubos.
Figura 41 : Ligação do Analysis Manager à Staging Area
O passo seguinte poderia ser a criação directa dos Cubos. No entanto,
dado que é necessário a determinado passo da criação dos cubos referir as
dimensões (e métricas, claro) a contemplar, optou-se por criar desde já
61
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
todas as dimensões. Este procedimento tem que ver com o facto de se ter
verificado que as dimensões são comuns a vários cubos.
Criação das Dimensões
Pelo que ficou patente na figura 2, serão necessárias 6 dimensões.
Todas elas são comuns a mais do que um cubo, pelo que é útil que se criem
como shared (partilhadas). A pasta Shared Dimensions (Dimensões
partilhadas), permitirá albergar as dimensões que entretanto forem sendo
criadas.
As Seis dimensões a criar são (Temporal, Curso, Disciplina, Geografia,
Curricular e Aluno).
Dimensão Temporal
Esta dimensão será criada sobre a tabela Lectivos da Staging Area,
pois foi o destino dos dados no momento do ETL. A explicação do processo
de criação desta Dimensão será um pouco mais exaustiva por ser a
primeira. As próxima dimensões serão criadas, realçando apenas os
aspectos importantes.
Ao iniciar a criação de uma nova dimensão, é possível optar por ter,
ou não a ajuda de um assistente (Wizard). A utilização do Wizard é sempre
aconselhável para a primeira vez que se inicia uma Dimensão
(independentemente da experiência do operador). Isto porque, desta
forma, tem a certeza que todas as especificações são feitas. Posteriormente,
pode-se proceder às alterações necessárias.
O Assistente desenvolve-se em 7 passos. O primeiro deles é apenas
informativo e pode, inclusive evitar-se ao assinalar a opção Skip this screen
in the future.
62
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 42 : Primeiro passo do Assistente de Criação de uma Dimensão
Figura 43 : Selecção do Tipo de Dimensão
63
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Das opções à disposição apenas as duas primeiras se adaptam à
dimensão em criação. A diferença entre elas reside no número de tabelas
que serão criadas para a criação da dimensão. No caso presente apenas será
utilizada uma tabela, pelo que a opção mais aconselhada é a primeira.
Figura 44 : Seleção da tabela base da dimensão
Pelo facto de ter sido seleccionada a primeira opção no passo
anterior, neste passo apenas é possível seleccionar uma tabela. A selecção
feita no campo do lado esquerdo já é a que interessa – tabela Lectivos.Do
lado direito aparecem os campos da tabela. Eventualmente, serão os
constituintes dos vários níveis da dimensão (constituindo a hierarquia da
dimensão). Este não é o caso, já que ambos os campos se referem ao mesmo
dado – o ano lectivo.
64
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
O botão Browse Data… dá uma ideia daquilo que é possível
encontrar dentro da tabela.
Figura 45 : Conteúdo da tabela base da dimensão
65
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 46 : Definindo o campo para basear os níveis da Dimensão
Pelo que se pôde observar na figura anterior, apenas interessa o campo
LectivoCompleto, já que o campo Lectivo consiste apenas numa parte do
ano lectivo como é costume referir. Ao optar pelos dois campos obter-se-ia
uma hierarquia como a que se segue:
Figura 47 : hierarquia da dimensão baseada em dois campos
O que se pretende é que a dimensão se apresente da seguinte forma:
66
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 48 : Resultado a obter na Dimensão Temporal
Neste passo do processo, a opção Count level members automatically
permite ao programa aperceber-se se, eventualmente, o operador não terá
trocado a ordem pela qual inseriu os níveis na hierarquia. Ao detectar que
um nível contém mais membros do que o seu dependente, o Analysis
Server, informa o operador e sugere a alteração (que, obviamente não é
obrigado a acatar). Para exemplificar, imagine-se que se pretendia para a
dimensão temporal o seguinte:
Figura 49 : Hieraquia completa da dimensão Temporal
67
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Em princípio seria necessário um campo para a década que teria por
certo menos membros (Década de 1980, 1990…) do que o nível
imediatamente seguinte (Ano 1990/91, Ano 1991/92 …). Resumindo, há
muito mais anos que décadas. É isto que o programa alerta: o facto de o
operador tentar colocar a década em 1º lugar (já que a hierarquia é
construída de cima para abaixo).
Figura 50 : Definição da Chave de cada nível da hierarquia da dimensão Temporal
Apesar de a designação do nível se apresentar completa (1998/1999,
por exemplo), a chave de cada membro é aconselhável ser apenas o ano
(1998).
68
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 51 : Opções Avançadas da Dimensão Temporal
Figura 52 : Conclusão da criação da Dimensão Temporal
69
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Chegados ao último passo par a criação da dimensão, resta dar-lhe um
nome e concluir.
Feito isto, surge o desafio de verificar como acrescentar a década à
hierarquia.
Assim que foi accionado o botão Finish, o assistente de criação da
dimensão concluiu a sua tarefa. De regresso ao ambiente de trabalho do
Analysis Manager, é necessário aceder ao editor de Dimensões para
modificar a dimensão temporal - Anos. A tecla direita do rato sobre a
dimensão a alterar e a opção Edit…, permitem chegar lá.
Verifica-se que apenas existe um nível – Lectivo Completo. O botão
serve para acrescentar novos níveis. Ao accionar este botão surge uma
nova caixa de diálogo onde será necessário seleccionar o campo sobre o
qual se baseia o nível. Neste caso, é aconselhável que seja o campo Lectivo,
pois é mais fácil saber a que década pertence.
Depois de definido o campo retorna ao editor e o nível que deveria ser
a década (agora acrescentado), encontra-se por baixo do ano lectivo (o que
não faz sentido). Por isso, vai ser necessário arrastar o nível de cima
(Lectivo Completo) para baixo.
Será agora necessário fazer algumas alterações para que finalmente se
obtenha:
70
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 53 : Definição completa da dimensão Temporal
De realçar nesta figura apenas o campo Member Key Column e
Member Name Column.
Dimensão Curso
Figura 54 : Definição da Dimensão Curso
De referir que, para obter Todos Cursos, em vez de All Cursos, é
necessário alterar a designação no campo All Caption, em Advanced
(quando o nível dimensão
está seleccionado).
71
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Dimensão Disciplina
Dimensão Geografia
Figura 55 : Definição da Dimensão Geografica
72
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Dimensão Curricular
Figura 56 : Definição da Dimensão Curricular
Dimensão Aluno
Figura 57 : Definição da Dimensão Aluno
Qualquer alteração que se faça à dimensão é aconselhável proceder ao
processamento da dimensão. O botão a utilizar é
.
Criação dos Cubos
Dado que o objectivo do trabalho é baseado em 8 módulos, seria de
esperar que se procedesse à criação de um número equivalente de cubos.
73
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
2 – Inscrições acumuladas
Este módulo (cujo cubo tomará a designação de Inscrições) envolve 4
dimensões (Cursos, Curricular, Aluno e Anos) e 4 métricas (Dinscritas,
Dfeitas, Drepetidas e InsAcumuladas).
Tal como foi feito para as dimensões também para a criação dos cubos
se aconselha a utilização do Assistente (Wizard). Utilizando esta via, são
necessários apenas 5 passos (se tudo correr bem) para ter um cubo
completo com sucesso. Vejamos:
Figura 58 : Primeiro passa na criação do cubo do Módulo 2
Este passo, pode ser facilmente anulado em futuras criações de cubos,
se a opção Skip this screen in the future, for assinalada.
74
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
O primeiro passo efectivo consiste na definição da tabela de factos
(fact table) que será a base do cubo.
Figura 59 : Definição da Fact Table do Módulo 2
75
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 60 : DEfinição de Métricas a representar no Cubo do Módulo 2
Todos os campos numéricos da tabela de factos que não for
considerado Métrica, em princípio será considerado como base para uma
dimensão. Na figura anterior é possível verificar que não está o campo
CodCurso. Isto explica-se pelo facto de não ser um campo numérico, logo
não poderia ser uma Métrica.
76
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 61 : Selecção das Dimensões a incluir no cubo do Módulo 2
À partida, neste passo é disponibilizada a lista de Dimensões
partilhadas (shared dimensions). No entanto, se se pretendesse acrescentar
uma dimensão apenas para este cubo, seria neste passo que teria de ser
feito. Obviamente que, a qualquer momento, podem ser acrescentadas
dimensões e métricas aos cubos. Nesse, como em muitos outros aspectos, o
Analysis Manager é bastante versátil.
À questão seguinte será respondido que Sim, ou seja, os itens podem
ser contados neste momento.
77
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 62 : Aviso de incoerência no interior do cubo
Esta informação pode ocorrer no caso de os campos que deviam ligar a
tabela de factos e as dimensões não terem nomes iguais. O Analysis
Manager deixará que esta relação se faça manualmente, mais tarde.
Figura 63 : Conclusão da Criação do Cubo do Módulo 2
78
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Para terminar a criação do cubo falta apenas atribuir-lhe um nome.
Antes de concluir definitivamente, falta apenas definir a relação entre a
tabela de factos e as dimensões presentes no cubo.
Figura 64 : Configuração do Cubo do Módulo 2
Agora, sim, o cubo está pronto para ser gravado.
Figura 65 : Aviso da necessidade de definir o Armazenamento de dados
79
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
A esta questão pode responder-se que Não (No), pois trata-se de
questões de optimização.
3 – As reprovações no ISCTE
Este módulo (cujo cubo tomará a designação de Reprovações) envolve
3 dimensões (Cursos, Disciplinas e Anos) e 3 métricas (Dinscritas, Dfeitas,
Percentagem).
Este cubo tem uma particularidade muito interessante, decorrente da
necessidade de incluir uma percentagem. Como será apresentado na
Navegação, os agrupamentos de dados relativos aos membros da
hierarquia da Dimensão, assume como função de agregação uma de 5
funções (Sum, Max, Min, Count e DistinctCount). Dá para perceber que
não é possível afixar a percentagem de um grupo de valores (por exemplo,
a percentagem de reprovações referentes ao ano de 1995). A soma de
percentagens desvirtua completamente os valores reais.
Para ultrapassar este problema, o Analysis Manager dá a possibilidade
de criar membros calculados (calculated members).
A expressão a incluir na Percentagem é clara:
([Measures].[Dinscritas]-[Measures].[Dfeitas])/[Measures].[Dinscritas]
80
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 66 : Configuração do Cubo do Módulo 3
Este módulo envolve 6 dimensões (Cursos e Anos, das que são
comuns a outros cubos, Ano Curricular, Regime de Acesso e Contingente,
específicas deste cubo) e 3 métricas (Dinscritas, Dfeitas, Média).
As dimensões específicas foram criadas com base em campos incluídos
na tabela de factos. Em vez de se criarem códigos para o Regime de
Ingresso do aluno e para o Contingente, optou-se por incluir as
designações directamente na tabela de factos. Este é um procedimento
pouco recomendado, teoricamente. No entanto, para verificar a
versatilidade do Analysis Manager, foi esta a opção.
81
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 67 : Configuração do Cubo do Módulo 6
O facto de existir uma métrica que se baseia na função Média - Média
das Disciplinas -, levanta problemas na agregação. Para ultrapassar este
problema, não se poderá utilizar uma métrica normal. É necessário criar
um membro calculado (Calculated member).
Para que este membro calculado seja possível, é necessário inserir duas
métricas novas (Valor e Unidades) que têm como objectivo somar os
valores de todas as notas para um período, curso ou ano curricular, etc. e
contar todas as notas somadas. A Média (membro calculado) envolverá
estes parâmetros da seguinte forma:
[Measures].[Valor]/[Measures].[Unidades]
82
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
9 – Rendimento escolar dos alunos nas disciplinas das licenciaturas do
ISCTE
Este módulo (cujo cubo tomará a designação de Rendimento) envolve
4 dimensões (Cursos, Anos, Disciplinas e Turma) e 3 métricas (Ainscritos,
Aavaliados, Aaprovados).
Figura 68 : Configuração do Cubo do Módulo 9
A dimensão Turma é específica para este cubo, pelo que foi criada no
âmbito do mesmo e não partilhada. O campo da tabela de factos que está
na base desta dimensão é, como é óbvio, Turma.
83
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
10 – As médias finais de curso e a sua relação com as notas de ingresso
Este módulo (cujo cubo tomará a designação de Comparar Entrada
Saída) envolve 3 dimensões (Cursos, Aluno e Anos, das comuns a outros
cubos e AnosdoCurso específico deste cubo) e 3 métricas (MédiaCurso,
MédiaIngresso TotalAlunos).
Figura 69 : Configuração do Cubo do Módulo 10
84
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
A dimensão Duração é específica para este cubo, pelo que foi criada no
âmbito do mesmo e não partilhada. O campo da tabela de factos que está
na base desta dimensão é AnosDoCurso.
Por se tratar de um número relativamente reduzido de registos, optouse por utilizar membros calculados (Calculated Members), em vez de
armazenar algumas métricas. Assim, a Média da Notas de Fim de Curso e
a Média das Notas de Ingresso, por serem médias (e por não ser possível
agregar directamente médias nas métricas), serão calculadas em tempo real
através de membros calculados.
Para não criar grande confusão ao utilizador, serão ocultadas algumas
métricas, deixando visíveis apenas as que fazem parte dos requisitos.
A métrica TotalAlunos foi acrescentada ao cubo, baseando-a no
campo número de aluno. Desta forma, definindo a função de agregação
como contagem, obtém-se a contagem de alunos.
11 – Relação entre as notas de ingresso e as cadeiras relacionadas com
as mesmas consoante o núcleo a que pertencem
Este módulo (cujo cubo tomará a designação de Comparar Entrada
Departamento) envolve 3 dimensões (Cursos, Anos e Disciplina) e 2
métricas (MédiaCurso e MédiaIngresso).
85
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 70 : Configuração do Cubo do Módulo 11
Por se tratar de um número relativamente reduzido de registos, optouse por utilizar membros calculados (Calculated Members), em vez de
armazenar algumas métricas. Assim, a Média da Notas das Disciplinas e a
Média das Notas de Ingresso, por serem médias (e por não ser possível
agregar directamente médias nas métricas), serão calculadas em tempo real
através de membros calculados.
Para não criar grande confusão ao utilizador, serão ocultadas algumas
métricas, deixando visíveis apenas as que fazem parte dos requisitos.
86
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
14 – Distrito de origem dos alunos do ISCTE
Este módulo (cujo cubo tomará a designação de Origem) envolve 3
dimensões (Cursos, Anos e Geografia, que apesar de ser específica deste
cubo foi criada como dimensão partilhada) e apenas uma métrica
(NAlunos).
Figura 71 : Configuração do Cubo do Módulo 14
17 – Mudanças de curso
Este módulo (cujo cubo tomará a designação de Mudança Curso)
envolve 7 dimensões (Aluno, Cursos, AnoCurricular, TipoAcesso,
AnoLectivo, CursoAntigo, AnoIngresso) e 3 métricas (MédiaNota,
Ndisciplinas, MédiaIngresso).
87
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 72 : Configuração do Cubo do Módulo 17
Neste cubo, à semelhança do que se passou em cubos anteriores,
optou-se por utilizar membros calculados (Calculated Members), em vez
de armazenar algumas métricas. Isto devido à dificuldade em proceder à
personalização do agrupamento das métricas do cubo. Assim, a Média de
Curso e a Média das Notas de Ingresso no Curso Anterior, por serem
médias, serão calculadas em tempo real através de membros calculados.
88
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
As métricas que servem de base ao cálculo destes novos membros,
serão ocultadas, deixando visíveis apenas as que fazem parte dos
requisitos.
89
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
8. Navegação
Desenvolvida que está a ferramenta, resta agora experimentar o efeito,
por forma a perceber se resultou ou não.
Se por todo o texto está referida a excelência do Analysis Manager e do
Enterprise Manager, este é um capítulo onde, lamentavelmente, não
poderá ficar esse testemunho. De facto, os interfaces de consulta aos cubos
criados, são tudo menos agradáveis. As limitações são mais do que
evidentes, como será mostrado.
No entanto, a facilidade com que se constrói um “cliente” (aplicação
que pode absorver o trabalho feito no SQL Server 2000 e mostrar noutra
forma mais agradável), quase que serve de desculpa.
Neste capítulo será mostrado o interface do SQL Server para a
visualização de cubos e também a ligação a outros possíveis clientes.
Utilizando o SQL Server
Existem dois momento em que se pode consultar as informações
geradas pelos cubos. Em ambos, o ecrã tem um conjunto bastante limitado
de funcionalidades.
Logo no momento em que se está a criar o cubo, é possível espreitar o
resultado que se irá obter (antes de visualizar, convém não esquecer de
processar o cubo, pois, de outra forma, as informações obtidas são um
exemplo gerado pelo Analysis Manager).
90
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 73 : Visualização das Informações do Cubo do Momento da Criação
As limitações são de tal forma que apenas é possível ver ao mesmo
tempo aquilo que a janela onde está a decorrer a visualização permitir. Não
é possível alargar ou estreitar as colunas, nem seleccionar um intervalo de
valores ad hoc para ver.
As únicas operações possíveis limitam-se ao Drill down/up e à
escolha de dimensões representadas e de membros dentro das dimensões.
91
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 74 : Drill Down ao 1º Ano da Dimensão Ano do Cubo Inscrições
Figura 75 : Visualização da Dimensão Ano Lectivo do Cubo Inscrições
92
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 76 : Selecção de Valores na Dimensão Curso do Cubo Inscrições
Outra possibilidade de visualizar as informações de um cubo, torna-se
viável após a sua criação e, a partir da consola do Analysis Manager,
seleccionando a opção Browse Data, disponível no menu Acção (depois de
seleccionar o cubo que se pretende consultar.
Esta modalidade de consulta é em tudo idêntica à anteriormente
descrita, diferindo apenas na dimensão da área disponibilizada para a
visualização. Nesta modalidade, o espaço ocupado pelas zonas de
configuração do cubo ficam disponíveis para a consulta de informação.
Utilizando Outros Clientes
Para suprir as dificuldades de visualização do Analysis Manager,
algumas das ferramentas do Microsoft Office disponibilizam uma ligação
93
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
dinâmica à informação contida nos cubos OLAP. Desta forma, reúnem-se
as potencialidades de criação de informação do Analysis Manager com a
capacidade de visualização dessas ferramentas.
Vejamos alguns exemplos.
Microsoft Excel 2000
Dadas as semelhanças, ao nível da visualização, dos cubos OLAP no
Analysis Manager e as Tabelas Dinâmicas no Microsoft Excel, é possível
fazer utilização deste último conceito para apresentar os dados do
primeiro.
O Processo de criação de um cliente OLAP no Microsoft Excel é tão
simples como criar uma Tabela Dinâmica baseada noutro tipo de fonte de
dados que se deseje.
A opção Relatório de tabelas e de gráficos dinâmicos..., do menu
Dados, é o ponto de partida. O ecrã que surge é o que se pode ver na figura
seguinte.
Figura 77 : Início da criação de um Cliente OLAP em Excel
94
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Como se pode verificar, apenas são necessários 3 passos para dar por
concluída a tarefa. Isto se já estivesse tudo preparado, pois, como iremos
ver, existe um conjunto de procedimentos conexos a executar antes de
chegar ao 3, e último, passo.
As opções estão à vista, para quê explicar? O botão seguinte conduz ao
passo 2.
Figura 78 : Segundo passo da criação de um Cliente OLAP em Excel
Este segundo ecrã, pequeno na dimensão, mas grande na função,
permite ligar a origem dos dados à folha Excel. Como ainda não se definiu
nenhuma ligação à folha actual, será necessário Obter dados...
Figura 79 : Criação de uma ligação do Cliente OLAP em Excel aos dados
95
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Uma vez que não existem origens de dados, será necessário criar uma.
O botão OK faz isso, se for pressionado.
Figura 80 : Características do Cliente OLAP na ligação aos dados
Para que se possa ligar definitivamente, para além dos dados do lado
do cliente (Nome e tipo de ligação), também é necessário definir as
características do lado do servidor. O botão ligar permite fazê-lo.
96
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 81 : Características do Servidor OLAP na ligação ao Excel
Figura 82 : Características do Servidor OLAP na ligação ao Excel
97
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
De volta ao ecrã de ligação, já é possível associar a componente
servidora à componente cliente. Como se pode ver pela figura seguinte,
define-se, inclusive, o cubo a representar no Cliente OLAP (no Excel).
Figura 83 : Definição completa da ligação Cliente/Servidor OLAP
O botão Ok conduz à escolha da origem de dados que, agora já tem
uma nova opção
Figura 84 : Escolha da Origem dos Dados
98
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
De novo o botão OK conduz ao passo 2 do processo. Agora a origem
dos dados está definida e, portanto, o objectivo deste passo está concluída.
Passando ao passo seguinte, apenas é pedido o local onde se pretende
inserir os dados obtidos do servidor OLAP.
Figura 85 : Definição do destino dos dados do cubo
O botão Esquema... permite, desde logo, definir a estrutura da tabela
dinâmica de consulta aos dados do cubo OLAP.
99
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 86 : Definição do esquema de visualização dos dados no Cliente OLAP
100
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 87 : Visualização dos dados no Cliente OLAP em Excel
As potencialidades de cliente começam agora. Desde a formatação dos
tipos de letra, das células (compreendendo o alargamento das colunas,
etc.), à troca de dimensões e métricas, tudo pode ser feito. É ainda possível,
com um simples clique no rato, construir um gráfico.
101
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 88 : Gráfico dos dados no Cliente OLAP em Excel
Microsoft Front Page 2000
Quando se fala em Front Page, fala-se, obviamente, em páginas html.
A criação de uma página ligada a uma fonte de dados OLAP é
possível e, relativamente, fácil. Com o processo que se descreve de seguida,
consegue-se uma página dinâmica, que pode ser consultada através de um
qualquer browser.
O processo inicia-se com a inclusão numa página html normal de um
novo componente (Insert > Component > Office PivotTable).
Figura 89 : Objecto PivotTable no Cliente OLAP em HTML
102
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
O erro é claro! Será necessário ligar o objecto a uma fonte de dados. O
terceiro botão contando da direita para a esquerda da barra de ferramentas,
disponibiliza uma caixa de ferramentas que ajudará a conseguir o
objectivo.
Figura 90 : Caixa de Ferramentas de propriedades do objecto Cliente OLAP em HTML
O Editor de Ligações irá dar uma ajuda na definição do comando de
ligação entre Cliente OLAP e Servidor OLAP.
103
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 91 : Definição das Características do Servidor OLAP
Figura 92 : Definição das propriedades de Ligação ao Servidor OLAP
104
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Testada e bem sucedida a comunicação, está encontrado o caminho
para os dados. O passo seguinte é a definição do cubo que se pretende
visualizar no objecto PivotTable do Html.
Figura 93 : Selecção do Cubo OLAP a apresentar no Objecto PivotTable em HTML
Assim que for seleccionado, no Objecto PivotTable já aparece o nome
do cubo OLAP. Para visualizar os campos disponibilizados pelo Cubo e
poder integrá-los no objecto PivotTable, accione o segundo botão (
)
(contando da direita para a esquerda) na barra de ferramentas do objecto
PivotTable. Posto isto, é uma questão de seleccionar cada um dos campos e
adicionar (sem arrastar) ao elemento da PivotTable onde se pretende
colocar.
105
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
Figura 94 : Adcionar Dimensões e Métricas ao Objecto PivotTable em HTML
Uma vez concluído o processo, o aspecto do objecto (tendo por
objectivo a construção de um objecto igual ao exemplo apresentado em
Excel) terá o seguinte aspecto.
Figura 95 : Objecto PivotTable em HTML configurado
Para filtrar, será necessário apenas arrastar os campos para a zona
superior do objecto. Todas as funcionalidades enumeradas para a Tabela
Dinâmica do Excel são válidas para este objecto.
106
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
9. Conclusão
Muitas horas depois de se ter iniciado a implementação desta
ferramenta OLAP,
está por fim concluída. As muitas dificuldades
encontradas só foram ultrapassadas graças à versatilidade do software
utilizado – Microsoft SQL Server 2000 Enterprise Edition.
Pela realização deste trabalho e pelos resultados obtidos é possível
concluir que a situação em que se encontram as Bases de dados
Operacionais influencia directamente o tempo de duração do ETL. Apesar
de se ter utilizado uma ferramenta bastante poderosa, esta pouco ou nada
pode fazer perante inconsistência. Fica também provado que, na
construção de uma ferramenta de gestão como a que se pretendia, a fase
inicial de análise e concepção, juntamente com a fase de ETL, consomem
mais de 90% do tempo do projecto. Uma vez obtido um Data Warehouse
em condições, a construção dos Cubos OLAP é uma tarefa bastante simples
no SQL Server 2000.
Por último, é possível confirmar mais uma vez que as regras teóricas
nem sempre têm de ser uma obsessão para quem desenvolve ferramentas
do género. Em cada momento, há que avaliar os problemas a resolver,
analisar as alternativas e, circunstancialmente, decidir pelo melhor.
Em termos pessoais, depois de ter frequentado o curso “Designing and
Implementing OLAP Solutions with Microsoft SQL Server 2000”, esta foi uma boa
oportunidade para colocar em prática os conhecimentos adquiridos.
107
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
10. Futuros Trabalhos
Para além de ferramentas OLAP, o Microsoft SQL Server 2000 também
permite criar “Business Intelligence”, utilizando técnicas de Data Mining.
Em trabalhos futuros, poderiam ser utilizadas técnicas como as árvores de
decisão (decision trees), ou técnicas de segmentação (clustering), por forma
a obter novos conhecimentos sobre os dados armazenados no
DataWarehouse criado neste trabalho.
108
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
11. Índice Fotografias
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
2 : Estrela do Data Warehouse com as dimensões e as métricas ...................................... 17
3: Ambiente de trabalho do Enterprise Manager.............................................................. 21
4 : Ambiente de trabalho do DTS ..................................................................................... 22
5 : Identificação do Ficheiro correspondente à BD Operacional...................................... 23
6 : Criação de um package – Ligação à BD Operacional................................................. 23
7 : Definição da ligação à Staging Area - SIAD............................................................... 24
8 : Definição da transformação ......................................................................................... 25
9 : Editor de Queries ......................................................................................................... 26
10 : Definição da Instrução SQL da Dimensão Temporal................................................ 27
11 : Definição da Estrutura da Dimensão Temporal......................................................... 27
12 : Transformações Origem/Destino da Dimensão Temporal ........................................ 28
13 : Resultado da Execução do Package ........................................................................... 29
14 : Definição da Query que preenche o primeiro Data Mart .......................................... 32
15 : Criação da Tabela de Destino dos Dados .................................................................. 33
16 : Estrutura Completa da Tabela de Destino ................................................................. 33
17 : Correspondência na passagem Origem-Destino ........................................................ 34
18 : Transformação Personalizada do Número de Aluno ................................................. 35
19 : Definição da Origem(Source) Módulo 3 ................................................................... 37
20 : Definição do Destino - Módulo 3 .............................................................................. 37
21 : Definição da Transfo rmação - Módulo 3................................................................... 38
22 : Definição Origem (source) – Módulo 6..................................................................... 42
23 : Definição Destino - Módulo 6 ................................................................................... 42
24 : Definição Transformação - Módulo 6 ....................................................................... 43
25: Definição Origem (Source) - Módulo 9...................................................................... 45
26 : Definição Destino - Módulo 9 ................................................................................... 45
27 : Definição de Transformação - Módulo 9................................................................... 46
28 : Definição Origem (Source) - Módulo 10................................................................... 48
29 : Definição Destino - Módulo 10 ................................................................................. 49
30 : Definição de Transformação - Módulo 10................................................................. 49
31 : Definição Origem (Source) - Módulo 11.................................................................. 51
32 : Definição Destino - Módulo 11 ................................................................................. 52
33 : Definição de Transformação - Módulo 11................................................................ 52
34 : Definição Origem (Source) - Módulo 14................................................................... 55
35 : Definição Destino - Módulo 14 ................................................................................. 56
36 : Definição de Transformação - Módulo 14................................................................. 57
37 : Definição de Origem (Source) - Módulo 17.............................................................. 58
38 : Definição Destino - Módulo 17 ................................................................................. 59
39 : Definição de Transformação - Módulo 14................................................................. 59
40 : Esquema de Relações no interior do Data Warehouse .............................................. 60
41 : Ligação do Analysis Manager à Staging Area .......................................................... 61
42 : Primeiro passo do Assistente de Criação de uma Dimensão ..................................... 63
43 : Selecção do Tipo de Dimensão.................................................................................. 63
44 : Seleção da tabela base da dimensão .......................................................................... 64
45 : Conteúdo da tabela base da dimensão ....................................................................... 65
46 : Definindo o campo para basear os níveis da Dimensão ............................................ 66
47 : hierarquia da dimensão baseada em dois campos...................................................... 66
109
Sistemas Inteligentes de Apoio à Decisão
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
OLAP sobre DataMart Alunos
48 : Resultado a obter na Dimensão Temporal................................................................. 67
49 : Hieraquia completa da dimensão Temporal .............................................................. 67
50 : Definição da Chave de cada nível da hierarquia da dimensão Temporal.................. 68
51 : Opções Avançadas da Dimensão Temporal .............................................................. 69
52 : Conclusão da criação da Dimensão Temporal........................................................... 69
53 : Definição completa da dimensão Temporal .............................................................. 71
54 : Definição da Dimensão Curso ................................................................................... 71
55 : Definição da Dimensão Geografica ........................................................................... 72
56 : Definição da Dimensão Curricular ............................................................................ 73
57 : Definição da Dimensão Aluno ................................................................................... 73
58 : Primeiro passa na criação do cubo do Módulo 2 ....................................................... 74
59 : Definição da Fact Table do Módulo 2 ....................................................................... 75
60 : DEfinição de Métricas a representar no Cubo do Módulo 2 ..................................... 76
61 : Selecção das Dimensões a incluir no cubo do Módulo 2 .......................................... 77
62 : Aviso de incoerência no interior do cubo .................................................................. 78
63 : Conclusão da Criação do Cubo do Módulo 2 ............................................................ 78
64 : Configuração do Cubo do Módulo 2 ......................................................................... 79
65 : Aviso da necessidade de definir o Armazenamento de dados ................................... 79
66 : Configuração do Cubo do Módulo 3 ......................................................................... 81
67 : Configuração do Cubo do Módulo 6 ......................................................................... 82
68 : Configuração do Cubo do Módulo 9 ........................................................................ 83
69 : Configuração do Cubo do Módulo 10 ...................................................................... 84
70 : Configuração do Cubo do Módulo 11 ...................................................................... 86
71 : Configuração do Cubo do Módulo 14 ...................................................................... 87
72 : Configuração do Cubo do Módulo 17 ...................................................................... 88
73 : Visualização das Informações do Cubo do Momento da Criação ............................ 91
74 : Drill Down ao 1º Ano da Dimensão Ano do Cubo Inscrições ................................. 92
75 : Visualização da Dimensão Ano Lectivo do Cubo Inscrições................................... 92
76 : Selecção de Valores na Dimensão Curso do Cubo Inscrições ................................. 93
77 : Início da criação de um Cliente OLAP em Excel..................................................... 94
78 : Segundo passo da criação de um Cliente OLAP em Excel ...................................... 95
79 : Criação de uma ligação do Cliente OLAP em Excel aos dados............................... 95
80 : Características do Cliente OLAP na ligação aos dados............................................ 96
81 : Características do Servidor OLAP na ligação ao Excel ........................................... 97
82 : Características do Servidor OLAP na ligação ao Excel ........................................... 97
83 : Definição completa da ligação Cliente/Servidor OLAP ........................................... 98
84 : Escolha da Origem dos Dados .................................................................................. 98
85 : Definição do destino dos dados do cubo .................................................................. 99
86 : Definição do esquema de visualização dos dados no Cliente OLAP ..................... 100
87 : Visualização dos dados no Cliente OLAP em Excel.............................................. 101
88 : Gráfico dos dados no Cliente OLAP em Excel ...................................................... 102
89 : Objecto PivotTable no Cliente OLAP em HTML.................................................. 102
90 : Caixa de Ferramentas de propriedades do objecto Clie nte OLAP em HTML....... 103
91 : Definição das Características do Servidor OLAP .................................................. 104
92 : Definição das propriedades de Ligação ao Servidor OLAP ................................... 104
93 : Selecção do Cubo OLAP a apresentar no Objecto PivotTable em HTML ............ 105
94 : Adcionar Dimensões e Métricas ao Objecto PivotTable em HTML...................... 106
95 : Objecto PivotTable em HTML configurado........................................................... 106
110
Sistemas Inteligentes de Apoio à Decisão
OLAP sobre DataMart Alunos
12. Bibliografia e outras fontes de informação
Dhar, Vasant & Stein, Roger ; “Intelligent Decision Support Methods – The science of
knowledge work”, Prentice Hall, 1997;
Documento “Estudo do Perfil de Alunos do ISCTE”;
Documento “Descrição dos módulos a implementar a curto prazo”;
Documentação do curso “Designing and Implementing OLAP Solutions with Microsoft
SQL Server 2000”
http://infoline.ine.pt/inf/prodserv/nomenclaturas/refter/nuts.htm
111