Views. The combination of the logical data model with a query language
enables the powerful mechanism of views. A view is loosely
defined as a file whose contents are the results of evaluating a query
over another file. For instance, a scientific application may define
a view of an HDF5 file that contains solely a slab of the original
data matrix. Views also provide a convenient mechanism for aggregating
information from several files. As an example, a view
can union publication records from different files and present them
as a single file to applications.
A view is a first class citizen inside the file system, treated equal
to any file. Thus, it is possible to issue queries on views, or to define
views on top of views. The distinguishing difference is that a
view may remain virtual, i.e., its contents may not correspond to a
physical byte stream, in which case an access to the view is satisfied
by generating its contents (i.e., evaluating the defining query) onthe-
fly. One possible optimization is to “fuse” the access over the
view with the query that defines the view in order to avoid generating
the complete contents of the view. This optimization is again
performed transparently in the Query Executor.
Views enable the key feature of logical independence. This is
best described using a simple example. Suppose that an application
defines a view over an HDF5 file and performs its data processing
based solely on the view. Even if the format of the underlying file
changes (e.g., due to an upgrade in the HDF format, or a conversion
to a different format), the application can continue operating on the
same view as long as the latter is redefined over the modified file.
In other words, the view creates a layer of independence between
the application and the specifics of the underlying file. We note
that logical independence is another important feature offered by
database systems, from where the concept of views is borrowed.
Our goal is to bring the same properties