Skip to content
RaduMarcel edited this page Dec 7, 2017 · 20 revisions

Welcome to the EspressoViews-Primer

What is this tool used for?

EspressoViews is a reporting and data analysis tool. It provides fast, simple and efficient reports from a relational database (RDBMS). It works potentially with all existing databases management systems which implements Java’s JDBC interface. Currently "only" with Oracle and MySQL. EspressoViews is “free software” in terms of the GNU General Public License (GPL) (read more: https://www.gnu.org/philosophy/free-sw.en.html) and it is also free in sense of “free beer”.

All you need to run this report is:

  • Java installed on your machine (version 1.5 upwards)
  • The connection credentials for a database server.
  • The JDBC driver package for the correspondent database server
  • An XML definition file, which basically defines your EspressoViews report. This definition file contains your SQLs queries along with some instructions, which specify how to organize and display the retrieved data.

All you need to create an EspressoViews definition file is:

  • to know a bit SQL
  • to spend up to 30 minutes of your valuable time reading this document to understand the main ideas.

What is the unique “selling” proposition of EspressoViews?

If you have one monolithic query which retrieves everything you need or you plan to build such a query and you are looking forward to create a report around it, then this reporting tool will not be useful for you.

This tool is best suitable for use cases in which the data retrieval logic is made of a multitude of queries which are regularly changing, where new queries need to be included and old queries have to be removed and/or where a high amount of data is retrieved which cannot be shown to the users on hundred pages.

In a nutshell, Espresso View merges the results of two or more SQL queries2 to one hierarchically structured result set as specified by the user and displays it graphically in a tree structure (comparable with a file folder structure), which you can manually expand and collapse:

The result lines of the first query are always shown in the “expanded” mode, and under each line the results of the subordinated queries can be expanded manually.

Another worth mentioning feature is the level of modularization of the report definition. The smallest unit or module is built around a single SQL query. A report is made of at least two such SQL query units. The above example is made of three SQL query units. Any report definition, can be on his side a reporting unit in another report definition, thus allowing the user to easily bundle and maintain very complex data retrieval. Circular references between report modules are of course not allowed since they would cause infinite loops.

The driving force to implement this report is in the first place the attempt to increase the human readability and usability of the data retrieved with SQL without reducing its complexity and/or the amount of information.

This tool is a dwarf standing on the shoulders of a RDBMS giant.

Copyright (C) 2017 Radu-Marcel Dumitru. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".