The approach of instantiating objects from relational databases through views provides an effective mechanism for building object-oriented applications on top of relational databases. However, a system built in such a framework has the overhead of interfacing between two different models--an object-oriented model and the relational model--in terms of both functionality and performance. In this thesis, we address two important problems: the outer join problem and the instantiation efficiency problem.
In instantiating objects, tuples that should be retrieved from databases may be lost if we allow only inner joins. Hence it becomes necessary to evaluate certain join operations of the query by outer joins, left outer joins in particular. On the other hand, we sometimes retrieve unwanted nulls from nulls stored in databases, even if there is no null inserted during query processing. In this case, it is necessary to filter some relations with selection conditions which eliminate the tuples containing null attributes in order to prevent the retrieval of unwanted nulls. We develop a mechanism for making the system generate those left outer joins and filters as needed rather than requiring that a programmer specifies it manually as part of the query for every view definition.
Since the advent of the relational databases, it has been universally accepted that a query result is retrieved as a single flat relation (a table). This single table concept is not useful in our framework because a client wants to retrieve object instances. Rather, a single flat relation contains data redundantly inserted just to make the query result 'flat'. These redundant data convey no extra information but only degrade the performance of the system. This fact motivated us to look into different methods which reduce the amount of data that the system must handle to instantiate objects, without diminishing the amount of information to be retrieved. In this thesis, we present two alternative methods which retrieve a query result in less redundant structures than a single flat relation. Our result demonstrates that these two methods incur far less cost than the method of retrieving a single flat relation.
[1]
W. Kim,et al.
Architectural issues in object-oriented databases
,
1990
.
[2]
Michael Stonebraker,et al.
Implementation techniques for main memory database systems
,
1984,
SIGMOD '84.
[3]
Alfred V. Aho,et al.
The Design and Analysis of Computer Algorithms
,
1974
.
[4]
Donald E. Knuth,et al.
The Art of Computer Programming, Vol. 3: Sorting and Searching
,
1974
.
[5]
Leonard D. Shapiro,et al.
Join processing in database systems with large main memories
,
1986,
TODS.
[6]
Douglas Comer,et al.
Ubiquitous B-Tree
,
1979,
CSUR.
[7]
Ravi Krishnamurthy,et al.
Query optimization in a memory-resident domain relational calculus database system
,
1990,
TODS.
[8]
Alfred V. Aho,et al.
Data Structures and Algorithms
,
1983
.
[9]
Ted G. Lewis,et al.
Hash Table Methods
,
1975,
CSUR.
[10]
Ronald Fagin,et al.
Extendible hashing—a fast access method for dynamic files
,
1979,
ACM Trans. Database Syst..