The following are some basic beliefs we use to guide our practices.
"The fear of the Lord is the beginning of wisdom; all who follow his precepts have good understanding. To him belongs eternal praise." Psalm 111:10
"The most practical, beautiful, workable philosophy in the world won't work if you won't." -Zig Ziglar
"It's easier to explain price once than to apologize for quality forever."-Zig Ziglar
Business processes (how a business operates) change faster than data models (what a business operates on). Whether it's credits/debits, product/services, or customers/vendors, the basic "what" of a business doesn't change much. In contrast, business processes can change often. Applications with comprehensive data models support changes to business processes more efficiently.
In data modeling, there are three kinds of data structures in an application:
Business Objects - Fundamentals of the business, whether computerized or not. Ex. credits/debits, product/services, etc
Business Intelligence Objects - Reporting and Information, whether computerized or not. Ex. month-end aggregates, units queued at an operation
System Objects - Necessary for computerized use. Ex. users, login history, error logs.
Pre-defined Essential Entities (Generic Data Model Patterns) are available and increase efficiency of requirements analysis and design.
In an application architecture, there are two forms of business intelligence:
Real-Time Reporting
On-Line Analytical Processing (OLAP)
In an application implementation, there are two modes of system operation:
On-Line Transaction Processing (OLTP)
Batch Processing.
Database agnostic requires one of 2 approaches:
LCD (lowest common denominator) of database functionality
different software/codepaths for each database (increased complexity)
Every design decision is driven by this choice. Use of a single database platform increases simplicity and efficiency.
"Don't do anything yourself that you can get a machine to do for you." - Walter "Pat" Dieterich, Riesel, TX