-- Run: a data set is loaded from system A to system B. -- Step: a part of a run at the lowest grain from system A (most likely a table). Child of Run. -- Log: keeps track of every time a step was executed and it's exit value. -- Run RunID (primary key) system A system B -- Step RunID (foreign key to Run) StepID (primary key) Type of load (SQL, ETL tool, etc) Code to load (SQL statement, command line call, etc) -- Log LogID (primary key) RunID (foreign key to Run) StepID (foreign key to Step) Start datetime End datetime Status (Error, Processed, Rollback) Message (In case of error or rollback)