1. Database System Concepts 6th Edition, (Ebook
PDF) pdf download
https://ebookmass.com/product/database-system-concepts-6th-
edition-ebook-pdf/
Explore and download more ebooks at ebookmass.com
3. Contents vii
Chapter 8 Relational Database Design
8.1 Features of Good Relational
Designs 323
8.2 Atomic Domains and First Normal
Form 327
8.3 Decomposition Using Functional
Dependencies 329
8.4 Functional-Dependency Theory 338
8.5 Algorithms for Decomposition 348
8.6 Decomposition Using Multivalued
Dependencies 355
8.7 More Normal Forms 360
8.8 Database-Design Process 361
8.9 Modeling Temporal Data 364
8.10 Summary 367
Exercises 368
Bibliographical Notes 374
Chapter 9 Application Design and Development
9.1 Application Programs and User
Interfaces 375
9.2 Web Fundamentals 377
9.3 Servlets and JSP 383
9.4 Application Architectures 391
9.5 Rapid Application Development 396
9.6 Application Performance 400
9.7 Application Security 402
9.8 Encryption and Its Applications 411
9.9 Summary 417
Exercises 419
Bibliographical Notes 426
PART THREE DATA STORAGE AND QUERYING
Chapter 10 Storage and File Structure
10.1 Overview of Physical Storage
Media 429
10.2 Magnetic Disk and Flash Storage 432
10.3 RAID 441
10.4 Tertiary Storage 449
10.5 File Organization 451
10.6 Organization of Records in Files 457
10.7 Data-Dictionary Storage 462
10.8 Database Buffer 464
10.9 Summary 468
Exercises 470
Bibliographical Notes 473
Chapter 11 Indexing and Hashing
11.1 Basic Concepts 475
11.2 Ordered Indices 476
11.3 B+
-Tree Index Files 485
11.4 B+
-Tree Extensions 500
11.5 Multiple-Key Access 506
11.6 Static Hashing 509
11.7 Dynamic Hashing 515
11.8 Comparison of Ordered Indexing and
Hashing 523
11.9 Bitmap Indices 524
11.10 Index Definition in SQL 528
11.11 Summary 529
Exercises 532
Bibliographical Notes 536
4. viii Contents
Chapter 12 Query Processing
12.1 Overview 537
12.2 Measures of Query Cost 540
12.3 Selection Operation 541
12.4 Sorting 546
12.5 Join Operation 549
12.6 Other Operations 563
12.7 Evaluation of Expressions 567
12.8 Summary 572
Exercises 574
Bibliographical Notes 577
Chapter 13 Query Optimization
13.1 Overview 579
13.2 Transformation of Relational
Expressions 582
13.3 Estimating Statistics of Expression
Results 590
13.4 Choice of Evaluation Plans 598
13.5 Materialized Views** 607
13.6 Advanced Topics in Query
Optimization** 612
13.7 Summary 615
Exercises 617
Bibliographical Notes 622
PART FOUR TRANSACTION MANAGEMENT
Chapter 14 Transactions
14.1 Transaction Concept 627
14.2 A Simple Transaction Model 629
14.3 Storage Structure 632
14.4 Transaction Atomicity and
Durability 633
14.5 Transaction Isolation 635
14.6 Serializability 641
14.7 Transaction Isolation and
Atomicity 646
14.8 Transaction Isolation Levels 648
14.9 Implementation of Isolation Levels 650
14.10 Transactions as SQL Statements 653
14.11 Summary 655
Exercises 657
Bibliographical Notes 660
Chapter 15 Concurrency Control
15.1 Lock-Based Protocols 661
15.2 Deadlock Handling 674
15.3 Multiple Granularity 679
15.4 Timestamp-Based Protocols 682
15.5 Validation-Based Protocols 686
15.6 Multiversion Schemes 689
15.7 Snapshot Isolation 692
15.8 Insert Operations, Delete Operations,
and Predicate Reads 697
15.9 Weak Levels of Consistency in
Practice 701
15.10 Concurrency in Index Structures** 704
15.11 Summary 708
Exercises 712
Bibliographical Notes 718
5. Contents ix
Chapter 16 Recovery System
16.1 Failure Classification 721
16.2 Storage 722
16.3 Recovery and Atomicity 726
16.4 Recovery Algorithm 735
16.5 Buffer Management 738
16.6 Failure with Loss of Nonvolatile
Storage 743
16.7 Early Lock Release and Logical Undo
Operations 744
16.8 ARIES** 750
16.9 Remote Backup Systems 756
16.10 Summary 759
Exercises 762
Bibliographical Notes 766
PART FIVE SYSTEM ARCHITECTURE
Chapter 17 Database-System Architectures
17.1 Centralized and Client–Server
Architectures 769
17.2 Server System Architectures 772
17.3 Parallel Systems 777
17.4 Distributed Systems 784
17.5 Network Types 788
17.6 Summary 791
Exercises 793
Bibliographical Notes 794
Chapter 18 Parallel Databases
18.1 Introduction 797
18.2 I/O Parallelism 798
18.3 Interquery Parallelism 802
18.4 Intraquery Parallelism 803
18.5 Intraoperation Parallelism 804
18.6 Interoperation Parallelism 813
18.7 Query Optimization 814
18.8 Design of Parallel Systems 815
18.9 Parallelism on Multicore
Processors 817
18.10 Summary 819
Exercises 821
Bibliographical Notes 824
Chapter 19 Distributed Databases
19.1 Homogeneous and Heterogeneous
Databases 825
19.2 Distributed Data Storage 826
19.3 Distributed Transactions 830
19.4 Commit Protocols 832
19.5 Concurrency Control in Distributed
Databases 839
19.6 Availability 847
19.7 Distributed Query Processing 854
19.8 Heterogeneous Distributed
Databases 857
19.9 Cloud-Based Databases 861
19.10 Directory Systems 870
19.11 Summary 875
Exercises 879
Bibliographical Notes 883
6. x Contents
PART SIX DATA WAREHOUSING, DATA
MINING, AND INFORMATION RETRIEVAL
Chapter 20 Data Warehousing and Mining
20.1 Decision-Support Systems 887
20.2 Data Warehousing 889
20.3 Data Mining 893
20.4 Classification 894
20.5 Association Rules 904
20.6 Other Types of Associations 906
20.7 Clustering 907
20.8 Other Forms of Data Mining 908
20.9 Summary 909
Exercises 911
Bibliographical Notes 914
Chapter 21 Information Retrieval
21.1 Overview 915
21.2 Relevance Ranking Using Terms 917
21.3 Relevance Using Hyperlinks 920
21.4 Synonyms, Homonyms, and
Ontologies 925
21.5 Indexing of Documents 927
21.6 Measuring Retrieval Effectiveness 929
21.7 Crawling and Indexing the Web 930
21.8 Information Retrieval: Beyond Ranking
of Pages 931
21.9 Directories and Categories 935
21.10 Summary 937
Exercises 939
Bibliographical Notes 941
PART SEVEN SPECIALTY DATABASES
Chapter 22 Object-Based Databases
22.1 Overview 945
22.2 Complex Data Types 946
22.3 Structured Types and Inheritance in
SQL 949
22.4 Table Inheritance 954
22.5 Array and Multiset Types in SQL 956
22.6 Object-Identity and Reference Types in
SQL 961
22.7 Implementing O-R Features 963
22.8 Persistent Programming
Languages 964
22.9 Object-Relational Mapping 973
22.10 Object-Oriented versus
Object-Relational 973
22.11 Summary 975
Exercises 976
Bibliographical Notes 980
Chapter 23 XML
23.1 Motivation 981
23.2 Structure of XML Data 986
23.3 XML Document Schema 990
23.4 Querying and Transformation 998
23.5 Application Program Interfaces to
XML 1008
23.6 Storage of XML Data 1009
23.7 XML Applications 1016
23.8 Summary 1019
Exercises 1021
Bibliographical Notes 1024
7. Contents xi
PART EIGHT ADVANCED TOPICS
Chapter 24 Advanced Application Development
24.1 Performance Tuning 1029
24.2 Performance Benchmarks 1045
24.3 Other Issues in Application
Development 1048
24.4 Standardization 1051
24.5 Summary 1056
Exercises 1057
Bibliographical Notes 1059
Chapter 25 Spatial and Temporal Data and Mobility
25.1 Motivation 1061
25.2 Time in Databases 1062
25.3 Spatial and Geographic Data 1064
25.4 Multimedia Databases 1076
25.5 Mobility and Personal Databases 1079
25.6 Summary 1085
Exercises 1087
Bibliographical Notes 1089
Chapter 26 Advanced Transaction Processing
26.1 Transaction-Processing Monitors 1091
26.2 Transactional Workflows 1096
26.3 E-Commerce 1102
26.4 Main-Memory Databases 1105
26.5 Real-Time Transaction Systems 1108
26.6 Long-Duration Transactions 1109
26.7 Summary 1115
Exercises 1117
Bibliographical Notes 1119
PART NINE CASE STUDIES
Chapter 27 PostgreSQL
27.1 Introduction 1123
27.2 User Interfaces 1124
27.3 SQL Variations and Extensions 1126
27.4 Transaction Management in
PostgreSQL 1137
27.5 Storage and Indexing 1146
27.6 Query Processing and
Optimization 1151
27.7 System Architecture 1154
Bibliographical Notes 1155
Chapter 28 Oracle
28.1 Database Design and Querying
Tools 1157
28.2 SQL Variations and Extensions 1158
28.3 Storage and Indexing 1162
28.4 Query Processing and
Optimization 1172
28.5 Concurrency Control and
Recovery 1180
28.6 System Architecture 1183
28.7 Replication, Distribution, and External
Data 1188
28.8 Database Administration Tools 1189
28.9 Data Mining 1191
Bibliographical Notes 1191
8. xii Contents
Chapter 29 IBM DB2 Universal Database
29.1 Overview 1193
29.2 Database-Design Tools 1194
29.3 SQL Variations and Extensions 1195
29.4 Storage and Indexing 1200
29.5 Multidimensional Clustering 1203
29.6 Query Processing and
Optimization 1207
29.7 Materialized Query Tables 1212
29.8 Autonomic Features in DB2 1214
29.9 Tools and Utilities 1215
29.10 Concurrency Control and
Recovery 1217
29.11 System Architecture 1219
29.12 Replication, Distribution, and External
Data 1220
29.13 Business Intelligence Features 1221
Bibliographical Notes 1222
Chapter 30 Microsoft SQL Server
30.1 Management, Design, and Querying
Tools 1223
30.2 SQL Variations and Extensions 1228
30.3 Storage and Indexing 1233
30.4 Query Processing and
Optimization 1236
30.5 Concurrency and Recovery 1241
30.6 System Architecture 1246
30.7 Data Access 1248
30.8 Distributed Heterogeneous Query
Processing 1250
30.9 Replication 1251
30.10 Server Programming in .NET 1253
30.11 XML Support 1258
30.12 SQL Server Service Broker 1261
30.13 Business Intelligence 1263
Bibliographical Notes 1267
PART TEN APPENDICES
Appendix A Detailed University Schema
A.1 Full Schema 1271
A.2 DDL 1272
A.3 Sample Data 1276
Appendix B Advanced Relational Design (contents online)
B.1 Multivalued Dependencies B1
B.3 Domain-Key Normal Form B8
B.4 Summary B10
Exercises B10
Bibliographical Notes B12
Appendix C Other Relational Query Languages (contents online)
C.1 Query-by-Example C1
C.2 Microsoft Access C9
C.3 Datalog C11
C.4 Summary C25
Exercises C26
Bibliographical Notes C30
9. Contents xiii
Appendix D Network Model (contents online)
D.1 Basic Concepts D1
D.2 Data-Structure Diagrams D2
D.3 The DBTG CODASYL Model D7
D.4 DBTG Data-Retrieval Facility D13
D.5 DBTG Update Facility D20
D.6 DBTG Set-Processing Facility D22
D.7 Mapping of Networks to Files D27
D.8 Summary D31
Exercises D32
Bibliographical Notes D35
Appendix E Hierarchical Model (contents online)
E.1 Basic Concepts E1
E.2 Tree-Structure Diagrams E2
E.3 Data-Retrieval Facility E13
E.4 Update Facility E17
E.5 Virtual Records E20
E.6 Mapping of Hierarchies to Files E22
E.7 The IMS Database System E24
E.8 Summary E25
Exercises E26
Bibliographical Notes E29
Bibliography 1283
Index 1315
11. Preface
Database management has evolved from a specialized computer application to a
central component of a modern computing environment, and, as a result, knowl-
edge about database systems has become an essential part of an education in
computer science. In this text, we present the fundamental concepts of database
management. These concepts include aspects of database design, database lan-
guages, and database-system implementation.
This text is intended for a first course in databases at the junior or senior
undergraduate, or first-year graduate, level. In addition to basic material for
a first course, the text contains advanced material that can be used for course
supplements, or as introductory material for an advanced course.
We assume only a familiarity with basic data structures, computer organi-
zation, and a high-level programming language such as Java, C, or Pascal. We
present concepts as intuitive descriptions, many of which are based on our run-
ning example of a university. Important theoretical results are covered, but formal
proofs are omitted. In place of proofs, figures and examples are used to suggest
why a result is true. Formal descriptions and proofs of theoretical results may
be found in research papers and advanced texts that are referenced in the biblio-
graphical notes.
The fundamental concepts and algorithms covered in the book are often
based on those used in existing commercial or experimental database systems.
Our aim is to present these concepts and algorithms in a general setting that is
not tied to one particular database system. Details of particular database systems
are discussed in Part 9, “Case Studies.”
In this, the sixth edition of Database System Concepts, we have retained the
overall style of the prior editions while evolving the content and organization to
reflect the changes that are occurring in the way databases are designed, managed,
and used. We have also taken into account trends in the teaching of database
concepts and made adaptations to facilitate these trends where appropriate.
xv
12. Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
13. xvi Preface
Organization
The text is organized in nine major parts, plus five appendices.
• Overview (Chapter 1). Chapter 1 provides a general overview of the nature
and purpose of database systems. We explain how the concept of a database
system has developed, what the common features of database systems are,
what a database system does for the user, and how a database system in-
terfaces with operating systems. We also introduce an example database
application: a university organization consisting of multiple departments,
instructors, students, and courses. This application is used as a running ex-
ample throughout the book. This chapter is motivational, historical, and ex-
planatory in nature.
• Part 1: Relational Databases (Chapters 2 through 6). Chapter 2 introduces
the relational model of data, covering basic concepts such as the structure
of relational databases, database schemas, keys, schema diagrams, relational
query languages, and relational operations. Chapters 3, 4, and 5 focus on the
most influential of the user-oriented relational languages: SQL. Chapter 6 cov-
ers the formal relational query languages: relational algebra, tuple relational
calculus, and domain relational calculus.
The chapters in this part describe data manipulation: queries, updates, in-
sertions, and deletions, assuming a schema design has been provided. Schema
design issues are deferred to Part 2.
• Part 2: Database Design (Chapters 7 through 9). Chapter 7 provides an
overview of the database-design process, with major emphasis on database
design using the entity-relationship data model. The entity-relationship data
model provides a high-level view of the issues in database design, and of the
problems that we encounter in capturing the semantics of realistic applica-
tions within the constraints of a data model. UML class-diagram notation is
also covered in this chapter.
Chapter 8 introduces the theory of relational database design. The the-
ory of functional dependencies and normalization is covered, with emphasis
on the motivation and intuitive understanding of each normal form. This
chapter begins with an overview of relational design and relies on an intu-
itive understanding of logical implication of functional dependencies. This
allows the concept of normalization to be introduced prior to full coverage
of functional-dependency theory, which is presented later in the chapter. In-
structors may choose to use only this initial coverage in Sections 8.1 through
8.3 without loss of continuity. Instructors covering the entire chapter will ben-
efit from students having a good understanding of normalization concepts to
motivate some of the challenging concepts of functional-dependency theory.
Chapter 9 covers application design and development. This chapter empha-
sizes the construction of database applications with Web-based interfaces. In
addition, the chapter covers application security.
14. Preface xvii
• Part 3: Data Storage and Querying (Chapters 10 through 13). Chapter 10
deals with storage devices, files, and data-storage structures. A variety of
data-access techniques are presented in Chapter 11, including B+
-tree indices
and hashing. Chapters 12 and 13 address query-evaluation algorithms and
query optimization. These chapters provide an understanding of the internals
of the storage and retrieval components of a database.
• Part 4: Transaction Management (Chapters 14 through 16). Chapter 14 fo-
cuses on the fundamentals of a transaction-processing system: atomicity,
consistency, isolation, and durability. It provides an overview of the methods
used to ensure these properties, including locking and snapshot isolation.
Chapter 15 focuses on concurrency control and presents several techniques
for ensuring serializability, including locking, timestamping, and optimistic
(validation) techniques. The chapter also covers deadlock issues. Alterna-
tives to serializability are covered, most notably the widely-used snapshot
isolation, which is discussed in detail.
Chapter 16 covers the primary techniques for ensuring correct transac-
tion execution despite system crashes and storage failures. These techniques
include logs, checkpoints, and database dumps. The widely-used ARIES al-
gorithm is presented.
• Part 5: System Architecture (Chapters 17 through 19). Chapter 17 covers
computer-system architecture, and describes the influence of the underly-
ing computer system on the database system. We discuss centralized sys-
tems, client–server systems, and parallel and distributed architectures in this
chapter.
Chapter 18, on parallel databases, explores a variety of parallelization
techniques, including I/O parallelism, interquery and intraquery parallelism,
and interoperation and intraoperation parallelism. The chapter also describes
parallel-system design.
Chapter 19 covers distributed database systems, revisiting the issues
of database design, transaction management, and query evaluation and op-
timization, in the context of distributed databases. The chapter also cov-
ers issues of system availability during failures, heterogeneous distributed
databases, cloud-based databases, and distributed directory systems.
• Part 6: Data Warehousing, Data Mining, and Information Retrieval (Chap-
ters 20 and 21). Chapter 20 introduces the concepts of data warehousing
and data mining. Chapter 21 describes information-retrieval techniques for
querying textual data, including hyperlink-based techniques used in Web
search engines.
Part 6 uses the modeling and language concepts from Parts 1 and 2, but
does not depend on Parts 3, 4, or 5. It can therefore be incorporated easily
into a course that focuses on SQL and on database design.
15. xviii Preface
• Part 7: Specialty Databases (Chapters 22 and 23). Chapter 22 covers object-
based databases. The chapter describes the object-relational data model,
which extends the relational data model to support complex data types, type
inheritance, and object identity. The chapter also describes database access
from object-oriented programming languages.
Chapter 23 covers the XML standard for data representation, which is seeing
increasing use in the exchange and storage of complex data. The chapter also
describes query languages for XML.
• Part 8: Advanced Topics (Chapters 24 through 26). Chapter 24 covers ad-
vanced issues in application development, including performance tuning,
performance benchmarks, database-application testing, and standardization.
Chapter 25 covers spatial and geographic data, temporal data, multimedia
data, and issues in the management of mobile and personal databases.
Finally, Chapter 26 deals with advanced transaction processing. Top-
ics covered in the chapter include transaction-processing monitors, transac-
tional workflows, electronic commerce, high-performance transaction sys-
tems, real-time transaction systems, and long-duration transactions.
• Part 9: Case Studies (Chapters 27 through 30). In this part, we present case
studies of four of the leading database systems, PostgreSQL, Oracle, IBM DB2,
and Microsoft SQL Server. These chapters outline unique features of each of
these systems, and describe their internal structure. They provide a wealth of
interesting information about the respective products, and help you see how
the various implementation techniques described in earlier parts are used
in real systems. They also cover several interesting practical aspects in the
design of real systems.
• Appendices. We provide five appendices that cover material that is of histor-
ical nature or is advanced; these appendices are available only online on the
Web site of the book (http://www.db-book.com). An exception is Appendix A,
which presents details of our university schema including the full schema,
DDL, and all the tables. This appendix appears in the actual text.
Appendix B describes other relational query languages, including QBE
Microsoft Access, and Datalog.
Appendix C describes advanced relational database design, including the
theory of multivalued dependencies, join dependencies, and the project-join
and domain-key normal forms. This appendix is for the benefit of individuals
who wish to study the theory of relational database design in more detail,
and instructors who wish to do so in their courses. This appendix, too, is
available only online, on the Web site of the book.
Although most new database applications use either the relational model
or the object-relational model, the network and hierarchical data models are
still in use in some legacy applications. For the benefit of readers who wish to
learn about these data models, we provide appendices describing the network
and hierarchical data models, in Appendices D and E respectively.
16. Preface xix
The Sixth Edition
The production of this sixth edition has been guided by the many comments and
suggestions we received concerning the earlier editions, by our own observations
while teaching at Yale University, Lehigh University, and IIT Bombay, and by our
analysis of the directions in which database technology is evolving.
We have replaced the earlier running example of bank enterprise with a uni-
versity example. This example has an immediate intuitive connection to students
that assists not only in remembering the example, but, more importantly, in gain-
ing deeper insight into the various design decisions that need to be made.
We have reorganized the book so as to collect all of our SQL coverage together
and place it early in the book. Chapters 3, 4, and 5 present complete SQL coverage.
Chapter 3 presents the basics of the language, with more advanced features in
Chapter 4. In Chapter 5, we present JDBC along with other means of accessing
SQL from a general-purpose programming language. We present triggers and re-
cursion, and then conclude with coverage of online analytic processing (OLAP).
Introductory courses may choose to cover only certain sections of Chapter 5 or
defer sections until after the coverage of database design without loss of continu-
ity.
Beyond these two major changes, we revised the material in each chapter,
bringing the older material up-to-date, adding discussions on recent develop-
ments in database technology, and improving descriptions of topics that students
found difficult to understand. We have also added new exercises and updated
references. The list of specific changes includes the following:
• Earlier coverage of SQL. Many instructors use SQL as a key component of term
projects (see our Web site, www.db-book.com, for sample projects). In order to
give students ample time for the projects, particularly for universities and
colleges on the quarter system, it is essential to teach SQL as early as possible.
With this in mind, we have undertaken several changes in organization:
◦ A new chapter on the relational model (Chapter 2) precedes SQL, laying
the conceptual foundation, without getting lost in details of relational
algebra.
◦ Chapters 3, 4, and 5 provide detailed coverage of SQL. These chapters also
discuss variants supported by different database systems, to minimize
problems that students face when they execute queries on actual database
systems. These chapters cover all aspects of SQL, including queries, data
definition, constraint specification, OLAP, and the use of SQL from within
a variety of languages, including Java/JDBC.
◦ Formal languages (Chapter 6) have been postponed to after SQL, and can
be omitted without affecting the sequencing of other chapters. Only our
discussion of query optimization in Chapter 13 depends on the relational
algebra coverage of Chapter 6.
17. xx Preface
• New database schema. We adopted a new schema, which is based on uni-
versity data, as a running example throughout the book. This schema is
more intuitive and motivating for students than the earlier bank schema, and
illustrates more complex design trade-offs in the database-design chapters.
• More support for a hands-on student experience. To facilitate following
our running example, we list the database schema and the sample relation
instances for our university database together in Appendix A as well as
where they are used in the various regular chapters. In addition, we provide,
on our Web site http://www.db-book.com, SQL data-definition statements for the
entire example, along with SQL statements to create our example relation
instances. This encourages students to run example queries directly on a
database system and to experiment with modifying those queries.
• Revised coverage of E-R model. The E-R diagram notation in Chapter 7 has
been modified to make it more compatible with UML. The chapter also makes
good use of the new university database schema to illustrate more complex
design trade-offs.
• Revised coverage of relational design. Chapter 8 now has a more readable
style, providing an intuitive understanding of functional dependencies and
normalization, before covering functional dependency theory; the theory is
motivated much better as a result.
• Expanded material on application development and security. Chapter 9 has
new material on application development, mirroring rapid changes in the
field. In particular, coverage of security has been expanded, considering its
criticality in today’s interconnected world, with an emphasis on practical
issues over abstract concepts.
• Revised and updated coverage of data storage, indexing and query op-
timization. Chapter 10 has been updated with new technology, including
expanded coverage of flash memory.
Coverage of B+
-trees in Chapter 11 has been revised to reflect practical
implementations, including coverage of bulk loading, and the presentation
has been improved. The B+
-tree examples in Chapter 11 have now been
revised with n = 4, to avoid the special case of empty nodes that arises with
the (unrealistic) value of n = 3.
Chapter 13 has new material on advanced query-optimization techniques.
• Revised coverage of transaction management. Chapter 14 provides full cov-
erage of the basics for an introductory course, with advanced details follow-
ing in Chapters 15 and 16. Chapter 14 has been expanded to cover the practical
issues in transaction management faced by database users and database-
application developers. The chapter also includes an expanded overview of
topics covered in Chapters 15 and 16, ensuring that even if Chapters 15 and 16
are omitted, students have a basic knowledge of the concepts of concurrency
control and recovery.
18. Preface xxi
Chapters 14 and 15 now include detailed coverage of snapshot isolation,
which is widely supported and used today, including coverage of potential
hazards when using it.
Chapter 16 now has a simplified description of basic log-based recovery
leading up to coverage of the ARIES algorithm.
• Revised and expanded coverage of distributed databases. We now cover
cloud data storage, which is gaining significant interest for business appli-
cations. Cloud storage offers enterprises opportunities for improved cost-
management and increased storage scalability, particularly for Web-based
applications. We examine those advantages along with the potential draw-
backs and risks.
Multidatabases, which were earlier in the advanced transaction processing
chapter, are now covered earlier as part of the distributed database chapter.
• Postponed coverage of object databases and XML. Although object-oriented
languages and XML are widely used outside of databases, their use in data-
bases is still limited, making them appropriate for more advanced courses,
or as supplementary material for an introductory course. These topics have
therefore been moved to later in the book, in Chapters 22 and 23.
• QBE, Microsoft Access, and Datalog in an online appendix. These topics,
which were earlier part of a chapter on “other relational languages,” are now
covered in online Appendix C.
All topics not listed above are updated from the fifth edition, though their overall
organization is relatively unchanged.
Review Material and Exercises
Each chapter has a list of review terms, in addition to a summary, which can help
readers review key topics covered in the chapter.
The exercises are divided into two sets: practice exercises and exercises. The
solutions for the practice exercises are publicly available on the Web site of the
book. Students are encouraged to solve the practice exercises on their own, and
later use the solutions on the Web site to check their own solutions. Solutions
to the other exercises are available only to instructors (see “Instructor’s Note,”
below, for information on how to get the solutions).
Many chapters have a tools section at the end of the chapter that provides
information on software tools related to the topic of the chapter; some of these
tools can be used for laboratory exercises. SQL DDL and sample data for the
university database and other relations used in the exercises are available on the
Web site of the book, and can be used for laboratory exercises.
19. xxii Preface
Instructor’s Note
The book contains both basic and advanced material, which might not be cov-
ered in a single semester. We have marked several sections as advanced, using
the symbol “**”. These sections may be omitted if so desired, without a loss of
continuity. Exercises that are difficult (and can be omitted) are also marked using
the symbol “**”.
It is possible to design courses by using various subsets of the chapters. Some
of the chapters can also be covered in an order different from their order in the
book. We outline some of the possibilities here:
• Chapter 5 (Advanced SQL) can be skipped or deferred to later without loss of
continuity. We expect most courses will cover at least Section 5.1.1 early, as
JDBC is likely to be a useful tool in student projects.
• Chapter 6 (Formal Relational Query Languages) can be covered immediately
after Chapter 2, ahead of SQL. Alternatively, this chapter may be omitted from
an introductory course.
We recommend covering Section 6.1 (relational algebra) if the course also
covers query processing. However, Sections 6.2 and 6.3 can be omitted if
students will not be using relational calculus as part of the course.
• Chapter 7 (E-R Model) can be covered ahead of Chapters 3, 4 and 5 if you so
desire, since Chapter 7 does not have any dependency on SQL.
• Chapter 13 (Query Optimization) can be omitted from an introductory course
without affecting coverage of any other chapter.
• Both our coverage of transaction processing (Chapters 14 through 16) and
our coverage of system architecture (Chapters 17 through 19) consist of an
overview chapter (Chapters 14 and 17, respectively), followed by chapters
with details. You might choose to use Chapters 14 and 17, while omitting
Chapters 15, 16, 18 and 19, if you defer these latter chapters to an advanced
course.
• Chapters 20 and 21, covering data warehousing, data mining, and informa-
tion retrieval, can be used as self-study material or omitted from an introduc-
tory course.
• Chapters 22 (Object-Based Databases), and 23 (XML) can be omitted from an
introductory course.
• Chapters 24 through 26, covering advanced application development, spatial,
temporal and mobile data, and advanced transaction processing, are suitable
for an advanced course or for self-study by students.
• The case-study Chapters 27 through 30 are suitable for self-study by students.
Alternatively, they can be used as an illustration of concepts when the earlier
chapters are presented in class.
Model course syllabi, based on the text, can be found on the Web site of the book.
20. Preface xxiii
Web Site and Teaching Supplements
A Web site for the book is available at the URL: http://www.db-book.com. The Web
site contains:
• Slides covering all the chapters of the book.
• Answers to the practice exercises.
• The five appendices.
• An up-to-date errata list.
• Laboratory material, including SQL DDL and sample data for the university
schema and other relations used in exercises, and instructions for setting up
and using various database systems and tools.
The following additional material is available only to faculty:
• An instructor manual containing solutions to all exercises in the book.
• A question bank containing extra exercises.
For more information about how to get a copy of the instructor manual and the
question bank, please send electronic mail to customer.service@mcgraw-hill.com.
In the United States, you may call 800-338-3987. The McGraw-Hill Web site for
this book is http://www.mhhe.com/silberschatz.
Contacting Us
We have endeavored to eliminate typos, bugs, and the like from the text. But, as
in new releases of software, bugs almost surely remain; an up-to-date errata list
is accessible from the book’s Web site. We would appreciate it if you would notify
us of any errors or omissions in the book that are not on the current list of errata.
We would be glad to receive suggestions on improvements to the book. We
also welcome any contributions to the book Web site that could be of use to
other readers, such as programming exercises, project suggestions, online labs
and tutorials, and teaching tips.
Email should be addressed to db-book-authors@cs.yale.edu. Any other corre-
spondence should be sent to Avi Silberschatz, Department of Computer Science,
Yale University, 51 Prospect Street, P.O. Box 208285, New Haven, CT 06520-8285
USA.
Acknowledgments
Many people have helped us with this sixth edition, as well as with the previous
five editions from which it is derived.
21. xxiv Preface
Sixth Edition
• Anastassia Ailamaki, Sailesh Krishnamurthy, Spiros Papadimitriou, and
Bianca Schroeder (Carnegie Mellon University) for writing Chapter 27 de-
scribing the PostgreSQL database system.
• Hakan Jakobsson (Oracle), for writing Chapter 28 on the Oracle database
system.
• Sriram Padmanabhan (IBM), for writing Chapter 29 describing the IBM DB2
database system.
• Sameet Agarwal, José A. Blakeley, Thierry D’Hers, Gerald Hinson, Dirk My-
ers, Vaqar Pirzada, Bill Ramos, Balaji Rathakrishnan, Michael Rys, Florian
Waas, and Michael Zwilling (all of Microsoft) for writing Chapter 30 de-
scribing the Microsoft SQL Server database system, and in particular José
Blakeley for coordinating and editing the chapter; César Galindo-Legaria,
Goetz Graefe, Kalen Delaney, and Thomas Casey (all of Microsoft) for their
contributions to the previous edition of the Microsoft SQL Server chapter.
• Daniel Abadi for reviewing the table of contents of the fifth edition and
helping with the new organization.
• Steve Dolins, University of Florida; Rolando Fernanez, George Washington
University; Frantisek Franek, McMaster University; Latifur Khan, University
of Texas - Dallas; Sanjay Madria, University of Missouri - Rolla; Aris Ouksel,
University of Illinois; and Richard Snodgrass, University of Waterloo; who
served as reviewers of the book and whose comments helped us greatly in
formulating this sixth edition.
• Judi Paige for her help in generating figures and presentation slides.
• Mark Wogahn for making sure that the software to produce the book, includ-
ing LaTeX macros and fonts, worked properly.
• N. L. Sarda for feedback that helped us improve several chapters, in particular
Chapter 11; Vikram Pudi for motivating us to replace the earlier bank schema;
and Shetal Shah for feedback on several chapters.
• Students at Yale, Lehigh, and IIT Bombay, for their comments on the fifth
edition, as well as on preprints of the sixth edition.
Previous Editions
• Chen Li and Sharad Mehrotra for providing material on JDBC and security
for the fifth edition.
• Marilyn Turnamian and Nandprasad Joshi provided secretarial assistance for
the fifth edition, and Marilyn also prepared an early draft of the cover design
for the fifth edition.
22. Preface xxv
• Lyn Dupré copyedited the third edition and Sara Strandtman edited the text
of the third edition.
• Nilesh Dalvi, Sumit Sanghai, Gaurav Bhalotia, Arvind Hulgeri K. V. Ragha-
van, Prateek Kapadia, Sara Strandtman, Greg Speegle, and Dawn Bezviner
helped to prepare the instructor’s manual for earlier editions.
• The idea of using ships as part of the cover concept was originally suggested
to us by Bruce Stephan.
• The following people pointed out errors in the fifth edition: Alex Coman,
Ravindra Guravannavar, Arvind Hulgeri, Rohit Kulshreshtha, Sang-Won
Lee, Joe H. C. Lu, Alex N. Napitupulu, H. K. Park, Jian Pei, Fernando Saenz
Perez, Donnie Pinkston, Yma Pinto, Rajarshi Rakshit, Sandeep Satpal, Amon
Seagull, Barry Soroka, Praveen Ranjan Srivastava, Hans Svensson, Moritz
Wiese, and Eyob Delele Yirdaw.
• The following people offered suggestions and comments for the fifth and ear-
lier editions of the book. R. B. Abhyankar, Hani Abu-Salem, Jamel R. Alsab-
bagh, Raj Ashar, Don Batory, Phil Bernhard, Christian Breimann, Gavin M.
Bierman, Janek Bogucki, Haran Boral, Paul Bourgeois, Phil Bohannon, Robert
Brazile, Yuri Breitbart, Ramzi Bualuan, Michael Carey, Soumen Chakrabarti,
Tom Chappell, Zhengxin Chen, Y. C. Chin, Jan Chomicki, Laurens Damen,
Prasanna Dhandapani, Qin Ding, Valentin Dinu, J. Edwards, Christos Falout-
sos, Homma Farian, Alan Fekete, Frantisek Franek, Shashi Gadia, Hector
Garcia-Molina, Goetz Graefe, Jim Gray, Le Gruenwald, Eitan M. Gurari,
William Hankley, Bruce Hillyer, Ron Hitchens, Chad Hogg, Arvind Hulgeri,
Yannis Ioannidis, Zheng Jiaping, Randy M. Kaplan, Graham J. L. Kemp, Rami
Khouri, Hyoung-Joo Kim, Won Kim, Henry Korth (father of Henry F.), Carol
Kroll, Hae Choon Lee, Sang-Won Lee, Irwin Levinstein, Mark Llewellyn,
Gary Lindstrom, Ling Liu, Dave Maier, Keith Marzullo, Marty Maskarinec,
Fletcher Mattox, Sharad Mehrotra, Jim Melton, Alberto Mendelzon, Ami
Motro, Bhagirath Narahari, Yiu-Kai Dennis Ng, Thanh-Duy Nguyen, Anil
Nigam, Cyril Orji, Meral Ozsoyoglu, D. B. Phatak, Juan Altmayer Pizzorno,
Bruce Porter, Sunil Prabhakar, Jim Peterson, K. V. Raghavan, Nahid Rahman,
Rajarshi Rakshit, Krithi Ramamritham, Mike Reiter, Greg Riccardi, Odinaldo
Rodriguez, Mark Roth, Marek Rusinkiewicz, Michael Rys, Sunita Sarawagi,
N. L. Sarda, Patrick Schmid, Nikhil Sethi, S. Seshadri, Stewart Shen, Shashi
Shekhar, Amit Sheth, Max Smolens, Nandit Soparkar, Greg Speegle, Jeff
Storey, Dilys Thomas, Prem Thomas, Tim Wahls, Anita Whitehall, Christo-
pher Wilson, Marianne Winslett, Weining Zhang, and Liu Zhenming.
Book Production
The publisher was Raghu Srinivasan. The developmental editor was Melinda
D. Bilecki. The project manager was Melissa Leick. The marketing manager was
23. Visit https://ebookmass.com today to explore
a vast collection of ebooks across various
genres, available in popular formats like
PDF, EPUB, and MOBI, fully compatible with
all devices. Enjoy a seamless reading
experience and effortlessly download high-
quality materials in just a few simple steps.
Plus, don’t miss out on exciting offers that
let you access a wealth of knowledge at the
best prices!
25. so she can’t fall off without my knowing it.” “Oh, you poor silly!” said
the gentleman, “you should cut the grass and throw it down to the
cow!” But the woman thought it was easier to get the cow up the
ladder than to get the grass down, so she pushed her and coaxed
her and got her up, and tied a string round her neck, and passed it
down the chimney, and fastened it to her own wrist. And the
gentleman went on his way, but he hadn’t gone far when the cow
tumbled off the roof, and hung by the string tied round her neck,
and it strangled her. And the weight of the cow tied to her wrist
pulled the woman up the chimney, and she stuck fast half-way and
was smothered in the soot.
Well, that was one big silly.
And the gentleman went on and on, and he went to an inn to stop
the night, and they were so full at the inn that they had to put him
in a double-bedded room, and another traveler was to sleep in the
other bed. The other man was a very pleasant fellow, and they got
very friendly together; but in the morning, when they were both
getting up, the gentleman was surprised to see the other hang his
trousers on the knobs of the chest of drawers and run across the
room and try to jump into them, and he tried over and over again,
and couldn’t manage it; and the gentleman wondered whatever he
was doing it for. At last he stopped and wiped his face with his
handkerchief. “Oh, dear,” he says, “I do think trousers are the most
awkwardest kind of clothes that ever were. I can’t think who could
have invented such things. It takes me the best part of an hour to
get into mine every morning, and I get so hot! How do you manage
yours?” So the gentleman burst out a-laughing, and showed him
how to put them on; and he was very much obliged to him, and said
he never should have thought of doing it that way.
So that was another big silly.
Then the gentleman went on his travels again; and he came to a
village, and outside the village there was a pond, and round the
pond was a crowd of people. And they had got rakes, and brooms,
and pitchforks, reaching into the pond; and the gentleman asked
26. what was the matter. “Why,” they said, “matter enough! Moon’s
tumbled into the pond, and we can’t rake her out anyhow!” So the
gentleman burst out a-laughing, and told them to look up into the
sky, and that it was only the shadow in the water. But they wouldn’t
listen to him, and abused him shamefully, and he got away as quick
as he could.
So there was a whole lot of sillies bigger than those three sillies at
home. So the gentleman turned back home again and married the
farmer’s daughter, and if they didn’t live happy forever after, that’s
nothing to do with you or me.
27. “P
The Cat and the Mouse
The Cat and the Mouse
Played in the malt-house.
The Cat bit the Mouse’s tail off.
ray, puss,” said the Mouse, “give me my long tail again.”
“No,” said the Cat, “I’ll not give you your tail again till you go
to the cow and fetch me some milk.”
First she leaped, and then she ran,
Till she came to the cow, and thus began:
“Pray, cow, give me some milk that I may give to the Cat, so she
may give me my long tail again.”
“No,” said the cow, “I will give you no milk till you go to the farmer
and get me some hay.”
First she leaped, and then she ran,
Till she came to the farmer, and thus began:
“Pray, farmer, give me some hay that I may give to the cow, so she
may give me some milk that I may give to the Cat, so she may give
me my long tail again.”
“No,” says the farmer, “I’ll give you no hay till you go to the butcher
and fetch me some meat.”
28. First she leaped, and then she ran,
Till she came to the butcher, and thus began:
“Pray butcher, give me some meat that I may give to the farmer, so
he may give me some hay that I may give to the cow, so she may
give me some milk that I may give to the Cat, so she may give me
my long tail again.”
“No,” said the butcher, “I’ll give you no meat till you go to the baker
and fetch me some bread.”
First she leaped, and then she ran,
Till she came to the baker, and thus began:
“Pray, baker, give me some bread that I may give to the butcher, so
he may give me some meat that I may give to the farmer, so he may
give me some hay that I may give to the cow, so she may give me
some milk that I may give to the Cat, so she may give me my long
tail again.”
“Yes,” said the baker, “I’ll give you some bread,
But if you eat my meal, I’ll cut off your head.”
The baker gave the Mouse bread, which she brought to the butcher;
the butcher gave the Mouse meat, which she brought to the farmer;
the farmer gave the Mouse hay, which she brought to the cow; the
cow gave the Mouse milk, which she brought to the Cat; and the Cat
gave to the Mouse her long tail again.
29. O
Hereafterthis
nce upon a time there was a farmer called Jan, and he lived all
alone by himself in a little farmhouse.
By and by he thought that he would like to have a wife to keep it all
vitty for him.
So he went a-courting a fine maid, and he said to her: “Will you
marry me?”
“That I will, to be sure,” said she.
So they went to church and were wed. After the wedding was over,
she got up on his horse behind him, and he brought her home. And
they lived as happy as the day was long.
One day Jan said to his wife: “Wife, can you milk-y?”
“Oh, yes, Jan, I can milk-y. Mother used to milk-y when I lived
home.”
So he went to market and bought her ten red cows. All went well till
one day when she had driven them to the pond to drink, she
thought they did not drink fast enough. So she drove them right into
the pond to make them drink faster, and they were all drowned.
When Jan came home she up and told him what she had done, and
he said: “Oh, well, there, never mind, my dear; better luck next
time.”
So they went on for a bit, and then one day Jan said to his wife:
“Wife, can you serve pigs?”
30. “Oh, yes, Jan, I can serve pigs. Mother used to serve pigs when I
lived home.”
So Jan went to market and bought her some pigs. All went well till
one day, when she had put their food into the trough, she thought
they did not eat fast enough, and she pushed their heads into the
trough to make them eat faster, and they were all choked.
When Jan came home she up and told him what she had done, and
he said: “Oh, well, there, never mind, my dear; better luck next
time.”
So they went on for a bit, and then one day Jan said to his wife:
“Wife, can you bake-y?”
“Oh, yes, Jan, I can bake-y. Mother used to bake-y when I lived
home.”
So he bought everything for his wife so that she could bake bread.
All went well for a bit, till one day she thought she would bake white
bread for a treat for Jan. So she carried her meal to the top of a
high hill, and let the wind blow on it, for she thought to herself that
the wind would blow out all the bran. But the wind blew away meal
and bran and all—so there was an end of it.
When Jan came home, she up and told him what she had done, and
he said: “Oh, well, there, never mind, my dear; better luck next
time.”
So they went on for a bit, and then one day Jan said to his wife:
“Wife, can you brew-y?”
“Oh, yes, Jan, I can brew-y. Mother used to brew-y when I lived
home.”
So he bought everything proper for his wife to brew ale with. All
went well for a bit, till one day when she had brewed her ale and
put it in the barrel, a big black dog came in and looked up in her
face. She drove him out of the house, but he stayed outside the
door and still looked up in her face. And she got so angry that she
pulled out the plug of the barrel, threw it at the dog, and said:
31. “What dost look at me for? I be Jan’s wife.” Then the dog ran down
the road, and she ran after him to chase him right away. When she
came back again, she found that the ale had all run out of the
barrel, and so there was an end of it.
When Jan came home, she up and told him what she had done, and
he said: “Oh, well, there, never mind, my dear; better luck next
time.”
So they went on for a bit, and then one day she thought to herself,
“’Tis time to clean up my house.” When she was taking down her big
bed she found a bag of groats on the tester. So when Jan came
home, she up and said to him: “Jan, what is that bag of groats on
the tester for?”
“That is for Hereafterthis, my dear.”
Now, there was a robber outside the window, and he heard what Jan
said. Next day, he waited till Jan had gone to market, and then he
came and knocked at the door. “What do you please to want?” said
Mally.
“I am Hereafterthis,” said the robber. “I have come for the bag of
groats.”
Now the robber was dressed like a fine gentleman, so she thought
to herself it was very kind of so fine a man to come for the bag of
groats, so she ran up-stairs and fetched the bag of groats, and gave
it to the robber and he went away with it.
When Jan came home she said to him: “Jan, Hereafterthis has been
for the bag of groats.”
“What do you mean, wife?” said Jan.
So she up and told him, and he said: “Then I’m a ruined man, for
that money was to pay our rent with. The only thing we can do is to
roam the world over till we find the bag of groats.” Then Jan took
the house-door off its hinges, “That’s all we shall have to lie on,” he
said. So Jan put the door on his back, and they both set out to look
for Hereafterthis. Many a long day they went, and in the night Jan
32. used to put the door on the branches of a tree, and they would
sleep on it. One night they came to a big hill, and there was a high
tree at the foot. So Jan put the door up in it, and they got up in the
tree and went to sleep. By and by Jan’s wife heard a noise, and she
looked to see what it was. It was an opening of a door in the side of
the hill. Out came two gentlemen with a long table, and behind
them fine ladies and lords, each carrying a bag, and one of them
was Hereafterthis with the bag of groats. They sat round the table,
and began to drink and talk and count up all the money in the bags.
So then Jan’s wife woke him up, and asked what they should do.
“Now’s our time,” said Jan, and he pushed the door off the branches,
and it fell right in the very middle of the table, and frightened the
robbers so that they all ran away. Then Jan and his wife got down
from the tree, took as many moneybags as they could carry on the
door, and went straight home. And Jan bought his wife more cows,
and more pigs, and they lived happy ever after.
33. Titty Mouse and Tatty Mouse
Titty Mouse and Tatty Mouse both lived in a house,
Titty Mouse went a-leasing and Tatty Mouse went a-leasing,
So they both went a-leasing.
Titty Mouse leased an ear of corn, and Tatty Mouse leased an ear of
corn,
So they both leased an ear of corn.
Titty Mouse made a pudding, and Tatty Mouse made a pudding,
So they both made a pudding.
And Tatty Mouse put her pudding into the pot to boil,
But when Titty went to put hers in, the pot tumbled over, and
scalded her to death.
Then Tatty sat down and wept, and a three-legged stool said: “Tatty,
why do you weep?” “Titty’s dead,” said Tatty, “and so I weep.”
“Then,” said the stool, “I’ll hop.” So the stool hopped.
Then a broom in the corner of the room said: “Stool, why do you
hop?” “Oh!” said the stool, “Titty’s dead, and Tatty weeps, and so I
hop.” “Then,” said the broom, “I’ll sweep.” So the broom began to
sweep.
“Then,” said the door, “Broom, why do you sweep?” “Oh!” said the
broom, “Titty’s dead, and Tatty weeps, and the stool hops, and so I
sweep.” “Then,” said the door, “I’ll jar.” So the door jarred.
“Then,” said the window, “Door, why do you jar?” “Oh!” said the
door, “Titty’s dead, and Tatty weeps, and the stool hops, and the
broom sweeps, and so I jar.”
34. “Then,” said the window, “I’ll creak.” So the window creaked. Now
there was an old form outside the house, and when the window
creaked, the form said: “Window, why do you creak?” “Oh!” said the
window, “Titty’s dead, and Tatty weeps, and the stool hops, and the
broom sweeps, the door jars, and so I creak.”
“Then,” said the old form, “I’ll run round the house.” Then the old
form ran round the house. Now there was a fine large walnut-tree
growing by the cottage, and the tree said to the form: “Form, why
do you run round the house?” “Oh!” said the form, “Titty’s dead, and
Tatty weeps, and the stool hops, and the broom sweeps, the door
jars, and the window creaks, and so I run round the house.”
“Then,” said the walnut-tree, “I’ll shed my leaves.” So the walnut-
tree shed all its beautiful green leaves. Now there was a little bird
perched on one of the boughs of the tree, and when all the leaves
fell, it said: “Walnut-tree, why do you shed your leaves?” “Oh!” said
the tree, “Titty’s dead, and Tatty weeps, the stool hops, and the
broom sweeps, the door jars, and the window creaks, the old form
runs round the house, and so I shed my leaves.”
“Then,” said the little bird, “I’ll moult all my feathers.” So he moulted
all his pretty feathers. Now there was a little girl walking below,
carrying a jug of milk for her brothers’ and sisters’ supper, and when
she saw the poor little bird moult all its feathers, she said: “Little
bird, why do you moult all your feathers?” “Oh!” said the little bird,
“Titty’s dead, and Tatty weeps, the stool hops, and the broom
sweeps, the door jars, and the window creaks, the old form runs
round the house, the walnut-tree sheds its leaves, and so I moult all
my feathers.”
“Then,” said the little girl, “I’ll spill the milk.” So she dropped the
pitcher and spilt the milk. Now there was an old man just by on the
top of a ladder thatching a rick, and when he saw the little girl spill
the milk, he said: “Little girl, what do you mean by spilling the milk?
Your little brothers and sisters must go without their supper.” Then
said the little girl: “Titty’s dead, and Tatty weeps, the stool hops, and
the broom sweeps, the door jars, and the window creaks, the old
35. form runs round the house, the walnut-tree sheds all its leaves, the
little bird moults all its feathers, and so I spill the milk.”
“Oh!” said the old man, “then I’ll tumble off the ladder and break my
neck.” So he tumbled off the ladder and broke his neck; and when
the old man broke his neck, the great walnut-tree fell down with a
crash, and upset the old form and house, and the house falling
knocked the window out, and the window knocked the door down,
and the door upset the broom, and the broom upset the stool, and
poor little Tatty Mouse was buried beneath the ruins.
36. O
The Magpie’s Nest
nce upon a time all the birds of the air came to the Magpie and
asked her to teach them how to build nests, for the Magpie is
the cleverest of all at building. So she put them all around her and
began to show them how to do it. First of all she took some mud
and made a sort of round cake with it.
“Oh, that’s how it’s done,” said the thrush; and away it flew, and so
that’s how thrushes build their nests.
Then the Magpie took some twigs and arranged them around in the
mud.
“Now I know all about it,” said the blackbird, and off he flew; and
that’s how the blackbirds make their nests to this very day.
Then the Magpie put another layer of mud over the twigs.
“Oh, that’s quite obvious,” said the wise owl, and away he flew; and
owls have never made better nests since.
After this the Magpie took some twigs and twined them around the
outside.
“The very thing!” said the sparrow, and off he went; so sparrows
make rather slovenly nests to this day.
Well, then Madge Magpie took some feathers and stuff and lined the
nest very comfortably with it.
“That suits me,” cried the starling, and off he flew; and very
comfortable nests have starlings.
37. So it went on, every bird taking away some knowledge of how to
build nests, but none of them waiting to the end. Meanwhile Madge
Magpie went on working and working without looking up till the only
bird that remained was the turtle-dove, and that hadn’t paid any
attention all along, but only kept on saying its silly cry: “Take two,
Taffy, take two-o-o-o.”
At last the Magpie heard this just as she was putting a twig across.
So she said: “One’s enough.”
But the turtle-dove kept on saying: “Take two, Taffy, take two-o-o-o.”
Then the Magpie grew angry and said: “One’s enough, I tell you.”
Still the turtle-dove cried: “Take two, Taffy, take two-o-o-o.”
At last, and at last, the Magpie looked up and saw nobody near her
but the silly turtle-dove, and then she grew very angry and refused
to teach any more.
And that is why all the birds build their nests in different ways up to
this day. Each one made off, you see, as soon as he thought he had
learned the Magpie’s secret, and each is perfectly contented with his
own way.
38. O
Scrapefoot
nce upon a time, there were three bears who lived in a castle in
a great wood. One of them was a great big bear, and one was a
middling bear, and one was a little bear. And in the same wood there
was a fox who lived all alone. His name was Scrapefoot. Scrapefoot
was very much afraid of the bears, but for all that he wanted very
much to know about them. And one day as he went through the
wood he found himself near the bears’ castle, and he wondered
whether he could get into the castle. He looked all about him
everywhere, and he could not see any one. So he came on very
quietly, till at last he came up to the door of the castle, and he tried
whether he could open it. Yes! the door was not locked, and he
opened it just a little way, and put his nose in and looked, and he
could not see any one. So then he opened it a little way farther, and
put one paw in, and then another paw, and another, and another,
and then he was all in the bears’ castle. He found he was in a great
hall with three chairs in it—one big, one middling, and one little
chair; and he thought he would like to sit down and rest and look
about him; so he sat down on the big chair. But he found it so hard
and uncomfortable that it made his bones ache, and he jumped
down at once and got into the middling chair, and he turned round
and round in it, but he couldn’t make himself comfortable. So then
he went to the little chair and sat down in it, and it was so soft and
warm and comfortable that Scrapefoot was quite happy; but all at
once it broke to pieces under him and he couldn’t put it together
again! So he got up and began to look about him again, and on one
table he saw three saucers, of which one was very big, one was
middling, and one was quite a little saucer. Scrapefoot was very
39. thirsty, and he began to drink out of the big saucer. But he only just
tasted the milk in the big saucer, which was so sour and so horrid
that he would not taste another drop of it. Then he tried the
middling saucer, and he drank a little of that. He tried two or three
mouthfuls, but it was not nice, and then he left it and went to the
little saucer, and the milk in the little saucer was so sweet and so
nice that he went on drinking it till it was all gone.
Then Scrapefoot thought he would like to go up-stairs; and he
listened and he could not hear any one. So up-stairs he went, and
he found a great room with three beds in it; one was a big bed, and
one was a middling bed, and one was a little white bed; and he
climbed up into the big bed, but it was so hard and lumpy and
uncomfortable that he jumped down again at once, and tried the
middling bed. That was rather better, but he could not lie
comfortably in it, so after turning about a little while he got up and
went to the little bed; and that was so soft and so warm and so nice
that he fell fast asleep at once.
And after a time the bears came home, and when they got into the
hall the big bear went to his chair and said: “WHO’S BEEN SITTING
IN MY CHAIR?” and the middling bear said: “WHO’S BEEN SITTING IN MY
CHAIR?” and the little bear said: “Who’s been sitting in my chair and
has broken it all to pieces?” And then they went to have their milk,
and the big bear said: “WHO’S BEEN DRINKING MY MILK?” and the
middling bear said: “WHO’S BEEN DRINKING MY MILK?” and the little bear
said: “Who’s been drinking my milk and has drunk it all up?” Then
they went up-stairs and into the bedroom, and the big bear said:
“WHO’S BEEN SLEEPING IN MY BED?” and the middling bear said:
“WHO’S BEEN SLEEPING IN MY BED?” and the little bear said: “Who’s been
sleeping in my bed?—and see, here he is!” So then the bears came
and wondered what they should do with him; and the big bear said:
“Let’s hang him!” and then the middling bear said: “Let’s drown
him!” and then the little bear said: “Let’s throw him out of the
window.” And then the bears took him to the window, and the big
bear took two legs on one side and the middling bear took two legs
on the other side, and they swung him backward and forward,
40. backward and forward, and out of the window. Poor Scrapefoot was
so frightened, and he thought every bone in his body must be
broken. But he got up and first shook one leg—no, that was not
broken; and then another, and that was not broken; and another
and another, and then he wagged his tail and found there were no
bones broken. So then he galloped off home as fast as he could go,
and never went near the bears’ castle again.
42. T
OF BUYING OF SHEEP
here were two men of Gotham, and one of them was going to
market to Nottingham to buy sheep, and the other came from
the market, and they both met together upon Nottingham bridge.
“Where are you going?” said the one who came from Nottingham.
“Marry,” said he that was going to Nottingham, “I am going to buy
sheep.”
“Buy sheep?” said the other, “and which way will you bring them
home?”
“Marry,” said the other, “I will bring them over this bridge.”
“By Robin Hood,” said he that came from Nottingham, “but thou
shalt not.”
“By Maid Marian,” said he that was going thither, “but I will.”
“You will not,” said the one.
“I will,” said the other.
Then they beat their staves against the ground one against the
other, as if there had been a hundred sheep between them.
“Hold in,” said one; “beware lest my sheep leap over the bridge.”
“I care not,” said the other; “they shall not come this way.”
“But they shall,” said the other.
Then the other said: “If that thou make much to do, I will put my
fingers in thy mouth.”
“Will you?” said the other.
Now, as they were at their contention, another man of Gotham came
from the market with a sack of meal upon a horse, and seeing and
43. hearing his neighbors at strife about sheep, though there were none
between them, said:
“Ah, fools! will you ever learn wisdom? Help me, and lay my sack
upon my shoulders.”
They did so, and he went to the side of the bridge, unloosened the
mouth of the sack, and shook all his meal out into the river.
“Now, neighbors,” he said, “how much meal is there in my sack?”
“Marry,” said they, “there is none at all.”
“Now, by my faith,” said he, “even as much wit as is in your two
heads to stir up strife about a thing you have not.”
Which was the wisest of these three persons, judge yourself.
44. OF HEDGING A CUCKOO
Once upon a time the men of Gotham would have kept the cuckoo
so that she might sing all the year, and in the midst of their town
they made a hedge round in compass, and they got a cuckoo, and
put her into it, and said: “Sing there all through the year, or thou
shalt have neither meat nor water.” The cuckoo, as soon as she
perceived herself within the hedge, flew away. “A vengeance on
her!” said they. “We did not make our hedge high enough.”
45. OF SENDING CHEESES
There was a man of Gotham who went to the market at Nottingham
to sell cheese, and as he was going down the hill to Nottingham
bridge, one of his cheeses fell out of his wallet and rolled down the
hill. “Ah, gaffer,” said the fellow, “can you run to market alone? I will
send one after another after you.” Then he laid down his wallet and
took out the cheeses, and rolled them down the hill. Some went into
one bush, and some went into another.
“I charge you all to meet me near the marketplace”; and when the
fellow came to the market to meet his cheeses, he stayed there till
the market was nearly done. Then he went about to inquire of his
friends and neighbors, and other men, if they did see his cheeses
come to the market.
“Who should bring them?” said one of the market-men.
“Marry, themselves,” said the fellow; “they know the way well
enough.”
And then he said: “A vengeance on them all. I did fear to see them
run so fast that they would run beyond the market. I am now fully
persuaded that they must be now almost at York.” Thereupon he
forthwith hired a horse to ride to York, to seek his cheeses where
they were not, but to this day no man can tell him of his cheeses.
46. Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookmasss.com