Learn More
We propose a semantic model for client-side caching and replacement in a client-server database system and compare this approach to page caching and tuple caching strategies. Our caching model is based on, and derives its advantages from, three key ideas. First, the client maintains a semantic description of the data in its cache,which allows for a compact(More)
We present new algorithms for computing transitive closure of large database relations. Unlike iterative algorithms, such as the seminaive and logarithmic algorithms, the termination of our algorithms does not depend on the length of paths in the underlying graph (hence the name <italic>direct</italic> algorithms). Besides reachability computations, the(More)
We present novel algorithms for the problem of using materialized views to compute answers to SQL queries with grouping and aggregation, in the presence of multiset tables. In addition to its obvious potential in query optimization, this problem is important in many applications, such as data warehousing, very large transaction recording systems, global(More)
Extended transaction models in databases were motivated by the needs of complex applications such as CAD and software engineering. Transactions in such applications have diverse needs, for example, they may be long lived and they may need to cooperate. We describe ASSET, a system for supporting extended transactions. ASSET consists of a set of transaction(More)
DTL's DataSpot is a database publishing tool that enables non-technical end users to explore a database using free-form plain language queries combined with hypertext navigation. DataSpot is based on a novel representation of data in the form of a schema-less semi-structured graph called a hyperbase. The DataSpot Publisher takes one or more possibly(More)
We present a comprehensive performance evaluation of transitive closure (reachability) algorithms for databases. The study is based upon careful implementations of the algorithms, measures page I/O, and covers algorithms for full transitive closure as well as <italic>partial</italic> transitive closure (finding all successors of each node in a set of given(More)
Ode is a database system and environment based on the object paradigm. The database is defined, queried and manipulated using the database programming language O++, which is based on C++. The O++ compiler translates O++ programs into C++ programs which contain calls to the Ode object manager. The current O++ implementation provides facilities for creating(More)
SUMMARY C؉؉ objects of types that have virtual functions or virtual base classes contain volatile ('memory') pointers. We call such pointers 'hidden pointers' because they were not specified by the user. If such C؉؉ objects are made persistent, then these pointers become invalid across program invocations. We encountered this problem in our implementation(More)