The purpose of the data services layer is to facilitate the storage of data on different types of data storage providers!. Physical Design of Data servicesThe purpose of this section is
Trang 2with all applicable copyright laws is the responsibility of the user No part of this document may
be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Microsoft Corporation If, however, your only means of access is electronic, permission to print one copy is hereby granted
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property
2000 Microsoft Corporation All rights reserved
Microsoft, Active Directory, ActiveX, BackOffice, BizTalk, FrontPage, Microsoft Press, MSDN, MS-DOS, PowerPoint, Visio, Visual Basic, Visual C++, Visual InterDev, Visual J++, Visual Studio, Win32, Windows, and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A and/or other countries
Other product and company names mentioned herein may be the trademarks of their respective owners
Program Managers: Rhy Mednick, Susie Parrent
Instructional Designer: Susie Parrent
Subject Matter Experts: David Chesnut, Sam Gill (TechnoWiz), Michel Pahud
Media Management: David Mahlmann
Editing Manager: Lynette Skinner
Editor: Mick Alberts, Jennifer Linn
Production Manager: Miracle Davis
Print Coordinators: Linda Lu Cannon (Write Stuff), Marlene Lambert (Online Training
Solutions, Inc.)
Build Coordinator: Eric Wagoner
Graphic Artist: Scott Serna
Test Lead: Eric Myers
Manufacturing Manager: John Williams
Group Product Manager: Juan Fernando Rivera
Lead Product Manager, System Services and Infrastructure: Edward Dudenhoefer
Manufacturing Manager: Rick Terek
Operations Coordinator: John Williams
Manufacturing Support: Laura King; Kathy Hershey
Lead Product Manager, Release Management: Bo Galford
Group Manager, Courseware Infrastructure: David Bramble
General Manager: Robert Stewart
Trang 3Instructor Notes
This module provides students with an introduction to data services Every enterprise application needs to save data in a data store In this module, two
types of data stores are considered: relational and hierarchical
After completing this module, students will be able to:
! Identify the important features of a data service, and in particular those of Microsoft® SQL Server™ and Active Directory™
! Describe storage and retrieval for data services
! Describe how a data service works with data
! Describe how a data service maintains data integrity
! Describe how a data service handles distribution
! Describe the physical design of a data services layer and how to apply technologies to implement it
Materials and Preparation
This section provides the materials and preparation tasks that you need to teach this module
Required Materials
To teach this module, you need the following materials:
! Microsoft PowerPoint® file 1910A_10.ppt
! Module 10: Data Services
! Lab 10: Data Services
Preparation Tasks
To prepare for this module, you should:
! Read all of the materials for this module
! Complete the lab
Presentation:
75 Minutes
Lab:
30 Minutes
Trang 4Module Strategy
Use the following strategy to present this module:
! Introduction to Data Services The purpose of this section is to introduce students to the data services layer The purpose of the data services layer is to facilitate the storage of data on different types of data storage providers In this module, you will introduce students to two types of storage capabilities: relational and hierarchical
Emphasize to students that these are not the only two types of data service providers Examples of other data service providers are online analytical processing (OLAP) server for data warehousing and Microsoft Exchange for workflow application storage
! SQL ServerThe purpose of this section is to review with students the salient features of SQL Server
In the topic “SQL Server Storage and Retrieval,” emphasize that denormalizing is one of the key physical design activities associated with relational database design To improve retrieval performance, you would denormalize your table structure
! Active DirectoryThe purpose of this section is to review with students the salient features of Active Directory
The first two topics in this section explain the requirements of hierarchical data storage and how the Active Directory design meets those requirements This section contains a demonstration of two utility applications that allow Active Directory browsing The first utility, ADSVW, allows browsing of the Active Directory schema, while the second utility, ADSIEdit, allows browsing and modification of Active Directory objects
! Logical Design of Data ServicesThe purpose of this topic is to point out to students that while there are not currently design patterns that apply to the logical design of data services, there are other models that can facilitate the logical design of data services
! Physical Design of Data servicesThe purpose of this section is to describe the key considerations in the physical design of SQL Server and Active Directory The first topic in this section provides some general guidelines about when one type of data store is preferred over the other (relational vs hierarchical)
! Market Purchasing The purpose of this section is to discuss the logical and physical designs of the data services layer of Market Purchasing and to explain the choices made The logical design of the relational data services is reflected in an entity relationship diagram (ERD) The logical design of the hierarchical data services is presented as a schema
You can use the SQL Server Enterprise Manager to open the Market Purchasing database and show students the actual implementation for the physical design Using the Enterprise Manager, you can show how the tables are designed and how the constraints and indexes are configured
Trang 5! Best Practices There are four important best practices associated with data services:
• The logical design should specify SQL Server as the preferred data service for relational, volatile data All volatile entities, such as requisitions, vendors, and so on, are stored on a database data service provider
• The logical design should specify Active Directory as the preferred data service for hierarchical, non-volatile data Non-volatile, highly
redundant data sets such as requestor are stored in Active Directory
• The physical design of the SQL Server data service should use stored procedures for data set retrieval and data modification The physical design should also use triggers to maintain data integrity
• The design of an Active Directory schema should include both a class design and an object design While defining a class design is a requirement, defining an object design allows the Active Directory services to better index the directory to enable faster searches
Lab Strategy
! Lab 10: Data Services The purpose of Lab 10 is for students to experiment with designing a specialized query The query is a hierarchical query that will require the Data Shape Provider to implement the query in the physical design
The physical design is the hardest part of the lab because students must derive the query to pass to the Data Shape Provider Microsoft MSDN®Library provides documentation for creating Data Shape Provider queries However, it is also acceptable for students to use a pseudocode solution Discuss with students their answers to Lab 10
Trang 7# Overview
! Introduction to Data Services
! SQL Server
! Active Directory
! Logical Design of Data Services
! Physical Design of Data Services
! Market Purchasing
! Best Practices
In this module, you will learn about the data services layer This module focuses primarily on Microsoft® SQL Server™ and Active Directory™ as two key technologies of a data services layer After completing this module, you will be able to:
! Identify the important features of a data service, and in particular those of SQL Server and Active Directory
! Describe storage and retrieval for data services
! Describe how a data service works with data
! Describe how a data service maintains data integrity
! Describe how a data service handles distribution
! Describe the physical design of a data services layer and how to apply technologies to implement it
In this module, you will learn
about the data services
layer and how to create a
physical design for it
Trang 8# Introduction to Data Services
! The Business Problem
In this section, you will learn
what makes up a data
service
Trang 9The Business Problem
Data Access Layer
Connected Business Logic Layer
Disconnected Business Logic Layer
Facade Layer
User Services
Data Services
The data services layer is accessed by the transactional or nontransactional data access layer (DAL) The data services layer consists of data service providers that provide many services, including data definition, data manipulation and retrieval, logging, archiving, transactions, and so forth
The data services components are the requests for services that are initiated by the DAL components and passed to the data service providers A data service provider processes the request and returns a result to the DAL
In this module, you will learn about the characteristics of these requests as they pertain to different types of data service providers
Topic Objective
To provide background
about the business problem
Lead-in
In this topic, you will learn
about the business problem
presented to designers who
need to implement a data
services layer
Trang 10in more detail
There are, however, other data service providers that can be used in an application, including data warehouses such as OLAP (online analytical processing) Server and electronic mail data stores such as Microsoft Exchange Server These types of data stores might not be applicable to a general type of business application and therefore are not discussed in detail in this course
In SQL Server 2000, the name OLAP Server has been changed to Analysis Services
For more information about using data warehouses, see Course 1502B,
Designing and Implementing a Data Warehouse Using Microsoft SQL Server 7.0 For more information about using workflow, see Course 1593A, Building Collaborative Solutions by Using Microsoft Outlook 2000 and Course 2017A, Creating Digital Dashboards
Mail data stores are applicable to general business applications when used for sending messages For example, the Market Purchasing application is designed to send e-mail messages to managers to let them know that there are requisitions awaiting approval However, for simplicity, the Market Purchasing sample does not currently implement e-mail delivery
In this topic, you will learn
about the two types of
business requirements:
relational and hierarchical
Note
Note
Trang 11# SQL Server
! SQL Server Storage and Retrieval
! Using SQL Server to Work with Data
! Data Integrity
! SQL Server Distribution
The design of physical components for a data services layer can be based on using a database data service provider such as SQL Server In this section, the salient SQL Server features will be covered in detail:
! SQL Server Storage and Retrieval
! Using SQL Server to Work with Data
! Data Integrity
! SQL Server Distribution
For more information about SQL Server, see Course 832B, System
Administration for Microsoft SQL Server 7.0; Course 833B, Implementing a Database on Microsoft SQL Server 7.0; and Course 2013A, Optimizing Microsoft SQL Server 7.0
In this section, you will
review the important
physical design features of a
database data service
provider such as SQL
Server
Trang 12SQL Server Storage and Retrieval
SQL Server is a relational database This means that information in the database
is represented in tables and that the relationship between the tables is through common columns in tables The physical design of a database for an application
is based on the entity relationship diagram (ERD) derived during the logical design phase of the data services layer
Based on the logical design, a first version of the table design of a database is derived In this design, a table or a column represents each entity and
relationship While the logical design of a database is concerned with correctly representing the entities of the enterprise and is a normalized view of the relationships between the entities, the physical design is concerned with performance
Denormalization
The result of the representation of entities and relationships as tables is a highly normalized table structure This representation results in excessive joins in order to retrieve information needed by the DAL To avoid excessive joins, the physical design of a database is denormalized: additional columns and rows are added to tables to avoid the need for joins Although denormalization increases the speed of data retrieval, it results in duplicated columns across tables
Constraints must be imposed to ensure consistency in these columns when updates are made to any of the tables
In this topic, you will learn
about design considerations
for the storage and retrieval
of data
Trang 13Hot Spots
Hot spots are a key concern in physical database design Hot spots are pages in
a table that receive an excessive number of access requests as compared to other pages in the same table Hot spots are usually a symptom of poor physical database design You can avoid hot spots by defining appropriate indexes on tables
Archives
Finally, there is a rule that says that 20 percent of the data is accessed 80 percent of the time Specifically, the 20 percent of the data that is frequently accessed is the current data Separating older data, by archiving it, from current data can enhance the performance of a physical design
Trang 14Using SQL Server to Work with Data
SQL Statements
The SQL statements make up the syntax for retrieval and modification:
SELECT, INSERT, and UPDATE There is also a DELETE statement, but its use is highly discouraged Deleting records can misrepresent the sequence of events that occurred when a compensating transaction should have been used It
is appropriate to use the DELETE statement when the business logic demands a delete, such as when the administrator wants to delete a requestor’s information from the database
Stored Procedures
Stored procedures include both SQL Statements and control-of-flow statements that encapsulate access control logic on the data service provider Stored procedures can return two types of results from the data service provider: a row set (a table-like structure representing the result of a query) or an output parameter In general, row sets are more generic and easier to handle In addition, stored procedures can return a value indicating if the operation was successful
Topic Objective
To provide a review of
working with data
Lead-in
In this topic, you will learn
the details of the physical
design of working with data
Trang 15Triggers
Triggers are used to maintain data integrity in the database Triggers are very much like stored procedures in that they consist of SQL statements and control-of-flow statements that encapsulate logic for maintaining data integrity
You can define triggers to run automatically in response to an insert, update, or delete on a table The trigger runs before the insert, update, or delete occurs, allowing the trigger to control what happens during the change If a change will violate data integrity, the trigger can prevent the change or allow the change by updating other tables to maintain data integrity Once defined, triggers cannot
be turned off; they must be deleted
In general, issuing DELETE statements against the database is not recommended It is recommended that you mark records as not being used, or move them to archives, instead of permanently deleting the data
Note
Trang 16! Entity integrity
A row representing a specific entity cannot be duplicated
! Domain integrity Values for attributes can only be selected from a domain
! Referential integrity The relationships between tables are consistent This means that a foreign key field must have a corresponding primary key field
! Derived integrity Values in derived fields must reflect the underlying values of the referenced fields An example of a derived value is the total for a requisition that is based on the corresponding line item detail entries
There are two mechanisms by which a data service provider can implement data integrity One of these mechanisms is declarative, and the other is procedural Declarative data integrity uses the SQL constraint syntax and is preferred whenever possible There are circumstances, however, in which the logic for maintaining data consistency cannot be expressed as a constraint In these cases,
a trigger can be defined for maintaining data consistency
Topic Objective
To provide an overview of
data integrity
Lead-in
In this topic, you will learn
how to create a physical
design with data integrity
Trang 17$ Use when updates from multiple sites must be managed
The physical design of data services should include high availability High availability is the ability of an application to tolerate failures in server resources This means that the client continues to be served during the failure, and, ideally, the failure is transparent to the client High availability can be achieved through replication In general, the physical design of data services can use three types of replication: transactional, snapshot, or merge replication The particular scenario indicates the appropriate type to use
Merge Replication
Use merge replication when there is a situation in which the same data can be manipulated in multiple locations and the latest update must be available at all locations
Topic Objective
To provide an overview of
data distribution
Lead-in
In this topic, you will learn
the key physical design
issues of data distribution
Trang 18# Active Directory
! Issues and Challenges of Hierarchical Data
! Active Directory Solution
! Active Directory Storage and Retrieval
! Active Directory Schema
! Distribution
The design of physical components for a data services layer can also be based
on using a directory data service provider such as Active Directory In this section, the most important Active Directory features will be covered in detail:
! Issues and Challenges of Hierarchical Data
! Active Directory Solution
! Active Directory Storage and Retrieval
! Active Directory Schema
In this section, you will
review the important
physical design features of a
directory data service
provider such as Active
Directory
Trang 19Issues and Challenges of Hierarchical Data
! A global catalog must exist to contain information about every object in the hierarchical data set
! A query and index mechanism must exist, so that objects and their properties can be published and found by users or applications
! A replication service must distribute the hierarchical data across a network
! Integration must exist with the security subsystem for authentication and control on directory data queries and data modifications
For more information about directory services, refer to Course 1561B,
Designing a Microsoft Windows 2000 Directory Services Infrastructure, or the
book Understanding Active Directory Services, by Daniel Blum, Microsoft
In this topic, you will learn
about the issues and
challenges of hierarchical
data
Trang 20Active Directory Solution
! Organizational Unit
! Schema
Active Directory is a directory service that addresses all of the issues and challenges listed in the previous topic A directory service consists of both a repository of information and the software component that makes the information available and useable globally Directory services are most commonly used for storing and retrieving information about people and companies Active Directory is the extensible and scalable directory service for Microsoft Windows® 2000 Server When creating a structure to hold
hierarchical data in Active Directory, you should consider which organizational units you will use and how the schema of classes and attributes should be defined
Organizational Unit
One type of directory object contained within domains is the organizational unit Organizational units are Active Directory containers into which you can place users, groups, computers, and other organizational units An
organizational unit cannot contain objects from other domains
The organizational unit is the smallest scope or unit to which you can assign Group Policy or delegate administrative authority Using organizational units, you can create containers within a domain that represent the hierarchical, logical structures within your organization This enables you to manage the configuration and use of accounts and resources based on your organizational model
In this topic, you will learn
how Active Directory can be
used to store hierarchical
data
Trang 21Schema
The schema consists of class definitions and attribute definitions Within a class, you can specify the attributes that you want to support, and you can classify attributes into two categories: optional and mandatory You also identify where the class will be located in the hierarchy These rules are defined
as attributes of the class object
In Active Directory services, classes follow a simple inheritance model When defining a class, you must declare a parent class This class defines which attributes are implicitly inherited from their parent class