[Phpmyadmin-devel] [GSOC 2011 Draft Proposal] Specialized Syntax for Query Building
dhruvbaldawa at gmail.com
Mon Apr 4 17:14:51 CEST 2011
*Email:*dhruvbaldawa at gmail.com
*Skype ID or GTalk:*dhruvbaldawa at gmail.com
*Phone number:* +(91)-9323321233
*School Name:* Thakur College of Engineering and Technology, University of
*Years completed:*Third Year Computer Engineering
*Python Experience Level:*Intermediate
*Describe your idea in detail:*SQL is a generic language and is the most
common language used for database querying. But, the problem with SQL is,
when a new user fires a SQL query, he needs to know 2 things :
1. He needs to all the relations in the schema, and how are they related,
and how are they linked using which attributes.
2. When a user needs to fire similar queries (similar means queries with
almost same entities), in such a case all the JOIN statements or linking
conditions have to be rewritten.
So, here I propose a tool, which comprises of a metadata and syntax
generator, algorithm and query helper, which can help user create a
specialized syntax for querying the database in a simple and efficient
manner, ignoring all the linking between the various tables.
*What have been done so far with this idea : *I have been developing a Paper
Conference Management System for an International Paper Conference which is
conducted in our college, and there are various queries and reports which
are to be generated, but considering the modularity of the software
architecture and the normalized databases, the SQL queries tend to become
bigger and bigger and making it difficult for the user who doesn't know the
database schema to generate reports. So, I have done a partial
implementation of this concept, in that project.The current code can be
found at :
It is not complete, and may contain errors.
*Vision:* To develop a robust system, which makes generation of SQL queries
simpler for the end-user, thus, empowering the user to generate database
queries/reports without any prior knowledge regarding the database schema.
The system can be condensed to form a tool, which automatically generates
the metadata, with the database schema provided along with an algorithm to
generate queries and a query helper tool.
- Uses Finite State Model, hence, is fast.
- If the database schema changes, only the new metadata files have to be
- The user need not type the monotonous JOIN statements or linking the
- Supports augmented attributes, for example, “name” can be replaced by
“first_name” and “last_name”.
- Supports null transitions.
- Supports linking of various tables.
- If the system, goes to a state multiple times, it would have same
conditions added multiple times.
Solution : This has been taken care of by developing a query builder
class, which ignores duplicate conditions and attributes.
- Ambiguity between same named attributes of various relations.
Solution : In the SQL query, the attributes are replaced by their
- Using aggregate functions.
- Using with tables which are designed as key/value pairs.
- Generating queries using “having” or “group by” clause.
*Schedule of Deliverables*
*Milestones and deliverables schedule:*
- *April 25 - May 23 (28 days):* Get acquainted with the development
cycle, version control systems. Read various books on Django development.
Study the current schema. Discuss with mentors the current design and check
for potential pitfalls and try to modify the design the system in order to
cover them. Develop a initial standard for the metadata files.
- *May 23 - May 13 (14 days):* Design the basic algorithm (including
Lexical Analysis and Syntax Checker), which takes the metadata files and the
query, to generate the SQL query. This also includes manual creation of
metadata files and synthesis of complex queries.
- *June 13 - June 27 (14 days): *Develop the query helper tool, which
helps user to build query. The tool shows the valid inputs when user is
present at a particular stage.
- *June 27 - July 11 (14 days):*Correct any discrepancies in the system
and prepare test cases and documentation. Generate test reports and make
sure the system is running perfectly fine.
- *July 15 –August 1 (17 days):*Develop the metadata generator tool,
which helps user customize the syntax and also edit the entities interacting
in the system.
- *August 1 - August 8 (7 days):*The entire system, integrated and
checked. Revise the standard of the metadata files. Correct the bugs which
occur after the integration of the system. Generate the test cases. Convert
the module into various independent libraries.
- *August 8 - August 22 (14 days) :*Start preparing the final
documentation and perform the rigorous testing on the system.
*Open Source Development Experience*
1. Developed website for All India Stainless Steel Industries Association
2. Developed Mass Mailing application
3. Developed Facebook Application (http://apps.facebook.com/invertendo)
4. Developed website for College Technical Festival
5. Developed eBooks Repository Management application
6. Mobile UI for Home Automation System
7. Developing a PHP Script Obfuscator
*Other Open Source/Free Software Experience :*
1. Building a open-source Paper Conference Management System :
- Developed Mass Mailing Software for a Company
- Developed website for All India Stainless Steel Industries Association
- Developed Mobile UI for Home Automation System for a Telecom firm
*Academic Institution:*Thakur College of Engineering and Technology,
University of Mumbai,
Mumbai, Maharashtra, India
*Current Program:*Bachelor of Engineering in Computer Engineering. Currently
in 3rdyear (6th Semester).
*Anticipated Graduation:*December 2012
I am amongst the first 4 students in my department. My aggregate from
previous 2 semesters is 76.82 %
The courses completed in college are :
- C++ Programming Language
- Java Programming Language
- Analysis of Algorithms and Design
- Data Structures and Files
- Computer Organization and Architecture
- Computer Graphics
- Operating Systems
- Computer Networks
- Theory of Computer Science
- Database Management Systems
- Advanced Database Management Systems
- Web Engineering
- Advanced Computer Networks
- Advanced Microprocessors
- Systems Programming and Compiler Construction
- Data Warehousing and Mining
- Object Oriented Software Engineering
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Developers