# Mondrian (informática)

Mondrian é uma linguagem de programação de scripting desenvolvida pela Universidade de Utrecht para uso em aplicações na Internet. É considerada uma mistura de Haskell e Java.

## Descrição

É possível escrever para a plataforma .NET utilizando a linguagem Mondrian.
É uma máquina para suportar consultas OLAP(On-Line Analytical Processing) escrita em Java. Executa consultas que lhe são submetidas na linguagem MDX (multi-dimensional expressions ou expressões multidimensionais) lendo dados de um sistema de gerenciamento de banco relacional e apresentando o resultado no formato XMLA.
Utiliza JDBC para conexões com os SGBD (Sistemas de Gerenciamento de Banco de Dados). Ele precisa ser disponibilizado em um servidor de aplicações J2EE.
Inclui um serviço Web que recebe consultas dimensionais em MDX e retorna os resultados no formato XMLA. Este formato de saída é processado por seus clientes OLAP, clientes que são responsáveis pela interface OLAP com os usuários, na forma de páginas Web.
Os esquemas em Mondrian são representados através de arquivos XML. É possível editar o arquivo XML com qualquer editor de texto, ou utilizar um plug-in do eclipse que facilita a criação de esquemas.
O Mondrian executa as consultas e as retorna sem uma saída definida. Para visualizar as consultas é necessário utilizar junto com o Mondrian um outro software de código aberto, o JPivot39, que é uma biblioteca de tags em JSP40. Através do JPivot é possível escrever scripts na forma de JSP, utilizando comandos específicos e gerando saídas gráficas para as consultas OLAP.
Os scripts JSP possui as consultas na linguagem MDX alem de tags relativas a sintaxe JSP. Estes scripts são executados através de um browser, que submete o script a um servidor Web, e esse servidor por sua vez submeterá a consulta ao Mondrian, que realizará a consulta, utilizando o banco de dados relacional. A consulta retornada será processada pelo Mondrian através das camadas dimensional e estrela, e o resultado enviado a camada de apresentação, representada pelo JPivot, que transforma o resultado que uma página Web.
A combinação Mondrian/Jpivot se mostrou uma alternativa bastante interessante, pois torna possível a visualização de gráficos e tabelas, facilitando assim, o uso da ferramenta por usuários finais.
É uma linguagem funcional.
Funcionalidade - Servidor; Linguagem de desenvolvimento - Java; Linguagem de Consulta MDX; Linguagem de Retorno dos resultados - XMLA; SGBD suportado - JDBC (todos); Servidores OLAP Suportados - Não se Aplica; Clientes OLAP - Openl, Jpivot; Sistema Operacional - Independente (JVM); Rolap, Molap, Holap - Rolap; Licença - CPL (Common Public License - v 1.0).

## Objetivo da Utilização do Mondrian

Alto desempenho, análise interativa de volumes grandes ou pequenos de informação.

## Mondrian na Educação

Esse software auxilia a construção de figuras quadráticas na tela bastando para isso escolher ações de um menu, através do "mouse". Essas ações são armazenadas e transformadas em um procedimento. Esse procedimento pode ser convertido em um item do menu e usado na construção de outras figuras.

## Arquitetura

Em relação a arquitetura, o servidor OLAP Mondrian possui quatro camadas: Apresentação, Dimensional, Estrela e Armazenamento.
A camada de apresentação determina o que o usuário final vê em seu monitor, e como ele pode interagir para fazer novas consultas. Há muitas maneiras de apresentar conjuntos de dados multidimensionais, incluindo Pivot Tables (um recurso que permite a uma tabela fazer um agrupamento dinâmico), gráficos estáticos em diversos formatos (pizza, linha, barra, etc.) e ferramentas avançadas de visualização, tais como mapas interativos e gráficos dinâmicos. Estas ferramentas podem ser escritas em interface Java Swing (Usado para criação de aplicativos gráficos em Java) ou JSP (Java Server Pages). Os gráficos podem ser montados em formatos como JPEG ou GIF.
A camada dimensional analisa gramaticalmente, valida e executa consultas MDX. Um transformador de consultas (query transformer) permite que a aplicação manipule as consultas existentes, ao invés de construir uma nova instrução MDX para cada solicitação.
A camada estrela é responsável por apresentar valores relacionados a determinados níveis de informação. Estes valores podem ser resultados de uma consulta ao banco de dados, ou ser o resultado de muitas consultas armazenadas em memória. É responsabilidade desta camada obter os valores, seja qual for a sua origem.
A camada do armazenamento é um sistema de gerenciamento de banco de dados relacional. Ela é responsável por fornecer os dados referenciados nas consultas.
Todos estes componentes podem existir em uma mesma máquina, ou podem ser distribuídos entre várias máquinas, sendo que as camadas dimensional e estrela, que compreendem o servidor Mondrian, devem estar na mesma máquina. A camada de armazenamento pode estar em uma outra máquina, acessada através de conexão remota, com o uso de drivers JDBC (Conjunto de classes e interfaces para interação com qualquer banco de dados relacional).

## Instalação e Configuração do Mondrian

Como mencionado anteriormente, o Mondrian é um servidor OLAP de código aberto, considerado um dos principais componentes da plataforma Pentaho de Business Intelligence. Usualmente, ele funciona como um conector entre um front-end OLAP, baseado em Java, e um banco de dados relacional – ele funciona como um conector JDBC para OLAP, gerando queries SQL para o banco de dados e processando os dados resultantes.
Para instalar o servidor Mondrian com as suas configurações padrão e os seus acessórios, deve-se seguir os seguintes passos:
* - Instale o Java SDK (versão 1.4.2 ou posterior). Ele pode ser baixado do site http://java.sun.com/j2se/1.4.2/download.html;
* - Baixe e descompacte a última versão binária do servidor Mondrian (http://mondrian.pentaho.org/). O nome do arquivo é mondrian-version.zip. O Mondrian pode ser executado por um servidor de aplicação que suporte
Java (que pode ser o Apache Tomcat, por exemplo). O aplicativo mesmo está compilado e empacotado dentro do arquivo mondrian.jar.
* - Configure a fonte de dados. Configurar uma conexão com um banco de dados é uma tarefa crucial para se fazer o Mondrian funcionar corretamente. Um bom ponto de partida é usar o banco de dados de teste que é disponibilizado com o pacote de instalação do Pentaho. Ele é fácil de instalar e configurar, está pronto para usar e pode ser uma boa fonte de informação de como desenvolver futuros projetos OLAP com o Pentaho. O nome do banco de dados de teste é MondrianFoodMart.mdbe ele pode ser encontrado na pasta Demo do arquivo mondrian-version.zip. Para começar a explorar os dados por meio do Mondrian é necessário criar uma fonte de dados ODBC do sistema, nomeá-la como MondrianFoodMart e indicar o caminho para o banco de dados MondrianFoodMart.mdb. Depois de adicionar a fonte de dados ODBC é possível invocá-la do Mondrian por meio da seguinte string de conexão: 'jdbc:odbc:MondrianFoodMart'. Já o arquivo FoodMartCreateData.sql (pode ser encontrado na pasta Demo do arquivo mondrian-version.zip) é um conjunto de declarações SQL prontas para serem executadas, usadas para preencher os dados do FoodMart em qualquer banco de dados relacional. No entanto, a estrutura do banco de dados precisa ser criada manualmente. Um outro jeito de carregar dados de exemplo para um banco de dados é usar o aplicativo MondrianFoodMartLoader – mais detalhes podem ser encontrados no guia de instalação do Mondrian em http://mondrian.pentaho.org/documentation/installation.php.
* - Execute o Mondrian em um servidor web. Para isso, instale um servidor web que suporte Java – por exemplo, o Apache Tomcat (http://tomcat.apache.org/). Descompacte o arquivo mondrian.war na pasta onde seu aplicativo Mondrian será instalado – por exemplo, TOMCAT_HOME/webapps/mondrian. O arquivo pode ser descompactado por qualquer programa ZIP ou pelo painel de administração do tomcat. O arquivo mondrian.war tem todas as bibliotecas necessárias para executar a aplicação. São elas: o aplicativo JPivot usado para criar crosstabs, a ferramenta de fazer gráficos jFreeChart, XML, XSL, TLD, arquivos de configuração DTD e páginas JSP. Edite o arquivos mondrian.properties e web.xml – eles estão na pasta WEB-INF e configure os parâmetros de conexão corretos com o banco de dados. Verifique também se a fonte de banco de dados e os parâmetros de conexão estão corretamente configurados nos arquivos.jsp da pasta WEB-INF/queries. Se tudo estiver configurado corretamente, a página de exemplo do Mondrian deve aparecer no endereço http://127.0.0.1:8080/mondrian.

## Exemplo

Um programa "Hello world" em linguagem Mondrian:
package demo.hello; import mondrian.lang.*; main = putStr "Hello world";