亚伯拉罕·西尔伯沙茨
(Abraham Silberschatz)
于纽约州立大学石溪分校获得博士学位,现为耶鲁大学计算机科学系Sidney J. Weinberg教授,曾任贝尔实验室信息科学研究中心副主任。他是ACM会士、IEEE 会士以及康涅狄格科学与工程学会的成员,获得了48项专利和24项授权。他还是教科书《操作系统概念》的作者。
亨利·F. 科思
(Henry F. Korth)
于普林斯顿大学获得博士学位,现为理海大学计算机科学与工程系教授和计算机科学与商业项目联合主任,曾任贝尔实验室数据库原理研究中心主任、松下科技副总裁、得克萨斯大学奥斯汀分校副教授以及IBM研究中心研究人员。他是ACM会士、IEEE会士以及VLDB会议10年贡献奖的获得者。他的研究涉及数据库系统的方方面面,近,他的研究致力于解决区块链在企业数据库中的应用问题。
S. 苏达尔尚
(S. Sudarshan)
于威斯康星大学获得博士学位,现为印度理工学院孟买校区Subrao M. Nilekani讲席教授,曾为贝尔实验室技术人员。他是ACM会士,发表了100余篇论文并获得15项专利。他目前的研究领域包括SQL查询的测试和分级、通过重写命令式代码来优化数据库应用程序,以及并行数据库的查询优化。
目錄:
Chapter 1 Introduction 1
1.1 Database-System Applications1
1.2 Purpose of Database Systems5
1.3 View of Data8
1.3.1 Data Models8
1.3.2 Relational Data Model9
1.3.3 Data Abstraction9
1.3.4 Instances and Schemas12
1.4 Database Languages 13
1.4.1 Data-Definition Language 13
1.4.2 The SQL Data-Definition Language 14
1.4.3 Data-Manipulation Language 15
1.4.4 The SQL Data-Manipulation Language 16
1.4.5 Database Access from Application Programs 16
1.5 Database Design 17
1.6 Database Engine 18
1.6.1 Storage Manager 19
1.6.2 The Query Processor 20
1.6.3 Transaction Management 20
1.7 Database and Application Architecture 21
1.8 Database Users and Administrators 23
1.8.1 Database Users and User Interfaces 24
1.8.2 Database Administrator 24
1.9 History of Database Systems 25
1.10 Summary 29
Review Terms 30
Practice Exercises 31
Exercises 32
Tools 33
Further Reading 33
Bibliography 33
PART 1 RELATIONAL LANGUAGES
Chapter 2 Introduction to the Relational Model 37
2.1 Structure of Relational Databases37
2.2 Database Schema41
2.3 Keys43
2.4 Schema Diagrams46
2.5 Relational Query Languages47
2.6 Summary48
Review Terms49
Practice Exercises49
Exercises50
Further Reading51
Bibliography51
Chapter 3 Introduction to SQL 53
3.1 Overview of the SQL Query Language53
3.2 SQL Data Definition54
3.2.1 Basic Types55
3.2.2 Basic Schema Definition 56
3.3 Basic Structure of SQL Queries 59
3.3.1 Queries on a Single Relation 59
3.3.2 Queries on Multiple Relations 62
3.4 Additional Basic Operations 67
3.4.1 The Rename Operation 67
3.4.2 String Operations 70
3.4.3 Attribute Specification in the Select Clause 71
3.4.4 Ordering the Display of Tuples 71
3.4.5 Where-Clause Predicates 72
3.5 Set Operations 73
3.5.1 The Union Operation 74
3.5.2 The Intersect Operation 75
3.5.3 The Except Operation 76
3.6 Null Values 77
3.7 Aggregate Functions 79
3.7.1 Basic Aggregation 79
3.7.2 Aggregation with Grouping 80
3.7.3 The Having Clause 83
3.7.4 Aggregation with Null and Boolean Values 84
3.8 Nested Subqueries 86
3.8.1 Set Membership 86
3.8.2 Set Comparison 87
3.8.3 Test for Empty Relations 89
3.8.4 Test for the Absence of Duplicate Tuples 91
3.8.5 Subqueries in the From Clause 92
3.8.6 The With Clause 93
3.8.7 Scalar Subqueries 94
3.8.8 Scalar Without a From Clause 95
3.9 Modification of the Database 96
3.9.1 Deletion 96
3.9.2 Insertion 98
3.9.3 Updates 99
3.10 Summary 102
Review Terms 103
Practice Exercises 103
Exercises 107
Tools 111
Further Reading 112
Bibliography 112
Chapter 4 Intermediate SQL 113
4.1 Join Expressions113
4.1.1 The Natural Join114
4.1.2 Join Conditions118
4.1.3 Outer Joins119
4.1.4 Join Types and Conditions124
4.2 Views125
4.2.1 View Definition126
4.2.2 Using Views in SQL Queries126
4.2.3 Materialized Views128
4.2.4 Update of a View128
4.3 Transactions131
4.4 Integrity Constraints133
4.4.1 Constraints on a Single Relation134
4.4.2 Not Null Constraint134
4.4.3 Unique Constraint135
4.4.4 The Check Clause135
4.4.5 Referential Integrity137
4.4.6 Assigning Names to Constraints139
4.4.7 Integrity Constraint Violation During a Transaction139
4.4.8 Complex Check Conditions and Assertions 140
4.5 SQL Data Types and Schemas 141
4.5.1 Date and Time Types in SQL 142
4.5.2 Type Conversion and Formatting Functions 143
4.5.3 Default Values 144
4.5.4 Large-Object Types 144
4.5.5 User-Defined Types 146
4.5.6 Generating Unique Key Values 148
4.5.7 Create Table Extensions 150
4.5.8 Schemas, Catalogs, and Environments 150
4.6 Index Definition in SQL 152
4.7 Authorization 153
4.7.1 Granting and Revoking of Privile
內容試閱:
Database management has evolved from a specialized computer application to a central component of a modern computing environment, and, as a result, knowledge about database systems has become an essential part of an education in computer science.
This book is adapted from the seventh edition of Database System Concepts, for a first course in databases at the junior or senior undergraduate level. In this text, we present the fundamental concepts of database management. These concepts include aspects of database design, database languages, and database-system implementation. 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 organization, and a high-level programming language such as Java, C, C , or Python. We present concepts as intuitive descriptions, many of which are based on our running 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 bibliographical 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.
In this adapted text of the seventh edition of Database System Concepts, we have retained essential contents of Database System Concepts, condensed or deleted some of the advanced materials. The purpose is to make this book more suitable for a first course in databases at the undergraduate level. Now we describe organization of this book in brief.
Content of This Book
The text is mainly organized in four parts.
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 interfaces 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 example throughout the book. This chapter is motivational, historical, and explanatory in nature.
Part 1: Relational Languages (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 covers the formal relational query languages: relational algebra, tuple relational calculus, domain relational calculus, and Expressive Power of Pure Relational Query Languages.
The chapters in this part describe data manipulation: queries, updates, insertions, and deletions, assuming a schema design has been provided. Schema design issues are deferred to Part 2.
Part 2: Database Design and Application Development(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 applications within the constraints of a data model. UML class-diagram notation is also covered in this chapter.
Chapter 8 introduces relational database design. The theory of functional dependencies and normalization is covered, with emphasis on the motivation and intuitive understa