Nico Jacobs

Nico Hi, I'm Nico Jacobs, trainer @ U2U, with a PhD in data mining. Let's talk about databases. BIG databases. I always loved the I in IT. Although we have lots of interesting areas in the ICT landscape, I fell in love with the basics: data. Storing and retrieving data, and all sorts of derived data. Although it may seem trivial and far from sexy, databases are the basis of nearly every business application. So at U2U, I'll mainly bring the story about how to store and query that precious data in relational and OLAP databases, how to transform data, and how to build reports on them. But I admit: data all by itself isn't that great either, so from time to time, you'll catch me writing .Net applications... on top of a database, of course!
In 2004, I started specializing in the Business Intelligence tools that Microsoft ships with SQL Server 2005: Integration Services, Analysis Services and Reporting Services. And the story continues, with SQL Server 2008 bringing lots of new features.
 
 
 

Courses

These are some of the courses that I give for U2U.
  • This five day course focuses on using the SQL Server database to develop applications. It discusses basic as well as some of the advanced features of SQL Server: creating tables, views, functions and stored procedures, asynchronous communication between servers with service broker, the integration of the .Net framework … We also focus on solving the common questions that developers have when working with SQL Server: how do I design indexes, when should I denormalize data, how about dealing with transactions and locking… We also discuss the new data types and development techniques which are added to SQL Server 2008. Topics: Creating Databases and Database Files. Creating Data Types and Tables. Using XML. Creating and Tuning Indexes. Implementing Data Integrity. Implementing Views. Implementing Stored Procedures and Functions. Implementing Managed Code in the Database. Using Service Broker. Measuring database performance. Optimising queries for performance. Optimizing an Index Strategy. Managing concurrency. Working with spatial data.Streaming data access.

  • This five day course focuses on installing, configuring and maintaining a SQL server 2005/2008 database. It starts with the typical administrative topics: installation, backup and restore, setting up security, monitoring, automating tasks, data transfer and high availability. We also focus on topics which are borderline between administration and development, such as index design and maintenance and setting up statistics. We also discuss new 2008 features, such as the resource governor, the new auditing, and the policy based management. Topics: Installing and Configuring SQL Server 2005/2008. Managing Databases and Files. Disaster Recovery. Managing Security. Monitoring SQL Server. Transferring Data. Automating Administrative Tasks. Maintaining High Availability. Introduction to Replication. Managing and Automating Databases and Servers. Managing SQL Server Supporting Services. Building a Monitoring Solution for SQL Server Performance Issues. Troubleshooting Database and Database Server Performance Issues. Policy based management (2008). Advanced administrative features (2008).

  • Overview of the features of the server side Business Intelligence tools that Microsoft ships with SQL Server: Extracting, transforming and loading data with Integration Services; Creating, managing and browsing Analysis Services cubes and data mining models; Building reports on Reporting Services using the Report Builder as well as the Report Designer against relational data as well as OLAP cubes. The client side possibilities for browsing these Business Intelligence Servers using Microsoft Office, Sharepoint, and the Scorecard Manager.

  • Reporting and analysis applications are become more and more important in today's business applications. Queries that aggregate over a large portion of the data in a relational database slow down this database. Therefore, OLAP (OnLine Analytical Processing) cubes have been invented to provide performant aggregation querying over large amounts of data. In this course, you learn how to build and query OLAP cubes with Microsoft Analysis Services, as well as build and query Analysis Services data mining models, which are aimed at discovering complex, unknown and useful patterns in large amounts of historical data. Topics: Creating and managing Analysis Services cubes, using features such as translations, Key Performance Indicators and calculated members. Processing cubes, designing aggregations, deciding upon which type of storage is optimal. Setting up data mining models, processing and analysing these models, and creating PREDICTION JOIN queries for client side querying of these models.

  • Using multidimensional terminology. Adding calculated members to a cube. Using MDX member functions to navigate within a hierarchy. Using MDX time functions to compare values over time. Using MDX set functions in a query statement. Using functions to manipulate sets of members. Using functions to aggregate values from a set of members. Applying MDX to make a cube change dynamically. Calculating formulas for specific blocks of cells. Controlling the order of calculations within a cube. Applying MDX in common customer and sales applications. Applying MDX in common financial applications.

  • Creating and managing Microsoft SQL Server Integration Services packages. Creating Control flows and Data Flows. Debugging these packages. Setup logging and event handling for packages. Configuring package values with configuration files. Working with variables. Program ad hoc control and data flow task.

  • This course provides students with the knowledge and skills to author, deploy, and manage reports using Microsoft Reporting Services 2005. Students should leave the course with a good understanding of how to apply reporting services to problems within a business context. Topics: The architecture of Microsoft Reporting Services and Office integration. Authoring reports using the Report Designer. Deploying and publishing reports. Managing the lifecycle of a report including report scheduling and backup and restore. Applying Reporting Services to a business problem.

 

Books

I've already written following books and Articles:
  • “Relational sequence learning and user modelling”, the title of this thesis, introduces four topics which play a central role in this thesis. Although ‘user modelling’ is the last term in the title, it is the first thing we need to explain, because it forms the motivation for the rest of this work. ‘Learning’ refers to data mining and machine learning.
 
 

Articles

Here is the list of articles I've written for U2U and Microsoft:
  • Automatically updating Reporting Services caches: Getting best of both worlds
    July 2006
    Reporting services allows you to create advanced reports, based on data which comes from a diversity of data sources. Reports are usually build based on data which accesses many records in the underlying database: often you visualise in the report information that spans multiple days, products, departments,… and you aggregate all the data (sum, average, minimum,…) to get an easy to interpret report. As you know, business data is more about finding the haystack than it is about finding the needle. Because we are addressing a large amount of data when building a report, it is common to use a caching technique to make sure users are served cached reports, in that way avoiding unnecessary access to the database.
  • SQL Server 2005 Service Broker
    July 2006
    SQL Server 2005 makes it easy to set up asynchronous distribute applications by integrating a queueing mechanism into the database. It combines the ideas of MSMQ with the stability, reliability and functionality of a relational database server. In this code walkthrough we investigate how to set up a simple application on this service broker. Gradualy we introduce additional aspects of the service broker, complicating the initial simple setup.
  • Using SQL Server 2005 to store and query serialized objects
    May 2006
    .NET offers the possibility to serialize and deserialize objects into a binary or XML representation. Serializing into XML is a requirement in order to create and consume webservices, binary serialization can be used for remoting. But besides moving objects between different applications, can serialization also be used to ‘materialize’ objects, and give them a persistent storage. This can be done to file, but databases offer a more robust storage (transactional consistency, backup,…). But there is more to it. Since Sql Server 2005 offers XML querying functionality (XPath as well as XQuery), this allows us to query the materialized objects, and even alter them. In this article, we demonstrate this idea by building a small application in which we store persons in a listbox. We then store the state of our listbox items (including the Person objects) serialized as XML in the SQL Server 2005 database, and deserialize this. Since we can store multiple serialized listboxes, we extend our load method so that we can query our database. In our case, we allow the user to enter the name of a person, and when we then click load, the first materialized listbox in which a person with this name occurs is loaded.
  • Microsoft SQL Server 2005 Integration Services smaakt naar meer
    October 2005
    Microsoft vaart al enige tijd onder de vlag ‘innovatie door integratie’. De nieuwste editie van hun ETL-tool (Extract, Transform, Load) bewijst dit nog eens door de naam Integration Services te dragen. In dit artikel nemen we deze opvolger van SQL Server Data Transformation Services (DTS) onder de loupe.
  • Microsoft SQL Server 2005 Analysis Services: van gegevens- naar informatiebeheer
    October 2005
    Databases zijn een vast onderdeel in zowat elk IT-project. Naar mate de hoeveelheid opgeslagen data toeneemt, worden taken als rapportage en analyse alsmaar belangrijker. Vandaar dat Microsoft in de nieuwe versie van Microsoft SQL Server ook veel aandacht heeft besteed aan de OLAP-component Analysis Services. In dit artikel beschrijven de auteurs de belangrijkste kenmerken van Microsoft SQL Server 2005 Analysis Services, met de nadruk op de nieuwe aspecten.
  • Consuming Web Services in SQL Server 2005
    September 2005
    Sql Server 2005 offers the functionality of writing functions, stored procedures, aggregates, triggers and types in .NET. In this way, we can ‘wrap’ .NET functionality in a database function, procedure or type. In an earlier article, we demonstrated this principle by wrapping regular expression functionality in a CLR function. In this article, we illustrate the same principle, but this time by consuming a web service.
  • Regular Expressions in SQL Server 2005
    May 2005
    SQL Server 2005 offers the possibility to write functions, stored procedures, aggregate functions, triggers and user defined types in a .NET language such as Visual Basic .NET or C#. One of the great advantages of this functionality, is that we can ‘pull’ functionality that is available in the .NET class libraries into the database. In this article, we illustrate this idea by ‘pulling’ the .NET support for regular expressions into SQL Server 2005.
 
 
 

Presentations

Here are some of the presentations I've done. You'll be able to download my slides and demos here.
  • December 3, 2009 - SQL Server Day Belgium : Implementing best practices with Policy Based Management
    In the database world, many best practices exist. Some are general, some are company or site specific. Wouldn’t it be nice if SQL Server could automatically check or even enforce these best practices? Well, this is exactly what the Policy Based Management (PBM) framework allows you to do. In this session, we guide you through this framework that was introduced in all editions of SQL Server 2008. We demonstrate how to create facets, conditions and policies, we show the different evaluation methods for these, and we briefly dive under the hood of PBM to see what it does to our servers. We end with the story of multi-server management, so that you can use your policies on all the sql servers in your company… even the ones that still run on sql 2000 or sql 2005!

  • December 3, 2009 - SQL Server Day Belgium : Using XML in SQL Server
    Web services, REST, Office 2007 documents, RSS feeds,... , the world is filled with XML data. How do we deal with this when it comes to storing such data in our databases? SQL Server offers a lot of functionality to store, retrieve, index and manipulate XML data. In this session, we bring an overview of all the XML related technologies in SQL Server. We start with FOR XML and OPENXML, functionality available since SQL Server 2000. We move on to the XML type, new in SQL Server 2005. We dive into the five functions to query and manipulate XML data on SQL Server, and build primary and secondary xml indexes to improve performance. We conclude with column sets, new functionality in SQL Server 2008 to deal with sparse columns in an xml-alike style.

  • May 28, 2009 - DevDays Netherlands : Administration Revised: Policy Based Management
    In SQL Server 2005 a lot of administrative things can be automated, but the administrator always need to decide how certain administrative policies are enforced. In SQL Server 2008, policies are added, which allow an administrator to specify only which policies they would like to enforce, so that they no longer need to worry on how to enforce it: administration becomes declarative instead of procedural. In this session, we introduce facets, conditions and policies, investigate the different ways policies can be applied, and see how best practices can be enforced by policies. Finally, we dive under the hood of policy based management to see how this is implemented.

  • May 28, 2009 - DevDays Netherlands : Building reports the easy way: Reporting Services 2008
    Reporting Services has changed a lot. The tablix component replaces the table, matrix and list components, and provides interesting new reporting options. But there is more: we got a new gauge component as well, word rendering, expression placeholders, improved charting capabilities, a new rendering approach, we lost the ties with IIS, we gained a new report builder environment, and much more. This session shows the highlights of what is new in Reporting Services 2008.

  • November 2007 - MSDN Evening Session : What is new in Visual Studio 2008?
    (Together with Peter Himschoot)
    The next version of Visual Studio, Microsoft Visual Studio 2008, will provide an industry-leading developer experience for Windows Vista, the 2007 Microsoft Office system, and the Web. If you want to know how Visual Studio 2008 differs from every single previous version of Visual Studio, if you are having a hard time figuring out what exactly is new in .net 3.5 or if you are interested in exploring the new language features of C# 3.0 or VB 9.0, then this session will answer all of your questions... and more! After this session, you’ll hurry back home and start upgrading your projects to Visual Studio 2008. That’s a promise!

  • February 2006 - ISV Summer School : Microsoft SQL Server 2005 for Developers
    In 2005 I provided several 5 day workshops on MS SQL Server 2005 at different locations in Europe.

  • June 2005 - TechNet Session : Microsoft SQL Server 2005 for Developers
    From daily data to Business Intelligence with Microsoft SQL Server 2005 Analysis Services.

 

Tools

This section provides a list of tools I developed.
  • ASDoc is a tool which creates documentation for your Analysis Services 2005 OLAP cubes. It connects to your live server, and queries the metadata for the name and description which the developers attached to every object (database, cube, dimension, hierarchy, attribute, translation, data source, data source view,...). It then produces an HTML file which contains the name and description of all these objects. But there is more: also other properties, such as last processing time, creation time, sizes of fact tables etc. are written to the HTML file.
  • NEBChecker, The checker on Non Empty Behavior
    In an OLAP cube, it is important that the cube can quickly figure out if a certain cell (tuple) is empty or not. For measures, Analysis Services is keeping track of this. But for calculated members, the system has to evaluate the full expression, which slows down the query. Unless... unless we can tell the system that the calculated member will be empty (null) when another, real member is null. This is done via the non-empty behavior property of the calculated member. With this tool, you can quickly see all the calculated members in your live cubes which do not have a non-empty behavior set on them. The tool also shows you the definition of the relevant calculated members.


 



Copyright © 1999-2010 by U2U