Object-Relational DBMSs: The Next Great Wave
by Michael Stonebraker, Dorothy MooreView All Available Formats & Editions
Discover why object-relational technology is ideal for supporting a broad spectrum of data types and application areas, from financial services to multimedia data. In this completely revised and updated edition, database experts Michael Stonebraker and Paul Brown explore the object-relational paradigm and examine the most recent developments in the field. Specially… See more details below
Overview
Discover why object-relational technology is ideal for supporting a broad spectrum of data types and application areas, from financial services to multimedia data. In this completely revised and updated edition, database experts Michael Stonebraker and Paul Brown explore the object-relational paradigm and examine the most recent developments in the field. Specially written for database application programmers, database analysts, and IT managers, this book includes detailed information on how to classify DBMS applications, where object-relational DBMSs fit in the database world, and what mechanisms are required to support such an engine.
Editorial Reviews
Product Details
- ISBN-13:
- 9781558603974
- Publisher:
- Elsevier Science & Technology Books
- Publication date:
- 07/28/1998
- Series:
- The Morgan Kaufmann Series in Data Management Systems
- Pages:
- 216
- Product dimensions:
- 7.40(w) x 9.19(h) x 0.56(d)
Read an Excerpt
Chapter 10: Object-Relational Optimizers
10.1 Extension 1: Operator and Function NotationConsider a query such as
select name
from emp
where salary > 10000;
Clearly, the optimizer can utilize either a sequential scan or an indexed scan using salary_index to solve this query. However, in an object-relational DBMS, you can code the salary query in operator notation as above, or you can use the following function notation:
select name
from emp
where GreaterThan (salary, 10000);
Because these two queries are syntactically different forms of the same query, you should be able to use the notation that you are most comfortable with. Therefore, the optimizer should be able to deal with either notation.
Test for Extension 1. The two representations for the above query are both allowed, and they should generate the same query plan and run at exactly the same speed.
10.2 Extensions 2 and 3: B-Trees and User-Defined Comparison Operators
This section discusses the importance of generic B-tree support as well as userdefined comparison operators in an object-relational DBMS. Consider the following query:
select name
from emp
where location N_equator_equals point('500, 0');
Here, you are requesting the employees who live at the same distance from the equator as the point (500, 0), that is, those employees who live exactly 500 miles north of the equator. The user-defined operator, N_equator_equals, expresses this request.
Obviously, the optimizer can utilize a sequential scan of emp to solve this query. However, a B-tree index scan is generally faster for this query. After all,employees can be sorted on distance north of the equator and then a B-tree can be built on "northness." With such a B-tree, the above predicate can be used to perform an indexed scan, and a more efficient query plan is likely to result.
In order for this query to be able to use an index scan, the following two extensions to an object-relational system are necessary:
- B-tree code must be made generic.
- User-defined comparison operators are required.
In current relational systems, the B-tree code hard-wires numeric date and character string data types. You can build a B-tree only on these specific types. In an object-relational DBMS, the B-tree system must be generic; it must be possible to build a B-tree on any data type, and not just on alphanumeric types. For example, it must be possible to build a B-tree on instances of the point data type.
Moreover, when presented with an equality search such as the one above, the current relational B-tree search logic begins at the root page of the B-tree and searches for the (value, pointer) pair that has the smallest value greater than or equal to the constant in your query. When this (value, pointer) is identified, the B-tree logic retrieves the page identified by the pointer and repeats the procedure. The process concludes when the leaf level is reached and specific pointers to data records are identified. To perform this search, the logic in current B-trees has a hard-wired notion of the definition of "greater than or equal" for each of the alphanumeric types supported.
To solve the above query using an index scan, it must be possible to build a B-tree with user-defined operators instead of the standard alphanumeric comparison operators. A B-tree can support index scans for the operators {<, <=, =, >, >=}. For userdefined types, such as point, a human must be able to specify the definition of these operators. For example, the following set of comparison operators could be used for the point data type:
- N_equator_greater_than
- N_equator_greater_than_equals
- N_equator_equals
- N_equator_less_than
- N_equator_less_than_equals
There are numerous possible collectiolem for a reactive problem solving effort? The 7 steps do not explicitly include the part of the WV model at the left side concerning sensing a problem, exploring the situation, and formulating the problem to be solved. But these steps are very important. Therefore it falls to managers to guide a quality team in identifying an appropriate problem. Otherwise, quality teams may take a very long time, fail to solve the problem, or perhaps spend time solving an insignificant problem. Most failures of quality teams occur because managers don't know how to guide the process, especially step 1 identifying the problem.
Identification of the problem is the most important aspect of reactive problem solving. The process of identifying the problem may be divided into four parts:
- weakness orientation
- problem exploration
- careful selection of theme
- clear statement of theme
Weakness Orientation
For reactive problem solving, the first aspect of problem identification is using a weakness orientation.From a TQM perspective, weakness can be defined as the difference between the current situation and the target. For instance, in Figure 5-3, the target is changing as time moves from left to right, and the actual performance starts weak and gets relatively weaker over time. The goal is to eliminate the weakness so you can move from the current level of performance to the target rate of performance. The weakness orientation focuses on closing the gap between current and target, that is, eliminating weakness as the basis of improvement. "Decrease delayed delivery rate from 25 percent to 15 percent" is a weakness orientation. Why is a weakness orientation preferable to a strength orientation? If instead of a weakness orientation you used a strength orientation, your goal would be to "increase on-time delivery rate from 75 percent to 85 percent."
The weakness orientation has several characteristics that are less likely to be present with a strength orientation:
- focus on facts base actions on facts, not opinion
- focus on process, not results results are the driven (effect) variable and you must focus on the drive (cause) variable
- focus on root causes, not solutions encourages objective analysis of causes ("what caused the delays"), not jumping first to solutions ("what can we do to improve?")
The key point is that workers should be encouraged by all levels to reveal problems. CEOs must be patient and refrain from blaming people about problems; they must encourage exposure of weakness. If CEOs don't encourage exposure of weakness, everyone will hide problems.
Many Japanese companies fail to implement TQM because they don't encourage revelation of weakness. For instance, if the CEO gets angry at a presentation of quality improvement teams (QITs), QITs can easily next time create a story and data to make the CEO happy. If they do this, improvement and TQM will fail.
In Japan when a weakness is discovered, they try to say, "This is very good." Say it again and again; constantly encourage a weakness orientation. To get permanent good results, you have to define the problem in terms of weakness when selecting a theme. ...
Customer Reviews
Average Review: