1. A computer-implemented method of analyzing data within one or more databases, comprising: selecting one or more databases for analysis, each database comprising one or more database tables with one or more columns including one or more data values; applying a function to each data value of one or more columns in the database tables within the selected one or more databases, wherein the function produces different function values for the data values limited to a predetermined range; identifying for analysis the data values producing a same function value within the predetermined range to form a sampled data set; analyzing the sampled data set by matching data values from columns of different database tables within the sampled data set to determine key relationships between columns of the database tables within and across the selected one or more databases, wherein the key relationships between the columns of the database tables are determined without key relationships between the columns of the database tables being known beforehand; and retrieving data from a plurality of the database tables of the selected one or more databases based on the determined key relationships.