In this article, I will try to explain this phrase from the Information Systems perspective and give you some hints to overcome the possible resistance you will face while introducing a new business software to a company. We can also say that “Users Resist Change“.
Michelangelo painted Sistine Chapel ceiling (40×13 meters) in 4 years between 1508 and 1512. It was a huge project. Almost all work was done by Michelangelo himself. Of course, he was not alone while he painted, he had many assistants. Their tasks were simply to prepare his paints, carry ladders up and down, prepare the day’s plaster and etc. Occasionally, he would let a talented assistant to work on a small part of a landscape, or a small figure which is almost invisible. Michelangelo hired and fired these assistants on such a regular basis that none of them could claim credit for any part of the ceiling. Not a great team player, huh?
Just for the reference of XML, XSL enthusiasts, I will quickly demonstrate how you can convert a flat XML file to a hierarchial XML with nested nodes. When hierarchy is the focus, there can be many different XML structures, but for the sake of simplicity, I have chosen the below example. This example assumes that you have ID, PARENTID and LEVEL attributes in each node, and PARENTID being 0, blank or null means that the employee node is a root node. To achieve this conversion, we have to know the root nodes.
With the release of Master Data Services (MDS) for SQL Server 2008R2, it is now possible to perform XML transformations on the database server. Even though, it may sound as a bad idea to perform such operations on the database level instead of clientside, one can certainly find useful cases for this functionality.
A database configured with MDS, simply contains some CLR assemblies and UDF functions that make use of these assemblies.
After evaluating several graph databases, I decided to put more emphasis on Neo4J. Neo4J seems to be better documented and has a better REST API than the others. But still, I did not want to move all my relational data to Neo4J and there was actually no need to do so. I only needed the graph functionality of Neo4J to retrieve the user relationships as a resultset and merge it with my good old relational data. So I decided to go on to my evaluation by preparing a small .Net assembly to access Neo4J REST API and make use of the CLR functionality in SQL Server.