Minimize
Blogger List

Johannes Ahrends
Toad and Oracle

Ben Boise
Toad SC Discussions

Kevin Dalton
Benchmark Factory

Steven Feuerstein
PL/SQL Obsession

Devin Gallagher
Toad SC discussions

Stuart Hodgins
JProbe Discussions

  Henrik "Mauritz" Johnson
Toad Tips & Tricks on the "other" Toads
  Mark Kurtz
Toad SC discussions
  Michael Lumbard
Toad SC discussions
Daniel Norwood
Toad for Data Analysts,
Toad Extension for Visual Studio
Debbie Peabody
Toad for Data Analysts
Gary Piper
Toad Reports Manager
John Pocknell
Toad for Oracle, JProbe
Kuljit Sangha
Toad SC discussions
Bert Scalzo Indicates Oracle ACE status
Toad for Oracle, Data Modeling, Benchmarking
Jeff Smith
Toad product family
Richard To
SQL Optimization
Jim Wankowski
DB2 - LUW and z/OS
John Weathington
  Toad Data Modeler Opens in a new window
Data Modeling
 
  Real Automated Code Testing for Oracle
Quest Code Tester blog
 
Minimize
Blog Tags
toad for oracle (122)
oracle (62)
plsql (46)
sql optimization (37)
toad for data analysts (28)
code tester (19)
toad for ibm db2 (13)
automation (11)
batch optimizer (10)
virtualization (10)
schema browser (9)
toad for sql server (9)
data grid (8)
sql (8)
sql editor (8)
toad data modeler (8)
benchmark factory (7)
excel (7)
query builder (7)
report manager (7)
toad extension (7)
visual studio (7)
11g (6)
configuration (6)
freeware (6)
health check (6)
vmware (6)
connect (5)
dba module (5)
er diagrammer (5)
F4 (5)
linux (5)
refactoring (5)
spotlight (5)
unicode (5)
compare (4)
debugger (4)
export (4)
formatter (4)
make code (4)
rman (4)
strip code (4)
benchmark (3)
bfscript (3)
bulk collect (3)
code templates (3)
code xpert (3)
database browser (3)
db2 (3)
notebook (3)
oem (3)
RAC (3)
session browser (3)
speed (3)
sql optimizer (3)
toad for mysql (3)
tpc-c (3)
9.7 (2)
alert log (2)
app designer (2)
awr (2)
code insight (2)
code snippets (2)
collection (2)
compare and sync (2)
compliance (2)
data generator (2)
data warehouse (2)
database explorer (2)
database monitor (2)
explain (2)
forall (2)
ftp (2)
group execute (2)
handbook (2)
installation (2)
job scheduler (2)
multi-task (2)
nested table (2)
os command (2)
profiler (2)
recovery (2)
release history (2)
save as (2)
schema compare (2)
sql recall (2)
stats pack (2)
subversion (2)
team coding (2)
trace file browser (2)
while loop (2)
10g (1)
64 bit (1)
7zip (1)
action (1)
addm (1)
alter (1)
ansi join (1)
array (1)
ccleaner (1)
code coverage (1)
code road map (1)
CRON (1)
cursor for loop (1)
data browser (1)
data subset (1)
database probe (1)
dbms_flashback (1)
dbms_profiler (1)
ddl (1)
feuerstein (1)
filezilla (1)
flash drive (1)
flow control (1)
for loop (1)
group policy manager (1)
hints (1)
import (1)
index (1)
inheritance (1)
invoker rights (1)
ipad (1)
java (1)
latency (1)
log switch (1)
logical model (1)
ltrim (1)
master-detail browser (1)
monitor (1)
multi-select (1)
naming standards (1)
network (1)
object explorer (1)
OEBS (1)
package (1)
parser (1)
partitioning (1)
performance (1)
pragma (1)
project manager (1)
RAT (1)
revo (1)
REXEC (1)
schema report (1)
script manager (1)
search (1)
set operator (1)
sga (1)
slow (1)
sonarsource (1)
source control (1)
space projection (1)
sql monitor (1)
sql navigator (1)
sql script (1)
sql tracker (1)
sql*plus (1)
standards (1)
statistics (1)
stored procedure (1)
string parser (1)
sub-model (1)
sub-type (1)
synch (1)
synchback (1)
TELNET (1)
toad (1)
trace (1)
unit test (1)
unix (1)
usb (1)
utility (1)
v10 (1)
v9.5 (1)
version control (1)
waits (1)
workload replay (1)
workspace (1)
xml (1)
 
WELCOME, GUEST
 
 

Blogs
Toad and Database Commentaries

Toad World blogs are a mix of insightful how-tos from Quest experts as well as their commentary on experiences with new database technologies.  Have some views of your own to share?  Post your comments!  Note:  Comments are restricted to registered Toad World users.

Do you have a topic that you'd like discussed?  We'd love to hear from you.  Send us your idea for a blog topic.


May 8

Written by: JohnWeathington
Thursday, May 08, 2008  RssIcon

Should your compliance data system be read only, or should you be able to write back? I’ve often compared compliance data systems to data warehouses, because they downstream transactional systems. So the generally accepted axiom of data warehouse gurus is, “A data warehouse is a read-only system.”  What about a compliance data system?

Well, just like everything else, it depends. In general however, when approaching your requirements for building a compliance data system, you will most likely need to fulfill the functional requirement for end users to add compliance specific data to your system that is not currently present in the transactional systems. So unless you have a very robust transactional environment, or very simple compliance requirements that can be managed from the existing transactional data, plan to include a way to provide user input to your new data system.

I’ll give you a good example. In a recent GSA effort I was in, we designed a compliance data system that included “user maps”. We needed to classify customers based on the type of agreement they signed with the company. The input was the customer’s agreement type ( which was captured in the transactional system ), and the output was the GSA customer type ( nowhere to be found in any transactional system ). To make the translation, the users maintained “maps” that would make the translation from agreement type and GSA customer type. They update these maps every month, and resubmit them to the system, just before the new month’s data is processed. When we designed the system, we had to allow for the functionality of handling these maps; how they were uploaded, how they were processed into the system, and how change data capture was maintained.

This is not uncommon. The options we had were as follows:

    • Design the functionality to reside within the system ( which we did )
    • Appeal to the keepers of the transactional system, to hold and maintain this functionality
    • Create a new transactional system, purely for the purpose of compliance
    • Create a new transactional system that primarily served another function, but also covered our functional requirements

All four options are good if your organization supports it; each with its pros and cons. Unfortunately for us, none of the other options would have worked. Those processes were already infested with bureaucracy and over-bloated release management, so we would have never been able to get things done correctly in time.

Here are some common reasons why your end users will need to submit supplemental data:

    • As noted above, to categorize or “map” existing transactional data
    • To acknowledge authorization or approval of something
    • To submit hard-copy evidence, or links to hard-copy evidence
    • To provide explanatory notes on existing transactional activity
    • To provide explanatory notes on summary or reconciliation activities that happen within the system

Most data warehouse professionals don’t consider requirements for putting data into the data warehouse, so here are some tips when designing the system:

Tip # 1 : Pay Attention to Denormalization.

Data warehouse professionals can be somewhat reckless when it comes to this, because we don’t need to worry about “foreign interfaces”, however whenever you have users maintaining data, you must be careful. I’m not suggesting that you go all the way to 3rd normal form, but it’s not a bad idea to follow the advice of your transactional system designers. If users are allowed to maintain data that violates normalization rules, then you need to scan your data for integrity violations, and notify the user during the upload process.

Tip # 2 : Watch your Leading and Trailing Spaces.

Leading and trailing spaces can kill you when you’re trying to process user data. My attitude in the beginning was, “Garbage in, garbage out. Let the user enter in anything they want.” That quickly changed after about the 3rd post-Midnight troubleshooting session on why things weren’t matching up.

Tip # 3 : Make it Easy for the User To Make Updates.

In my “user map” scenario above, I created two sets of reports. One set was for viewing what was already there. Then I created one set of reports that was purely for maintenance. Every month, the end users had to maintain these maps, so I created reports that would highlight entries that needed to be added. For instance, knowing that each agreement type needed a customer type, I would scan the transactional database for “new” agreement types, and highlight them in an exception report, so the end users could attach the appropriate customer type.

Tip # 4 : Handle your Change Data Capture.

Make sure you handle change data capture, even if the user doesn’t request it. Change data capture is extremely important in any compliance data system. You should never, never, never delete, or overwrite anything – never! It’s important that you capture what changes were made to the user input, and when they were made. All of your reports will be time-sensitive ( there’s no way around this ), so you need to absolutely know for sure what the user input looked like when the report was generated.

In summary, although data warehouses strictly prohibit write-backs to the database, it’s actually a pretty common thing for compliance data systems. There are several reasons for this including the ability to maintain “user maps”, or the ability to provide notes and approvals to supplement transactional data. Start thinking about the design of your input system today. Make sure to pay attention to denormalization, leading and trailing spaces, and change data capture. Also make sure to make it easy for your user to update and maintain the value-added data.

Tags:
Categories:
Search Blog Entries