Existe algum livro ou tutorial que nos ensine como aplicar eficientemente os algoritmos comuns (classificação, pesquisa etc.) em dados grandes (ou seja, dados que não podem ser totalmente carregados na memória principal) e como aplicar esses algoritmos de maneira eficiente, considerando o custo de bloquear transferência da memória externa? Por exemplo, quase todos os livros didáticos de algoritmos dizem que as árvores B e B + podem ser usadas para armazenar dados no disco. No entanto, na verdade, como isso pode ser feito, especialmente o manuseio dos ponteiros onde os dados estão presentes no disco não é explicado. Da mesma forma, embora muitos livros ensinem técnicas de busca, eles não consideram os dados presentes na memória secundária.
Eu verifiquei o livro de Knuth. Embora discuta essas idéias, ainda não entendi como aplicá-las em um idioma de alto nível. Existe alguma referência que discuta esses detalhes?
Respostas:
Os livros de banco de dados são um bom exemplo. No entanto, observe o campo de estruturas de dados eficientes de E / S (e algoritmos). Que eu saiba, existem alguns cursos sobre esse tópico, mas muito poucos livros.
Verifique este livro: U. Meyer, P. Sanders e J. Sibeyn (eds.), Algoritmos para Hierarquias de Memória, Notas de Aula em Ciência da Computação 2625, Springer, 2003.
Verifique estes cursos: http://www.win.tue.nl/~hermanh/teaching/2IL35/ http://www.daimi.au.dk/~large/ioS12/
e estes slides: algo2.iti.kit.edu/sanders/courses/algen09-10/rdslides.pdf
fonte
O livro do banco de dados de Ramkrishnan e Gehrke discute essas coisas com mais detalhes.
fonte
Provavelmente o que você está procurando em um livro interessante: Algoritmos e Estruturas de Dados para Memória Externa, de Jeffrey Scott Vitter.
fonte
Atualmente, esse campo é conhecido como big data e está evoluindo muito rapidamente e rapidamente, com base na forte conexão com a virtualização e a tecnologia de banco de dados relacional, que é vista apenas como um subconjunto. Além disso, como observam os comentários, os bancos de dados de chave / valor e o NoSQL são para onde muita inovação e dinâmica estão se movendo. Mas, pelos seus comentários, você parece estar mais interessado nos princípios e técnicas de design de banco de dados relacional . Tente as seguintes referências:
Bases de dados DeMYSTiFieD, 2nd Edition by Oppel
Design de banco de dados para meros mortais: um guia prático para o design de banco de dados relacional (2ª edição) de Hernandez
Começando o design do banco de dados: de iniciante a profissional por Churcher
Guia do Iniciante Absoluto para Bancos de Dados por Petersen
fonte