The system is designed to have five major layers which could contains their own sub-layers, as shown in Figure 2. The first layer on top is the data provider layer in which users defines their sqlization logic against their data source. The sqlization begins with an added relational data base schema that the user would like to use to describe the data source using relational database point of view.
The schema is fed into the production process shown in Figure 2 and Figure 4 to generate various layers enclosed by the gray ellipse. The top layer and bottom layers are produced by human software developer. The details of the database are hidden as much as possible using the entity abstraction layer so that a modification of the database schema definition will affect the manual part of the code as little as possible to allow an iterative development process in which the system is continuously improved or optimized.
There are 61 virtual tables for the present version of the system used to represent various relations between files, folders, disks, virtual folders (see below), folder and file annotations, file backup information and database, file secondary stream information, data type family (in the polymorphism sense), file data type correlation, user account and access security database (for accessing remote file system or data store), etc., supported by over one million lines of code.