I am thinking about researching tools that operate such as this:
Given a database schema plus some data, suggest if the schema is probably structured in almost any particular normal form, after which tell the way the schema may be considered to create further normalization.
Essentially, a static analysis tool for database schema design.
Like other static analysis tools, this type of database tool do not need to generate perfect results (I doubt this type of "perfect" tool is computationally achievable), or relevant to any or all database systems, reelyOropen up source, or other things. The tool do not need to be stand-alone it may be bundled up as some sophisticated IDE feature. I am just wondering what's available.
It is possible, and you will find a minimum of 2 commecially available tools that may do normalization for you personally: GeneXus and DeKlarit. They will use a procedure named NormalizationBySynthesis
I've considered this issue too. It's theoritically possible and you will find some investigation papers about this subject. there was once pretty awesome tool at www.dbtools.cs.cornell.edu. It was produced by the famous author Raghu Ramakrishnan. He's presently at Yahoo Research. You are able to make reference to the next papers to learn more
- Diederich,T. and Miton,J.,(1988),"New Techniques and Fast Calculations for Database Normalization ",ACM Transactions on Database Systems, 13(3),339-365.
- Bernstein, P. A.(1986),"Synthesizing Third Normal Form Relations from Functional Dependencies",ACM Transactions on Database Systems , Vol.1. No. 4, pp 277-298.
- JMathNorm: A Database Normalization Tool Using Mathematica, Lecture Notes In Computer Science Vol. 4488, Proceedings from the seventh worldwide conference on Computational Science, Part II, Ali Yazici, Ziya Karakaya
The 3rd link is extremely interesting. This is actually the abstract from the paper:
This paper is all about creating a complete interactive tool, named JMathNorm, for relational database (RDB) normalization using Mathematica. It's an extension from the prototype produced by exactly the same authors  with the inclusion of Second Normal Form (2NF), and Boyce-Codd Normal Form (BCNF) additionally towards the existing Third normal Form (3NF) module. The tool coded in this research is complete and can be used as real-time database design plus an help with teaching fundamental concepts of DB normalization to students with limited mathematical background. JMathNorm will also support interactive utilization of modules for experimentation the fundamental set procedures for example closure, and full closure together with modules to get the minimal cover from the functional dependency set and testing a characteristic for any candidate key. JMathNorm's GUI interface is designed in Java and utilizes Mathematica's JLink facility they are driving the Mathematica kernel.
I'm extremely thinking about an response to this. If anybody has stumbled upon a tool, please tell us!
I believe that's difficult to implement.
Like, a table
Id | Name | Surname | SSN
is within 1NF, and
Id | Name | Surname | Mobile
isn't, however, you know it neither in the design nor from data, only in the area title.
I have seen when a database for ultrasonography that really had both
LMP (last period) in a single table.