When To Migrate From Access
When To Migrate From Access
Published: February 2005 Updated for Access 2007: October 2006 Applies To: SQL Server 2000 Service Pack 3a Summary: This paper explores the issues related to upsizing Microsoft Access applications to take advantage of the performance, security, and reliability of Microsoft SQL Server.
Copyright
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
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.
Unless otherwise noted, the example companies, organizations, products, domain names, e-mail addresses, logos, people, places and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, e-mail address, logo, person, place or event is intended or should be inferred.
Microsoft is either a registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
The names of actual companies and products mentioned herein may be the trademarks of their respective owners.
Contents
When to Migrate from Microsoft Access to Microsoft SQL Server ......................1 Executive Summary ...........................................................................................1 The Value of Access in Your Organization .........................................................1 Appropriate Access Usage: Building the Right Relationship Between Teams and IT 2 Access and the Jet Engine ................................................................................ 3 Access and SQL Server: a Quick Comparison ...................................................... 3 Topology Configurations ...................................................................................4 Access and Jet Single User ............................................................................... 4 Access and Jet Multiuser .................................................................................. 4 Access, Jet, and SQL Server ............................................................................. 5 Using Access and SQL Server Without Jet ........................................................... 5 Making the Decision: When to Upsize ................................................................6 Web Access .................................................................................................... 7 Scalability ...................................................................................................... 7 Maximum Database Size ............................................................................. 7 Number of Concurrent Users........................................................................ 8 Architectural Issues .................................................................................... 8 Reliability and Availability ................................................................................. 8 Database Corruption ................................................................................... 8 Backup and Maintenance ............................................................................. 9 Different Versions of Access and Jet ............................................................. 9 Security ......................................................................................................... 9 Access Application Limitations......................................................................... 10 Moving Away from Access .............................................................................. 10 Upsizing Scenarios ..........................................................................................11 Scenario 1: Already Right-Sized ...................................................................... 11 Scenario 2: Upsize Data Only ......................................................................... 12 Scenario 3: Upsize Application and Data Using Access ....................................... 12 Scenario 4: Upsize Application and Data Using Microsoft .NET Technologies ......... 13 Planning an Upsizing Project ...........................................................................14 Taking Inventory of Access Databases in Your Organization ................................ 14 Phase 1: Design and Planning ......................................................................... 15 Choose Your Upsizing Scenario .................................................................. 15 Identify a SQL Server Installation ............................................................... 15 Administration ......................................................................................... 15 Development Plan .................................................................................... 15 Evaluate the Microsoft Upsizing Wizard ....................................................... 15 Phase 2: Implementation ............................................................................... 16
Configure SQL Server ............................................................................... 16 Development ........................................................................................... 17 Testing ................................................................................................... 17 Documentation ........................................................................................ 17 Training .................................................................................................. 17 Rollout .................................................................................................... 17 Phase 3: Stabilization .................................................................................... 18 Conclusion.......................................................................................................18 Recommended Reading.................................................................................. 18
Executive Summary
This paper explores the issues related to upsizing Microsoft Access applications to take advantage of the performance, security, and reliability of Microsoft SQL Server. Topics discussed include: The Value of Access in Your Organization. A brief discussion of how Access provides power and agility to an organization's users. Access and SQL Data Architectures. A discussion of the type of data architectures that Access supports. Making the Decision: When to Upsize. An evaluation of the criteria to decide whether an application has outgrown the capabilities of Access. Upsizing Scenarios. An overview of the approaches to upsizing, and how to determine which one is best for you. Planning an Upsizing Project. An outline of what to plan for, to ensure a successful project.
Information workers use the friendly query and report wizards to join heterogeneous data to improve decision making by using accurate and up-to-date information. To meet the needs of information workers, Microsoft plans to continue to make development investments in Access that will yield improved ease of use and closer integration with the Office System and especially as a great companion tool to use with Windows SharePoint Services. SharePoint provides teams with the ability to create lists of information that are readily accessed and shared in the portal. SharePoint provides storage and easy access. Microsoft Access provides rich forms and reports for these lists. Information workers can use Microsoft Access 2003 to build forms and reports on team data through a Web services connection to lists in Windows SharePoint Services. Microsoft Access 2007 has built on this development work to make it easier than ever to create effective team tracking applications that provide information workers with new collaboration features. By encouraging the storage of information on SharePoint, IT also is able to better manage, administer, and back-up the tracked information.
Appropriate Access Usage: Building the Right Relationship Between Teams and IT
Most Access applications are created and used without any IT involvement. Microsoft estimates that 97 percent of all Access databases are used on a time-limited basis or continue to exist as an individual or small team application. This is appropriate in most cases, but in a small percentage of cases it would be more appropriate for IT to create a more sophisticated application. Consider the following scenario, which illustrates the need for good planning between a team and IT to determine the right usage plan. An information worker needs to create a small application to meet a new business need. When consulted, the IT manager tells the information worker the project will take three months and $50,000 to create the solution using professional development tools, and will be hard to schedule given the current demands on the IT department. The information worker is under a deadline and cannot wait that long, and does not have the budget to pay for the professional development. She builds the application in a week using Access and is able to effectively meet the immediate business need, which her manager praises her for. Coworkers are inspired by the new application and make requests to track additional information and provide modified reports. Because the application answers such critical business decisions, more and more people start using it. Over time the business need that inspired this application grows in importance to the company. Problems arise when the information worker finds that the application grows beyond her small team and becomes a departmental application now used by a much larger number of people, and has become critical for the operational effectiveness of the department. As the number of users increases, the network traffic increases and the performance of the application decreases. Then, the sole creator of the application accepts a new job in another division, at which point the manager calls IT for help in updating and maintaining the application. The application that was designed for an individual or small team has outgrown its original design. This scenario illustrates a challenge that information workers and IT organizations can face when the usage of an application grow far beyond its original intent. With an overgrown Access application, such as the one from this example, IT is often asked to help address the groups needs. In reviewing the application, an IT manager may find that the information worker did a poor job designing the schema -- numbers
2
and dates are stored as text and the data is not appropriately normalized. Also, the application design could use improvements, as forms and reports that pull all the data down locally cause network traffic overload. The IT manager is frustrated because he now has an unexpected new application to deal with, and must make significant improvements or migrate the application to core infrastructure platforms such as Microsoft SQL Server, which translates to the information workers as additional time and expense. Information workers and IT organizations can avoid the frustrations of an overgrown Access application. For applications that might expand into the department or across the enterprise, Microsoft recommends that information workers collaborate early during the development phase to head off future problems, especially on schema design. If needed, the data can be easily moved at a later date. Additionally, the migration to SQL Server is significantly easier if an IT professional ensures that data typing is done correctly, the data is properly normalized, and that base queries enable the information worker to create the right reports.
reports being run. Security Performance Reliability File access-based security. Limited by file share model. Adequate for individuals and small team usage. Recovery from network failures cannot be rolled back. Enterprise-level security. Limited only by hardware and application design. High reliability. SQL Server is a mission-critical database. Backup and administration tools available.
Microsoft acknowledges that many customers exceed the maximum concurrent users guidelines given above. The Access database engine supports up to 255 concurrent users but the performance of the application depends on the design of the application. Proceed with caution if your application exceeds the recommended guidelines shown above.
Topology Configurations
There are a number of different topology configurations that leverage the power of Access and SQL Server.
The following sections examine each of the key areas involved in database planning, and discuss how Access performs in each area.
Web Access
One of the most common reasons for migrating Access data to SQL Server is the need for the data to be available in the browser either through Internet or Intranet connections. Knowledge workers want to provide colleagues access to their tracking information, and often the Web is the most accessible place for others to find that information. When the data is moved to SQL Server, knowledge workers can still connect to it through link tables, but IT professionals can begin to build custom ASP.NET Web forms and SQL Server reports for parts of the application that need broader visibility inside the organization.
Scalability
Scalability is defined as the capability of an application to operate in an acceptable manner as the number of users or processes calling the application increases. Access, with the Jet database engine, is not a scalable solution, and scalability is often the primary motivation for upsizing.
Architectural Issues
Because Access uses Jet or MDAC for database management, it cannot scale well by definition. Jet is limited to run on a single CPU, whereas client/server solutions such as Microsoft SQL Server can support multiple CPUs. Additionally, Jet queries always run on the client computer, which eliminates the centralized query or data optimization necessary for a scalable solution.
Database Corruption
When early versions of Microsoft Access databases (using the Jet engine) encounter an error or connection problem, the database may become corrupt. A corrupt database generally locks out all users of the database, and generally results in business disruption and infrequent data loss. Microsoft Access databases (using the Jet engine) are susceptible to corruption for a number of reasons. Because Access uses a file share model, all users are concurrently holding active connections to data. If any one of those users unexpectedly loses the connection during a data update process, the database may become corrupt. Microsoft Access includes a Compact/Repair tool, but data corruption cannot always be fixed by this tool. Third-party repair services are available, but this requires sending the affected database to another location, paying a fee, and waiting for it to be returned. Even though you experience Access database corruption, you may not need to migrate to SQL Server. Access databases need to be periodically repaired and compacted to maintain efficiency, avoid corruption, and minimize expansion. Databases that are not periodically compacted may suffer corruption, but those which are properly managed often run reliably. FMS offers a product, Total Visual Agent (http://www.fmsinc.com/products/agent/), that lets you schedule database compaction and backups for all your Access databases across your network, to ensure they remain
8
healthy. Many organizations run this on a nightly basis. Unfortunately, databases that run 24 hours a day and seven days a week do not allow Jet to have an exclusive lock to perform the compaction, and these situations demand moving to SQL Server.
Security
The most reliable mechanism to secure Access databases is to set Microsoft Windows network file systems permissions on the file or folder. In addition, Microsoft Access offers three different obscurity mechanisms that attempt to hide information from users of the application:
Database passwords. You can assign a password to a database. Only users who know the password can open the database file. In Access 2007 the security model is stronger. Including improved encryption of database passwords, and user level security. File encoding. Contents of the database can be encoded at the file level.
Unfortunately, these mechanisms are designed for usability and not for securing the file. Access is built on a file-based database engine, which requires read permissions to the actual database file. Therefore, users will be able to copy the file using the Windows shell and use custom tools to modify the binary representation of the file directly, thereby getting around all Access-specific security mechanisms.
10
11
Upsizing Scenarios
When contemplating an Access upsizing project, there are a variety of upsizing methodologies. These range from simple data moving, to complete rearchitecture and redesign. To choose the correct path for your upsizing project, you should be familiar with the three types of data architecture that Access supports. This section outlines upsizing scenarios and provides details about the benefits and drawbacks of each approach. The following scenarios are examined. Scenario Description Percentage of existing databases 90 percent 7 percent 3 percent
Already Right-Sized Upsize Data Only Upsize Application and Data Using .NET Technologies
Many Access databases do not need to be upsized. Leave application design and logic in Access, and move data to SQL Server. Rewrite the application using Visual Studio .NET for Windows or Web access, and move data to SQL Server.
Limited number of users Limited reliability Possible failure, if new versions of Office, Access, Jet, or data access components installed
12
13
An existing Access application is using Jet only and needs to be upsized to SQL Server in a way that offers optimum performance and scalability. An existing Access application is connected to SQL Server through Jet and needs better performance and fewer SQL Server connections.
The major benefit of this scenario is that it results in an Access application that provides the best performance and scalability, as well as the other positive attributes of SQL Server. The major drawback to this approach is that it requires more development effort, because Access objects such as forms, reports, queries, and code need to be redesigned to work directly with SQL Server. The following table shows the advantages and disadvantages of Scenario 3: Upsize Application and Data Using Access. Advantages Benefits of SQL Server, including performance and scalability Data located in SQL Server, offering security and reliability Disadvantages Cost of redesigning application logic and retesting, offset by the improvements gained
Scalability and reliability, using .NET development technologies with SQL Server for the best midlevel and enterprise level return on investment Ease of management, because versions of Access no longer have any role in the application's capability (or incapability) to be used across the enterprise
A well-defined (and brief) set of questions will help you identify which databases may be at risk. For larger organizations, a better-managed approach is to implement a system that can automatically inventory and report on Access databases. A desktop agent that regularly inventories local and network hard disk drives, in combination with a centralized server reporting application, can provide tangible benefits for an organization's need to manage user data, and schedule upsizing projects. Microsoft supplies the Access 2003 Conversion Toolkit for pre-Access 2007 versions and the Office Migration Planning Manager OMPM handles this for Access 2007 to help you with the process of finding and classifying your Access databases.
14
15
Administration
Before your upsizing project is deployed, you should have an administrative plan for your new SQL Server data. Planning for this before the rollout is key. Installing SQL Server and creating objects are only part of the plan. You should define backup schedules, fault tolerance parameters (as needed), and administrative staff who are responsible for the database component.
Development Plan
Create a development plan that covers each aspect of the Access application that must be changed. If you are only planning to upsize the data to SQL Server, parts of the Access front end may still need to change. For example, the Jet database engine uses different data types, and a different SQL grammar than does SQL Server. Plan to identify any areas of incompatibility and change Access objects as needed. If your scenario calls for a complete rewrite of the Access application in a different environment, such as .NET, you need to approach the project as a full life cycle software development effort and plan accordingly. Finally, be sure to identify risk areas, such as data destabilization or loss that could potentially occur, and have a proactive plan in place to address them. In rare cases, other applications may share the Access database. This can include other Access databases and applications written in Visual Basic or C++, and sometimes even low-volume Web applications. All of these platforms will need to change when the data migrates to SQL Server.
Wizard will accomplish only about 40 percent of the work. The following table describes the limitations you may encounter with the Microsoft Upsizing Wizard. Issue Nonstandard table or field names Differences in SQL Data type conversion issues Description Access and SQL use different naming standards. The Upsizing Wizard can find some, but not all. Those that it does find and rename will not work in any existing code. Access uses its own dialect of SQL that is different from the ANSI SQL supported by SQL Server. Many Jet-based queries cannot run on SQL Server without being rewritten. Access has its own standards for data types that are different in some cases from SQL Server. The Upsizing Wizard can make some choices for you in terms of converting data types, but changes require developer review. Attachment data types and multi-valued fields in Access 2007 will not translate to SQL Server. The Upsizing Wizard cannot rewrite your application to work correctly with the SQL Server client/server model. Almost all Access applications are designed to work with the file share model of Jet. These designs do not lend themselves to the client/server model and can result in poor performance. The Upsizing Wizard does not convert any of the Visual Basic for Applications code in your application. This can result in serious errors as parts of your application point to SQL Server while your code still points to an Access database. The Upsizing Wizard does not convert any of the following objects: hidden objects, security settings, Format and InputMask properties, Table or Field caption properties, table lookup fields, crosstab queries, action queries that use parameters, many query properties, macros, and module code.
Architectural issues
In general, consider using the Microsoft Upsizing Wizard as a starting point, or for proof-of-concept phases. However, it cannot be relied on to completely upsize an application in the correct way.
16
17
Development
Based on your development plan, staff your development team and provide the resources necessary. Make the existing Access and other applications dependent on the data available to the team for use as a benchmark or prototype resource. Monitor the milestones and risk areas defined in your planning process.
Testing
Before the first test deployment of the new application, basic developer-based testing should occur. Use the existing Access application as a model to reduce the amount of time needed for the initial testing effort. Compare each functional area in the original Access application against the new code base. If you are completely rewriting the Access front-end application as well as moving the data, you should plan to involve dedicated quality assurance or testing staff to find critical errors.
Documentation
Most Access applications are created by end users, and lack documentation. Because you are investing in the process of upsizing, this is the time to document the new application. At a minimum, create a configuration and troubleshooting document that outlines where the application's component parts reside, desktop and network settings, and basic troubleshooting techniques based on the results of your testing plan. If you have the resources, you may consider more complete documentation, such as data diagrams, flowcharts, and code listings.
Training
When you take an existing in-production application and change or rewrite it, you must ensure that the application's users are informed. Depending on the scope of the changes in the upsizing project, training for the application's users may range from a few hours of walk-through training to full formal training with the associated training guides and documentation. Training is crucial if you want the cooperation of the application's users.
Rollout
Your first rollout of the application is typically deployed to a subset of the entire user population. Select a small group of users and employ them as the beta testers. The goal is to verify the planning and development work. Does the new application work correctly? Also, user feedback may help identify any last minute issues not addressed in the planning and implementation process. Users can also provide invaluable information regarding usability. After you have been through initial testing, and made any necessary changes or fixes, roll the application out to the entire user base. Depending on the number of users in the application, and the importance and currency of the data, you may want to consider running the old Access-based system in tandem with the new system for a period of time. This provides an extra degree of security should the new application experience problems.
Phase 3: Stabilization
After the new application is in production use for all users, the project enters the stabilization period. Defects are identified by users and fixes are planned. Users will also see opportunities for new functionality (as is the case with any application) and these should be noted by management. Ongoing support to users is important because an upsizing project often results in application attributes that are no longer under the control of the end user (for example, when using SQL Server). During this period, you should also monitor performance, not only in terms of what users may be reporting as slow, but active monitoring of SQL Server using tools such as the query analyzer and performance counters.
Conclusion
This paper provides an overview of the Microsoft Access to Microsoft SQL Server upsizing process and how to evaluate databases for upsizing. Fortunately, for most organizations, only a fraction of their many Access databases are candidates for upsizing. By optimizing the use of Access, even fewer databases may need to migrate. The remaining candidates for upsizing require the evaluation of the IT and business needs for each application. From a simple back-end database switch with minimal frontend modifications to a complete application rewrite, several alternatives are available for upsizing, depending on the features required, available resources, and what you want to preserve from the existing application. Approach these situations as opportunities, and anticipate that more opportunities will exist in the future, as database computing becomes even more powerful. You can deliver the full power of SQL Server to business units that can justify the investment and appreciate the results.
Recommended Reading
For more information about Access, SQL Server, and upsizing, please see: Access in the Enterprise: http://www.fmsinc.com/upsize/ When to upsize a Microsoft Access database to Microsoft SQL Server: http://msdn.microsoft.com/library/default.asp?url=/library/enus/off2000/html/acconWhenToUpsizeMDBtoSQLServer.asp
18