Implementation of a complete framework for evaluating the SQL-Compliance of current DBMSs
This project aims to build a complete framework for testing the SQL-Compliance of current DBMSs ( PostgreSQL, MySQL, IBM DB2, MS Server sql, Oracle Database). The core component of the framework is consisted by the random SQL generator tool, the comparison tool and the datafiller for generate random realistic data. The project is implemented in Java Programming Language. Moreover, this framework is implemented in such a way that a new DBMS can be added efficiently without the need to change the whole code.
Compile: javac -cp '.:postgresql-42.1.1.jar' SQLEngine.java
Run: java -cp '.:postgresql-42.1.1.jar' SQLEngine
Compile: javac -cp '.;postgresql-42.1.1.jar' SQLEngine.java
Run: java -cp '.;postgresql-42.1.1.jar' SQLEngine
-maxTablesFrom, -maxAttrSel, -maxCondWhere, -maxAttrGrpBy, -probWhrConst,
-repAlias, -nestLevel, -arithCompSel, -distinct, -stringInSel,-stringInWhere, -rowcompar,
-DBMS, -user, -pass, -dbName, -isNULL,-isSelectAll
Compile: javac -cp '.:postgresql-42.1.1.jar' SQLEngine.java
Run: java -cp '.:postgresql-42.1.1.jar' SQLEngine -pass testing1 -DBMS mysql -dbname teststr -user root
javac -cp '.;postgresql-42.1.1.jar' SQLEngine.java -maxTablesFrom 5 -maxCondWhere 3 -maxAttrSel 4
> MySql
> Oracle
> PostgreSQL
> IBM DB2
> MSSQL Server
> Linux or Windows
> Java 8 Update 92 or higher
> Datafiller
python datafiller.py --drop -n 0.33 schema.sql > data.sql
The goals of this project are summarized as follow:
-
Random Query Generator Tool
-
Comparison Tool
-
Datafiller Tool
-
Highlight main differences among current DBMSs