Course Number: 1609A Developed with KiZAN Corporation http://www.kizan.com 1099 Part Number: x04-99424 DeliveryGuide Designing Data Services and Data Models Information in this document is subject to change without notice. The names of companies, products, people, characters, and/or data mentioned herein are fictitious and are in no way intended to represent any real individual, company, product, or event, unless otherwise noted. Complying with 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. 1999 Microsoft Corporation. All rights reserved. Microsoft, MS-DOS, MS, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the U.S.A. and/or other countries. The names of companies, products, people, characters, and/or data mentioned herein are fictitious and are in no way intended to represent any real individual, company, product, or event, unless otherwise noted. Other product and company names mentioned herein may be the trademarks of their respective owners. Project Lead: Janet Robinson, Mark Bader Instructional Designers: Mark Bader, Shawn Lock, Michas Sadzak Program Managers: Mark Bader, Rama Biswas, Teresa Canady Subject Matter Experts: Mark Bader, Whitney Roberts (KiZAN Corporation), Janet Robinson, Scott F. Wilson (KiZAN Corporation) Graphic Artist: Elizabeth Johanson (ArtSource, Inc.) Editors: Joyce Cox (Online Training Solutions, Inc.), Todd Duft (Write Stuff), Elizabeth Hui Reese (Write Stuff) Testers: Chris Baca (Digital Counterbalance), Rick Carr (Digital Counterbalance) Production Support: Linda Lu Cannon (Write Stuff), Marlene Lambert (Online Training Solutions, Inc.), Eric Wagoner (Write Stuff) Manufacturing Support: Julie Challenger, John Williams Product Manager: Ron Wodaski Business Manager: Roger Gerdes Authors: Mark Bader, Whitney Roberts (KiZAN Corporation), Janet Robinson, Scott F. Wilson (KiZAN Corporation) Course Number: 1609A Part Number: X04-99424 October 1999 Contents iii Contents Introduction Introductions . 3 Course Materials . 4 Prerequisites 5 Microsoft Certified Professional Program 6 Facilities 7 Module 1: Course Overview Overview . 11 Business Solutions Design Curriculum . 12 Curriculum Vision and Purpose . 13 Courses in the Curriculum . 14 Curriculum Case Study 15 Overview of This Course 16 Course Vision and Purpose 17 Course Objectives 18 Modules in This Course . 19 Activity 1.1: Categorizing Existing Information . 21 Module 2: Solution Design Processes Overview . 25 Design Processes . 26 The MSF Process Model 27 Requirements Gathering 29 The MSF Design Process Model . 30 Data and the MSF Design Process Model . 32 Benefits of the Design Process . 33 Services-Based Design 34 The MSF Application Model . 35 Logical Network of Cooperating Services . 36 Data Services . 37 Examples of Services . 38 Benefits of Services-Based Design 39 Activity 2.1: Identifying Services 40 Review 41 Guidelines 42 Review Questions 43 Looking Forward . 44 Module 3: Using a Conceptual Design for Data Requirements Overview . 47 Investigation Process . 48 Gathering Information . 49 Analyzing Information . 50 Creating Use Cases 51 Data Requirements 52 Characteristics of Data Requirements 53 Categories of Data Requirements 54 Identifying Functional Data Requirements 56 iv Contents Identifying Nonfunctional Data Requirements 57 Activity 3.1: Identifying Data-Related Use Cases and Data Requirements . 58 Validating Data Requirements . 59 Activity 3.2: Relating Data Requirements to Conceptual Design . 60 Review 61 Guidelines 62 Review Questions 63 Looking Forward . 64 Module 4: Deriving a Logical Data Design Overview . 67 Logical Data Design 68 The Need for a Logical Data Design . 69 Deriving Logical Data Services . 70 Entities and Attributes . 72 Overview of Entities and Attributes . 73 Deriving Entities 74 Deriving Attributes 75 Activity 4.1: Deriving Entities and Attributes from Data Requirements . 76 Data Relationships 77 Overview of Data Relationships 78 Identifying Relationships Between Entities . 79 Overview of Cardinality and Existence . 80 Determining Cardinality 81 Determining Existence . 82 Entity/Relationship Modeling . 83 Syntax 84 Creating the Logical Data Model . 86 Activity 4.2: Creating a Logical Data Model . 88 Review 89 Guidelines 90 Review Questions 91 Looking Forward . 92 Module 5: Normalizing the Logical Data Design Overview . 95 Implementing Entity Relationships . 96 Using Keys . 97 Primary Keys . 98 Foreign Keys 99 Examples of Primary and Foreign Keys 100 Activity 5.1: Identifying Keys in the Logical Model . 101 Normalization Basics 102 Normalizing Logical Models . 103 Creating a First Normal Form Data Model 105 First Normal Form Example 106 Moving to a Second Normal Form Data Model . 107 Creating a Third Normal Form Data Model 108 Third Normal Form Example . 109 Benefits of Normalization 110 Contents v Activity 5.2: Normalizing Data 111 Review 112 Guidelines 113 Review Questions 114 Looking Forward . 115 Module 6: Deriving a Physical Data Design Overview . 119 Physical Data Design 120 Describing a Physical Data Model . 121 Identifying Database Tables and Fields . 123 Common Data Types . 124 Implementing Relationships 125 Implementing One-to-One Relationships 126 Implementing One-To-Many Relationships 127 Implementing Many-To-Many Relationships 128 Activity 6.1: Translating the Logical Data Design 129 Data Optimization Techniques 130 Goals of Optimization 131 Optimizing for Creation of Data 133 Optimizing for Retrieval of Data . 134 Optimizing for Updating Data . 136 Considerations for Deleting Data . 138 Activity 6.2: Optimizing a Physical Data Design 139 Review 140 Guidelines 141 Review Questions 142 Looking Forward . 143 Module 7: Implementing Data Integrity Overview . 147 Overview of Data Integrity . 148 Data Integrity Categories . 149 Referential Integrity . 150 Data Validation 151 Identifying Data Integrity Requirements . 153 Activity 7.1: Identifying Data Integrity Requirements 154 Implementing Data Integrity Requirements 155 Identifying Business Rules 156 Deploying Business Rules and Data Integrity Requirements 157 Implementing in the Database 158 Implementing Programmatically 160 Implementation Guidelines 162 Activity 7.2: Determining Data Integrity Implementations . 163 Review 164 Guidelines 165 Review Questions 166 Looking Forward . 167 Module 8: Designing Data Services Overview . 171 vi Contents Overview of Data Services 172 Data Services Design . 173 Deploying Data Services 175 Accessing Relational Data 177 OLE DB and ODBC 178 ADO, RDO, and DAO . 179 Selecting a Data Access Technology . 181 Accessing Host-Based Systems 183 Host-Based Data Access Design 184 Accessing Host-Based Data and Applications . 185 Selecting a Legacy Data Access Technology 186 Activity 8.1: Selecting Data Access Technologies . 187 Review 188 Guidelines 189 Review Questions 190 Looking Forward . 191 Module 9: Data Storage Considerations Overview . 195 Choosing a Database Product 196 User Community 197 System Performance 198 System Maintenance 199 Data Storage Technologies . 201 Microsoft Excel 202 Microsoft Jet 203 Microsoft Visual FoxPro 204 MSDE 205 SQL Server 207 Data Storage Considerations . 208 Backup and Restore . 209 RAID Technologies . 211 Clustering . 213 Disaster Recovery 214 Activity 9.1: Data Quiz . 216 Review 217 Guidelines 218 Review Questions 219 Looking Forward . 220 . with KiZAN Corporation http://www.kizan.com 1099 Part Number: x04-99424 Delivery Guide Designing Data Services and Data Models Information in this document. 41 Guidelines