90 likes | 110 Views
FLOW OF OPERATIONS. Use functions Adjust distributions Adjust columns Adjust tables Create test database Click-Once generation. Choose output size Choose output format Correct data types Add/Remove columns Change data types Set bindings. FEATURES. Support for bad DB design
E N D
FLOW OF OPERATIONS • Use functions • Adjust distributions • Adjust columns • Adjust tables • Create test database • Click-Once generation • Choose output size • Choose output format • Correct data types • Add/Remove columns • Change data types • Set bindings
FEATURES • Support for bad DB design • DBMS independent • ”Real” and synthetic data • Data protection • Excel-like functions • Advanced data bindings • Automatic fast modeling • Easy annotations • Composite key support • Many output options • Extensible • ”Dirty” data
EXTENSIBLE ARCHITECTURE Kernel System Supplied Varchar Int ... Normal Uniform ... MS SQL Oracle ... File Stream ... Mult Add ... User Extension TinyInt ... LogNormal ... Database ... ... Log10 ...
DATA DEPENDENCIES COMPOSITE PK-FK BINDINGS PROJECT WORKS_ON INTRA-ROW BINDINGS EMPLOYEE Composite Primary/Foreign-keys
DATA DEPENDENCIES INTER-COLUMN BINDINGS STOCK COMBINED BINDINGS STOCK
INHERITED DATATYPE EXAMPLE(C#) TinyInt <<interface>> DataType Int 1 class TinyInt : Int { 2 private bool useBaseData = false; 3 public override void PutData(IDataReader dr) { 4 base.PutData(dr); 5 if (dist.GetMaxValues() > 255 || dist.GetMinValues() < 0) 6 useBaseData = true; 7 } 8 public override string GetDataItem( string[] tuple) { 9 if (!useBaseData) 10 return base.GetDataItem(tuple); • Else • return (string)rnd.NextDouble() * 55; • } • public override bool CreatesDirtyData() { • return false; • } } +PutData(DataReader) +GetDataItem(string[]) +CreatesDirtyData() ... ... DATATYPE EXAMPLE