tutto dipende dal DBMS che si utilizza. Se volete sapere come viene implementato in MS SQL Server, le cose per leggere sono:
- Pages (suppongo che siano in quasi tutti i moderni DBMS) - in SQL Server sono 8Kb. Il file di database è composto da pagine.
- Estensioni - gruppi logici di 8 pagine continue
- (S) GAM - Mappa di assegnazione globale (condivisa). Bitmap contenente informazioni su estensioni libere e occupate. Questa è una delle prime pagine sul file di database.
- IAM - Mappa allocazione indici. È possibile scoprire quale indice/heap è memorizzato in quali estensioni. Avendo queste informazioni, è possibile ottenere posto nel file in cui è memorizzato l'indice/heap.
Utilizzando IAM e GAM (o SGAM) è possibile dividere la pagina: è sufficiente spostare parte della pagina (che deve essere inondata) in un'altra pagina del file.
IAM e GAM sono anche le risposte alla tua prima domanda.
La maggior parte di questi nomi sono presi da MS SQL Server ma sono abbastanza sicuro che in altri DBMS è stato risolto in modo abbastanza simile.
Spero che aiuti.
fonte
2011-02-28 18:55:12
Possibile duplicato http://stackoverflow.com/questions/872070/saving-btrees-to-a-disk-file-and-read-it anche se le risposte non sono molto buone. –
Lo hai mai capito? C'è una bella implementazione open source qui: https://github.com/jankotek/JDBM3 ma ci vuole tempo per leggerla. Per iniziare puoi dare un'occhiata a: https://github.com/jankotek/JDBM3/blob/master/src/test/java/org/apache/jdbm/BTreeTest.java. Se hai trovato una risorsa migliore, condividila pure. – Sohaib