¿Hay algún libro o tutorial que nos enseñe cómo aplicar eficientemente los algoritmos comunes (clasificación, búsqueda, etc.) en datos grandes (es decir, datos que no se pueden cargar completamente en la memoria principal) y cómo aplicar esos algoritmos de manera eficiente teniendo en cuenta el costo de bloquear la transferencia desde la memoria externa? Por ejemplo, casi todos los libros de texto de algoritmos dicen que los árboles B y B + se pueden usar para almacenar datos en el disco. Sin embargo, en realidad no se explica cómo se puede hacer esto, especialmente el manejo de los punteros donde los datos están presentes en el disco. De manera similar, aunque muchos libros enseñan técnicas de búsqueda, no consideran los datos presentes en la memoria secundaria.
He revisado el libro de Knuth. Aunque discute estas ideas, todavía no entendía cómo aplicarlas en un lenguaje de alto nivel. ¿Hay alguna referencia que discuta estos detalles?
Respuestas:
Los libros de bases de datos son un buen ejemplo. Sin embargo, eche un vistazo a las estructuras de datos (y algoritmos) eficientes de E / S de campo. Que yo sepa, hay algunos cursos sobre este tema, pero muy pocos libros.
Consulte este libro: U. Meyer, P. Sanders y J. Sibeyn (eds.), Algorithms for Memory Hierarchies, Lecture Notes in Computer Science 2625, Springer, 2003.
Consulte estos cursos: http://www.win.tue.nl/~hermanh/teaching/2IL35/ http://www.daimi.au.dk/~large/ioS12/
y estas diapositivas: algo2.iti.kit.edu/sanders/courses/algen09-10/rdslides.pdf
fuente
El libro de la base de datos de Ramkrishnan y Gehrke discute estas cosas con cierto detalle.
fuente
Probablemente lo que está buscando en un libro ordenado: Algoritmos y estructuras de datos para memoria externa de Jeffrey Scott Vitter.
fuente
Hoy en día, este campo se conoce como big data , y está evolucionando muy rápido y rápidamente en función de la fuerte conexión con la virtualización y la tecnología de bases de datos relacionales solo se ve como un subconjunto. Además, como se observa en los comentarios, las bases de datos de clave / valor y NoSQL son donde se están moviendo muchas nuevas innovaciones e impulso. Pero a partir de sus comentarios, parece estar más interesado en los principios y técnicas de diseño de bases de datos relacionales . Pruebe las siguientes referencias:
Bases de datos DEMYSTiFieD, 2ª edición por Oppel
Diseño de bases de datos para simples mortales: una guía práctica para el diseño de bases de datos relacionales (2da edición) por Hernández
Diseño de base de datos inicial: de principiante a profesional por Churcher
Guía absoluta para principiantes de bases de datos de Petersen
fuente