todo depende del DBMS que use. Si quieres saber cómo se implementa en MS SQL Server, lo que leen sobre son:
- Páginas (supongo que son en casi todos los modernos de DBMS) - en SQL Server que son 8 Kb. El archivo de base de datos se compone de páginas.
- Extents - grupos lógicos de 8 páginas continuas
- (S) GAM - (Compartido) Global Allocation Map. Mapa de bits que contiene información sobre extensiones libres y ocupadas. Esta es una de las primeras páginas en el archivo de la base de datos.
- IAM - Mapa de asignación de índice. Puede averiguar qué índice/montón se almacena en qué extensiones. Con esta información, puede colocarse en el archivo donde se almacena el índice/montón.
El uso de IAM y el GAM (o SGAM) se puede dividir la página - sólo mover parte de la página (que se supone que debe ser desbordado) a la otra página en el archivo.
IAM y GAM también son respuestas a su primera pregunta.
La mayoría de estos nombres están tomados de MS SQL Server pero estoy bastante seguro de que en otros DBMS se resuelve bastante similar.
Espero que ayude.
Posible duplicado http://stackoverflow.com/questions/872070/saving-btrees-to-a-disk-file-and-read-it aunque las respuestas allí no son realmente buenas. –
¿Alguna vez resolvió esto? Aquí hay una buena implementación de código abierto: https://github.com/jankotek/JDBM3, pero lleva tiempo leerlo. Para comenzar, puede consultar: https://github.com/jankotek/JDBM3/blob/master/src/test/java/org/apache/jdbm/BTreeTest.java. Si encontraste un recurso mejor, compártelo también. – Sohaib