A data storage program for causing a computer to execute a data storage process comprising: dividing a data set into a plurality of small-scale data sets; determining a plurality of hash functions corresponding to the plurality of small-scale data sets; generating hash coefficient value information including values of a plurality of hash coefficients that specify the plurality of hash functions; generating correspondence information that associates values of the plurality of hash coefficients that specify the plurality of hash functions and the plurality of small-scale data sets with each other; and generating a plurality of hash information corresponding to the plurality of small-scale data sets; wherein the determining the plurality of hash functions includes: calculating, for each of the small-scale data sets, a hash value using a candidate hash function based on keys of a plurality of data included in the small-scale data set and deciding whether or not all of the plurality of data can be stored into a first storage position specified based on the hash value or a second storage position contiguous to the first storage position; and determining the candidate hash function as the hash function corresponding to the small-scale data set with regard to which it is decided that all of the plurality of data can be stored into the first storage position or the second storage position; and the generating the plurality of hash information includes generating the hash information for the data set by storing, for each of the small-scale data sets, the data and the keys into the first storage position specified based on the hash value calculated using the hash function corresponding to the small-scale data set or the second storage position based on the keys of the plurality of data. dividing a data set into a plurality of small-scale data sets; determining a plurality of hash functions corresponding to the plurality of small-scale data sets; generating hash coefficient value information including values of a plurality of hash coefficients that specify the plurality of hash functions; generating correspondence information that associates values of the plurality of hash coefficients that specify the plurality of hash functions and the plurality of small-scale data sets with each other; and generating a plurality of hash information corresponding to the plurality of small-scale data sets; wherein the determining the plurality of hash functions includes: calculating, for each of the small-scale data sets, a hash value using a candidate hash function based on keys of a plurality of data included in the small-scale data set and deciding whether or not all of the plurality of data can be stored into a first storage position specified based on the hash value or a second storage position contiguous to the first storage position; and determining the candidate hash function as the hash function corresponding to the small-scale data set with regard to which it is decided that all of the plurality of data can be stored into the first storage position or the second storage position; and the generating the plurality of hash information includes generating the hash information for the data set by storing, for each of the small-scale data sets, the data and the keys into the first storage position specified based on the hash value calculated using the hash function corresponding to the small-scale data set or the second storage position based on the keys of the plurality of data. calculating, for each of the small-scale data sets, a hash value using a candidate hash function based on keys of a plurality of data included in the small-scale data set and deciding whether or not all of the plurality of data can be stored into a first storage position specified based on the hash value or a second storage position contiguous to the first storage position; and determining the candidate hash function as the hash function corresponding to the small-scale data set with regard to which it is decided that all of the plurality of data can be stored into the first storage position or the second storage position; and the generating the plurality of hash information includes generating the hash information for the data set by storing, for each of the small-scale data sets, the data and the keys into the first storage position specified based on the hash value calculated using the hash function corresponding to the small-scale data set or the second storage position based on the keys of the plurality of data.