Microsoft SQL Server 2008 R2 MDS: Creating and Using Models

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

This article by Jeremy Kashel, Tim Kent and Martyn Bullerwell, authors of Microsoft SQL Server 2008 R2 Master Data Services, introduces the reader to the concept of creating a Model within the Master Data Manager front-end, which will be the beginning of an example solution that will run for the rest of the article. Each of the different objects within the MDS object hierarchy will be covered, guiding the reader on how to build a model up step-by-step.

A sample script will be provided that will populate the user's newly created model, and the user will then be guided through the process of editing and creating members using the front-end.

In this article, we will cover the following topics:

  • MDS object model overview
  • Models
  • Entities and attributes
  • Members
  • Attribute Groups

 

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.)

MDS object model overview

The full MDS object model contains objects such as entities, attributes, members, collections, as well as a number of other objects. The full MDS object model can be summarized by the following diagram:

As indicated in the diagram, the Model object is the highest level object in the MDS object model. It represents an MDM subject area, such as Product or Customer. Therefore, it would be normal to have a model called Product, which would contain several different Entities, such as Color, Brand, Style, and an entity called Product itself.

Entities have one or more Attributes and instances of entities are known as Members.

Instead of an entity just containing attributes, it is possible within MDS to categorize the attributes into groups, which are known as Attribute Groups.

There are two types of hierarchies within MDS, namely Derived Hierarchies and Explicit Hierarchies. Derived hierarchies are hierarchies that are created based upon the relationships that exist between entities. For example, the Customer entity may have an attribute called City that is based upon the City entity. In turn, the City entity itself may have a State attribute that is based upon the State entity. The State entity would then have a Country attribute, and so on. This is shown below:

SQL Server 2008 R2 Master Data Services tutorial

Using the relationships between the entities, a Derived Hierarchy called Customer Geography, for example, can be created that would break customers down by their geographic locations. A visual representation of this hierarchy is as follows:

SQL Server 2008 R2 Master Data Services tutorial

A Derived Hierarchy relies on separate entities that share relationships between one another. This is in contrast to an Explicit Hierarchy, whose hierarchy members must all come from a single entity. The point to note though is that the members in an Explicit Hierarchy can be both Leaf Members and also Consolidated Members.

The idea behind Explicit Hierarchies is that they can represent ragged data structures whereby the members cannot be easily categorized as being a member of any one given entity. For example, Profit and Loss accounts can exist at different levels. Both the accounts "Cash in Transit" and "Net Profit" are valid accounts, but one is lowlevel and one is a high-level account, plus there are many more accounts that sit in between the two. One solution is to create "Net Profit" as a consolidated member and "Cash In Transit" as a leaf member, all within the same entity. This way, a full ragged Chart of Accounts structure may be created within MDS.

Models

The first step to get started with Master Data Services is to create a model, as the model is the overall container object for all other objects.

We are going to start by creating a practice model called Store—meaning that it will be our single source of retail stores in our fictitious company.

Models are created in the Master Data Manager application, within the System Administration functional area. Carry out the following steps to create our Store model:

  1. Ensure that the Master Data Manager application is open. To do this, type the URL into your web browser, which will typically be http://servername/MDS/.
  2. Click on the System Administration option in the home page, which will take you to the following screen:

    SQL Server 2008 R2 Master Data Services tutorial

  3. The tree view that is shown breaks down each of the models that are installed in the MDS environment, showing entities, attributes and other objects within the system. The tree view provides an alternate way to edit some of the MDS objects. Rather than using the tree view, we are going to create a model via the menu at the top of the screen. Hover over the Manage menu and choose the Models menu item.
  4. The resulting screen will show a list of the current models within MDS, with the ability to add or edit a model. Click on the familiar Master Data Manager green plus icon in order to add our new model, which will produce the following screen:

    SQL Server 2008 R2 Master Data Services tutorial

  5. Enter Store as the Model name.
  6. Next there are some settings to configure for the model, via three checkboxes. The settings are:
    • Create entity with same name as model—This is essentially a shortcut to save creating an entity manually after creating the model. We want an entity called Store to be created, so leave this option checked.
    • Create explicit hierarchy with same name as model—Another shortcut, this time to create an Explicit Hierarchy. We will manually create an Explicit Hierarchy later on, so uncheck this box.
    • Include all leaf members in mandatory hierarchy—This setting only applies if we are creating an Explicit Hierarchy. If checked, it will ensure that all leaf members must exist within an Explicit Hierarchy. By unchecking the previous option, this option will be unchecked.
  7. Click the "Disk" icon to save and create the new model.

Entities and attributes

After creating the new model, we are now in a position to create all the entities and attributes that we need to manage our store data. However, before doing this, we need to plan what entities and attributes are needed. This can be summarized by the following table:

SQL Server 2008 R2 Master Data Services tutorial

Attributes

Attributes are the building blocks of entities in MDS, and there are three different types, which we need to cover before we can start creating and altering entities. The different types are explained in the following table:

SQL Server 2008 R2 Master Data Services tutorial

Domain attributes and relationships between entities

As we left the Create entity with same name as model option checked when creating the model, we will have an entity already created called Store. The task now is to edit the Store entity, in order to set up the attributes that we have defined previously. However, before we can complete the Store entity, we actually need to create several of the other entities. This is because we want some of the Store's attributes to be based on other entities, which is exactly why we need domain attributes.

Domain attributes are the method that allow us to create relationships between entities, which we need, for example, in order to create Derived Hierarchies. In addition, they also allow for some good data entity validation as, for example, it would not be possible for a user to enter a new attribute value of "New York" in the City attribute if the member "New York" did not exist in the City entity.

If we look at our table of entities and attributes again, there is a column to indicate where we need a domain attribute. If we were building an entity relationship diagram, we would say that a Store has a City and that a City belongs to a State.

Creating an entity

To focus on the Store entity first, before we can say that its structure is complete, we firstly need to create any entities that the Store entity wants to use as domain attributes. We can clearly see from the previous table that these are City and StoreType. The Country and State entities are also required as domain attributes by other entities. Therefore, carry out the following steps in order to create the remaining entities:

  1. Ensure that you are in the System Administration function.
  2. Hover over the Manage menu and click on the Entities menu item.
  3. Ensure that the Store model is selected from the Model drop-down.
  4. Click the green "plus" icon. This will open the Add Entity screen.
  5. Enter the following information on the Add Entity screen, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

    • Enter City as the Entity Name.
    • Choose No to not Enable explicit hierarchies and collections.
  6. Click the save icon to create the entity and return to the Entity Maintenance screen.
  7. Repeat this process to create the StoreType, Country, and State entities.

Once you have finished the Entity Maintenance screen should look as follows:

SQL Server 2008 R2 Master Data Services tutorial

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.)

Editing an entity

Now that we have created all the required entities, we need to edit the Store entity, to add the attributes that it needs. If we recall the plan that we outlined earlier, the Store entity requires the following attributes:

  • Name
  • Code
  • SquareFootage
  • StoreType
  • City
  • PostalCode
  • FaxNumber
  • TelephoneNumber
  • EmailAddress

All entities automatically get two default attributes called Name and Code, which saves us having to add them for each of the entities. The Code attribute within an entity uniquely identifies a given member, and therefore must be unique amongst the entity's members. It also cannot be left blank. The Name attribute can be left blank, and simply provides an attribute to enter a name for a member.

The first attribute for us to create is SquareFootage, which is an example of a freeform attribute. In order to do this, carry out the following:

  1. Remaining in the Entity Maintenance screen, select the Store entity and then click on the pencil icon, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  2. In the resulting Edit Entity screen, we now have the option to rename the entity if we wish, or to enable/disable explicit hierarchies and collections for the entity. We can also add, edit, or delete an attribute for the entity. This is exactly what we want to do on this occasion, so click the green plus icon to display the following Add Attribute screen:

    SQL Server 2008 R2 Master Data Services tutorial

  3. Enter the Name as SquareFootage, as shown.
  4. Leave the default Display pixel width of 100. This controls how wide the attribute column will be in the Master Data Manager grid.
  5. Set the Data type as Number, as we want users to enter square feet of say 10,000 or 3,000 for a given store.
  6. Alter the Decimals, by either typing or using the down arrows so that the Decimals for the attribute is 0.
  7. Pick the Input mask of -####, which will mean that negative numbers will be displayed with a minus sign rather than in brackets. This is not relevant for our SquareFootage attribute, but it is a mandatory setting.
  8. Click the check box to Enable change tracking.

    Enable change tracking and Change tracking group
    The Enable change tracking option is used in conjunction with the MDS business rules. If change tracking is enabled on an attribute, then a business rule can be set up to fire whenever the attribute's value changes.
    A Change tracking group is a numerical indicator that groups attributes together. For example, it would be possible to have three attributes in the Change tracking group 1. The aforementioned business rules monitor a change in any attribute that is a member of a specific change tracking group, instead of being directly bound to the attribute itself.

  9. Leave the default Change tracking group of 1.
  10. Click on the save icon at the top of the screen to save the new attribute.

Saving will return us to the Edit Entity screen, where we will see that the Store entity will have a new attribute, namely SquareFootage. We now need to add the StoreType attribute to the Store entity, which will be the first of our domain attributes.

To do this carry out the following steps:

  1. Click the green plus icon to display the following Add Attribute screen again:

    SQL Server 2008 R2 Master Data Services tutorial

  2. The most important setting to pick is to set the attribute to be a Domainbased attribute via the radio buttons at the top of the screen.
  3. Enter the Name as StoreType, as shown above.
  4. Leave the default Display pixel width of 100.
  5. As the domain-based setting has been chosen, we can now pick from the Entity drop-down, which is the entity to base the attribute upon. Pick the StoreType entity from this drop-down.
  6. Click the check box to Enable change tracking.
  7. Leave the default Change tracking group of 1.
  8. Click on the save icon at the top of the screen to save the new attribute.

Looking back at our table that we outlined previously, there are several attributes that still need to be created, in order to finish the structure of our model. Repeat the process that we have just gone through, using the settings shown in the following table:

SQL Server 2008 R2 Master Data Services tutorial

Once the structural changes are complete, we need to import some data into the model, in order that we have some data to work with.

Our method to get data into the new model is to run a T-SQL script that will populate the MDS staging tables. We will then run a command that will move data from the staging tables into the actual MDS tables, before executing another T-SQL script that will validate our model.

How the script is constructed is not covered here but there is no need to worry

In order to import the example data, carry out the following steps:

  1. Ensure that you have downloaded the files 0509_04_PopulateModel1.sql and 0509_04_PopulateModel2.sql from the code bundle.
  2. Open SQL Server Management Studio (SSMS).
  3. Using File, then Open, open the file called 0509_04_PopulateModel1.sql.
  4. Ensure that you are connected to the server that hosts the MDS database and that you are also connected to the MDS database itself.
  5. Execute the T-SQL script and verify that it completes successfully.

    Downloading the example code for this book
    You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

  6. Now open the second *.sql file called 0509_04_PopulateModel2.sql.
  7. Ensure again that you are connected to the correct server and database.
  8. Run the select statement at the top of the script and verify that a row is returned with a name called STORE_unbatched with no errors, as shown next. As the data is loaded asynchronously, it is also important to note the value of the Status_ID column, as shown below. If the Status_ID is 1 or 3, then the import is still running, so wait a minute or so and check again. Continue, only once the Status_ID is equal to 2.

  9. As instructed in the script, uncomment the lines below and execute the now uncommented statements, which will validate the data that we have just loaded and complete the import process.

We will now be in a position to use our new Store model structure to manage Store master data.

Members

The Explorer function in Master Data Manager is the place where we can perform the following functions on the members within an entity:

  • Add members
  • Edit members
  • Delete members
  • Annotate members
  • View member transactions

Before we start on any of these activities, we need to define what types of members we can have. There are two types of members within Master Data Services, namely:

  • Leaf members
  • Consolidated members

Leaf members are entity members that cannot have any children, and therefore, typically exist at the bottom of a hierarchy of members. In contrast, consolidated members are entity members that are explicitly created for grouping other members.

The Master Data Manager Explorer

We took a quick look at the Explorer function of Master Data Manager the previous article. We now need to navigate there once again, in order to take a look at the Store members that have been imported. To do this, carry out the following steps:

  1. Click the SQL Server 2008 R2 Master Data Services logo at the top of the current page. This will always return you to the MDS home page.
  2. From the home page, choose the Explorer option. This will show the following Model View page, where we should see a full list of attributes for our Store entity, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  3. Click on the pencil icon, which will show the members that we have imported via the Explorer grid:

SQL Server 2008 R2 Master Data Services tutorial

Adding a member

Depending on your MDM strategy, you may not actually ever need to physically add members to any of your entities within MDS, purely because the master data entity members may be added in the original source system, with MDS assigned to import, de-duplicate, and/or amend, before the members can be distributed to subscribing source systems. In some cases though, the original source of data will be an Excel spread sheet, meaning that creating members in MDS will be a far better option.

We will assume for the moment in our fictitious company that the requirement exists to add new Stores into MDS itself, and will now work through an example of adding a member:

  1. Remaining on the current page, click the green plus icon to display the following Add Store page:

    SQL Server 2008 R2 Master Data Services tutorial

  2. Enter the Name as AW Houston, as that is where the new store will be opened.
  3. Enter the Code as 051. The code must be unique amongst the members in the current entity, and 051 is the next one in the sequence.
  4. There are four buttons above the Name and Code labels, which carry out the following:
    • The first from left to right (Save) will save the new member, and then allow us to assign values to its attributes
    • The second (Save and Return) will save the new member, but return us to the Explorer grid without specifying values for the attributes
    • The third (Save and Add Another) will save the new member, without specifying the attributes, and then re-present the Add Store page, in order to allow us to add another member
    • Finally the fourth (Cancel) will return us to the Explorer grid without adding anything
  5. Choose the first button to save the member, which will cause the following Edit Store window to appear:

  6. As shown in the image, all of the Attributes are now shown, along with a pencil edit icon that will allow us to provide values to the Attributes. Click on the pencil icon, which will enable editing of the Attributes.
  7. Enter the following values for the attributes:
    • SquareFootage—3000

      Explorer grid view
      Depending on the view that is selected in the main Explorer grid (Code, Code {Name}, or Name {Code}) Domain attributes may not display the names that are set out next. Therefore, the domain attributes next are also shown with their code in order to avoid confusion.

    • StoreType—Mall {02}

      Number of Domain-Based attributes in List
      The number of members displayed in a drop-down for a domain-based attribute is controlled by a setting called Number of Domain-based attributes in list. Depending on the value of this setting, you may have to search for the city called Houston, instead of picking it from a list.

    • City—Houston {449}
    • PostalCode—77999
    • TelephoneNumber—713-999-9999
    • FaxNumber—713-999-9998
    • EmailAddress—Houston@adventureworks.com
  8. Click on the save icon.
  9. Click the green back arrow at the top of the page to return to the Explorer grid.
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.)

Editing a member

As you might expect the Explorer grid also gives functionality to edit a member, as well as the ability to edit multiple members at once.

In our example model, we have some editing to do, as we do not have phone numbers for all of the stores, for example, the Duluth store. In order to edit the Duluth store, carry out the following steps:

  1. If you are not already on the Explorer grid, for the Store entity, navigate back to the Explorer page, and choose the Store entity.
  2. You will see that the Duluth store is missing a value for the TelephoneNumber attribute. Click the small drop-down arrow on the lefthand side of the member name AW Duluth, and choose Edit Member from the resulting sub menu. This is shown next:

    SQL Server 2008 R2 Master Data Services tutorial

  3. Choosing Edit Member from the sub menu will cause the Edit Store window to appear, which is exactly the same window that appeared when we added a member earlier on.
  4. Once in the Edit Store window, click the pencil icon, which will allow editing of the Attributes.
  5. Enter a made up number for the TelephoneNumber attribute, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  6. Click on the save icon.
  7. Click on the green arrow icon at the top of the screen to return to the Explorer grid.

Deleting members

Deleting members is also carried out from the Explorer grid. In our example scenario, we are closing the store in Nevada, so it must be deleted from our Store entity. In order to do this, carry out the following steps:

  1. Using the check boxes on the far left-hand side of the grid, click to check the AW Nevada member.
  2. Click the Delete Selected Members button, which is the button with a red cross above the Explorer grid.
  3. Click OK to the message box that will appear, prompting for confirmation.
  4. The member will now be deleted.

Alternative delete button
There is also a Delete Member option in the member pop-up menu that we used when editing a member.

Annotating members

Annotations can be added to a member, which may, for example, be useful to communicate to the others the changes that have been made to a particular member.

Annotations are also carried out using the member pop-up window. To create an annotation, carry out the following:

  1. Using the Explorer grid, click the drop-down arrow next to a member of your choice and select Annotate Member.
  2. The Add Annotation window will now open. Enter a comment of your choice and then click on the save icon.
  3. The member will now have an annotation.

Annotations are created in the Explorer grid, but they are not actually visible on the grid. Instead, they are visible on the Transactions window, which we will cover next.

Transactions

The Transactions window is a feature within MDS that is used to view, and even reverse, any transaction that has occurred to a member. All types of transactions are shown, such as the update to an attribute, or a member annotation, and all transactions can be reversed by those with sufficient permissions, in order to rectify mistakes.

In our example scenario, we will now reverse the phone number that we entered earlier for the Duluth store. In order to do this, carry out the following steps:

  1. Using the Explorer grid, click the drop-down arrow next to the Duluth member and choose View Member Transactions from the pop-up menu, which will cause the following Transactions grid to appear. Note that we get to see the attribute's Prior Value, its New Value, as well as who changed it and when:

  2. Click anywhere on the transaction in order to highlight it. As transactions, as well as members, can be annotated, it would be at this point that we would see any annotations another user had left for the transaction.
  3. Now that the transaction is highlighted, click on the Reverse Selected Transaction icon at the top of the screen.
  4. Click OK in response to the message box that will appear, in order to confirm that we do actually want to reverse the transaction.
  5. Note that a new transaction has now appeared. The Prior Value will be the original Telephone Number that was entered, whereas the New Value will be blank.
  6. Enter an annotation for the new transaction that we have just created and then click on the save icon. Note that the annotation is now displayed at the bottom of the screen, as it is associated with the new transaction, as shown below:

Browsing the Explorer grid again will show that the telephone number for the Duluth store is now blank, as we have reversed our original transaction.

Attribute Groups

We've now got to the point where we have built quite a comprehensive model to house our retail stores, but we've not gone to the nth degree in terms of all the attributes that we may need. In a production environment, especially for larger entities, we could require anything in the region of twenty attributes.

This situation is where Attribute Groups are able to help. As mentioned briefly at the start of this article, an Attribute Group is a container object that exists within an entity to group together one or more of the entity's attributes.

An entity can contain multiple Attribute Groups, and the reason for creating them is to make the data entry and browsing of an entity more usable. They are also able to act as a security object, meaning that you can grant users access rights to individual Attribute Groups, if certain Attribute Groups are applicable to a particular user.

In our example scenario, we have the generic store attributes such as the PostalCode, SquareFootage, and StoreType, plus all the contact information for the store. We can therefore create two separate Attribute Groups, one called General and one called Contact Information.

Creating Attribute Groups

Carry out the following in order to create the two Attribute Groups that we need:

  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 Attribute Groups menu item.
  3. In the Attribute Group Maintenance page that will have appeared, choose the Store Entity from the Entity drop-down.
  4. Click on the Leaf Groups node that will have appeared. At this point, a plus icon and a pencil icon will appear, as we can add or edit an Attribute Group from this page. Click on the plus icon as we want to add an Attribute Group.
  5. Enter the Leaf Group Name as General, as this will house our non-contact related attributes.
  6. Click on the save icon.
  7. There will now be an Attribute Group shown under the Leaf Groups node called General. Expand this node and click on the node called Attributes.
  8. Another pencil icon will appear. Click on this icon to edit the Attributes in our new Attribute Group, which will cause the following screen to appear:

  9. Highlight the SquareFootage attribute and then click the right pointing arrow, which will move the selected attribute from the Available list to the Assigned list.
  10. Repeat the process for the attributes listed next. Note that the Name and Code Attributes are not included in the list, as they are always present in every Attribute Group.
    • StoreType
    • City
    • PostalCode
  11. Click on the save icon, which will create our General Attribute Group.
  12. Repeat the entire process, but create an Attribute Group called Contact Information, with the following attributes assigned:
    • TelephoneNumber
    • FaxNumber
    • EmailAddress
  13. Once completed, the fully expanded object hierarchy on the Attribute Group Maintenance page should be as follows:

    SQL Server 2008 R2 Master Data Services tutorial

This concludes the creation of our Attribute Groups, so now we will look at how we can use them.

Using Attribute Groups

Now that the Attribute Groups have been created, we will simply encounter them as part of the standard Explorer-based activities that we have already looked at. Carry out the following steps to get an example of where they are exposed to the user:

  1. Navigate to the home page and select the Explorer function.
  2. Edit the Store entity so that the standard Explorer grid opens. The grid will now be altered to show the following two new tabs at the top of the grid:

    SQL Server 2008 R2 Master Data Services tutorial

  3. Click on the Contact Information tab to see the view of attributes change.
  4. Click on the General tab to revert to the original view.

We will also encounter the attribute groups when adding or editing a member. Carry out the following steps to see an example of this:

  1. Click on the Contact Information tab in the Explorer grid.
  2. Notice that the AW Cambridge store is missing a Fax and TelephoneNumber. Click on the drop-down that is adjacent to the store name and choose Edit Member.
  3. The Attributes section of the Edit Store page that will have appeared will now contain two tabs, one for each attribute group. The attributes in each group are edited independently. As we want to edit the TelephoneNumber attribute, click on the Contact Information tab, as shown below:

    SQL Server 2008 R2 Master Data Services tutorial

  4. Click on the pencil icon to edit the attributes of the selected store.
  5. Enter a made up value for the TelephoneNumber attribute.
  6. Click on the save icon.
  7. Click on the green back arrow to return to the Explorer grid.

We have now seen how Attribute Groups can help organize our attributes into meaningful groups.

Summary

We've covered a great deal in this article, as we've essentially looked at how to create and populate an MDS model. Specifically we've learnt the following points:

  • The model is the overall container object with MDS. The models, and all the objects that they contain, are created within the System Administration section of Master Data Manager.
  • Entities are contained within models, and themselves contain attributes and Attribute Groups.
  • We can view and also reverse transactions that have been made against entities.
  • We can make annotations against members and against transactions.

In the next article we will cover three more MDS objects—Hierarchies, Collections, and MDS Metadata.


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