Prepared by Ralph L. Vinciguerra
A computer database at any membership oriented organization can serve many needs. However, several critical goals must be assessd with priority before the full spectrum of uses can be addressed.
As older databases were used historically, they track organization membership and serve specific functions such as the generation of mailing lists. More capable databases and the increasing use of computers to maintain and manipulate information also identifies additional purposes that the database could serve. Examples include: maintainance of committee rosters and tracking and reporting on attendance statistics. In order to address these needs a reliable, flexible, and maintainable software package needs to be selected.
The selection of a software package for the maintenance of a large quantity of long term information is a difficult one. In addition, the different solutions require tradeoffs between the cost to operate and the amount of labor required to implement or maintain the solution. For volunteer-based non-profit organizations, or those with very limited budgets, significant additional constraints on the selection are necessary since the long term licensing costs can be critical, and the labor resources can be unpredictable. As a result, the usual approaches taken in a personal or commercial situation may not apply.
Based on the following analysis, a couple essential questions need to be answered to enable to selection of the correct solution:
Table 1 identifies the possible solutions with a short descriptions. See the following section for details on how features are addressed.
|Database Option||Description||License per seat||License per server||Expertise Required|
|A||Use an existing system with limited features, with some attention to exploring the full set of features. This option is "change averse" and tries to use the existing solution with minimal changes.||$100's?||$1000's?||Minimal|
|B||Install an upgrade for for the existing system, and future versions are expected to add additional features. This option also would make it easiest to migrate the existing database.||$100's?||$1000's?||Minimal|
|C||Microsoft Access is the most common consumer-oriented general database on the market, if only for the fact that most computers run Windows. It also includes templates for many typical databases, but these examples can be fragile if changed. An advantage is the number of people who are familiar with this solution.||$100's?||$1000's?||Some, common|
|D||Using the Java programmng language and a proper SQL server (and industy standard database design that supports compartibility between databases) is a typical industrial strength solution, and using the correct tools could be free of licensing costs. This solution requires software development to create the Database layout (to specifications) and also to create the user interfaces and reports (also custom designed). This would begin with a design session with users, initial development, testing, updates, and deployment. Lastly, documentation to support additional development in the future.||Free||Free||Extensive, uncommon|
The following figure show these two dimensions, and which solutions apply (as detailed in the following sections).
Figure 1 - Tradeoff of cost and experience needed [Dia]
Situations of note can be seen in Figure 1:
Thus, the decision is based on available funds (short and long term), and available staff to create and maintain the implementation.
Table 2 shows a feature by feature comparison of several solutions and how well they address particular needs. Each rating contains from one to five marks indicating least to most effective. The yellow colored bars "" indicate uncertain information, and the green colored bars "" are normal certainty.
Create DB in
|Ease of migration for existing data base||9||5||5||3||3|
|Good data recovery2||8||2||2||2||4|
|Supports intra/inter-networked operations||9||1||0||0||5|
|Inexpensive per client||8||3||2||3||5|
|Inexpensive for the server||7||1||1||2||5|
|Flexible records (adding fields)||9||1||2||5||5|
|Maintain relationships between parents and children||9||1||1||5||5|
|Handles relational design (individuals, families, committees, etc) 3||9||1||1||5||5|
|Can be run without DB Administrator||7||5||5||2||1|
|Can be implemented without advanced experience (software developer or DB expert)||8||5||5||1||0|
|Easy to enter weekly detailed attendance data1||8||3||3||5||5|
|General export to CSV,Palm,HTML||9||4||4||5||5|
|Manages yearly data without DB overhauling||9||2||2||5||5|
|Supports multi-year reports and analysis||9||2||2||5||5|
|Can create address labels with 1 per family or multiple per family||9||1||1||5||5|
|Support for postal ZIP+4 files||10||5||5||5||5|
|Report: all who came on a specific date||7||1||1||5||5|
|Report: all who didn't come on a specific date.||7||1||1||5||5|
|Report: last time attended by individuals||7||1||1||5||5|
|Report on absentees for "n" weeks||8||1||1||5||5|
- Selection of individuals by typing part of their last name is crucial. The selected records should appear in the screen rapidly as letters are typed, and allow a single click selection once the name searched for is present on the screen. The selected record should then be automatically positioned for update.
- If the database becomes corrupted, the internal format can be manipulate for repair, or the database is easy to have transactions rolled back to remove an errant input.
- An implementation based on SQL (Structured Query Language) is a significant advange for flexibility and future features.
An analysis of Table 2 leads to these conclusions:
In conclusion, the correct selection needs to be based on the two pieces of information listed in the first section: funds and staff.
A suggested course of action is: