Hello Javad,
On 10/7/2013 4:20 AM, javad bakhshi wrote:
Hello everyone,
I was wondering if anyone could provide me with some sort of code for
discovering functional dependencies from data. I can't use wizards that are
available in DBMS.
A starting point would be appreciated also.
P.S. What I want is to discover the relations between two columns without
having any meta data available.
Best regards,
Javad Bakhshi,
Computer Science M.Sc
Department of IT, Uppsala University
Based on my Google research: "discover functional dependency" is a
highly academic way of saying "normalize my data". Sure, your way
involves set theory and dependency trees but the practical effect is the
same.
Is there code to help you normalize your data? Somewhere there probably
is. Can it do so without any metadata? possibly.
However some metadata is required to establish a relationship. That may
be a foreign key constraint or similar column names. However something
external to your actual data itself (the naked values) is required to
indicate that two columns in different tables are somehow related. Even
what type of data it is (int, char, date, etc) is a form of metadata
because that helps the database determine what that sequence of bytes is
meant to represent. It provides meaning beyond what the data itself
contains.
I could have the exact same list of names in two different tables but
they could mean two totally different things. One could be the list of
people hired by a certain HR person used for an audit of the hiring
person's performance. One could be the list of people working in a
particular group and be used to ensure that they have the proper
security privileges they need. It's identical data for totally
different purposes. Some metadata (even if it is outside the database
itself) is required to establish context.
--
Shawn Green
MySQL Senior Principal Technical Support Engineer
Oracle USA, Inc. - Hardware and Software, Engineered to Work Together.
Office: Blountville, TN
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql