250 likes | 417 Views
Vertical Partitioning in Object-Oriented Databases. Mazen AbouKhamis Department of Computer Science and Engineering Southern Methodist University. Outline of Presentation. Introduction Object Model Overview Representations of Vertical Partitions ISA hierarchy Partition Evaluator
E N D
Vertical Partitioning in Object-Oriented Databases Mazen AbouKhamis Department of Computer Science and Engineering Southern Methodist University
Outline of Presentation • Introduction • Object Model Overview • Representations of Vertical Partitions • ISA hierarchy • Partition Evaluator • Generalized Algorithm • Summary • Future Work
Introduction • Why do we need the object-oriented approach? • Considering additional features • Complexity of vertical partitioning in object-oriented databases
Object Model Overview • Definitions of the object [2,3] • State & behavior • Simple attributes vs. Complex attributes • Simple methods vs. Complex methods • “Containing” Class
Representations of Vertical Partitions • Vertical Partition Requirement • Unit of Partitioning [1,5] • Local methods vs. Global methods
Representations of Vertical Partitions (cont…) Figure 1 from [1]
ISA Hierarchy Figure 3 from [1]
Partition Evaluator Figure 4 from [2]
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
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]
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]
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]
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
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).
Simple Attributes & Simple Methods Figure 8 from [2]
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 Mirepresent the sum of the frequencies of accessing the methods by corresponding transaction. Figure 9 from [2]
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]
Simple Attributes & Simple Methods (cont…) Figure 11 from [2] Figure 12 from [2]
Simple Attributes & Simple Methods (cont…) • Suppose that after applying the PEOO with granularity level 1, we obtain 2 fragments: the first has the attribute at11,1 and the second has at21,2 . The next figure will show the propagation for class1. Figure 13 from [2]
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]
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]
Complex Attributes & Complex methods • We can see that this case has been included in the analysis of the previous case.
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.
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.
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.