Microsoft SQL Server 2008 R2: Hierarchies, Collections, and MDS Metadata

Exclusive offer: get 50% off this eBook here
Microsoft SQL Server 2008 R2 Master Data Services

Microsoft SQL Server 2008 R2 Master Data Services — Save 50%

Manage and maintain your organization's master data effectively with this Microsoft SQL Server 2008 R2 Master Data Services book and eBook

£20.99    £10.50
by Jeremy Kashel Martyn Bullerwell Tim Kent | July 2011 | Enterprise Articles Microsoft

In the previous article on Creating and Using Models, some of the different objects within the MDS object hierarchy was covered. This article will detail more MDS objects, guiding the reader on how to build a model up step-by-step. A sample script is provided to populate the user's newly created model, and the user is guided through the process of editing and creating members using the front-end.

In this article by Jeremy Kashel, Tim Kent and Martyn Bullerwell, authors of Microsoft SQL Server 2008 R2 Master Data Services, we will cover the following topics:

  • Hierarchies
  • Collections
  • Master Data Services Metadata

 

Microsoft SQL Server 2008 R2 Master Data Services

Microsoft SQL Server 2008 R2 Master Data Services

Manage and maintain your organization's master data effectively with Microsoft SQL Server 2008 R2 Master Data Services

        Read more about this book      

(For more resources on this subject, see here.)

The reader is advised to refer the previous article on Creating and Using Models since this article is related to it.

Master Data Services includes a Hierarchy Management feature, where we can:

  • Browse all levels of a hierarchy
  • Move members within a hierarchy
  • Access the Explorer grid and all its functionality for all members of a given hierarchy.

As we've seen already, there are two types of hierarchies in MDS—Derived Hierarchies and Explicit Hierarchies. We will look at how to create and use both types of hierarchies now.

Derived Hierarchies

In our example scenario, as we have stores in many different cities and states, we have a requirement to create a "Stores by Geography" hierarchy. In order to create the hierarchy, carry out the following steps:

  1. Navigate to the System Administration function, which can be accessed using the Master Data Manager home page.
  2. Hover over the Manage menu and click on the Derived Hierarchies menu item, which will open the Derived Hierarchy Maintenance page.
  3. Click on the green plus icon to add a Derived Hierarchy, which will open the Add Derived Hierarchy page.
  4. Enter Stores By Geography as the Derived Hierarchy Name and click on save.
  5. The Edit Derived Hierarchy page will now be displayed, where we can build the hierarchy. On the left-hand side of the screen we can pick entities to be in our hierarchy, whereas the middle pane of the screen displays the hierarchy in its current state. A preview of the hierarchy with real data is also available on the right-hand side. Drag the Store entity from the left-hand side of the screen and drop it onto the red Current Levels : Stores By Geography node in the center of the screen:

    SQL Server 2008 R2 Master Data Services tutorial

  6. The choice of entities of on the left hand side will now change to the only two entities that are related to Store, namely City and StoreType. Repeat the drag-and-drop process, but this time drag the City entity onto the red Current Levels node so that the Current Levels hierarchy is as follows:

    SQL Server 2008 R2 Master Data Services tutorial

  7. The Available Entities and Hierarchies pane will now be updated to show the State entity, as this is the only entity related to the City entity. Drag the State entity over to the red Current levels node, above the City entity.
  8. The Available Entities and Hierarchies pane will now be updated to show the Country. Drag the Country entity over to the red Current Levels node, above the State entity. This is the last step in building our Stores By Geography hierarchy, which will now be complete.

We will now look at how we can browse and edit our new hierarchy.

Exploring Derived Hierarchies

Before we make any changes to the Derived Hierarchy, we will explore the user interface, so that we are comfortable with how it is used.

Carry out the following in order to browse the new hierarchy features:

  1. Navigate to the home page and select the Explorer function.
  2. Within the Explorer function, hover over the Hierarchies menu, where a menu item called Derived: Stores By Geography should appear. Click on this new item, which will display the Derived Hierarchy, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  3. The buttons above the hierarchy tree structure are as follows (from left to right):
    • Pin Selected Item—Hides all members apart from the select item and all of its descendants. This option can be useful when browsing large hierarchies.
    • Locate Parent of Selected Item—The immediate parent of the selected member could be hidden, if someone has chosen to pin the item (as above). Locate Parent of Selected Item will locate and display the members parent, as well as any other children of the parent.
    • Refresh Hierarchy—Refreshes the hierarchy tree to display the latest version, as edits could occur outside the immediate tree structure.
    • Show/Hide Names—Toggles the hierarchy view to be either the member code and the name, or just the code. The default is to show the member name and code.
    • Show/Hide Attributes—On the right-hand side of the screen (not shown) the children of the selected item are shown in the Explorer grid, along with all their attributes. This button shows or hides the Explorer grid.
    • View Metadata—Displays a pop-up window that will display the metadata for the selected member. We will discuss metadata towards the end of this article.
  4. Select the DE {Germany} member by clicking on it. Note: the checkboxes are not how members are selected; instead, clicking on the member name will select the member.
  5. Use the Pin Selected Item button to pin the DE {Germany} member, which will hide the siblings of Germany as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  6. To now locate the parent of DE {Germany}, and display the parent's other children (for example, USA and United Kingdom), click on DE {Germany}, then click on the Locate Parent of Selected Item button. The hierarchy tree will revert back to the original structure that we encountered.
  7. Now that we have returned to the original hierarchy structure, expand the US member until the member CA {California} is visible. Click on this member, which will display some of the cities, which we have loaded for the State of California:

    Editing multiple entities
    The above point illustrates one of the useful features of the hierarchy editor. Although we can edit the individual entities using their respective Explorer grids, with a Derived Hierarchy, we can edit multiple entities on a single page.

  8. We don't actually need to edit the cities for the moment, but we do want to look at showing and hiding the Explorer grid. Click on the Show/Hide Attributes button to hide the Explorer grid. Click on the button again to make the Explorer grid reappear.
  9. Finally, we're able to look at the Metadata for the Derived Hierarchy. Click on the View Metadata button to open the Metadata Explorer, which is shown below. This is where we would look for any auxiliary information about the Derived Hierarchy, such as a description to explain what is in the hierarchy. We'll look at metadata in detail at the end of this article.

SQL Server 2008 R2 Master Data Services tutorial

We will now look at how we add a new member in a Derived Hierarchy.

Adding a member in a Derived Hierarchy

Adding a member in a Derived Hierarchy achieves exactly the same thing as adding a member in the entity itself. The difference is that the member addition process when carried out in a Derived Hierarchy is slightly simplified, as the domain attribute (for example, City in the case of the Store entity) gets automatically completed by MDS. This because in a Derived Hierarchy we choose to add a Store in a particular City, which negates the need to specify the City itself.

In our example scenario, we wish to open a new Store in Denver. Carry out the following steps to add the new Store:

  1. Expand the US {United States} member of the Stores By Geography hierarchy, and then expand the CO {Colorado} member.
  2. Click on the 136 {Denver} member.
  3. On the far right-hand side of the screen, the Stores for Denver (of which there are none) will be shown. Click on the green plus icon to begin the process of adding a Store.
  4. Enter the Name as AW Denver and enter the Code as 052.
  5. Click on the save icon to create the member.
  6. Click on the pencil icon to edit the attributes of the new member. Note that the City attribute is already completed for us.
  7. Complete the remaining attributes with test data of your choice.
  8. Click on the save icon to save the attribute values.
  9. Click on the green back arrow button at the top of the screen in order to return to the Derived Hierarchy.

Notice that we now have a new Store that exists in the Derived Hierarchy, as well as a new row in the Explorer grid on the right-hand side of the screen.

We will now continue to explore the functionality in the hierarchy interface by using Explicit Hierarchies.

Explicit Hierarchies

Whereas Derived Hierarchies rely on the relationships between different entities in order to exist, all the members within Explicit Hierarchies come from a single entity. The hierarchy is made by making explicit relationships between leaf members and the consolidated members that are used to give the hierarchy more than one level.

Explicit Hierarchies are useful in order to represent a ragged hierarchy, which is a hierarchy where the leaf members exist at different levels across the hierarchy.

In our example scenario, we wish to create a hierarchy that shows the reporting structures for our stores. Most stores report to a regional center, with the regional centers reporting to Head Office. However, some stores that are deemed to be important report directly to Head Office, which is why we need the Explicit Hierarchy.

Creating an Explicit Hierarchy

As we saw when creating the original Store entity in the previous article, an Explicit Hierarchy can get automatically created for us when we create an Entity.

While that is always an option, right now we will cover how to do this manually. In order to create the Explicit Hierarchy, carry out the following steps:

  1. Navigate to the System Administration function.
  2. Hover over the Manage menu and click on the Entities menu item.
  3. Select the Store entity and then click on the pencil icon to edit the entity.
  4. Select Yes from Enable explicit hierarchies and collections drop-down.
  5. Enter Store Reporting as the Explicit hierarchy name.
  6. Uncheck the checkbox called Include all leaf members in mandatory hierarchy. If the checkbox is unchecked, a special hierarchy node called Unused will be created, where leaf members that are not required in the hierarchy will reside. If the checkbox is checked, then all leaf members will be included in the Explicit Hierarchy. This is shown next:

    SQL Server 2008 R2 Master Data Services tutorial

  7. Click on the save icon to make the changes to the entity, which will return us to the Entity Maintenance screen, and conclude the creation of the hierarchy.
Microsoft SQL Server 2008 R2 Master Data Services Manage and maintain your organization's master data effectively with this Microsoft SQL Server 2008 R2 Master Data Services book and eBook
Published: July 2011
eBook Price: £20.99
Book Price: £33.99
See more
Select your format and quantity:
        Read more about this book      

(For more resources on this subject, see here.)

Consolidated members

Before we can properly use our new Explicit Hierarchy, we need to create some consolidated members to group the Stores into a reporting structure.

Like leaf members, consolidated members belong to an entity and have a number of attributes. The difference is that consolidated members can only exist in Explicit Hierarchies, whereas leaf members can exist in any type of hierarchy.

We can create consolidated members in the standard Explorer grid, or in the hierarchy editor, but on this occasion, we will choose the hierarchy editor. Carry out the following steps to browse to the Explicit Hierarchy and add some consolidated members:

  1. Navigate to the Explorer function.
  2. Hover over the Hierarchies menu and choose the Explicit: Store Reporting menu item. This will cause the same hierarchy editor to appear as the one that we encountered with the Derived Hierarchy. One immediate difference to note is that we have an extra node in the hierarchy tree, which is called Unused.
  3. Expand the Unused node to see all the leaf members that are present.
  4. In order to create the consolidated members, change the member type selection of the Explorer grid to be Consolidated, by using the radio buttons, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  5. As the member type of Consolidated is selected, clicking the green plus icon will add a Consolidated, rather than a Leaf, member. Click on the icon now to add a new consolidated member.
  6. In the standard Add Store page that we have seen before, enter the Name as North and the Code as N, to represent the Northern reporting region.
  7. We actually want to add several consolidated members, so instead of just clicking on the regular save button, click on the Save and Add Another button to save the consolidated member.
  8. Repeat the process to create the following consolidated members, which are shown in the Code {Name} format:
    • S {South}
    • E {East}
    • W {West}
    • HO {Head Office}
  9. Return to the hierarchy editor, which should show the following view:

    SQL Server 2008 R2 Master Data Services tutorial

We will now look at creating the ragged hierarchy structures by moving members to a parent.

Moving hierarchy members

There are two ways in which we can move a member to a parent in an Explicit or a Derived Hierarchy, namely:

  • Drag-and-drop
  • The MDS clipboard

Our desired goal is for all regions to report to Head Office, but for some of the stores to report to Head Office directly. We will start off by dragging and dropping the regions to Head Office. To do this:

  1. Click on the North member and without releasing the mouse button, hover over the Head Office member and then release the mouse button.
  2. Repeat the process for the East, South, and West members. The final hierarchy structure should be as follows:

    SQL Server 2008 R2 Master Data Services tutorial

    Dragging and dropping may not be so useful when moving a large amount of members, which is what we need to do in order to move the stores to their regions. This is where the clipboard can help, as we shall see by carrying out the following steps:

  3. Expand the Unused node to expose the leaf members.
  4. We will start by moving the Northern stores to the North member. Check the checkboxes for the following members:
    • 001 - AW Duluth
    • 007 - AW Minneapolis
    • 010 - AW Woodburn
    • 020 - AW Kirkland
    • 023 - AW Chicago 3
    • 024 - AW Spokane
    • 025 - AW Lake Oswego
    • 030 - AW Oregon City
    • 035 - AW Casper
    • 038 - AW Chicago 2
    • 046 - AW Branch
    • 048 - AW Billings
    • 049 - AW Chicago
  5. We will now use the MDS Clipboard to move the checked members to a new parent. The Clipboard is located at the bottom of the page, and has the following buttons, which are explained next from left to right:

    SQL Server 2008 R2 Master Data Services tutorial

    • Copy to Clipboard (first on the left)—Stores any members that are checked on the clipboard
    • Paste as Child—Pastes any members on the clipboard as children of the selected member
    • Paste as Sibling—Pastes any members on the clipboard as siblings of the selected member
    • Clear Clipboard—Clears the clipboard temporary storage area
    • The textbox on the far right displays the current contents of the clipboard
  6. Click the Copy to Clipboard button. Notice that the textbox at the bottom of the page will change to indicate that the clipboard has some members.
  7. Expand the Head Office member and then select the North member by clicking on it, so that it is highlighted bold, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  8. Click on the Paste as Child button at the bottom of the screen to paste the members on the clipboard as children of the North member.
  9. Expand the North member to verify that it now contains a number of children.
  10. Repeat the process, for the following members, noting that some of the members map directly to Head Office:

    SQL Server 2008 R2 Master Data Services tutorial

After the aforementioned steps have been completed, we will have now completed the creation of our Explicit Hierarchy. The final version should look as follows, noting, for example, that AW Cincinnati 2 and AW Branson now report directly to Head Office:

SQL Server 2008 R2 Master Data Services tutorial

Collections

When we altered the Store entity to enable Explicit Hierarchies, we did so by changing an option called Enable explicit hierarchies and collections. As the name of the option suggests, this action also enabled collections for our entity.

Collections are customized lists and hierarchies of members that are created by manually specifying the members that can be in the collection. A collection can contain a mix of members from different instances of the following MDS objects:

  • Explicit Hierarchies (both consolidated and leaf members)
  • Other collections

Therefore, it would be possible to make a collection that contained 10 members from a Collection, 10 from an Explicit Hierarchy, and 10 from another Explicit Hierarchy.

Collections are useful when we have the requirement to isolate a subset of an entity or hierarchy, for example, to carry a marketing campaign to a select list of customers, or to list a number of products that may be on promotion.

Creating a collection

In our example scenario, Head Office wishes to run a marketing campaign for a select number of stores that run a particular product line. Carry out the following steps in order to create the collection:

  1. Navigate to the home page and select the Explorer function.
  2. Hover over the Collections menu, where a menu item called Store is now visible, as Store has been enabled for explicit hierarchies and collections. Click on the Store menu item, which takes us to the Collection editor page.
  3. Click on the green plus icon to add a collection. Enter the following values in the Add Store (Collection) page:
    • Name—Store Marketing November 2010
    • Code—STC001
  4. Click on the save icon to create the collection.
  5. This will cause the Attributes area to appear, as they would if we were creating a member. Collections default to having an attribute called Description, which defaults to blank, and an Owner_ID attribute, which defaults to the logged in user. On this occasion, accept the defaults and click the green arrow to return.
  6. One collection will now appear in the Explorer grid, in a similar fashion to if we had just created a single member in an entity. Click on the drop-down arrow that is adjacent to the collection name, which will make the following pop-up menu appear:

    SQL Server 2008 R2 Master Data Services tutorial

  7. Click on the Edit members menu item, which will allow us to specify what members we want in the collection, by loading the following page:

  8. From the Edit members page, we can use the radio buttons at the top of the screen to switch between choosing members from an Explicit Hierarchy or a Collection. The default Explicit Hierarchy of Store Reporting will suit us for this task.
  9. It is possible to add a whole hierarchy to a collection, but this is not necessary for us, as we need to cherry pick individual stores to be members of our collection. Navigate down the Explicit Hierarchy and click on the AW Kirkland member.
  10. Drag the selected member from the Explicit Hierarchy to be on top of the Members node that appears in the right-hand side pane.
  11. Repeat the process with the following members:
    • 049—AW Chicago
    • 006—AW Baltimore
    • 021—AW Charlotte
    • 033—AW Cincinnati
    • 041—AW Central Valley
    • 050—AW Bellevue
  12. Click the green Back arrow when the above has been carried out, which will return us to the Collection grid. Notice that on the right-hand side of the screen, the contents of the collection are displayed. The contents should be as follows:

    SQL Server 2008 R2 Master Data Services tutorial

Model View for Collections
The Model View, which is displayed by default when clicking on the Explorer function provides a shortcut to access Collections. The Collections are listed on the right-hand side of the Model View page. When the Collection code name is clicked on, MDS takes you directly to the Edit Members part of the collection process.

As with entities, and Derived/Explicit Hierarchies, collections may be exported from MDS to allow the users who need them to consume the data.

Microsoft SQL Server 2008 R2 Master Data Services Manage and maintain your organization's master data effectively with this Microsoft SQL Server 2008 R2 Master Data Services book and eBook
Published: July 2011
eBook Price: £20.99
Book Price: £33.99
See more
Select your format and quantity:
        Read more about this book      

(For more resources on this subject, see here.)

Master Data Services Metadata

Metadata can be defined as any data that we capture for Master Data Management that is not the master data itself. It is often described in a generic way, applying to many industries, as "data about the data". The case of MDM, the "data about the data" is anything that helps to describe the master data. A few examples of metadata that we may want to capture as part of an MDM initiative are:

  • The business owner of an entity
  • Business definitions and meanings for objects such as entities and attributes
  • The source system(s) for entities and/or members

Metadata can be created in MDS without resorting to code. A system model called Metadata gets created when MDS is installed, and can be edited by users so that the MDS metadata can be tailored to suit your business.

Altering the default MDS Metadata

By default MDS includes three different types of Metadata that apply to a number of objects. The Metadata types are:

  • Name
  • Code
  • Description

The Name and Code are automatically completed for each entity. The Name is the name that the user gives for the object in the MDS front-end, such as "Store" for the Store Entity. The Code is auto-generated, meaning that the Store entity also has a code, although it's not that obvious unless you look at the metadata. The Description, however, is not populated for any of the system objects by default.

We have created a total of five entities as part of this and previous article. Therefore, adding descriptions for these entities would be a good place to start. To do this, carry out the following instructions:

  1. From the MDS home page, choose Metadata from the Model drop-down, and choose Version 1 from the Version drop-down.
  2. Click on the Explorer function. The Model View for the Metadata model will display five entities, which represent the objects that Metadata can be created for. They are:
    • Attribute Group Metadata Definition
    • Attribute Group Definition
    • Entity Metadata Definition
    • Hierarchy Metadata Definition
    • Model Metadata Definition
  3. Click on the Entity Metadata Definition entity.
  4. Click on the familiar pencil icon in the next screen. The Explorer grid will be displayed, but it will contain the Metadata for all the entities that exist within the MDS system:

  5. Edit the Store member and enter "Adventure Works full or partly owned Retail Stores" in the Description column.
  6. Save the member.
  7. Repeat the process, supplying the following descriptions for the following entities:
    • City—Cities where Adventure Works retail stores are located
    • StoreType—A classification of Adventure Works retail stores
    • State—States where Adventure Works retail stores are located
    • Country—Countries where Adventure Works retail stores are located

We will now be able to view the metadata that we have entered for our entities.

Viewing Metadata

As we touched on when looking at hierarchies, metadata in the Master Data Manager application is viewed by using the Metadata Explorer throughout the various different pages of the Explorer function.

To view the Metadata that we have just created, carry out the following steps:

  1. Navigate to the MDS home page.
  2. Select Store from the Model drop-down, and choose VERSION_1 from the Version drop-down.
  3. Click on the Explorer function.
  4. Click on the View Metadata button, which is located to the right of the green plus button. The Metadata window will open.
  5. Expand the Filters section, which will display the following full view of the Metadata Explorer:

  6. Change the Metadata type to be Entity, which will display Metadata for entities in the Store model. Notice in doing this that the Entity drop-down changes to City, which is the first alphabetical entity in the model, meaning we get our Description returned successfully.
  7. Change the selected Entity in the Entity drop-down to each of the other entities that we created, just to verify that the Description is returned successfully.

By changing the Metadata type, we can choose between the different types of MDS objects that support metadata, and view the metadata of these objects across any model (even though we are currently in the Store model) in the MDS system.

User-defined Metadata

While the built-in metadata is useful, as we have already highlighted, an MDM program may facilitate the need to capture more metadata than just an object's description.

Thankfully in MDS it's possible to create customized metadata for the objects that exist within the system Metadata model.

As part of our example scenario, we need to record the Owner of our entities, so that users understand who has ultimate responsibility for the entities. In order to do this, carry out the following steps:

  1. Navigate to the home page and select the System Administration function.
  2. Hover over the Manage menu and click on the Entities menu item.
  3. Choose the Metadata model from the Model drop-down.
  4. Click on Entity Metadata Definition in the grid, and then click on the pencil icon.
  5. The view will now show the current attributes that can be captured when altering the Metadata of an entity. Click on the green plus icon, as we want to add an attribute.
  6. In the Add Attribute page, enter the following:
    • Attribute Type—Free Form
    • Name—Owner
    • Data Type—Text
    • Enable Change Tracking—Unchecked
  7. Save the new attribute.
  8. Save the entity.

Now that we have added the attribute, we have a further administrative task to carry out in order to be able to use the attribute. The attributes that are displayed for entities in the Metadata model are governed by an attribute group. We need to add our new attribute to this Attribute Group. Carry out the following tasks in order to do this:

  1. Remaining in the System Administration section, hover over the Manage menu, and click on the Attribute Groups menu item.
  2. Choose the Metadata Model from the Model drop-down.
  3. Choose Entity Metadata Definition from the Entity drop-down.
  4. Expand the General Entity Information Attribute Group, and then click on the node.
  5. Click on the pencil icon to edit the Attribute Group.
  6. Move the Owner from the Available list to the Assigned list. Ensure that Owner appears above Description in the list, which will ensure the order of the attributes in the Explorer grid. The selection should be as follows:

  7. Finally click on the save icon to save the Attribute Group.

We now have the new attribute that we needed, and it's now assigned to the correct Attribute Group. Now our final task is to populate and view the attribute. Carry out the following steps in order to do this:

  1. From the MDS home page, choose Metadata from the Model drop-down and choose Version 1 from the Version drop-down.
  2. Click on the Explorer function.
  3. Click on the Entity Metadata Definition entity.
  4. Click on the pencil icon, which will display the metadata for all entities in the system once more.
  5. Edit the entity members in the grid that belong to our Store model. Set the owner attribute to yourself for the Store entity and to Joe Bloggs for the other four entities.
  6. Return to the MDS home page and choose Store from the Model drop-down, and choose VERSION_1 from the Version drop-down.
  7. Click on the Explorer function, which will take us to the Model View screen.
  8. Click on the View Metadata button, which will display the Metadata Explorer.
  9. Expand the Filters section.
  10. Alter the Metadata type to Entity. As shown below, we can already see that we have our Owner attribute added correctly:

  11. Change the Entity drop-down to each of the entities that are in our model and verify that the owner is populated.

We have now seen how it is possible to extend the Metadata Model within MDS for entities, and the same concept can be applied to attributes, attribute groups, hierarchies, and models.

Summary

We've covered a great deal in this article. Specifically we've learnt the following points:

  • A Derived Hierarchy is a hierarchy that is built from the relationships that exist between entities in a model.
  • An Explicit Hierarchy's members must all come from one entity, although Explicit Hierarchies can contain consolidated members.
  • Collections allow us to create subsets of entities by taking specific members from Explicit Hierarchies and other collections.
  • The system-created Metadata model allows us to record metadata about MDS objects, as well as creating our own metadata attributes.

Further resources on this subject:


About the Author :


Jeremy Kashel

Jeremy Kashel is a Principal Consultant with Adatis, a UK-based Microsoft Gold Partner, specializing in the Microsoft Business Intelligence stack. Jeremy has over 10 years of experience in working with SQL Server business intelligence projects, for a variety of UK and international clients. Jeremy is also a keen blogger, and has spoken at a number of Microsoft events.

Martyn Bullerwell

Martyn Bullerwell is one of the owners of Adatis, and is involved in project delivery for Adatis' larger clients, including multi-terabyte data warehouses. Martyn has led projects in a number of different clients and sectors, including media, oil and gas, and banking.

Tim Kent

Tim Kent is one of the owners of Adatis, and is also involved in project delivery and QA for the Microsoft Business Intelligence stack. Tim was first awarded the MVP for SQL Server in 2009, and has been specializing in SQL Server and the Microsoft BI stack for over 10 years. Tim is also an active member of the SQL Bits SQL Server conference organizing committee, and has also been involved in speaking at the event.

Books From Packt


Microsoft Data Protection Manager 2010
Microsoft Data Protection Manager 2010

Microsoft SQL Server 2008 R2 Administration Cookbook
Microsoft SQL Server 2008 R2 Administration Cookbook

Applied Architecture Patterns on the Microsoft Platform
Applied Architecture Patterns on the Microsoft Platform

Microsoft Visual Studio LightSwitch Business Application Development
Microsoft Visual Studio LightSwitch Business Application Development

Microsoft Silverlight 4 Data and Services Cookbook
Microsoft Silverlight 4 Data and Services Cookbook

Getting Started with Microsoft Application Virtualization 4.6
Getting Started with Microsoft Application Virtualization 4.6

Microsoft Enterprise Library 5.0
Microsoft Enterprise Library 5.0

Microsoft Forefront UAG 2010 Administrator's Handbook
Microsoft Forefront UAG 2010 Administrator's Handbook


Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software