MS Access for the Business Environment: MS Access as a Documentation Tool: Database Diagramming
August 2, 2004
About the Series ...
This article is a member of the series MS Access for the Business Environment. The primary focus of this series is an examination of business uses for the MS Access relational database management system. For more information on the series, as well as the hardware / software requirements to prepare for the tutorials we will undertake, please see the first article of our series, Create a Calculated Field with the Expression Builder.
Note: The majority of the procedures I demonstrate in the series will be undertaken within MS Access 2003, although the concepts that we explore in this article will apply to MS Access 2002, and beyond. Along with MS Access, additional application considerations apply for this tutorial, because it focuses upon activities that are performed, within an MS Access Project file, in conjunction with MSSQL Server 2000.
For those joining the series with this article, it is assumed that MSSQL Server 2000 is accessible to / installed on your PC, with the appropriate access rights to the MSSQL Server 2000 environment to parallel the steps of the article. Service Pack 3 / 3a is also assumed. If this is the first time MSSQL Server 2000 is being accessed from your machine, you may need to consult the MSSQL Server 2000 online documentation for installation and configuration instructions.
As virtually any developer of a database knows, documentation of the structure designed to contain data is a critical tool in many recurring scenarios, such as operation and general maintenance. Users of databases, particularly those who seek to extract data from them in an effective and efficient way, are often distracted and frustrated from completing their objectives because they cannot obtain even basic documentation, such as useful data dictionaries or current database diagrams. In my work with some of the largest companies in the world, who develop / purchase and operate databases that are often boggling to the imagination in size and complexity, I am no longer surprised to find that one of the most common issues in any business intelligence, OLAP, or other development effort I undertake, is incomplete documentation. In many cases, I find myself having to generate my own diagram, and, as crazy as it sounds, usually have to explain to several onlookers why I need to undertake this exercise instead of "just getting down to business."
In my opinion, one of the primary strengths of the MS Access project (.adp) is its portable, user friendly documentation capabilities, as I will overview in this and subsequent articles. This capability is useful whether one uses MS Access as an RDBMS or not.
The lion's share of my involvement with MS Access is comprised of migrating Access databases to larger RDMS', "upsizing" the core components to MSSQL Server and other platforms, where I often graft existing table designs into new, more robust schemas. In addition to database upsizing, I have recently begun "upsizing" MS Access reports to MSSQL Server Reporting Services (see my Database Journal article "Upsize" MS Access Reports to MS Reporting Services in this series) in various client or training scenarios. Whatever the objective of the engagement, I find myself quite often in those scenarios, to which I have already alluded, where no one can produce a data dictionary (in some cases, it is "missing"; in others, the individual with whom I am discussing it is not even aware of what it is ...).
I therefore often need to generate a quick view of the database to facilitate development or maintenance tasks, building a query / dataset within Reporting Services or another enterprise reporting tool, performing a data-quality examination, and for other activities. In times like these, and in other scenarios where a quick database diagram can be efficient and useful, the MS Access project (.adp) can be a great documentation tool.
In this article, we will explore using an MS-Access project for generating a database diagram. We will: