Content for this page is still being edited.
The motivation for the development of the SelCtlDB is derived from experiences of several year’s work with a wide variety of non-profit databases. This page outlines the problems we have seen fairly frequently.
We have frequently encountered the following deficiencies with the data structures implemented in non-profit databases:
1,
2, etc are often used instead of a more rigorous and flexible approach using separate rows in a related table:
remarksfield,
notesfield.
objectsmay be named in ways that are known to cause frequent problems:
?,
+,
:, etc.) in names
datefrequently has a special interpretation in database systems. Nonetheless, it is fairly common for nonprofit databases to use the word
dateas a field name.)
It is common for these situations to present real problems as the amount of stored data increases, or as the organization's data needs change. These problems often arise from efforts to save money and time under a small development budget. Alternatively, they may arise because a relatively inexperienced employee or volunteer developer does not understand the potential problems that may arise.
Recreating the Wheel
Nearly every non-profit database tracks a similar set of core data:
Yet most non-profits start from scratch in developing data structures to cover these needs. An expensive and time-consuming process is undertaken to build a set of structures that has already been constructed many times previously.
Many of these projects then seek short-cuts or other economy measures to stay within budget. Rigorous coverage of the basics is often sacrificed in order to preserve funds for more idiosyncratic needs. However, short-cuts on the basics often manifest in predictable problems as an organization's data needs increase over time. As a result, few of the non-profit databases now being used employ a rigorous, complete data model that would save money in the long run.
If a freely shared, rigorous, comprehensive data model were
available for reuse by a large number of developers, this frequent
process of introducing shortcuts
might be eliminated.
The availability of a reuseable data model
could allow a project to start with a substantial amount of the
data modelling work already completed in a rigorous fashion -
allowing each project to focus more funds on customizations
required for truly unique organizational needs.
The amount of time this might save is substantial: over 500 hours were spent developing V1 of the SelCtlDB, and over 900 hours were spent on continuing development leading to V2. There is a potential major savings to be realized by adopting an existing, rigorously designed system such as the SelCtlDB as the basis for a development effort, then focusing funds on essential customizations.
Redesign of an existing database is often more expensive than the initial effort to design and implement a more comphrehensive application. A substantial effort may be required to simply understand the current application and it's data contents. This is is common if:
Because most nonprofit database are each a unique creation, it is
typical that each implemented database applies a different
set of database naming conventions. It is also relatively common for
naming approaches to be inconsistent within the same application.
For instance, the name NameFirst
may be used in
one place, while the same information is represented as
FirstName
or fname
in other locations.
It is quite common for tables in non-profit databases to have poor construction. For instance, tables are often defined with key structures likely to cause problems, or with no keys defined at all.
Data ModelGap
The data model for the SelCtlDB was developed as an attempt to fill the needs outlined above: To provide a complete, rigorous, flexible, general data model that is managed in a way that allows very clear documentation and understanding to facilitate reuse by a variety of developers working in a variety of DBMS systems.