Existe-t-il un livre ou un didacticiel qui nous enseigne comment appliquer efficacement les algorithmes courants (tri, recherche, etc.) sur de grandes données (c'est-à-dire des données qui ne peuvent pas être entièrement chargées dans la mémoire principale) et comment appliquer efficacement ces algorithmes compte tenu du coût de bloquer le transfert de la mémoire externe? Par exemple, presque tous les manuels d'algorithmes disent que les arbres B et B + peuvent être utilisés pour stocker des données sur disque. Cependant, en réalité, comment cela peut être fait, en particulier la gestion des pointeurs où les données sont présentes sur le disque ne sont pas expliquées. De même, bien que de nombreux livres enseignent les techniques de recherche, ils ne tiennent pas compte des données présentes dans la mémoire secondaire.
J'ai vérifié le livre de Knuth. Bien qu'il discute de ces idées, je ne comprenais toujours pas comment les appliquer réellement dans un langage de haut niveau. Y a-t-il une référence qui discute de ces détails?
Réponses:
Les livres de bases de données en sont un bon exemple. Cependant, jetez un œil aux structures de données (et algorithmes) efficaces d'E / S sur le terrain. À ma connaissance, il existe quelques cours sur ce sujet, mais très peu de livres.
Consultez ce livre: U. Meyer, P. Sanders et J. Sibeyn (éd.), Algorithms for Memory Hierarchies, Lecture Notes in Computer Science 2625, Springer, 2003.
Consultez ces cours: http://www.win.tue.nl/~hermanh/teaching/2IL35/ http://www.daimi.au.dk/~large/ioS12/
et ces diapositives: algo2.iti.kit.edu/sanders/courses/algen09-10/rdslides.pdf
la source
Le livre de base de données de Ramkrishnan et Gehrke discute ces choses en détail.
la source
Probablement ce que vous recherchez dans un livre soigné: Algorithmes et structures de données pour la mémoire externe par Jeffrey Scott Vitter.
la source
Aujourd'hui, ce domaine est connu sous le nom de Big Data , et il évolue très rapidement et rapidement en fonction de la forte connexion avec la virtualisation et la technologie de base de données relationnelle n'est considérée que comme un sous-ensemble. De plus, comme le notent les commentaires, les bases de données clés / valeurs et NoSQL sont le point de départ de nombreuses innovations et impulsions. Mais d'après vos commentaires, vous semblez être plus intéressé par les principes et techniques de conception de bases de données relationnelles . Essayez les références suivantes:
Bases de données DeMYSTiFieD, 2e édition par Oppel
Conception de base de données pour les simples mortels: un guide pratique pour la conception de bases de données relationnelles (2e édition) par Hernandez
Début de la conception de bases de données: du novice au professionnel par Churcher
Guide du débutant absolu sur les bases de données par Petersen
la source