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.


Apr 10

Written by: JohnWeathington
Thursday, April 10, 2008  RssIcon

When we were talking last week about Compliance Data Systems, I emphasized the fact that you need to prove that you are innocent. This is a very important concept to keep in mind, when designing your compliance system. In many cases, your company is doing the right thing.
Although fraud and malintent do exist, and we do need to control for it, most companies operate with all the good intentions. However honesty alone will not protect you in an audit. The rule of thumb to follow in any audit is:
You are guilty until proven innocent
Always keep this in mind. This is one of the big differentiators between a compliance data system and a traditional strategic intelligence system. Here are 4 key strategies for proving innocence with a compliance data system.
Strategy # 1: Store Images Of Physical Documents
Look for data sources that contain scans of physical documents ( i.e. contracts, invoices, receipts, etc. ), and downstream from them. Physical documents, especially signed and dated physical documents, are a terrific form of proof. When your internal audit team is in the middle of an audit, and a specific document is requested, there’s nothing more powerful and impressive than to produce it right from your compliance system.
Maintaining a pointer of some sort to the document is not as good as having the physical document stored. Only use this strategy if there’s no other way. For instance, if your company does not currently scan your contracts, and has no interest in starting, then you may be forced to store a reference to the contract’s location instead of the actual contract.
Not only are document references less time efficient, they can get stale, which can really get you into trouble with your credibility. This can even happen with electronic pointers. Imagine storing a document reference that points to a website where the contract should be, then trying to navigate there, only to find a 404! I’ll bet you picked up on the fact that this scenario is not that far from reality!
Strategy # 2: Create Evidence When Necessary
The second best thing to physical evidence, is manufactured evidence. It’s perfectly okay to transform your way to evidence. This is done by combining different pieces of information, possibly from different sources, to prove an assertion.
For example, let’s say your company is trying to control the risk that in inexperienced processor will record bad operational data, so they set a control that a supervisor must be present whenever operational data is being collected. All personnel on the floor must clock in and clock out through a timecard system, however the timecard system only stores employee ids. To know that a supervisor is present, you have to merge this data with the HR system which contains pay grades and titles.
The combination of this data creates your evidence. You can use the timestamps from the timecard system, and merge that with the organizational structure maintained in the HR system, to get a comprehensive view of when your supervisors were present.
In this particular case, to protect your company, I would go a step further. I would create an exception table, which highlighted all the instances when there were processors on the floor with no supervisors. Then, you could fold this logic into a real-time system, that would catch the act as it happens, turning it into a prevention system. But now I’m getting a little carried away …
The point is, evidence can be manufactured by using the same techniques we use to transform data for strategic reasons. Of course, the transformation logic of any manufactured evidence can ( and will ) be challenged, so you also have to do your diligence to support your transformation assertions ( I may deal with this more later ).
Strategy # 3: Capture Who Did What and When
Always, always, always … capture three pieces of information about everything; who, what, and when.
Follow the example set in large ERP systems like Oracle ERP. In just about every single table, you will see these four columns:
·         CREATED_BY
·         CREATION_DATE
·         LAST_MODIFIED_BY
·         LAST_MODIFIED_DATE
This information is crucial, and should be attached to any and all pieces of information. You will need to establish an audit trail, and this is the only way you can do it.
In systems like the above, you will notice that CREATED_BY and LAST_MODIFIED_BY are actually IDs to other tables. Denormalize this out in your compliance system. Ids will not help anybody in an audit, and it’s disruptive in the middle of an audit, to hunt down the real person behind employee id 83882. Also store contact information for these people, in a denormalized fashion. It’s good to have a contact name – it’s even better to have their extension handy.
You’ll also notice that there is no “what” in the above system. You should manufacture the “what” if you need to. The “what” that you are capturing, is some sort of action. If it needs to be inferred from the context, spell it out with your transformation.
For instance, if you have a RECEIPTS table that has CREATION_DATE and CREATED_BY, and you know that a row in this table means the receipt was created by this person, at this time, spell out the action in a new target. Your target table would have columns CREATION_DATE, CREATED_BY_NAME, CREATED_BY_EXT, and ACTION_PERFORMED. In the ACTION_PERFORMED column, you would store the value “Receipt Created”.
Also, because of the need to always capture this data, forget about Type 1 dimensions completely. If you’ll remember, a Type 1 dimensions is a dimension that does not maintain change data history at all. There’s no place for these in a compliance data system.
Strategy # 4: Always Maintain Change Data Capture From Source Systems
This is so important.
One of the extremely powerful things about any data warehousing environment, including a compliance data system, is that you can rewind time. Point-in-time history is absolutely vital in trying to understand how the state of the system got to where it is today, and proving that even though something looks funny now – everything was fine for the time period that’s being audited.
And, when dealing with your source systems, never take on faith, any assertions about their data and how it changes. You will hear statements like, “Oh, the data in that table is never deleted”, or “that’s just a static table – it never changes”.
Don’t buy it. Put your own change data capture system in place, and maintain the history in your compliance system. That way you know for sure what has changed, and when it changed. It’s funny how often something “magically” deletes from a table that should never be deleted from.
Proving your company’s innocence is one of the foremost goals of a compliance data system. There are four key strategies you can employ, to accomplish this goal:
·         Store images of physical documents
·         Create evidence through transformations if necessary
·         Always record who, when, and what
·         Always maintain change data capture from all your sources
Strive to have all four strategies employed in your compliance data system, but for starters do an inventory of systems that capture scans of important documents, and start working this data into your system.

Tags:
Categories:
Search Blog Entries