Beruflich Dokumente
Kultur Dokumente
APPENDICES
Appendix A presents the full details of the university database that we have used
as our running example, including an E-R diagram, SQL DDL, and sample data that
we have used throughout the book. (The DDL and sample data are also available
on the Web site of the book, db-book.com, for use in laboratory exercises.)
The remaining appendices are not part of the printed book, but are available online
on the Web site of the book, db-book.com. These include:
1269
This page intentionally left blank
APPENDIX
A
Detailed University Schema
In this appendix, we present the full details of our running-example university
database. In Section A.1 we present the full schema as used in the text and the E-R
diagram that corresponds to that schema. In Section A.2 we present a relatively
complete SQL data definition for our running university example. Besides listing
a datatype for each attribute, we include a substantial number of constraints.
Finally, in Section A.3 we present sample data that correspond to our schema.
SQL scripts to create all the relations in the schema, and to populate them with
sample data, are available on the Web site of the book, db-book.com.
1271
1272 Appendix A Detailed University Schema
department
course_dept dept_name
building
budget
inst_dept stud_dept
instructor student
ID advisor ID
name name
salary tot_cred
section
course sec_id time_slot
course_id semester sec_time_slot time_slot_id
sec_course
title year { day
credits start_time
end_time
}
prereq
course_id prereq_id sec_class
classroom
building
room_number
capacity
A.2 DDL
In this section, we present a relatively complete SQL data definition for our exam-
ple. Besides listing a datatype for each attribute, we include a substantial number
of constraints.
The following create table statement for the table time slot can be run on most
database systems, but does not work on Oracle (at least as of Oracle version 11),
since Oracle does not support the SQL standard type time.
The syntax for specifying time in SQL is illustrated by these examples: ’08:30’,
’13:55’, and ’5:30 PM’. Since Oracle does not support the time type, for Oracle we
use the following schema instead:
The difference is that start time has been replaced by two attributes start hr
and start min, and similarly end time has been replaced by attributes end hr and
end min. These attributes also have constraints that ensure that only numbers
representing valid time values appear in those attributes. This version of the
1276 Appendix A Detailed University Schema
schema for time slot works on all databases, including Oracle. Note that although
Oracle supports the datetime datatype, datetime includes a specific day, month,
and year as well as a time, and is not appropriate here since we want only a
time. There are two alternatives to splitting the time attributes into an hour and
a minute component, but neither is desirable. The first alternative is to use a
varchar type, but that makes it hard to enforce validity constraints on the string
as well as to perform comparison on time. The second alternative is to encode
time as an integer representing a number of minutes (or seconds) from midnight,
but this alternative requires extra code with each query to covert values between
the standard time representation and the integer encoding. We therefore chose
the two-part solution.
s id i id
00128 45565
12345 10101
23121 76543
44553 22222
45678 22222
76543 45565
76653 98345
98765 98345
98988 76766
course id prereq id
BIO-301 BIO-101
BIO-399 BIO-101
CS-190 CS-101
CS-315 CS-101
CS-319 CS-101
CS-347 CS-101
EE-181 PHY-101
Figure A.14 The time slot relation with start and end time separated into hour and minute.
This page intentionally left blank
Bibliography
[Abadi 2009] D. Abadi, “Data Management in the Cloud: Limitations and Oppor-
tunities”, Data Engineering Bulletin, Volume 32, Number 1 (2009), pages 3–12.
[Abadi et al. 2008] D. J. Abadi, S. Madden, and N. Hachem, “Column-stores vs.
row-stores: how different are they really?”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (2008), pages 967–980.
[Abiteboul et al. 1995] S. Abiteboul, R. Hull, and V. Vianu, Foundations of Databases,
Addison Wesley (1995).
[Abiteboul et al. 2003] S. Abiteboul, R. Agrawal, P. A. Bernstein, M. J. Carey, et al.
“The Lowell Database Research Self Assessment” (2003).
[Acheson et al. 2004] A. Acheson, M. Bendixen, J. A. Blakeley, I. P. Carlin, E. Er-
san, J. Fang, X. Jiang, C. Kleinerman, B. Rathakrishnan, G. Schaller, B. Sezgin,
R. Venkatesh, and H. Zhang, “Hosting the .NET Runtime in Microsoft SQL Server”,
In Proc. of the ACM SIGMOD Conf. on Management of Data (2004), pages 860–865.
[Adali et al. 1996] S. Adali, K. S. Candan, Y. Papakonstantinou, and V. S. Subrah-
manian, “Query Caching and Optimization in Distributed Mediator Systems”, In
Proc. of the ACM SIGMOD Conf. on Management of Data (1996), pages 137–148.
[Adya et al. 2007] A. Adya, J. A. Blakeley, S. Melnik, and S. Muralidhar, “Anatomy
of the ADO.NET entity framework”, In Proc. of the ACM SIGMOD Conf. on Man-
agement of Data (2007), pages 877–888.
[Agarwal et al. 1996] S. Agarwal, R. Agrawal, P. M. Deshpande, A. Gupta, J. F.
Naughton, R. Ramakrishnan, and S. Sarawagi, “On the Computation of Multi-
dimensional Attributes”, In Proc. of the International Conf. on Very Large Databases
(1996), pages 506–521.
[Agrawal and Srikant 1994] R. Agrawal and R. Srikant, “Fast Algorithms for Min-
ing Association Rules in Large Databases”, In Proc. of the International Conf. on Very
Large Databases (1994), pages 487–499.
1283
1284 Bibliography
[Baras et al. 2005] A. Baras, D. Churin, I. Cseri, T. Grabs, E. Kogan, S. Pal, M. Rys,
and O. Seeliger. “Implementing XQuery in a Relational Database System” (2005).
[Baru et al. 1995] C. Baru et al., “DB2 Parallel Edition”, IBM Systems Journal, Volume
34, Number 2 (1995), pages 292–322.
[Bassiouni 1988] M. Bassiouni, “Single-site and Distributed Optimistic Protocols
for Concurrency Control”, IEEE Transactions on Software Engineering, Volume SE-14,
Number 8 (1988), pages 1071–1080.
[Batini et al. 1992] C. Batini, S. Ceri, and S. Navathe, Database Design: An Entity-
Relationship Approach, Benjamin Cummings (1992).
[Bayer 1972] R. Bayer, “Symmetric Binary B-trees: Data Structure and Maintenance
Algorithms”, Acta Informatica, Volume 1, Number 4 (1972), pages 290–306.
[Bayer and McCreight 1972] R. Bayer and E. M. McCreight, “Organization and
Maintenance of Large Ordered Indices”, Acta Informatica, Volume 1, Number 3
(1972), pages 173–189.
[Bayer and Schkolnick 1977] R. Bayer and M. Schkolnick, “Concurrency of Oper-
ating on B-trees”, Acta Informatica, Volume 9, Number 1 (1977), pages 1–21.
[Bayer and Unterauer 1977] R. Bayer and K. Unterauer, “Prefix B-trees”, ACM
Transactions on Database Systems, Volume 2, Number 1 (1977), pages 11–26.
[Bayer et al. 1978] R. Bayer, R. M. Graham, and G. Seegmuller, editors, Operating
Systems: An Advanced Course, Springer Verlag (1978).
[Beckmann et al. 1990] N. Beckmann, H. P. Kriegel, R. Schneider, and B. Seeger,
“The R∗ -tree: An Efficient and Robust Access Method for Points and Rectangles”,
In Proc. of the ACM SIGMOD Conf. on Management of Data (1990), pages 322–331.
[Beeri et al. 1977] C. Beeri, R. Fagin, and J. H. Howard, “A Complete Axiomatiza-
tion for Functional and Multivalued Dependencies”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (1977), pages 47–61.
[Bentley 1975] J. L. Bentley, “Multidimensional Binary Search Trees Used for Asso-
ciative Searching”, Communications of the ACM, Volume 18, Number 9 (1975), pages
509–517.
[Berenson et al. 1995] H. Berenson, P. Bernstein, J. Gray, J. Melton, E. O’Neil, and
P. O’Neil, “A Critique of ANSI SQL Isolation Levels”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (1995), pages 1–10.
[Bernstein and Goodman 1981] P. A. Bernstein and N. Goodman, “Concurrency
Control in Distributed Database Systems”, ACM Computing Survey, Volume 13,
Number 2 (1981), pages 185–221.
[Bernstein and Newcomer 1997] P. A. Bernstein and E. Newcomer, Principles of
Transaction Processing, Morgan Kaufmann (1997).
Bibliography 1287
SQL server”, In Proc. of the ACM SIGMOD Conf. on Management of Data (2008),
pages 1087–1098.
[Blasgen and Eswaran 1976] M. W. Blasgen and K. P. Eswaran, “On the Evaluation
of Queries in a Relational Database System”, IBM Systems Journal, Volume 16,
(1976), pages 363–377.
[Boyce et al. 1975] R. Boyce, D. D. Chamberlin, W. F. King, and M. Hammer, “Spec-
ifying Queries as Relational Expressions”, Communications of the ACM, Volume 18,
Number 11 (1975), pages 621–628.
[Brantner et al. 2008] M. Brantner, D. Florescu, D. Graf, D. Kossmann, and
T. Kraska, “Building a Database on S3”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (2008), pages 251–263.
[Breese et al. 1998] J. Breese, D. Heckerman, and C. Kadie, “Empirical Analysis of
Predictive Algorithms for Collaborative Filtering”, In Procs. Conf. on Uncertainty in
Artificial Intelligence, Morgan Kaufmann (1998).
[Breitbart et al. 1999a] Y. Breitbart, R. Komondoor, R. Rastogi, S. Seshadri, and
A. Silberschatz, “Update Propagation Protocols For Replicated Databases”, In Proc.
of the ACM SIGMOD Conf. on Management of Data (1999), pages 97–108.
[Breitbart et al. 1999b] Y. Breitbart, H. Korth, A. Silberschatz, and S. Sudarshan,
“Distributed Databases”, In Encyclopedia of Electrical and Electronics Engineering,
John Wiley and Sons (1999).
[Brewer 2000] E. A. Brewer, “Towards robust distributed systems (abstract)”, In
Proc. of the ACM Symposium on Principles of Distributed Computing (2000), page 7.
[Brin and Page 1998] S. Brin and L. Page, “The Anatomy of a Large-Scale Hyper-
textual Web Search Engine”, In Proc. of the International World Wide Web Conf. (1998).
[Brinkhoff et al. 1993] T. Brinkhoff, H.-P. Kriegel, and B. Seeger, “Efficient Process-
ing of Spatial Joins Using R-trees”, In Proc. of the ACM SIGMOD Conf. on Management
of Data (1993), pages 237–246.
[Bruno et al. 2002] N. Bruno, S. Chaudhuri, and L. Gravano, “Top-k Selection
Queries Over Relational Databases: Mapping Strategies and Performance Eval-
uation”, ACM Transactions on Database Systems, Volume 27, Number 2 (2002), pages
153–187.
[Buckley and Silberschatz 1983] G. Buckley and A. Silberschatz, “Obtaining Pro-
gressive Protocols for a Simple Multiversion Database Model”, In Proc. of the Inter-
national Conf. on Very Large Databases (1983), pages 74–81.
[Buckley and Silberschatz 1984] G. Buckley and A. Silberschatz, “Concurrency
Control in Graph Protocols by Using Edge Locks”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (1984), pages 45–50.
[Buckley and Silberschatz 1985] G. Buckley and A. Silberschatz, “Beyond Two-
Phase Locking”, Journal of the ACM, Volume 32, Number 2 (1985), pages 314–326.
Bibliography 1289
[Codd 1970] E. F. Codd, “A Relational Model for Large Shared Data Banks”, Com-
munications of the ACM, Volume 13, Number 6 (1970), pages 377–387.
[Codd 1972] E. F. Codd. “Further Normalization of the Data Base Relational
Model”, In Rustin [1972], pages 33–64 (1972).
[Codd 1979] E. F. Codd, “Extending the Database Relational Model to Capture
More Meaning”, ACM Transactions on Database Systems, Volume 4, Number 4 (1979),
pages 397–434.
[Codd 1982] E. F. Codd, “The 1981 ACM Turing Award Lecture: Relational
Database: A Practical Foundation for Productivity”, Communications of the ACM,
Volume 25, Number 2 (1982), pages 109–117.
[Codd 1990] E. F. Codd, The Relational Model for Database Management: Version 2,
Addison Wesley (1990).
[Comer 1979] D. Comer, “The Ubiquitous B-tree”, ACM Computing Survey, Volume
11, Number 2 (1979), pages 121–137.
[Comer 2009] D. E. Comer, Computer Networks and Internets, 5th edition, Prentice
Hall (2009).
[Cook 1996] M. A. Cook, Building Enterprise Information Architecture: Reengineering
Information Systems, Prentice Hall (1996).
[Cooper et al. 2008] B. F. Cooper, R. Ramakrishnan, U. Srivastava, A. Silberstein,
P. Bohannon, H.-A. Jacobsen, N. Puz, D. Weaver, and R. Yerneni, “PNUTS: Yahoo!’s
hosted data serving platform”, Proceedings of the VLDB Endowment, Volume 1,
Number 2 (2008), pages 1277–1288.
[Cormen et al. 1990] T. Cormen, C. Leiserson, and R. Rivest, Introduction to Algo-
rithms, MIT Press (1990).
[Cortes and Vapnik 1995] C. Cortes and V. Vapnik, Machine Learning, Volume 20,
Number 3 (1995), pages 273–297.
[Cristianini and Shawe-Taylor 2000] N. Cristianini and J. Shawe-Taylor, An Intro-
duction to Support Vector Machines and other Kernel-Based Learning Methods, Cam-
bridge University Press (2000).
[Dageville and Zaı̈t 2002] B. Dageville and M. Zaı̈t, “SQL Memory Management
in Oracle9i”, In Proc. of the International Conf. on Very Large Databases (2002), pages
962–973.
[Dageville et al. 2004] B. Dageville, D. Das, K. Dias, K. Yagoub, M. Zaı̈t, and M. Zi-
auddin, “Automatic SQL Tuning in Oracle 10g”, In Proc. of the International Conf. on
Very Large Databases (2004), pages 1098–1109.
[Dalvi et al. 2009] N. Dalvi, R. Kumar, B. Pang, R. Ramakrishnan, A. Tomkins,
P. Bohannon, S. Keerthi, and S. Merugu, “A Web of Concepts”, In Proc. of the ACM
Symposium on Principles of Database Systems (2009).
Bibliography 1293
[Douglas and Douglas 2003] K. Douglas and S. Douglas, PostgreSQL, Sam’s Pub-
lishing (2003).
[Dubois and Thakkar 1992] M. Dubois and S. Thakkar, editors, Scalable Shared
Memory Multiprocessors, Kluwer Academic Publishers (1992).
[Duncan 1990] R. Duncan, “A Survey of Parallel Computer Architectures”, IEEE
Computer, Volume 23, Number 2 (1990), pages 5–16.
[Eisenberg and Melton 1999] A. Eisenberg and J. Melton, “SQL:1999, formerly
known as SQL3”, ACM SIGMOD Record, Volume 28, Number 1 (1999).
[Eisenberg and Melton 2004a] A. Eisenberg and J. Melton, “Advancements in
SQL/XML”, ACM SIGMOD Record, Volume 33, Number 3 (2004), pages 79–86.
[Eisenberg and Melton 2004b] A. Eisenberg and J. Melton, “An Early Look at
XQuery API for Java (XQJ)”, ACM SIGMOD Record, Volume 33, Number 2 (2004),
pages 105–111.
[Eisenberg et al. 2004] A. Eisenberg, J. Melton, K. G. Kulkarni, J.-E. Michels, and
F. Zemke, “SQL:2003 Has Been Published”, ACM SIGMOD Record, Volume 33,
Number 1 (2004), pages 119–126.
[Elhemali et al. 2007] M. Elhemali, C. A. Galindo-Legaria, T. Grabs, and M. Joshi,
“Execution strategies for SQL subqueries”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (2007), pages 993–1004.
[Ellis 1987] C. S. Ellis, “Concurrency in Linear Hashing”, ACM Transactions on
Database Systems, Volume 12, Number 2 (1987), pages 195–217.
[Elmasri and Navathe 2006] R. Elmasri and S. B. Navathe, Fundamentals of Database
Systems, 5th edition, Addison Wesley (2006).
[Epstein et al. 1978] R. Epstein, M. R. Stonebraker, and E. Wong, “Distributed
Query Processing in a Relational Database System”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (1978), pages 169–180.
[Escobar-Molano et al. 1993] M. Escobar-Molano, R. Hull, and D. Jacobs, “Safety
and Translation of Calculus Queries with Scalar Functions”, In Proc. of the ACM
SIGMOD Conf. on Management of Data (1993), pages 253–264.
[Eswaran et al. 1976] K. P. Eswaran, J. N. Gray, R. A. Lorie, and I. L. Traiger, “The
Notions of Consistency and Predicate Locks in a Database System”, Communications
of the ACM, Volume 19, Number 11 (1976), pages 624–633.
[Fagin 1977] R. Fagin, “Multivalued Dependencies and a New Normal Form for
Relational Databases”, ACM Transactions on Database Systems, Volume 2, Number 3
(1977), pages 262–278.
[Fagin 1979] R. Fagin, “Normal Forms and Relational Database Operators”, In Proc.
of the ACM SIGMOD Conf. on Management of Data (1979), pages 153–160.
Bibliography 1295
[Fagin 1981] R. Fagin, “A Normal Form for Relational Databases That Is Based on
Domains and Keys”, ACM Transactions on Database Systems, Volume 6, Number 3
(1981), pages 387–415.
[Fagin et al. 1979] R. Fagin, J. Nievergelt, N. Pippenger, and H. R. Strong, “Ex-
tendible Hashing — A Fast Access Method for Dynamic Files”, ACM Transactions
on Database Systems, Volume 4, Number 3 (1979), pages 315–344.
[Faloutsos and Lin 1995] C. Faloutsos and K.-I. Lin, “Fast Map: A Fast Algo-
rithm for Indexing, Data-Mining and Visualization of Traditional and Multimedia
Datasets”, In Proc. of the ACM SIGMOD Conf. on Management of Data (1995), pages
163–174.
[Fayyad et al. 1995] U. Fayyad, G. Piatetsky-Shapiro, P. Smyth, and R. Uthurusamy,
Advances in Knowledge Discovery and Data Mining, MIT Press (1995).
[Fekete et al. 2005] A. Fekete, D. Liarokapis, E. O’Neil, P. O’Neil, and D. Shasha,
“Making Snapshot Isolation Serializable”, ACM Transactions on Database Systems,
Volume 30, Number 2 (2005).
[Finkel and Bentley 1974] R. A. Finkel and J. L. Bentley, “Quad Trees: A Data Struc-
ture for Retrieval on Composite Keys”, Acta Informatica, Volume 4, (1974), pages
1–9.
[Fischer 2006] L. Fischer, editor, Workflow Handbook 2001, Future Strategies (2006).
[Florescu and Kossmann 1999] D. Florescu and D. Kossmann, “Storing and Query-
ing XML Data Using an RDBMS”, IEEE Data Engineering Bulletin (Special Issue on
XML) (1999), pages 27–35.
[Florescu et al. 2000] D. Florescu, D. Kossmann, and I. Monalescu, “Integrating
Keyword Search into XML Query Processing”, In Proc. of the International World
Wide Web Conf. (2000), pages 119–135. Also appears in Computer Networks, Vol. 33,
pages 119-135.
[Fredkin 1960] E. Fredkin, “Trie Memory”, Communications of the ACM, Volume 4,
Number 2 (1960), pages 490–499.
[Freedman and DeWitt 1995] C. S. Freedman and D. J. DeWitt, “The SPIFFI Scal-
able Video-on-Demand Server”, In Proc. of the ACM SIGMOD Conf. on Management
of Data (1995), pages 352–363.
[Funderburk et al. 2002a] J. E. Funderburk, G. Kiernan, J. Shanmugasundaram,
E. Shekita, and C. Wei, “XTABLES: Bridging Relational Technology and XML”,
IBM Systems Journal, Volume 41, Number 4 (2002), pages 616–641.
[Funderburk et al. 2002b] J. E. Funderburk, S. Malaika, and B. Reinwald, “XML
Programming with SQL/XML and XQuery”, IBM Systems Journal, Volume 41,
Number 4 (2002), pages 642–665.
[Galindo-Legaria 1994] C. Galindo-Legaria, “Outerjoins as Disjunctions”, In Proc.
of the ACM SIGMOD Conf. on Management of Data (1994).
1296 Bibliography
[Gray et al. 1996] J. Gray, P. Helland, and P. O’Neil, “The Dangers of Replication
and a Solution”, In Proc. of the ACM SIGMOD Conf. on Management of Data (1996),
pages 173–182.
[Gray et al. 1997] J. Gray, S. Chaudhuri, A. Bosworth, A. Layman, D. Reichart,
M. Venkatrao, F. Pellow, and H. Pirahesh, “Data Cube: A Relational Aggregation
Operator Generalizing Group-by, Cross-Tab, and Sub Totals”, Data Mining and
Knowledge Discovery, Volume 1, Number 1 (1997), pages 29–53.
[Gregersen and Jensen 1999] H. Gregersen and C. S. Jensen, “Temporal Entity-
Relationship Models-A Survey”, IEEE Transactions on Knowledge and Data Engineer-
ing, Volume 11, Number 3 (1999), pages 464–497.
[Grossman and Frieder 2004] D. A. Grossman and O. Frieder, Information Retrieval:
Algorithms and Heuristics, 2nd edition, Springer Verlag (2004).
[Gunning 2008] P. K. Gunning, DB2 9 for Developers, MC Press (2008).
[Guo et al. 2003] L. Guo, F. Shao, C. Botev, and J. Shanmugasundaram, “XRANK:
Ranked Keyword Search over XML Documents”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (2003).
[Guttman 1984] A. Guttman, “R-Trees: A Dynamic Index Structure for Spatial
Searching”, In Proc. of the ACM SIGMOD Conf. on Management of Data (1984), pages
47–57.
[Haas et al. 1989] L. M. Haas, J. C. Freytag, G. M. Lohman, and H. Pirahesh, “Ex-
tensible Query Processing in Starburst”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (1989), pages 377–388.
[Haas et al. 1990] L. M. Haas, W. Chang, G. M. Lohman, J. McPherson, P. F. Wilms,
G. Lapis, B. G. Lindsay, H. Pirahesh, M. J. Carey, and E. J. Shekita, “Starburst Mid-
Flight: As the Dust Clears”, IEEE Transactions on Knowledge and Data Engineering,
Volume 2, Number 1 (1990), pages 143–160.
[Haerder and Reuter 1983] T. Haerder and A. Reuter, “Principles of Transaction-
Oriented Database Recovery”, ACM Computing Survey, Volume 15, Number 4
(1983), pages 287–318.
[Haerder and Rothermel 1987] T. Haerder and K. Rothermel, “Concepts for Trans-
action Recovery in Nested Transactions”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (1987), pages 239–248.
[Halsall 2006] F. Halsall, Computer Networking and the Internet : With Internet and
Multiamedia Applications, Addison Wesley (2006).
[Han and Kamber 2000] J. Han and M. Kamber, Data Mining: Concepts and Tech-
niques, Morgan Kaufmann (2000).
[Harinarayan et al. 1996] V. Harinarayan, J. D. Ullman, and A. Rajaraman, “Imple-
menting Data Cubes Efficiently”, In Proc. of the ACM SIGMOD Conf. on Management
of Data (1996).
Bibliography 1299
[Haritsa et al. 1990] J. Haritsa, M. Carey, and M. Livny, “On Being Optimistic about
Real-Time Constraints”, In Proc. of the ACM SIGMOD Conf. on Management of Data
(1990).
[Harizopoulos and Ailamaki 2004] S. Harizopoulos and A. Ailamaki, “STEPS to-
wards Cache-resident Transaction Processing”, In Proc. of the International Conf. on
Very Large Databases (2004), pages 660–671.
[Hellerstein and Stonebraker 2005] J. M. Hellerstein and M. Stonebraker, editors,
Readings in Database Systems, 4th edition, Morgan Kaufmann (2005).
[Hellerstein et al. 1995] J. M. Hellerstein, J. F. Naughton, and A. Pfeffer, “General-
ized Search Trees for Database Systems”, In Proc. of the International Conf. on Very
Large Databases (1995), pages 562–573.
[Hennessy et al. 2006] J. L. Hennessy, D. A. Patterson, and D. Goldberg, Computer
Architecture: A Quantitative Approach, 4th edition, Morgan Kaufmann (2006).
[Hevner and Yao 1979] A. R. Hevner and S. B. Yao, “Query Processing in Dis-
tributed Database Systems”, IEEE Transactions on Software Engineering, Volume
SE-5, Number 3 (1979), pages 177–187.
[Heywood et al. 2002] I. Heywood, S. Cornelius, and S. Carver, An Introduction to
Geographical Information Systems, 2nd edition, Prentice Hall (2002).
[Hong et al. 1993] D. Hong, T. Johnson, and S. Chakravarthy, “Real-Time Transac-
tion Scheduling: A Cost Conscious Approach”, In Proc. of the ACM SIGMOD Conf.
on Management of Data (1993).
[Howes et al. 1999] T. A. Howes, M. C. Smith, and G. S. Good, Understanding and
Deploying LDAP Directory Services, Macmillan Publishing (1999).
[Hristidis and Papakonstantinou 2002] V. Hristidis and Y. Papakonstantinou,
“DISCOVER: Keyword Search in Relational Databases”, In Proc. of the International
Conf. on Very Large Databases (2002).
[Huang and Garcia-Molina 2001] Y. Huang and H. Garcia-Molina, “Exactly-once
Semantics in a Replicated Messaging System”, In Proc. of the International Conf. on
Data Engineering (2001), pages 3–12.
[Hulgeri and Sudarshan 2003] A. Hulgeri and S. Sudarshan, “AniPQO: Almost
Non-Intrusive Parametric Query Optimization for Non-Linear Cost Functions”, In
Proc. of the International Conf. on Very Large Databases (2003).
[IBM 1987] IBM, “Systems Application Architecture: Common Programming In-
terface, Database Reference”, Technical report, IBM Corporation, IBM Form Num-
ber SC26–4348–0 (1987).
[Ilyas et al. 2008] I. Ilyas, G. Beskales, and M. A. Soliman, “A Survey of top-k query
processing techniques in relational database systems”, ACM Computing Surveys,
Volume 40, Number 4 (2008).
1300 Bibliography
[Jordan and Russell 2003] D. Jordan and C. Russell, Java Data Objects, O’Reilly
(2003).
[Jorwekar et al. 2007] S. Jorwekar, A. Fekete, K. Ramamritham, and S. Sudarshan,
“Automating the Detection of Snapshot Isolation Anomalies”, In Proc. of the Inter-
national Conf. on Very Large Databases (2007), pages 1263–1274.
[Joshi 1991] A. Joshi, “Adaptive Locking Strategies in a Multi-Node Shared Data
Model Environment”, In Proc. of the International Conf. on Very Large Databases (1991).
[Kanne and Moerkotte 2000] C.-C. Kanne and G. Moerkotte, “Efficient Storage of
XML Data”, In Proc. of the International Conf. on Data Engineering (2000), page 198.
[Katz et al. 2004] H. Katz, D. Chamberlin, D. Draper, M. Fernandez, M. Kay, J. Ro-
bie, M. Rys, J. Simeon, J. Tivy, and P. Wadler, XQuery from the Experts: A Guide to the
W3C XML Query Language, Addison Wesley (2004).
[Kaushik et al. 2004] R. Kaushik, R. Krishnamurthy, J. F. Naughton, and R. Ra-
makrishnan, “On the Integration of Structure Indexes and Inverted Lists”, In Proc.
of the ACM SIGMOD Conf. on Management of Data (2004).
[Kedem and Silberschatz 1979] Z. M. Kedem and A. Silberschatz, “Controlling
Concurrency Using Locking Protocols”, In Proc. of the Annual IEEE Symposium on
Foundations of Computer Science (1979), pages 275–285.
[Kedem and Silberschatz 1983] Z. M. Kedem and A. Silberschatz, “Locking Pro-
tocols: From Exclusive to Shared Locks”, Journal of the ACM, Volume 30, Number 4
(1983), pages 787–804.
[Kifer et al. 2005] M. Kifer, A. Bernstein, and P. Lewis, Database Systems: An Appli-
cation Oriented Approach, Complete Version, 2nd edition, Addison Wesley (2005).
[Kim 1982] W. Kim, “On Optimizing an SQL-like Nested Query”, ACM Transactions
on Database Systems, Volume 3, Number 3 (1982), pages 443–469.
[Kim 1995] W. Kim, editor, Modern Database Systems, ACM Press (1995).
[King et al. 1991] R. P. King, N. Halim, H. Garcia-Molina, and C. Polyzois, “Man-
agement of a Remote Backup Copy for Disaster Recovery”, ACM Transactions on
Database Systems, Volume 16, Number 2 (1991), pages 338–368.
[Kitsuregawa and Ogawa 1990] M. Kitsuregawa and Y. Ogawa, “Bucket Spreading
Parallel Hash: A New, Robust, Parallel Hash Join Method for Skew in the Super
Database Computer”, In Proc. of the International Conf. on Very Large Databases (1990),
pages 210–221.
[Kleinberg 1999] J. M. Kleinberg, “Authoritative Sources in a Hyperlinked Envi-
ronment”, Journal of the ACM, Volume 46, Number 5 (1999), pages 604–632.
[Kleinrock 1975] L. Kleinrock, Queueing Systems, Wiley-Interscience (1975).
[Klug 1982] A. Klug, “Equivalence of Relational Algebra and Relational Calculus
Query Languages Having Aggregate Functions”, Journal of the ACM, Volume 29,
Number 3 (1982), pages 699–717.
1302 Bibliography
[Lamport 1978] L. Lamport, “Time, Clocks, and the Ordering of Events in a Dis-
tributed System”, Communications of the ACM, Volume 21, Number 7 (1978), pages
558–565.
[Lampson and Sturgis 1976] B. Lampson and H. Sturgis, “Crash Recovery in a
Distributed Data Storage System”, Technical report, Computer Science Laboratory,
Xerox Palo Alto Research Center,Palo Alto (1976).
[Lecluse et al. 1988] C. Lecluse, P. Richard, and F. Velez, “O2: An Object-Oriented
Data Model”, In Proc. of the International Conf. on Very Large Databases (1988), pages
424–433.
[Lehman and Yao 1981] P. L. Lehman and S. B. Yao, “Efficient Locking for Con-
current Operations on B-trees”, ACM Transactions on Database Systems, Volume 6,
Number 4 (1981), pages 650–670.
[Lehner et al. 2000] W. Lehner, R. Sidle, H. Pirahesh, and R. Cochrane, “Main-
tenance of Automatic Summary Tables”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (2000), pages 512–513.
[Lindsay et al. 1980] B. G. Lindsay, P. G. Selinger, C. Galtieri, J. N. Gray, R. A. Lorie,
T. G. Price, G. R. Putzolu, I. L. Traiger, and B. W. Wade. “Notes on Distributed
Databases”, In Draffen and Poole, editors, Distributed Data Bases, pages 247–284.
Cambridge University Press (1980).
[Litwin 1978] W. Litwin, “Virtual Hashing: A Dynamically Changing Hashing”, In
Proc. of the International Conf. on Very Large Databases (1978), pages 517–523.
[Litwin 1980] W. Litwin, “Linear Hashing: A New Tool for File and Table Address-
ing”, In Proc. of the International Conf. on Very Large Databases (1980), pages 212–223.
[Litwin 1981] W. Litwin, “Trie Hashing”, In Proc. of the ACM SIGMOD Conf. on
Management of Data (1981), pages 19–29.
[Lo and Ravishankar 1996] M.-L. Lo and C. V. Ravishankar, “Spatial Hash-Joins”,
In Proc. of the ACM SIGMOD Conf. on Management of Data (1996).
[Loeb 1998] L. Loeb, Secure Electronic Transactions: Introduction and Technical Refer-
ence, Artech House (1998).
[Lomet 1981] D. G. Lomet, “Digital B-trees”, In Proc. of the International Conf. on Very
Large Databases (1981), pages 333–344.
[Lomet et al. 2009] D. Lomet, A. Fekete, G. Weikum, and M. Zwilling, “Unbundling
Transaction Services in the Cloud”, In Proc. 4th Biennial Conference on Innovative Data
Systems Research (2009).
[Lu et al. 1991] H. Lu, M. Shan, and K. Tan, “Optimization of Multi-Way Join
Queries for Parallel Execution”, In Proc. of the International Conf. on Very Large
Databases (1991), pages 549–560.
[Lynch and Merritt 1986] N. A. Lynch and M. Merritt, “Introduction to the Theory
of Nested Transactions”, In Proc. of the International Conf. on Database Theory (1986).
1304 Bibliography
[Robinson 1981] J. Robinson, “The k-d-B Tree: A Search Structure for Large Mul-
tidimensional Indexes”, In Proc. of the ACM SIGMOD Conf. on Management of Data
(1981), pages 10–18.
[Roos 2002] R. M. Roos, Java Data Objects, Pearson Education (2002).
[Rosch 2003] W. L. Rosch, The Winn L. Rosch Hardware Bible, 6th edition, Que (2003).
[Rosenthal and Reiner 1984] A. Rosenthal and D. Reiner, “Extending the Algebraic
Framework of Query Processing to Handle Outerjoins”, In Proc. of the International
Conf. on Very Large Databases (1984), pages 334–343.
[Ross 1990] K. A. Ross, “Modular Stratification and Magic Sets for DATALOG
Programs with Negation”, In Proc. of the ACM SIGMOD Conf. on Management of
Data (1990).
[Ross 1999] S. M. Ross, Introduction to Probability and Statistics for Engineers and
Scientists, Harcourt/Academic Press (1999).
[Ross and Srivastava 1997] K. A. Ross and D. Srivastava, “Fast Computation of
Sparse Datacubes”, In Proc. of the International Conf. on Very Large Databases (1997),
pages 116–125.
[Ross et al. 1996] K. Ross, D. Srivastava, and S. Sudarshan, “Materialized View
Maintenance and Integrity Constraint Checking: Trading Space for Time”, In Proc.
of the ACM SIGMOD Conf. on Management of Data (1996).
[Rothermel and Mohan 1989] K. Rothermel and C. Mohan, “ARIES/NT: A Recov-
ery Method Based on Write-Ahead Logging for Nested Transactions”, In Proc. of
the International Conf. on Very Large Databases (1989), pages 337–346.
[Roy et al. 2000] P. Roy, S. Seshadri, S. Sudarshan, and S. Bhobhe, “Efficient and Ex-
tensible Algorithms for Multi-Query Optimization”, In Proc. of the ACM SIGMOD
Conf. on Management of Data (2000).
[Rusinkiewicz and Sheth 1995] M. Rusinkiewicz and A. Sheth. “Specification and
Execution of Transactional Workflows”, In Kim [1995], pages 592–620 (1995).
[Rustin 1972] R. Rustin, Data Base Systems, Prentice Hall (1972).
[Rys 2001] M. Rys, “Bringing the Internet to Your Database: Using SQL Server 2000
and XML to Build Loosely-Coupled Systems”, In Proc. of the International Conf. on
Data Engineering (2001), pages 465–472.
[Rys 2003] M. Rys. “XQuery and Relational Database Systems”, In H. Katz, editor,
XQuery From the Experts, pages 353–391. Addison Wesley (2003).
[Rys 2004] M. Rys. “What’s New in FOR XML in Microsoft SQL Server 2005”.
http://msdn.microsoft.com/en-us/library/ms345137(SQL.90).aspx (2004).
[Sagiv and Yannakakis 1981] Y. Sagiv and M. Yannakakis, “Equivalence among
Relational Expressions with the Union and Difference Operators”, Proc. of the ACM
SIGMOD Conf. on Management of Data (1981).
1310 Bibliography
[Srikant and Agrawal 1996b] R. Srikant and R. Agrawal, “Mining Sequential Pat-
terns: Generalizations and Performance Improvements”, In Proc. of the International
Conf. on Extending Database Technology (1996), pages 3–17.
[Stam and Snodgrass 1988] R. Stam and R. Snodgrass, “A Bibliography on Tem-
poral Databases”, IEEE Transactions on Knowledge and Data Engineering, Volume 7,
Number 4 (1988), pages 231–239.
[Stinson 2002] B. Stinson, PostgreSQL Essential Reference, New Riders (2002).
[Stonebraker 1986] M. Stonebraker, “Inclusion of New Types in Relational
Database Systems”, In Proc. of the International Conf. on Data Engineering (1986),
pages 262–269.
[Stonebraker and Rowe 1986] M. Stonebraker and L. Rowe, “The Design of POST-
GRES”, In Proc. of the ACM SIGMOD Conf. on Management of Data (1986).
[Stonebraker et al. 1989] M. Stonebraker, P. Aoki, and M. Seltzer, “Parallelism in
XPRS”, In Proc. of the ACM SIGMOD Conf. on Management of Data (1989).
[Stonebraker et al. 1990] M. Stonebraker, A. Jhingran, J. Goh, and S. Potamianos,
“On Rules, Procedure, Caching and Views in Database Systems”, In Proc. of the
ACM SIGMOD Conf. on Management of Data (1990), pages 281–290.
[Stuart et al. 1984] D. G. Stuart, G. Buckley, and A. Silberschatz, “A Centralized
Deadlock Detection Algorithm”, Technical report, Department of Computer Sci-
ences, University of Texas, Austin (1984).
[Tanenbaum 2002] A. S. Tanenbaum, Computer Networks, 4th edition, Prentice Hall
(2002).
[Tansel et al. 1993] A. Tansel, J. Clifford, S. Gadia, S. Jajodia, A. Segev, and R. Snod-
grass, Temporal Databases: Theory, Design and Implementation, Benjamin Cummings
(1993).
[Teorey et al. 1986] T. J. Teorey, D. Yang, and J. P. Fry, “A Logical Design Method-
ology for Relational Databases Using the Extended Entity-Relationship Model”,
ACM Computing Survey, Volume 18, Number 2 (1986), pages 197–222.
[Thalheim 2000] B. Thalheim, Entity-Relationship Modeling: Foundations of Database
Technology, Springer Verlag (2000).
[Thomas 1996] S. A. Thomas, IPng and the TCP/IP Protocols: Implementing the Next
Generation Internet, John Wiley and Sons (1996).
[Traiger et al. 1982] I. L. Traiger, J. N. Gray, C. A. Galtieri, and B. G. Lindsay, “Trans-
actions and Consistency in Distributed Database Management Systems”, ACM
Transactions on Database Systems, Volume 7, Number 3 (1982), pages 323–342.
[Tyagi et al. 2003] S. Tyagi, M. Vorburger, K. McCammon, and H. Bobzin, Core Java
Data Objects, prenticehall (2003).
Bibliography 1313
1315
1316 Index
digital certificates and, IBM DB2 and, 1215, 1218 See also specific
416-417 Microsoft SQL Server and, operation
digital signatures and, 1223, 1227-1228, 1245, bottlenecks
416-417 1262 application design and, 402,
encryption and, 415-417 Oracle and, 1165, 1169, 1029, 1033-1035, 1039
security and, 405-407 (see also 1181-1183, 1187-1190 file structure and, 468
security) parallel databases and, 816 system architectures and,
single sign-on system and, recovery systems and, 726-738 782-783, 800, 816-819,
406-407 (see also recovery 829, 839-840
smart cards and, 415-416 systems) transactions and, 1106-1107,
two-factor, 405-407 remote systems for, 756-759, 1116
authorization, 11, 21, 58 850, 1095-1096 Boyce-Codd normal form
administrators and, 143 system architectures and, 770 (BCNF)
application-level, 407-409 transactions and, 632, 1115 decomposition algorithms
check clause, 148 backup coordinator, 851 and, 349-356
database design and, 312 balanced range-partitioning, dependency preservation
end-user information and, 801 and, 334-336
407-408 balanced tree, 486 relational database design
granting/revoking privileges, BASE properties, 853 and, 333-336
29, 143-145, 149-150 batch scaleup, 779 broadcast data, 1082-1083
lack of fine-grained, 408-409 batch update, 1030-1031 B-trees
roles and, 145-146 Bayesian classifiers, 900-901 application development and,
schema and, 147-148 1039
Bayes’ theorem, 900
Security Assertion Markup IBM DB2 and, 1205
BCNF. See Boyce-Codd normal
Language (SAML) and, indices and, 504-506, 530, 1039
form
407 Oracle and, 1159, 1164-1169,
begin atomic...end, 128, 176,
sql security invoker, 147 1173
181, 183-185
transfer of privileges, 148-149 PostgreSQL and, 1135,
best splits, 897-899
update and, 147, 148 1148-1150
views and, 146-147 biased protocol, 841
spatial data and, 1064,
autonomy, 858 big-bang approach, 1050-1051
1071-1072, 1076, 1086
availability Bigtable, 862-867 B+-trees, 1075
CAP theorem and, 852-853 binary splits, 898 balanced trees and, 486
consistency and, 852-853 bit-interleaved parity bitmap indices and, 528
coordinator selection and, organization, 445 bulk loading of indices and,
850-852 bit-level striping, 442-444 503-504
majority-based approach and, bitmap indices, 507, 509, 531, deletion time and, 491,
848-849 536 495-497, 499-501
read one, write all approach, B+-trees and, 528 extensions and, 500-506
849-850 efficient operations of, 527-528 fanout and, 487
remote backup and, 850 existence, 526-527 file organization and, 500-502
robustness and, 847 Oracle and, 1166-1167 flash memory and, 506
site reintegration and, 850 scans, 1153 indexing strings and, 502-503
average response time, 636 sequential records and, insertion time and, 491-495,
average seek time, 435, 540n2 524-525 499-501
avg expression, 204 structure of, 525-527 on multiple keys, 508
aggregate functions and, blind writes, 687 nonleaf nodes of, 487
84-88 blobs, 138, 166, 457, 502, 1013, nonunique search keys and,
query processing and, 566-567 1198-1199, 1259 497-499
relational algebra and, 236 block-interleaved parity performance and, 485-486
organization, 445-446 pointers and, 486
backup, 186-187 block-level striping, 443-4 queries on, 488-491, 538, 544
application design and, 415 block nested-loop join, 551-552 record relocation and, 502
distributed databases and, Boolean operations, 83, 89-90, secondary indices and, 502
839, 877 94, 161, 176, 873, 1256. structure of, 486-488
1318 Index
updates and, 491-500 application design and, 387, distributed databases and,
buffer manager, 21, 464-466 397-398 830, 848
buffer pools, 1201-1202, 1220 Microsoft SQL Server and, e-catalogs and, 1103-1104
buffers 1228, 1253 IBM DB2 and, 1195, 1220
database buffering and, ODBC and, 167-168 indices and, 476 (see also
739-741 Unified Modeling Language indices)
file structure and, 437-438 (UML) and, 308 information retrieval and,
force/no-force policy and, C++, 7n1, 14 915, 935
739-740 advanced SQL and, 169, 173 Microsoft SQL Server and,
force output and, 725-726 Microsoft SQL Server and, 1235-1236, 1250, 1256,
IBM DB2 and, 1200-1203 1253 1266
log-record buffering and, object-based databases and, PostgreSQL and, 1151, 1154
738-739 945 query optimization and,
main-memory databases and, persistent systems and, 590-596, 1151
1105-1108 968-971 SQL and, 142-143, 165,
management of, 738-743 standards for, 1054 168-169
multiple pool, 1220 Unified Modeling Language system, 462, 468, 801, 1132
operating system role in, (UML) and, 308 transaction processing and,
741-742 caching, 429 1116
recovery systems and, 738-743 application design and, XML and, 1017
replacement policies and, 400-401 categories, 935-937
465-468 coherency and, 776 centralized architectures,
steal/no-steal policy and, 740 data servers and, 776 769-771
transaction servers and, 774 locks and, 776 centralized deadlock detection,
write-ahead logging (WAL) multithreading and, 817-818 845-846
rule and, 739-741 Oracle and, 1184 challenge-response system, 415
bugs, 174n4 query plans and, 605, 775 change isolation level, 649
application design and, 404, shared-memory architecture check clause, 130, 134
1048-1050 and, 783 assertion and, 135-136
recovery systems and, 721-722 call, 175 authorization and, 148
system architectures and, callable statements, 164 data constraints and, 310
787-788 call back, 776 dependency preservation
transactions and, 1093, 1102 Call Level Interface (CLI) and, 334-336
workflows and, 1101 standards, 1053 user-defined types and, 140
build input, 558 candidate keys, 45-46 check constraints, 134, 148, 310,
bulk export, 1032 canonical cover, 342-345 317, 334, 628, 1130
bulk insert, 1032 CAP theorem, 852-853 checkpoint log record, 752
bulk loads, 503-504, 1031-1033 Cartesian products, 68 checkpoints
bully algorithm, 851, 852 equivalence and, 584 fuzzy, 750-752
business logic, 25, 173 join expressions and, 229-232 Microsoft SQL Server and,
application design and, 376, queries and, 573, 584, 589, 1246
383, 391-393, 396, 410, 418 595-596, 606, 616 Oracle and, 1185
IBM DB2 and, 1221-1222 relational algebra and, 50-51, recovery systems and,
Microsoft SQL Server and, 217, 222-232 734-735, 742-743
1228, 1232, 1253, SQL and, 68-75, 120, 209 transaction servers and, 774
1263-1267 cascade, 133, 150, 186 checksums, 434
Oracle and, 1158 cascadeless schedules, 647-648 classification hierarchy, 935-937
business-logic layer, 39, 391 cascading stylesheet (CSS) classifiers
bus system, 780 standard, 380 Bayesian, 900-901, 1191, 1266
BYNET, 806 case construct, 102-103 best splits and, 897-899
byte-code, 389 CASE tools, 1194-1195 decision-tree, 895-900
cast, 136, 139-140 entropy measure and, 897
C, 7, 14, catalogs Gini measure and, 897
advanced SQL and, 157, 169, application development and, information gain and, 897-898
173, 180 1053 kernel functions and, 901-902
Index 1319
locks and, 661-679 (see also DATAllegro, 816 data warehouses, 888
locks) Datalog, 37 column-oriented storage and,
main-memory, 1105-1108 data-manipulation language 892-893
mobile, 1079-1085 (DML), 12-14 components of, 889-891
modification and, 98-103, authorization and, 143 deduplication and, 890-891
728-729 compiler and, 21-22 defined, 889
multimedia, 1076-1079 concurrency control and, fact tables and, 891-892
normalization and, 18-20 1138-1139, 1145 householding and, 891
parallel, 797-820 declarative, 10 IBM DB2 and, 1194, 1221-1222
personal, 1079-1085 defined, 10, 32 materialized views and,
recovery systems and, 631, host language and, 15 1171-1172
633, 721-761 (see also Microsoft SQL Server and, merger-purge operation and,
recovery systems) 1231-1233, 1245, 1261 890-891
storage and, 20-22, 427 (see Oracle and, 1161-1162, 1165, Microsoft SQL Server and,
also storage) 1181 1264
time in, 1062-1064 PostgreSQL and, 1137-1138 Oracle and, 1158, 1162,
databases administrator (DBA), precompiler and, 15 1169-1172, 1178, 1189
28-29, 149, 1152, procedural/nonprocedural, transformations and, 891
1214-1215, 1243 10 updates and, 891
database schemas. See schemas querying and, 21-22 Data Encryption Standard
Database Task Group, 1052 snapshot isolation and, 1137 (DES), 413
database writer process, 773 (see also snapshot datetime, 201
data cleansing, 890 isolation) DB-Lib, 1249
data cube, 200, 206-210 storage manager and, 20-21 deadlines, 1108-1109
data-definition language triggers and, 1161-1162 deadlocks
(DDL), 9-12, 14, 32 data mediation, 1018-1019 consistency and, 665-666
authorization and, 58 data mining, 25-26, 33, 771-772, distributed databases and,
basic types and, 59-60 887-889 839, 841, 844-847
concurrency control and,
association rules and, 904-907 handling of, 674-679
1144-145
best splits and, 897-899 IBM DB2 and, 1217-1220
dumping and, 743-744
classification and, 894-904 long-duration transactions
IBM DB2 and, 1194-1197, 1204
clusters and, 894, 907-908 and, 1110-1111
indices and, 58
data-visualization, 909 Microsoft SQL Server and,
integrity and, 58
Microsoft SQL Server and, defined, 893 1243-1244, 1246
1225, 1228-1233, 1245, descriptive patterns and, 894 PostgreSQL and, 1143-1145
1253, 1256, 1261 entropy measure and, 897 prevention of, 675-676
Oracle and, 1162, 1181 Gini measure and, 897 rollback and, 678-679
PostgreSQL and, 1144-1145, information gain and, 897-898 starvation and, 679
1150 Microsoft SQL Server and, victim selection and, 678
querying and, 21-22 1266-1267 wait-for graph and, 676-677,
schema definition and, 28, 58, Oracle and, 1191 676-678
60-63 prediction and, 894-904 decision support, 1047
security and, 58 purity and, 897 decision-support queries, 797
set of relations in, 58-61 rules for, 893-894 decision-support systems,
SQL basics and, 57-63, 104 text, 908 887-891
storage and, 58 data models. See specific model decision-tree classifiers, 895-900
data dictionary, 12, 21, 462-464 data parallelism, 805 declare, 175-178
Data Encryption Standard data server systems, 773, decode, 208
(DES), 413 775-777, 782 decomposition
DataGrid control, 398 data storage and definition algorithms for, 348-355
data guard, 1183 language, 11 Boyce-Codd normal form
data inconsistency. See data striping, 444 and, 333-336, 349-355
consistency data-transfer rate, 435-436 dependency preservation
data isolation, See isolation data types. See types and, 334-336
1322 Index
fourth normal form and, directory information tree greater potential for bugs in,
358-360 (DIT), 872-875 787-788
functional dependencies and, directory systems, 870-875 implementation and, 786-788
329-338, 355-360 dirty blocks, 741 increased processing
higher normal forms and, dirty page table, 750-756, overhead of, 788
337-338 1244-1245 local transactions and, 784
keys and, 330-333 dirty read, 1137, 1181 nodes and, 784
lossless, 345-346 dirty writes, 649 ready state and, 787
lossless-join, 345-346 disable trigger, 185 replication and, 785
lossy, 345-346 disconnected operation, sharing data and, 785
multivalued dependencies 395-396 sites and, 784
and, 355-360 disjoint entity sets, 300 software-development cost
relational database design disjoint specialization, 296-297 and, 787
and, 329-338, 348-360 disjunction, 545-546, 594 two-phase commit protocol
third normal form and, disk-arm-scheduling, 437 (2PC) and, 786-788
336-337, 352-355 disk controller, 434 distributor, 1252
decomposition rule, 339 distinct types, 84-86, 138-141 divisive clustering, 907-908
DEC Rdb, 30 distinguished name (DN), 872 Document Object Model
deduplication, 890-891 distributed databases, 876-878 (DOM), 390
Deep Web crawlers, 931 availability and, 847-853 document type definition
default values, 133, 137, 140, cloud-based, 861-870 (DTD), 990-994
144, 425, 899, 952, domain, 42
commit protocols and,
991-992, 996, 1128 domain constraints, 11
832-838
deferred integrity constraints, domain-key normal form
concurrency control and,
134 (DKNF), 360
835-836, 839-847
domain relational calculus, 249
degree-two consistency, 701-702 deadlock handling and,
example queries, 246-247
deletion, 61, 63, 98-100, 102, 161 844-847
expressive power of
concurrency control and, directory systems and,
languages, 248
697-701 870-875
formal definition, 245
EXEC SQL and, 171 failure and, 831-835 safety of expressions, 247-248
hashing and, 510, 513, 516, 523 fragmentation and, 826-829 double-pipelined hash-join,
integrity constraints and, 133 heterogeneous, 825-826, 571-572
PostgreSQL and, 1130-1131 857-861 drill down, 201
privileges and, 143-145 homogeneous, 825-826 Driver-Manager class, 160
transactions and, 629, 653 joins and, 855-857 drop index, 529
triggers and, 183 locks and, 839-847 drop table, 63, 164
views and, 125 partitions and, 835 drop trigger, 185
delta relation, 186 persistent messaging and, drop type, 140
demand-driven pipelining, 836-838 dumping, 743-744
569-570 query processing and, 854-860 duplicate elimination, 563-564
denormalization, 363-364 recovery and, 835-836 durability, 22-23, 104, 625,
dependency preservation, replication and, 826, 829, 630-631
334-336, 346-348 843-844 defined, 628
desc, 77-78 storage and, 826-830 distributed transactions and,
descriptive attributes. See timestamps and, 842-843 830-832
attributes transparency and, 829-830 one-safe, 758
descriptive patterns, 894 unified view of data and, remote backup systems and,
deviation, 215, 906-907 858-859 758
dicing, 201 distributed-lock manager, 840 storage structure and, 632-633
dictionary attacks, 414 distributed systems two-safe, 758
digital certificates, 416-417 autonomy and, 785 two-very-safe, 758
digital signatures, 416 availability and, 785 dynamic SQL, 58, 158, 175
direct-access storage, 431 example of, 786
directories, 935-937 global transactions and, 784 e-catalogs, 1103
Index 1323
homonyms and, 925-927 instead of triggers, 1161-1162 duplicate elimination and, 811
indexing of documents and, integrated development operation evaluation costs
927-929 environment (IDE), 111, and, 812
information extraction and, 307, 386, 397, 426, 434, 932 parallel external sort-merge
932-933 integrity constraints, 4, 58 and, 806
keywords and, 916-927 add, 129 parallel join and, 806-811
measuring effectiveness of, alter table, 129 parallel sort and, 805-806
929-930 assertion, 135-136 projection and, 811
ontologies and, 925-927 check clause, 130, 134-136 range-partitioning sort and,
PageRank and, 922-923, 925 create table, 129, 130 805
precision and, 929-930 deferred, 134 selection and, 811
query result diversity and, 932 examples of, 128 intraquery parallelism, 803-804
question answering and, foreign key, 131-133 invalidation reports, 1083
933-934 functional dependencies and, inverse document frequency
recall and, 929-930 129 (IDF), 918
relevance ranking using hashing and, 809-810 I/O parallelism
terms, 917-920 not null, 129-130, 133 hashing and, 799-800
relevance using hyperlinks, primary key, 130-131 partitioning techniques and,
920-925 referential, 11, 46-47, 131-136, 798-800
result diversity and, 932 151, 181-182, 628 range scheme and, 800
search engine spamming and, schema diagrams and, 46-47 round-robin scheme and, 799
924-925 on single relation, 129 skew handling and, 800-802
similarity-based, 919-920 unique, 130-131 is not null, 83
stop words and, 918 user-defined types and, 140
is not unknown, 84
structured data queries and, violation during transaction,
is null, 83
934-935 133-134
isolation, 4, 1094
synonyms and, 925-927 XML and, 1003-1004
atomicity and, 646-648
TF-IDF approach and, 917-925 integrity manager, 21
intention-exclusive (IX) mode, cascadeless schedules and,
Web crawlers and, 930-931
680 647-648
Ingres, 30
inheritance, 298-299 intention-shard (IS) mode, 680 concurrency control and, 631,
interconnection networks, 636-637, 639, 650,
overriding method, 952
780-781 1137-1138
SQL and, 949-956
structured types and, 949-952 interesting sort order, 601 defined, 628
tables and, 954-956 Interface Description Language dirty read and, 1137
types and, 952-953 (IDL), 1054-1055 distributed transactions and,
initially deferred integrity interference, 780 830-832
constraints, 134 internal nodes, 487 factorials and, 639
inner joins, 117-120, 601 International Organization for improved throughput and,
inner relation, 550 Standardization (ISO), 635-636
insertion, 61, 100-102 57, 871, 1051 inconsistent state and, 631
concurrency control and, Internet, 31 levels of, 648-653
697-701 direct user access and, 2 locking and, 651
EXEC SQL and, 171 wireless, 1081-1082 multiple versions and,
hashing and, 513, 516-523 interoperation parallelism, 804, 652-653, 1137-1138
lookup and, 705 813-814 nonrepeatable read and, 1137
phantom phenomenon and, interquery parallelism, 802-803 Oracle and, 1181-1182
698-701 intersect, 81-82, 585 phantom read and, 1137-1138
PostgreSQL and, 1130-1131 intersect all, 81-82 PostgreSQL and, 1137-1138,
prepared statements and, intersection, 50 1142
162-164 intersection set, 960 read committed, 649, 1042
privileges and, 143-145 intervals, 1063-1064 read uncommitted, 648, 649
transactions and, 629, 653 intraoperation parallelism recoverable schedules and,
views and, 124-125 aggregation and, 811 647
instances, 8, 904-905 degree of parallelism and, 804 repeated read, 649
1328 Index
search engine spamming and, distributed databases and, compensation log records
924-925 839-847 (CLRs) and, 751-752, 754
stop words and, 918 dynamic, 1243 identifiers and, 727
synonyms and, 925-927 exclusive, 651, 661-662, old/new values and, 727-728
668-669, 672-673, 679, 691, physical, 745
language constructs, 176-179 698-702, 706-710, 729-730, recovery systems and,
Language Integrated Querying 740-741, 803, 839, 841 726-728, 730-734
(LINQ), 1055, 1249 false cycles and, 846-847 redo and, 729-734
large-object types, 138 fine-grained, 756 steal/no-steal policy and, 740
latent failure, 448 granting of, 666-667 undo, 729-734, 745-746
lazy propagation, 844, 868 growing phase and, 667-669 write-ahead logging (WAL)
lazywriter, 1246 IBM DB2 and, 1217-1220 rule and, 739-741
LDAP Data Interchange implementation of, 670-671 log sequence number (LSN),
Format (LDIF), 872 intention modes and, 680 750-755
least recently used (LRU) logical undo operations and, log writer process, 773-774
scheme, 465-467 744-750 long-duration transactions
left outer join, 116-120, 233-235, long-duration transactions compensation transactions
565-566 and, 1110-1111 and, 1113-1114
legacy systems, 1050-1051 lower/higher level, 745 concurrency control and,
lightweight directory access Microsoft SQL Server and, 1111-1112
protocol (LDAP), 406, 1242-1244, 1246 graph-based protocols and,
871-875 multiple granularity and, 1110
like, 76-77 679-682 implementation issues,
linear regression, 902 multiversion schemes and, 1114-1115
linear search, 541-542 691-692 multilevel, 1111-1112
linear speedup, 778-780 PostgreSQL and, 1143-1145 nesting and, 1111-1112
Linux, 1124, 1193-1194, 1212 recovery systems and, 744-750 nonserializable executions
local-area networks (LANs), request operation and, and, 1110-1111
788-789, 1081 662-671, 675-680, 709 operation logging and, 1115
localtimestamp, 137 shared, 661, 841 performance and, 1110
local wait-for graph, 845 shrinking phase and, 667-669 recoverability and, 1110
location-dependent queries, starvation and, 679 subtasks and, 1109
1080 timestamps and, 682-686 timestamps and, 1110
locking protocols, 666 transaction servers and, two-phase locking and, 1110
biased, 841 773-775 uncommitted data and, 1109
distributed lock manager, 840 true matrix value and, 662 lookup, 600, 1086
graph-based, 671-674 wait-for graph and, 676-678, concurrency control and, 700,
majority, 840-841 845-847 704-708
primary copy, 840 log disk, 438-439
distributed databases and,
quorum consensus, 841-842 logical clock, 843
865, 867, 870
single lock-manager, 839 logical counter, 682
fuzzy, 890, 1266
timestamping, 842-843 logical-design phase, 16,
indices and, 482, 485-500,
two-phase, 667-669 260-261
505-513, 516-518, 522, 524
lock manager, 670-671, 773 logical error, 721
Microsoft SQL Server and,
locks logical logging, 745-746, 1115
1238, 1241, 1266
adaptive granularity and, 776 logical operations
PostgreSQL and, 1148
caching and, 776 consistency and, 746
query processing and, 544,
call back and, 776 early lock release and, 744-750
552-553
compatibility function and, rollback and, 746-749
lossless-join decomposition,
662 undo log records, 745-750
345-346
concurrency control and, logical row-ids, 1164-1165
lossy decomposition, 345-346
661-674 logical undo operation, 745-750
log records lost update, 692
deadlock and, 665-666,
674-679, 839, 841, 844-847, ARIES and, 750-756
1217-1220, 1243-1246 buffering and, 738-739 machine learning, 25-26
1330 Index
magnetic disks, 430 materialized query tables recovery systems and, 724-726
blocks and, 436-439 (MQTs), 1212-1214, 1221 (see also Recovery
buffering and, 437-438 materialized views, 123-124, systems)
checksums and, 434 607 redo log buffer and, 1184
crashes and, 434 aggregation and, 610-611 shared pool, 1184
data-transfer rate and, 435-436 IBM DB2 and, 1212-1214 merge-join, 553
disk controller and, 434 index selection and, 612 merge-purge operation, 890-891
failure classification and, 722 join operation and, 609 merging
hybrid, 440-441 maintenance and, 608-611 complex, 1173-1174
log disk and, 438-439 Oracle and, 1171-1172, 1174, duplicate elimination and,
mean time to failure and, 436 1188 563-564
optimization of disk-block performance tuning and, Oracle and, 1173-1174
access and, 436-439 1039-1040 parallel external sort-merge
parallel systems and, 781-782 and, 806
projection and, 609-610
performance measures of, performance tuning and, 1033
query optimization and,
435-436 query processing and,
611-612
physical characteristics of, 547-549, 553-555, 557
replication and, 1251-1253 mesh system, 780-781
432-435 selection and, 609-610
read-ahead and, 437 message delivery process, 838
max, 84, 86, 96, 236, 566-567 metadata, 12, 164-166
read-write heads and, 432-435 mean time to failure (MTTF),
recording density and, Microsoft, 3, 31, 141
436 advanced SQL and, 160n3,
433-434 Media Access Control (MAC), 169, 173, 180, 184, 197, 205
redundant arrays of 1129 application design and, 387,
independent disks mediators, 859-860, 1018-1019 395-401, 406-407
(RAID) and, 441-449
memory. See also storage distributed databases and, 863
scheduling and, 437
buffers and, 1184 (see also parallel databases and, 816
scrubbing and, 448
buffers) query optimization and, 612
sectors and, 432-434
bulk loading of indices and, storage and, 438
seek-time and, 435-436 Microsoft Active Server Pages
503-504
sizes of, 433 (ASP), 397
cache, 429, 817-818 (see also
main-memory database Microsoft Database Tuning
caching)
systems, 724n1 Assistant, 1040
data access and, 724-726
majority protocol, 840-841, Microsoft Distributed
848-849 flash, 403, 430, 439-441, 506
force output and, 725-726 Transaction Coordinator
man-in-the-middle attacks, 406 (MS DTC), 1242
many server, many-router magnetic-disk, 430, 432-439
main, 429-430 Microsoft Office, 55, 399, 1016
model, 1094 Microsoft SQL Server, 1042,
many-server, single-router main-memory databases and,
1121
model, 1093 1105-1108
business intelligence and,
many-to-many mapping, 270, Microsoft SQL Server and,
1263-1267
276-277 1246-1247
compilation and, 1236-1237
many-to-one mapping, 270, 276 multitasking and, 1092-1095 compression and, 1236
mapping cardinalities, 269-270, .NET Common Language concurrency control and,
276-277 Runtime (CLR) and, 1241-1246
markup languages. See also 1255-1256 data access and, 1248-1250
specific language nonvolatile random-access, database mirroring and,
file processing and, 981-982 438 1245-1246
structure of, 981-990 optical, 430 data mining and, 1266-1267
tags and, 982-985 Oracle structures and, data types and, 1229-1230
transactions and, 983-985 1183-1184 design tools and, 1223-1228
master-slave replication, overflows and, 560 development of, 1223
843-844 persistent programming filegroups and, 1233-1234
master table, 1032-1033 languages and, 964-972 indexing and, 1231-1236
materialization, 567-568 query costs and, 544 locks and, 1242-1244
Index 1331
duplicate tuples and, 94-95 multiple granularity and, decode and, 208
empty relations and, 93-94 679-682 decorrelation and, 1174
from clause and, 95-96 nonleaf, 487 file organization and, 451-468
optimization of, 605-607 overfitting and, 899-900 integrity constraints and,
scalar, 97-98 splitting of, 491, 706 128-130, 133-134
set operations and, 90-93 updates and, 491-500 left outer join, 233
with clause and, 97 XML and, 998 OLAP and, 202
nesting no-force policy, 739-740 query simplification and,
ARIES and, 755-756 nonacceptable termination 1237-1238
concurrency control and, 679, states, 1099 right outer join, 234-235
709 nonclustering, 477 temporal data and, 364-367
granularities and, 679 nondeclarative actions, 158 user-defined types and, 140
IBM DB2 and, 1197, nonleaf nodes, 487 numeric, 59, 62
1209-1210, 1218 nonprocedural languages, nvarchar, 60
long-duration transactions 47-48 N-way merge, 547
and, 1112-1113 nonrepeatable read, 1137
object-based databases and, nonrepudiation, 416 object-based databases, 975
945, 948, 958-961 nonunique search keys, 497-499 array types and, 956-961
Oracle and, 1159, 1164, 1182 nonvolatile random-access collection volumes and,
queries and, 601-607, memory (NVRAM), 438 957-958
1004-1007, 1013-1014, nonvolatile storage, 432, 632, complex data types and,
1017 722, 724-726, 743-744 946-949
transactions and, 1091, nonvolatile write buffers, 438 correspondence and, 955
1112-1113, 1116, 1218 NOR flash memory, 430, 439 feature implementation and,
XML and, 27, 943, 984-998, normal forms, 18 963-964
1001, 1004-1007, 1010 atomic domains and, 327-329 inheritance and, 949-956
.NET, 169 Boyce-Codd, 333-336, 349-352, mapping and, 973
NetBeans, 386, 397 354-356 multiset types and, 956-961
.NET Common Language complex data types and, 947 nesting and, 945, 948, 958-961
Runtime (CLR) domain-key, 360 object-identity types and,
aggregates and, 1257-1258 fifth, 360 961-963
basic concepts of, 1254 first, 327-329 object-oriented vs.
extensibility contracts and, fourth, 356, 358-360 object-relational
1256-1258 higher, 337-338 approaches and, 973-974
Microsoft SQL Server and, join dependencies and, 360 persistent programming
1253-1258 project-join, 360 languages and, 964-972,
routines and, 1256-1257 second, 361 974
SQL hosting and, 1254-1256 third, 336-337 reference types and, 961-963
table functions and, 1256-1257 normalization, 16, 18-20 relational data model and, 945
types and, 1257-1258 denormalization and, 363-364 structured types and, 949-953
Netezza, 816 entity-relationship (E-R) unnesting and, 958-961
networks model and, 361-362 Object Database Management
data model and, 9, 1080-1082 performance and, 363-364 Group (ODMG),
local area, 788-789, 1081 relational database design 1054-1055
mobility and, 1079-1085 and, 361-362 object-oriented databases, 393
wide-area types and, 788, no-steal policy, 740 object-oriented data model, 27
790-791 not connective, 66 object-relational data model, 27
nextval for, 1043 not exists, 93, 192 object-relational mapping, 393,
nodes. See also storage not in, 90-91, 92n8 946, 973
B+-trees and, 485-506 not null, 61, 83, 129-130, 133, 140 observable external writes,
coalescing, 491, 706 not unique, 95 634-635
distributed systems and, 784 null bitmap, 456 ODBC (Open Database
IBM DB2 and, 1200-1201 null values, 19, 83-84 Connectivity), 380, 1052
mesh architecture and, aggregation with, 89-90 advanced SQL and, 166-169
780-781 attributes and, 268-269 API definition and, 166-167
Index 1333
caching and, 401 analytic workspaces and, 1161 shared server and, 1185
conformance levels and, archiver and, 1185 as Software Development
168-169 caching and, 1179-1180, 1184 Laboratories, 1157
Microsoft SQL Server and, checkpoint and, 1185 SQL basics and, 55, 75n4,
1249 clusters and, 1173, 1186 82n7, 96, 141, 160-161,
PostgreSQL and, 1154 compression and, 1165 172-174, 178, 180,
standards for, 1053-1054 concurrency control and, 184-185, 197, 205
type definition and, 168 1180-1183 SQL Loader and, 1189
OLAP (online analytical database administration tools SQL Plan Management and,
processing), 1046 and, 1189-1191 1177-1178
all attribute and, 201-203, 205 database design and, 355, 386, SQL Tuning Advisor,
applications for, 197-201 396, 408n5, 409, 1157-1158 1176-1177
cross-tabulation and, 199-203, database writer, 1185 SQL variations and, 1158-1162
205, 210 data guard, 1183 subquery flattening and, 1174
data cube and, 200, 206-210 data mining and, 1191 system architecture, 795, 803,
decode function and, 208 data warehousing and, 1158 843, 1183-1188
dicing and, 201 dedicated servers and, system monitor, 1185
drill down and, 201 1183-1185 tables and, 1163-1166,
implementation of, 204 dimensional modeling and, 1172-1173, 1187, 1189
Microsoft SQL Server and, 1160, 1171 transactions and, 649, 653,
1223, 1266 distribution and, 1188-1189 692-693, 697, 710, 718
multidimensional data and, encryption and, 1165-1166 transformations and,
199 Exadata and, 1187-1188 1173-1174
null value and, 202 external data and, 1188-1189 trees and, 1191
Oracle and, 1161 hashing and, 1170 triggers and, 1161-1162
order by clause and, 205 indices and, 1162-1173 updates and, 1179-1180
pivot clause and, 205, 210 isolation levels and, 1181-1182 virtual private database and,
relational tables and, 202-203, joins and, 1168, 1187 1166
205 logical row-ids and, 1164-1165 XML DB and, 1159-1160
rollup and, 201, 206-210 log writer and, 1185 Oracle Application
slicing and, 201 materialized views and, Development
in SQL, 205-209 1171-1172, 1174, 1188 Framework (ADF),
OLE-DB, 1249 memory structures and, 1157-1158
OLTP (online transaction 1183-1184 Oracle Automatic Storage
processing), 1046-1047, optimizer of, 1174-1176 Manager, 1186-1187
1165, 1186, 1264 parallel execution and, 1178 Oracle Automatic Workload
on condition, 114-115 partitions and, 1169-1172, Repository (AWR), 1190
on delete cascade, 133, 185 1176 Oracle Business Intelligence
one-to-many mapping, 269, 276 process monitor and, 1185 Suite (OBI), 1158
one-to-one mapping, 269, 276 process structures and, Oracle Database Resource
ontologies, 925-927 1184-1185 Management, 1190-1191
OOXML (Office Open XML), projection and, 1187 Oracle Designer, 1158
1016 query optimization and, 582, Oracle Enterprise Manager
Open Document Format 593, 603-604, 612, (OEM), 1190
(ODF), 1016 1173-1178 Oracle JDeveloper, 1158
open statement, 170-171 query processing and, Oracle Tuxedo, 1091
operation logging, 1115 1157-1158, 1162-1172 or connective, 66
operator tree, 803-804 Real Application Clusters order by, 77-78, 193
optical storage, 430-431, 449-450 (RAC) and, 1186 organize by dimensions, 1204
optimistic concurrency control recovery and, 1180-1183, 1185 or operation, 83-84
without read validation, replication and, 1188-1189 outer-join, 115-120, 232-235,
704 result caching and, 1179-1180 565-566, 597
Oracle, 3, 30, 216, 1121 security and, 1165-1166 outer relation, 550
access path selection and, segments and, 1163 overfitting, 899-900
1174 serializability and, 1181-1182 overflow avoidance, 560
1334 Index
primary keys, 45-46, 60-62 pseudotransitivity rule, 339 ODBC and, 166-169
decomposition and, 354-355 public-key encryption, 412-414 OLAP and, 197-209
entity-relationship (E-R) publishing, 1013, 1251-1253 Oracle and, 1171-1172
model and, 271-272 pulling data, 570-571 PageRank and, 922-923
functional dependencies and, purity, 897 parallel databases and,
330-333 Python, 180, 377, 387, 1123, 797-820
integrity constraints and, 1125, 1136 persistent programming
130-131 languages and, 964-972
primary site, 756 QBE, 37, 245, 770 point, 799
privacy, 402, 410-411, 418, 828, quadratic split, 1075-1076 programming language
869-870, 1104 quadtrees, 1069, 1072-1073 access and, 157-173
privileges queries, 10 range, 799
all, 143-144 ADO.NET and, 169 read only, 804
execute and, 147 availability and, 826-827 recursive, 187-192
granting of, 143-145 B+-trees and, 488-491 result diversity and, 932
public, 144 basic structure of SQL, 63-71
revoking of, 143-145, 149-150 ResultSet object and, 159, 161,
caching and, 400-401
transfer of, 148-149 164-166, 393, 397-398, 490
Cartesian product and, 50-51,
procedural DMLs, 10 retrieving results, 161-162
68-69, 71-75, 120, 209,
procedural languages, 20 217, 222-229, 232, 573, scalar subqueries and, 97-98
advanced SQL and, 157-158, 584, 589, 595-596, 606, 616 security and, 402-417
173, 178 complex data types and, servlets and, 383-391
IBM DB2 and, 1194 946-949 set operations and, 79-83,
Oracle and, 1160, 1191 correlated subqueries and, 93 90-93
PostgreSQL and, 1130, 1133, data-definition language on single relation, 63-66
1136 (DDL) and, 21-22 spatial data and, 1070-1071
relational model and, 47-48 data-manipulation language string operations and, 76-79
procedures (DML) and, 21-22 transaction servers and, 775
declaring, 174-175 decision-support, 797 universal Turing machine
external language routines delete and, 98-100 and, 14
and, 179-180 distributed databases and, user requirements and,
language constructs for, 825-878 (see also 311-312
176-179 distributed databases) views and, 120-128
syntax and, 173-174, 178 hashing and, 475, 516-522 (see XML and, 998-1008
writing in SQL, 173-180 also hash functions) query cost
producer-driven pipeline, indices and, 475 (see also Microsoft SQL Server and,
569-570 indices) 1237-1239
program global area (PGA), information retrieval and, optimization and, 580-581,
1183 915-938 590-602
programming languages. See insert and, 100-101 processing and, 540-541, 544,
also specific language intermediate SQL and, 548, 555-557, 561
accessing SQL from, 157-173 113-151 query evaluation engine, 22
mismatch and, 158 JDBC and, 158-166
query-evaluation plans,
variable operations of, 158 location-dependent, 1080
537-539
projection metadata and, 164-166
intraoperation parallelism choice of, 598-607
multiple-key access and,
and, 811 506-509 expressions and, 567-572
Oracle and, 1187 on multiple relations, 66-71 materialization and, 567-568
queries and, 564, 597 natural joins and, 71-74, 87, optimization and, 579-616
view maintenance and, 113-120 (see also joins) pipelining and, 568-572
609-610 nearest-neighbor, 1070-1071 response time and, 541
project-join normal form nested subqueries, 90-98 set operations and, 564
(PJNF), 360 null values and, 83-84 viewing, 582
project operation, 219 object-based databases and, query-execution engine, 539
PR quadtrees, 1073 945-975 query-execution plan, 539
Index 1337
query languages, 249. See also relational algebra and, PostgreSQL and, 1151-1154
specific language 579-590 projection and, 563-564
accessing from a result caching and, 1179-1180 recursive partitioning and,
programming language, set operations and, 597 539-540
157-173 shared scans and, 614 relational algebra and,
centralized systems and, simplification and, 1237-1238 537-539
770-771 SQL Plan Management and, reordering and, 1238-1239
domain relational calculus 1177-1178 selection operation and,
and, 245-248 SQL Tuning Advisor and, 541-546
expressive power of 1176-1177 set operations and, 564-565
languages, 244, 248 top-K, 613 sorting and, 546-549
formal relational, 217-248 transformations and, 582-590, SQL and, 537-538
nonprocedural, 239-244 1173-1174 standard planner and, 1152
procedural, 217-239 updates and, 613-614 syntax and, 537
relational algebra and, query processing, 21-22, 30, 32 transformation and, 854-855
217-239 aggregation, 566-567 triggers and, 1153-1154
relational model and, 47-48, basic steps of, 537 XML and, 1259-1260
50 binding and, 1236-1237 question answering, 933-934
temporal, 1064 comparisons and, 544-545 queueing systems, 1034-1035
tuple relational calculus and, compilation and, 1236-1237 quorum consensus protocol,
239-244 cost analysis of, 540-541, 544, 841-842
query optimization, 22, 537, 548, 555-557, 561
539, 552-553, 562, 616 CPU speeds and, 540 random access, 437
access path selection and, distributed databases and, random samples, 593
1174-1176 854-857, 859-860 random walk model, 922
aggregation and, 597 distributed heterogeneous, range-partitioning sort, 805
cost analysis and, 580-581, 1250-1251 range-partitioning vector, 801
590-602 duplicate elimination and, range queries, 799
distributed databases and, 563-564 ranking, 192-195
854-855 evaluation of expressions, rapid application development
equivalence and, 582-588 567-572 (RAD)
estimating statistics of executor module and, functions library and, 396
expression results, 1152-1153 report generators and, 399-400
590-598 file scan and, 541-544, 550, user interface building tools
heuristics in, 602-605 552, 570 and, 396-398
IBM DB2 and, 1211-1212 hashing and, 557-562 Web application frameworks
join minimization, 613 IBM DB2 and, 1207-1216 and, 398-399
materialized views and, identifiers and, 546 raster data, 1069
607-612 information retrieval and, Rational Rose, 1194
Microsoft SQL Server and, 915-937 read-ahead, 437
1236-1241 join operation and, 549-566 read committed
multiquery, 614 LINQ and, 1249 application development and,
nested subqueries and, materialization and, 567-568, 1042
605-607 1212-1214 Microsoft SQL Server and,
Oracle and, 1173-1178 Microsoft SQL Server and, 1242
parallel databases and, 1223-1231, 1236-1241, Oracle and, 1181
814-817 1250-1251 PostgreSQL and, 1138,
parametric, 615 mobile, 1082 1141-1142
parallel execution and, operation evaluation and, transaction management and,
1178-1179 538-539 649, 658, 685, 701-702
partial search and, 1240 Oracle and, 1157-1158, read one, write all available
partitions and, 1174-1176 1172-1180 protocol, 849-850
plan choice for, 598-607 parsing and, 537-539, 572-573, read one, write all protocol, 849
PostgreSQL and, 1151-1154 1236-1237 read only queries, 804
process structure and, 1179 pipelining and, 568-572 read quorum, 841-842
1338 Index
read uncommitted, 648 shadow-copy scheme and, referential integrity, 11, 46-47,
read-write contention, 727 131-136, 151, 181-182, 628
1041-1042 snapshot isolation and, referrals, 875
read/write operations, 653-654 729-730 reflexivity rule, 339
real, double precision, 59 steal/no-steal policy and, 740 region quadtrees, 1073
real-time transaction systems, storage and, 722-726, 734-735, regression, 902-903, 1048-1049
1108-1109 743-744 relational algebra, 51-52,
recall, 903 successful completion and, 248-249, 427
recovery interval, 1244-1245 723 aggregate functions, 235-239
recovery manager, 22-23 undo and, 729-738 assignment, 232
recovery systems, 186, 631, workflows and, 1101 avg, 236
760-761, 1083 write-ahead logging (WAL) Cartesian-product, 222-226
actions after crash, 736-738 rule and, 739-741, composition of relational
algorithm for, 735-738 1145-1146 operations and, 219-220
ARIES, 750-756 recovery time, 758 count-distinct, 236
atomicity and, 726-735 recursive partitioning, 539-540 equivalence and, 582-588,
buffer management and, recursive queries, 187 601-602
738-743 iteration and, 188-190 expression transformation
checkpoints and, 734-735, SQL and, 190-192 and, 582-590
742-743 transitive closure and, 188-190 expressive power of
concurrency control and, recursive relationship sets, 265 languages, 244
729-730 redo formal definitions of, 228
actions after crash, 736-738 fundamental operations,
data access and, 724-726
pass, 754 217-228
database mirroring and,
phase, 736-738 generalized-projection, 235
1245-1246
recovery systems and, 729-738 join expressions, 239
database modification and,
redundancy, 4, 261-262, 272-274 max, 236
728-729
redundant arrays of min, 236
disk failure and, 722 independent disks multiset, 238
distributed databases and, (RAID), 435, 759, 1147 natural-join, 229-232
835-836 bit-level striping, 442-444 outer-join, 232-235
early lock release and, 744-750 error-correcting-code (ECC) project operation, 219
fail-stop assumption and, 722 organization and, 444-445 query optimization and,
failure and, 721-723, 743-744 hardware issues, 448-449 579-590
force/no-force policy and, hot swapping and, 449 query processing and, 537-539
739-740 levels, 444-448 rename, 226-228
IBM DB2 and, 1200-1203, mirroring and, 441-442, 444 select operation, 217-219
1217-1218 parallelism and, 442-444 semijoin strategy and, 856-857
logical undo operations and, parity bits and, 444-446 set-difference, 221-222
744-750 performance reliability and, set-intersection, 229
log records and, 726-728, 442-444 SQL and, 219, 239
730-734, 738-739 performance tuning and, sum, 235-236
log sequence number (LSN) 1037-1038 union operation, 220-221
and, 750 recovery systems and, 723 relational database design, 368
long-duration transactions reliability improvement and, atomic domains and, 327-329
and, 1110 441-442 attribute naming, 362-363
Microsoft SQL Server and, scrubbing and, 448 decomposition and, 329-338,
1241-1246 software RAID and, 448 348-360
Oracle and, 1180-1183 striping data and, 442-444 design process and, 361-364
partitions and, 1169-1172 references, 131-133, 148 features of good, 323-327
PostgreSQL and, 1145-1146 referencing new row as, 181-182 first normal form and, 327-329
redo and, 729-738 referencing new table as, 183 fourth normal form and, 356,
remote backup, 723, 756-759, referencing old row as, 182 358-360
850, 1095-1096 referencing old table as, 183 functional dependencies and,
rollback and, 729-734, 736 referencing relation, 46 329-348
Index 1339
larger schemas and, 324-325 redundancy and, 288 multiversion schemes and,
multivalued dependencies representation of, 286-290 691
and, 355-360 schema combination and, snapshot isolation and, 693
normalization and, 361-362 288-290 timestamps and, 682
relationship naming, 362-363 superclass-subclass, 296-297 resource managers, 1095
second normal form and, Unified Modeling Language response time
336n5, 361 (UML) and, 308-310 application design and, 400,
smaller schemas and, 325-327 relative distinguished names 1037, 1046
temporal data modeling and, (RDNs), 872 concurrency control and, 688
364-367 relevance E-R model and, 311
third normal form and, adjacency test and, 922-923 Microsoft SQL Server and,
336-337 hubs and, 924 1261
relational databases PageRank and, 922-923, 925 Oracle and, 1176-1177, 1190
access from application popularity ranking and, query evaluation plans and,
programs and, 14-15 920-922 541
data-definition language and, ranking using TF-IDF, query processing and, 541
14 917-920, 925 storage and, 444, 1106,
data-manipulation language search engine spamming and, 1109-1110
(DML) and, 13-14 924-925 transactions and, 636
storage and, 1010-1014 similarity-based retrieval and, system architecture and, 778,
tables and, 12-13 919-920 798, 800, 802
relational model, 9 TF-IDF approach and, restriction, 149-150, 347
disadvantages of, 30 917-925, 928-929 ResultSet object, 159, 161,
domain and, 42 using hyperlinks and, 3421 164-166, 393, 397-398, 490
keys and, 45-46 Web crawlers and, 930-931 revoke, 145, 149
natural joins and, 49-50 relevance feedback, 919-920 right outer join, 117-120,
operations and, 48-52 remote backup systems, 723, 233-235, 565-566
query languages and, 47-48, 756-759, 850, 1095-1096 Rijndael algorithm, 412-413
50 remote-procedure-call (RPC) robustness, 847
referencing relation and, 46 mechanism, 1096 roles, 264-265
schema for, 42-47, 302-304, rename operation, 75-76, authorization and, 145-146
1012 226-228 entity-relationship diagrams,
structure of, 39-42 repeat, 176 278
tables for, 39-44, 49-51, repeatable read, 649 Unified Modeling Language
202-205 repeat loop, 188, 341, 343, 490 (UML) and, 308-310
tuples and, 40-42, 49-50 replication rollback, 173
relation instance, 42-45, 264 cloud computing and, 866-868 ARIES and, 754-755
relationship sets distributed databases and, cascading, 667
alternative notations for, 843-844 concurrency control and, 667,
304-310 Microsoft SQL Server and, 670, 674-679, 685, 689,
atomic domains and, 327-329 1251-1253 691, 709
attribute placement and, system architectures and, 785, IBM DB2 and, 1218
294-295 826, 829 logical operations and,
binary vs. n-ary, 292-294 report generators, 399-400 746-749
descriptive attributes, 267 Representation State Transfer PostgreSQL and, 1142-1144
design issues and, 291-295 (REST), 395 recovery systems and,
entity-relationship diagrams request forgery, 403-405 729-734, 736
and, 278-279 request operation remote backup systems and,
entity-relationship (E-R) deadlock handling and, 758-759
model and, 264-267, 675-679 transactions and, 736
286-290, 296-297 locks and, 662-671, 675-680, timestamps and, 685-686
entity sets and, 291-292 709 undo and, 729-734
naming of, 362-363 lookup and, 706 rollback work, 127
nonbinary, 278-279 multiple granularity and, rollup, 201, 206-210, 1221-1222
recursive, 265 679-680 RosettaNet, 1055
1340 Index
volatile, 431, 632, 722 materialized, 1212-1214 harmonic mean of, 1046
wallets and, 415 Microsoft SQL Server and, improved, 635-636, 655
XML and, 1009-1016 1230, 1234 log records and, 1106
storage area network (SAN), .NET Common Language main memories and, 1116
434-435, 789 Runtime (CLR) and, Microsoft SQL Server and,
storage manager, 20-21 1257-1258 1255
string operations Oracle and, 1163-1166, 1187, Oracle and, 1159, 1184
aggregate, 84 1189 parallel systems and, 778
attribute specification, 77 partitions and, 1169-1172 performance and, 1110
escape, 77 relational model and, 39-44, range partitioning and, 800
JDBC and, 158-166 49-51 storage and, 444, 468
like, 76-77 SQL Server Broker and, 1262 system architectures and, 771,
lower, 76 tablespaces, 1146, 1172-1173 778, 800, 802, 819
query result retrieval and, tag library, 388 transactions and, 635-636, 655
161-162 tag timestamps, 136-167
similar to, 77 application design and, concurrency control and,
trim, 76 378-379, 388, 404 682-686, 703
tuple display order, 77-78 information retrieval and, 916 distributed databases and,
upper function, 76 XML and, 982-986, 989, 994, 842-843
where predicates, 78-79 999, 1004, 1019 logical counter and, 682
striping data, 442-444 tape storage, 431, 450-451 long-duration transactions
structured types, 138-141, Tapestry, 399 and, 1110
949-952 task flow. See workflows multiversion schemes and,
stylesheets, 380 Tcl, 180, 1123-1125, 1136 690-691
sublinear speedup, 778-780 temporal data, 1061 ordering scheme and, 682-685
submultiset, 960 intervals and, 1063-1064 rollback and, 685-686
suffix, 874 query languages and, 1064 temporal data and, 1063-1064
sum, 84, 123, 207, 235-236, relational databases and, Thomas’ write rule and,
566-567, 1134 364-367 685-686
superclass-subclass time in databases and, transactions and, 651-652
relationship, 296-297 1062-1064 with time zone, 1063
superkeys, 45-46, 271-272, timestamps and, 1063-1064 time to completion, 1045
330-333 transaction time and, 1062 time with time zone, 1063
superuser, 143 temporal relation, 1062-1063 timezone, 136-137, 1063
Support Vector Machine Teradata Purpose-Built Tomcat, 386
(SVM), 900-901, 1191 Platform Family, 806 top-down design, 297
swap space, 742 term frequency (TF), 918 top-K optimization, 613
Swing, 399 termination states, 1099 topographic information, 1070
Sybase, 1223 tertiary storage, 431, 449-451 topological sorting, 644-646
symmetric multiprocessors TF-IDF approach, 928-929 training instances, 895
(SMPs), 1193 theta join, 584-585 transactional replication,
synonyms, 925-927 third normal form (3NF) 1252-1253
sysaux, 1172-1173 decomposition algorithms transaction control, 58
system architecture. See and, 352-355 transaction coordinator,
architectures relational databases and, 830-831, 834-835, 850-852
system catalogs, 462-464, 1132 336-337, 352-355 transaction manager, 21, 23,
system change number (SCN), Thomas’ write rule, 685-686 830-831
1180-1181 thread pooling, 1246 transaction-processing
system error, 721 three-phase commit (3PC) monitors, 1091
System R, 30, 57, 1193 protocol, 826 application coordination
three-tier architecture, 25 using, 1095-1096
table inheritance, 954-956 throughput architectures of, 1092-1095
tables, 12-13 application development and, durable queue and, 1094
filtering and, 1187 1037, 1045-1046 many-server, many-router
IBM DB2 and, 1200-1203 defined, 311 model and, 1094
Index 1345