Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
FLOW OF OPERATIONS
•
•
•
•
•
•
Choose output size
Choose output format
Correct data types
Add/Remove columns
Change data types
Set bindings
•
•
•
•
•
•
Use functions
Adjust distributions
Adjust columns
Adjust tables
Create test database
Click-Once generation
FEATURES
•
Automatic fast modeling •
•
Easy annotations
•
DBMS independent
•
Composite key support
•
”Real” and synthetic data
•
Many output options
•
Data protection
•
Extensible
•
Excel-like functions
•
”Dirty” data
•
Advanced data bindings
Support for bad DB design
EXTENSIBLE ARCHITECTURE
Kernel
System
Supplied
User
Extension
Varchar
Int
...
Normal
Uniform
...
TinyInt
...
LogNormal
...
MS SQL
Oracle
...
File
Stream
...
Mult
Add
...
Database
...
Log10
...
...
DATA DEPENDENCIES
COMPOSITE PK-FK BINDINGS
name
location
startdate
enddate
empid
name
location
expectedhrs
T80CC
B3-103
2006-08-29
2006-08-29
1
T80CC
B3-103
200
BBS45
A2-40
2006-08-29
2006-08-29
2
T80CC
B3-103
50
KS231
A2-40
2006-08-29
2006-08-29
1
KS231
A2-40
110
PROJECT
WORKS_ON
INTRA-ROW BINDINGS
id
firstname
Lastname
Ssn
Height
weight
bmi
1
Rico
Wind
0802801237
184
79
2
2
Kenneth
Pedersen
1412711433
185
90
1
3
Kristian
Torp
0205701421
187
85
3
EMPLOYEE
DATA DEPENDENCIES
INTER-COLUMN BINDINGS
increasing_date
fluctuating_price
increasing_price
2006-08-29 10:01:31
100
100
2006-08-29 10:01:33
90
110
2006-08-29 10:01:47
99
121
STOCK
COMBINED BINDINGS
id
stock_price
change_date
MSFT
25.62
2006-08-29 10:01:33
ORCL
15.48
2006-08-29 10:01:33
ORCL
15.52
2006-08-29 10:01:34
MSFT
25.56
2006-08-29 10:01:34
STOCK
TPC-C PERFORMANCE
INHERITED DATATYPE EXAMPLE(C#)
<<interface>>
DataType
...
Int
TinyInt
+PutData(DataReader)
+GetDataItem(string[])
+CreatesDirtyData()
...
DATATYPE EXAMPLE
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
11
12
13
14
15
16
return base.GetDataItem(tuple);
Else
return (string)rnd.NextDouble() * 55;
}
public override bool CreatesDirtyData() {
return false;
} }
DEMONSTRATION