Hello all,
I have been following PMA for a long time.I saw the GSOC project idea Structure Tools in the wiki page. I found the project very interesting. As I have worked in many projects in Database ( Both implementation and Application) , I would like to contribute in this project. The following is the detailed description of what I have got until now after my research.
1- Normalization :
- Going to the basics of Normalization there are two things needed before we can apply normalization on a relational database. 1- Database Schema 2- Functional Dependencies. I wanted to ask this thing - We would take the functional dependencies from the user only ? For example if the user selects some table for normalization then after that we have to take the FD from the user only ?
- If we have got the functional dependencies ans set of attributes , we can do the following things to change to the 3NF: 1) we can first get the closure of the given set of attributes with respect to given functional dependencies. 2) Then we will remove the implied extraneous attributes and redundant dependencies. 3) After that we can determine the full and partial dependencies . Then we can apply the inference rules of Normalization to convert the database schema to 2NF then to 3NF.
- The above algorithm can be implemented with algorithmic efficiency.
2- Central List of Columns
- I didn't get the meaning of this : The phpMyAdmin configuration storage would be the place to maintain this central list (probably per database). Please help me out in understanding this.
- If there is any need of grouping the columns name with very similar name like product_id and product , we can use many string algorithms like Levenshtein distance and Longest Common Substring .
Please comment on my views :).
I am very much interested in the project. Please guide me further.
Eagerly waiting for your comments
Deven Bhooshan
devenbhooshan