Vertical Partitioning in Object- Oriented Databases Mazen AbouKhamis Department of Computer Science...
-
Upload
aleesha-logan -
Category
Documents
-
view
213 -
download
1
Transcript of Vertical Partitioning in Object- Oriented Databases Mazen AbouKhamis Department of Computer Science...
Vertical Partitioning in Object-Oriented Databases
Mazen AbouKhamis
Department of Computer Science and Engineering
Southern Methodist University
May 1, 2004 2
Outline of Presentation
Introduction Object Model Overview Representations of Vertical Partitions ISA hierarchy Partition Evaluator Generalized Algorithm Summary Future Work
May 1, 2004 3
Introduction
Why do we need the object-oriented approach? Considering additional features Complexity of vertical partitioning in object-oriented
databases
May 1, 2004 4
Object Model Overview
Definitions of the object [2,3]
State & behavior Simple attributes vs. Complex attributes Simple methods vs. Complex methods “Containing” Class
May 1, 2004 5
Representations of Vertical Partitions
Vertical Partition Requirement Unit of Partitioning [1,5]
Local methods vs. Global methods
May 1, 2004 6
Representations of Vertical Partitions (cont…)
Figure 1 from [1]
May 1, 2004 7
ISA Hierarchy
Figure 3 from [1]
May 1, 2004 8
Partition Evaluator
Figure 4 from [2]
May 1, 2004 9
Generalized Algorithm
No need to construct new tools. Represent the Information in 3 matrices:
Transaction-Method Usage Matrix Method-Method Usage Matrix Method-Attribute Usage Matrix
May 1, 2004 10
Generalized Algorithm (cont…)
Transaction-Method Usage Matrix (TMUM): “It is the matrix of frequencies that indicates if the transactions calls specific methods”. [2]
Used values are either 0 (no call) or 1 (call).
Figure 5 from [2]
May 1, 2004 11
Generalized Algorithm (cont…)
Method-Method Usage Matrix (MMUM): “It is the matrix of frequencies that indicates whether the method calls other methods or not.” [2]
This matrix doesn’t exist in case of simple methods. Values 0 or 1 represent the existence of nested calls. If the value = 2, then the method is called through
complex attribute.
Figure 6 from [2]
May 1, 2004 12
Generalized Algorithm (cont…)
Method-Attribute Usage Matrix (MAUM): “It is the matrix that represents the number of invocations of a specific attribute in one execution of a method”. [2]
Value = 0 : Method does not access an attribute Value = 1 : method retrieves the value of an attribute Value = 2 : Method updates the value of an attribute
Figure 7 from [2]
May 1, 2004 13
Generalized Algorithm (cont…)
Do you still remember Attribute Usage Matrix in the relational approach?
Transaction Attribute Usage Matrix = TMUM * MAUM
In the process of developing the vertical partitions, 4 cases have to be considered:
Simple attributes and simple methods Simple attributes and complex methods complex attributes and simple methods Complex attributes and simple methods
May 1, 2004 14
Simple Attributes & Simple Methods -Algorithm steps- [2]
1. Specify in TMUM and MAUM all the used methods and
attributes from the root to the established level of granularity.
2*. Multiply each row of the TMUM with the corresponding values of transaction frequencies.
3. Multiply TMUM ad MAUM.
4. Apply the PEOO for selecting the best fragmentation scheme. (Attributes of the subclasses of “level > i” are considered indivisible).
5. Propagate the obtained fragmentation.
* Sometimes, we have to multiply TMUM and MMUM before starting
2nd step (we will talk about this in next slides).
May 1, 2004 15
Simple Attributes & Simple Methods
Figure 8 from [2]
May 1, 2004 16
Simple Attributes & Simple Methods (cont…)
Consider that the level of granularity is 1 for both roots, then TMUM will be represented as below:
The values in the columns Mi represent the sum of the frequencies
of accessing the methods by corresponding transaction.
Figure 9 from [2]
May 1, 2004 17
Simple Attributes & Simple Methods (cont…)
MAUM for this example will be represented in the figure below:
The columns represented as ATk are the sum of the frequencies of accessing the attributes by a corresponding method.
The intersections of the rows of Mi and ATk have the values that represent the sum of frequencies of all the attributes in ATk
accessed by methods in Mi.
Figure 10 from [2]
May 1, 2004 18
Simple Attributes & Simple Methods (cont…)
Figure 11 from [2]
Figure 12 from [2]
May 1, 2004 19
Simple Attributes & Simple Methods (cont…)
Suppose that after applying the PEOO with granularity level 1, we obtain 2 fragments: the first has the attribute at1
1,1 and the second has at2
1,2 . The next figure will show the propagation for class1.
Figure 13 from [2]
May 1, 2004 20
Simple Attributes & Complex Methods
In this case, we have the possibility of nested calls whether in the same class or between the classes that belong to upper levels of the same path of the hierarchy tree.
The edges from the graph above will be presented in TMUM and MMUM on the corresponding positions with the value equal 1.
Before we multiply TMUM by MAUM, we have first to Multiply TMUM by MMUM to take into consideration all nested calls.
Figure 14 from [2]
May 1, 2004 21
Complex Attributes & Simple Methods
In this case, we have the situation that when a complex attribute is accessed in reality, we access this attribute and some methods of the class that this attribute is pointing to.
Eliminate complex attribute from the fragmentation scheme.
Example:
The relationship between the methods are already reflected in MMUM in the positions (p, l) and (p, s) and no modifications have to be done to MAUM
Figure 15 from [2]
May 1, 2004 22
Complex Attributes & Complex methods
We can see that this case has been included in the analysis of the previous case.
May 1, 2004 23
Summary
Vertical partitioning in object-oriented databases is more complex than in relational databases.
Inheritance increases the complexity of the problem domain.
In the Object-Oriented approach, we can partition attributes first and insert methods afterwards or vice versa.
The concept on vertical partitioning is extended to the object-oriented database by creating new additional matrices.
For all the 4 cases presented, the applied partitioning algorithm is the same as presented for simple attributes and simple methods except for simple refinement in the case of nested calls.
May 1, 2004 24
Future work
Many of the assumptions considered before creating the new matrices will be revised (For example, researchers will take into consideration the existence of the type tuple, set, and list).
Studying some aspects in more details such as trying to proof that the presented partitioning can be done whatever physical storage is chosen from the two options:
The objects of subclasses are replicated in each of the levels of their super classes.
The Object physically exists only on one level of the class that they belong to.
May 1, 2004 25
References
[1] Chinchwadkar, G. S., and Goh, A. An Overview of Vertical Partitioning in Object Oriented Databases. School of Applied Science, Nanyang Technological University, Singapore, January 1999.
[2] Malinowski, E. Fragmentation Techniques for Distributed Object-Oriented Databases. MS Thesis, University of Florida, 1996.
[3] Ozsu, M.T., and Valduriez, P. Principles of Distributed Database System. Prentice Hall, Englewood Cliffs, NJ, 1991.
[4] Elmasri, R. and Navathe, S. B. Fundamentals of Database Systems. The Benjamin/Cummings Publishing Company, New York, 1994.
[5] Ezeife, C. I., Baker, K. Vertical Class Fragmentation in Distributed Object Based Databases. Department of Computer Science, University Of Manitoba, Canada.