Author Archive

An overview of the Business Intelligence world

Business Intelligence (BI) is a field of computer-science the goal of which is to build decision support systems.

According to Wikipedia, BI involves the means, the tools and the methods used to collect, consolidate and produce the data model, and to finally display it. It is designed:

  • to help a company taking decisions;
  • to cover its whole activity for people in charge of the strategy.

Simply put, BI is the art of transforming raw data into valuable information.

This article begins with an introduction to BI, then describes the main actors of the BI market, and what their products are designed for.

Read more…

Update or insert rows in SQL

Some operations are not as easy in SQL as in procedural or imperative languages. For example while it is very intuitive to make an update or insert (also known as “upsert”) operation on a std::vector in C++, it is tricky in SQL. The upsert operation is: update data if already in the set and insert it otherwise.

As for recursion in SQL, the way to perform an upsert depends on the DBMS and its version.

Read more…

Recursion in SQL

We are used to easily writing recursive calls and loops in procedural languages, but this doesn’t hold true in SQL. Indeed, it depends on the DBMS used.

This article will focus on the ability to write recursive queries using Common Table Expressions (CTE). CTE are an addition from the SQL 1999 standard and are not yet available in all DBMS. As of today, CTE are at least compatible with:

  • Microsoft SQL Server 2000 / 2005 / 2008
  • IBM DB2
  • Oracle 9.2
  • PostgreSQL

Read more…

Categories: HowTo Tags: , , , , , ,

An introduction to search-based applications

Search Based Applications (SBA) are applications based on search engines. They are designed for users who want to discover and analyse information. They usually require processing large amounts of data, processing data in real-time or handling unstructured or semi-structured data, among others. To handle these requirements, they benefit from the appropriate processes already used by search engines (scalable foundations and natural language processing, for example).
Input data can be structured (databases…) but also unstructured (Office documents, PDF, mails…) or even coming from other applications (ERP, CRM, intranet, extranet…).

Unlike traditional search engines, SBA provide ad-hoc interfaces to data (dashboards, mashups…), so that the user can access the right information without necessarily having to perform requests manually (in the context of BI, for example, it allows him to take the good decision on time by giving him a relevant view of the data).

Notice the difference between discovering and searching: when searching, the user knows what he is looking for; when discovering, he starts by searching something, which brings him to a final point he may not have expected. Think about it: discovering is what we need when taking decisions. Why? Because even if we know what information we need we may not know how to get it. Discovering helps users to take better decisions.

Read more…


Get every new post delivered to your Inbox.