Preface |
|
xi | |
|
CHAPTER 1 The DBMS Matrix |
|
|
1 | (26) |
|
1.1 A DBMS Classification Matrix |
|
|
1 | (1) |
|
1.2 Quadrant 1: Simple Data without Queries |
|
|
2 | (1) |
|
1.3 Quadrant 2: Simple Data with Queries |
|
|
3 | (5) |
|
1.4 Quadrant 3: Complex Data without Queries |
|
|
8 | (7) |
|
1.5 Quadrant 4: Complex Data with Queries |
|
|
15 | (5) |
|
1.6 Universal Applications |
|
|
20 | (4) |
|
1.7 Technological Drivers in the DBMS Market |
|
|
24 | (2) |
|
|
26 | (1) |
|
CHAPTER 2 Characteristic 1: Base Data Type Extension |
|
|
27 | (28) |
|
2.1 Need for Base Type Extension |
|
|
27 | (6) |
|
2.2 A Better Way: Extensible Data Types |
|
|
33 | (3) |
|
2.3 User-Defined Functions and Operators |
|
|
36 | (5) |
|
2.4 Fully Object-Relational Type Extension |
|
|
41 | (12) |
|
|
53 | (2) |
|
CHAPTER 3 Examples of Base Type Extension |
|
|
55 | (6) |
|
3.1 Geographic Information Systems Applications |
|
|
55 | (3) |
|
3.2 Image Type Library Applications |
|
|
58 | (1) |
|
3.3 The Quantity Data Type |
|
|
59 | (2) |
|
CHAPTER 4 Characteristic 2: Complex Objects |
|
|
61 | (18) |
|
|
61 | (2) |
|
4.2 Using Type Constructors |
|
|
63 | (10) |
|
4.3 Collections and Client-Server Communication |
|
|
73 | (1) |
|
4.4 Base Types and Complex Objects |
|
|
73 | (3) |
|
|
76 | (3) |
|
CHAPTER 5 Other Type Constructors? |
|
|
79 | (8) |
|
5.1 A Time Series Example |
|
|
79 | (2) |
|
|
81 | (5) |
|
|
86 | (1) |
|
CHAPTER 6 Characteristic 3: Inheritance |
|
|
87 | (14) |
|
|
87 | (6) |
|
6.2 Inheritance of Functions |
|
|
93 | (5) |
|
|
98 | (3) |
|
CHAPTER 7 Characteristic 4: Rules |
|
|
101 | (12) |
|
|
102 | (1) |
|
|
103 | (1) |
|
|
104 | (1) |
|
|
105 | (2) |
|
7.5 Semantics: The Dark Side of Rules |
|
|
107 | (4) |
|
|
111 | (2) |
|
CHAPTER 8 Object-Relational Parsing |
|
|
113 | (4) |
|
8.1 How an Object-Relational Parser Works |
|
|
113 | (3) |
|
|
116 | (1) |
|
CHAPTER 9 Traditional Relational Optimizers |
|
|
117 | (14) |
|
9.1 How Relational Optimizers Work |
|
|
117 | (2) |
|
9.2 Performing the Restriction on the Table emp_R |
|
|
119 | (5) |
|
9.3 Methods for Processing the Join |
|
|
124 | (7) |
|
CHAPTER 10 Object-Relational Optimizers |
|
|
131 | (20) |
|
10.1 Extension 1: Operator and Function Notation |
|
|
132 | (1) |
|
10.2 Extensions 2 and 3: B-Trees and User-Defined Comparison Operators |
|
|
133 | (2) |
|
10.3 Extension 4: User-Defined Selectivity Functions |
|
|
135 | (1) |
|
10.4 Extension 5: User-Defined Negators |
|
|
136 | (1) |
|
10.5 Extension 6: User-Defined Commutators |
|
|
136 | (1) |
|
10.6 Extension 7: Access Methods on a Function of the Data |
|
|
137 | (1) |
|
10.7 Extension 8: Smart Ordering of the Clauses in a Predicate |
|
|
138 | (2) |
|
10.8 Extension 9: Optimization of Expensive Functions |
|
|
140 | (2) |
|
10.9 Extension 10: User-Defined Access Methods |
|
|
142 | (2) |
|
10.10 Extension 11: "Flattening" Complex Object Queries |
|
|
144 | (1) |
|
10.11 Extension 12: "In-Line" Sets |
|
|
145 | (1) |
|
10.12 Extension 13: Indexes on Attributes of Sets |
|
|
146 | (1) |
|
10.13 Extension 14: Optimization of Scans of Inheritance Hierarchies |
|
|
147 | (1) |
|
10.14 Extension 15: Optimization of Joins over Inheritance Hierarchies |
|
|
147 | (1) |
|
10.15 Extension 16: Support for User-Defined Aggregates |
|
|
148 | (1) |
|
|
149 | (2) |
|
CHAPTER 11 Implementation of Rule Systems |
|
|
151 | (12) |
|
11.1 Support for Triggers |
|
|
151 | (5) |
|
11.2 Extension to More General Rules |
|
|
156 | (1) |
|
|
157 | (4) |
|
|
161 | (2) |
|
CHAPTER 12 Architectural Options for Commercial Vendors |
|
|
163 | (22) |
|
12.1 Strategy 1: Do Nothing |
|
|
164 | (1) |
|
12.2 Strategy 2: Rewrite a Relational Engine from Scratch |
|
|
165 | (1) |
|
12.3 Strategy 3: Sell Two Systems |
|
|
166 | (1) |
|
12.4 Strategy 4: An Object-Relational Top on a Relational Storage Manager |
|
|
167 | (2) |
|
12.5 Strategy 5: Incremental Evolution |
|
|
169 | (1) |
|
12.6 Strategy 6: Write a Wrapper |
|
|
170 | (5) |
|
12.7 Strategy 7: Write a Gateway |
|
|
175 | (6) |
|
12.8 Strategy 8: Extend an Object-Oriented DBMS |
|
|
181 | (1) |
|
12.9 Strategy 9: Glue an Object-Relational Engine onto a Persistent Language |
|
|
182 | (1) |
|
|
183 | (2) |
|
CHAPTER 13 More on Object-Relational Architecture |
|
|
185 | (16) |
|
|
185 | (8) |
|
|
193 | (7) |
|
|
200 | (1) |
|
CHAPTER 14 Extension Performance: Implementation Makes a Difference |
|
|
201 | (14) |
|
|
202 | (2) |
|
|
204 | (2) |
|
14.3 The Informix 2-D Spatial DataBlade Approach |
|
|
206 | (1) |
|
14.4 A Z Transform Solution |
|
|
207 | (2) |
|
14.5 A Final Spatial Extension |
|
|
209 | (3) |
|
14.6 A Comparison of the Alternatives |
|
|
212 | (1) |
|
|
213 | (2) |
|
CHAPTER 15 Object-Relational DBMS and Application Servers |
|
|
215 | (16) |
|
15.1 Implications of a Thick Database on Traditional Application Servers |
|
|
219 | (4) |
|
15.2 Two-Tier Thick Database Model |
|
|
223 | (2) |
|
15.3 Three-Tier Thick Database Model |
|
|
225 | (4) |
|
|
229 | (2) |
|
CHAPTER 16 Multiquadrant Problems |
|
|
231 | (12) |
|
16.1 A Video Service Application |
|
|
232 | (5) |
|
16.2 An Insurance Application |
|
|
237 | (3) |
|
|
240 | (3) |
|
CHAPTER 17 Solutions to Multiquadrant Problems |
|
|
243 | (10) |
|
17.1 Supporting File System Aspects of an Application |
|
|
243 | (4) |
|
17.2 Supporting Lower-Right Quadrant Applications |
|
|
247 | (5) |
|
|
252 | (1) |
|
CHAPTER 18 Database Design for Object-Relational DBMSs |
|
|
253 | (14) |
|
18.1 Relational Database Design |
|
|
253 | (4) |
|
18.2 Reasons for Problems |
|
|
257 | (5) |
|
18.3 Challenges in Object-Relational Database Design |
|
|
262 | (2) |
|
|
264 | (3) |
|
CHAPTER 19 The Next Great Wave in DBMS Technology |
|
|
267 | (12) |
|
19.1 Overview of the Book |
|
|
267 | (3) |
|
19.2 Overview of the Object-Relational Marketplace |
|
|
270 | (5) |
|
19.3 Integration of Object-Relational Features with Database Services |
|
|
275 | (1) |
|
19.4 A Brief Historical Perspective |
|
|
276 | (1) |
|
|
277 | (2) |
References |
|
279 | (4) |
Index |
|
283 | |