El hash estático es una forma de hash en la que las búsquedas se realizan en un conjunto de diccionario finalizado (todos los objetos del diccionario son finales y no cambian).
Dado que el hash estático requiere que la base de datos , sus objetos y la referencia sigan siendo los mismos, sus aplicaciones son limitadas. Las bases de datos que contienen información que rara vez cambia también son elegibles, ya que solo requeriría una repetición completa de toda la base de datos en raras ocasiones. Ejemplos de esto incluyen conjuntos de palabras y definiciones de idiomas específicos, conjuntos de datos importantes para el personal de una organización, etc.
El hash perfecto es un modelo de hash en el que cualquier conjunto de elementos se puede almacenar en una tabla hash de igual tamaño y se pueden realizar búsquedas en tiempo constante. Fue descubierto y discutido específicamente por Fredman, Komlos y Szemeredi (1984) y por lo tanto ha sido apodado "hashing FKS". [2]
El hashing FKS utiliza una tabla hash con dos niveles en la que el nivel superior contiene depósitos, cada uno de los cuales contiene su propia tabla hash. El hashing FKS requiere que, si se producen colisiones, lo hagan sólo en el nivel superior.
El nivel superior contiene una función hash creada aleatoriamente, que se ajusta a las limitaciones de una función hash de Carter y Wegman del hash universal . Una vez hecho esto, el nivel superior contendrá cubos etiquetados . Siguiendo este patrón, todos los depósitos contienen una tabla hash de tamaño y una función hash respectiva . La función hash se decidirá estableciendo funciones y recorriéndolas aleatoriamente hasta que no haya colisiones. Esto se puede hacer en tiempo constante.
Debido a que hay pares de elementos, de los cuales tienen una probabilidad de colisión igual a , se puede esperar que el hashing FKS tenga estrictamente menos colisiones. Basado en este hecho y en que cada una fue seleccionada de manera que el número de colisiones sea como máximo , el tamaño de cada tabla en el nivel inferior no será mayor que .