A tool to view normalization state of a database and help modify tables / columns to attain a desired Normal Form.
Developers can:
- Run this on your DB to find any inconsistencies (detect mode)
- Parse flattened data through it's API (REST) and get normalized arrays returned (act mode) Administrators can:
- Run this to find compliance with 3rd normalization requirements
- Use the tool to clone a DB into a new normalized or intentional de-normalized version of itself
- Store configuration from such a conversion job
- Use the tool as ETL to routinely transfer data (Incremental is not handled in current release.)
- Full JavaScript Stack
- TDD with agile approach
- Rules based approach
- Convention over configuration with over-ride
- Restful API
- Command line interface
- Read DB and get all structure (meta-data) information including
- Table and column names and types
- Foreign Key relationships
- Primary Key relationships
- Unique constraints (indexes)
- Show tables with sample data in grid
- Show relationships with in grid
- Show relationships in an ER diagram
- Allow user to modify relationships
- Allow user to modify table names
- Allow user to modify column names
- Tell user the current Normal Form of database from the following options:
- 1 NF
- 2 NF
- 3 NF
- BCNF (3.5 NF)
- 4 NF, 5 NF, DKNF and 6 NF are left out for a future release
- Allow user to clone the DB to a new form, the user can also goto a lower Normal Form
- Allow user to save transformation configuration
- Allow user to save connection configuration
- Allow user to pass in configuration on CLI call
- id (int 11), primary_id, unid (char 32 or char 36) named columns are considered PK for the table
- For non transactional databases, FK columns are structured with double underscore like subjects__id
- Underscore is the naming convention followed in database for eg. first_name
- All columns with double underscore are considered dependent on a foreign table
- Columns starting with underscore are considered for caching purposes and are not processed by the system. For eg. a subjects__id might be followed by a _subjects__name
- Foreign key prefix is exactly the same spelling as it's associated table name without any singularization or pluralization
- does not handle composite primary keys
- incremental data loading in ETL mode
- Express.js with CLI in detect mode
- Express.js with CLI in act mode
- Rest API
- Basic responsive UI using Backbone.js
- Drag-drop on grids and advanced UI features
- ER diagrams (view mode)
- Drag-drop on ER diagrams