1. A method for representing a database in a computer readable medium, the method comprising: accessing a first table in the database, the first table having a plurality of rows of data, each row of data having one or more columns; storing a first representation of the first table in a volatile computer memory in a column-oriented format, the column-oriented format comprising at least one B-tree for at least one column, wherein the at least one B-tree is composed of at least one array and the at least one B-tree includes references to a plurality of arrays, each array of the plurality of arrays is comprised of data corresponding to rows of one column of the first table, wherein the storing further comprises reducing an amount of storage space required when storing the first representation of the first table to improve storage efficiency by storing data of a particular column corresponding to the rows in a packed format using a power of two amount of space to store each datum and adaptively increasing the power of two amount of space to store each datum in the particular column when a datum is to be written to the particular column that has a value that requires an increased amount of space for storage to reduce use of unnecessary storage space; and storing a second representation of the first table on a computer-readable medium, wherein the second representation is substantially identical to the first representation, without serialization of the first representation of the first table to an intermediate form, without deserialization from the intermediate form into the second representation, and without basic header information, metadata or other versioning information necessarily being identical.