A first course in database systems:
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Upper Saddle River, NJ
Pearson Prentice Hall
2008
|
Ausgabe: | 3. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXI, 565 S. graph. Darst. |
ISBN: | 9780136006374 013600637X |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV023333201 | ||
003 | DE-604 | ||
005 | 20080829 | ||
007 | t | ||
008 | 080606s2008 d||| |||| 00||| eng d | ||
020 | |a 9780136006374 |9 978-0-13-600637-4 | ||
020 | |a 013600637X |9 0-13-600637-X | ||
035 | |a (OCoLC)141384629 | ||
035 | |a (DE-599)HBZHT015287644 | ||
040 | |a DE-604 |b ger |e rakwb | ||
041 | 0 | |a eng | |
049 | |a DE-20 | ||
050 | 0 | |a QA76.9.D3 | |
082 | 0 | |a 005.74 |2 22 | |
084 | |a ST 270 |0 (DE-625)143638: |2 rvk | ||
100 | 1 | |a Ullman, Jeffrey D. |d 1942- |e Verfasser |0 (DE-588)123598230 |4 aut | |
245 | 1 | 0 | |a A first course in database systems |c Jeffrey D. Ullman ; Jennifer Widom |
250 | |a 3. ed. | ||
264 | 1 | |a Upper Saddle River, NJ |b Pearson Prentice Hall |c 2008 | |
300 | |a XXI, 565 S. |b graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Administración de Bases de Datos | |
650 | 4 | |a Database management | |
650 | 0 | 7 | |a SQL |0 (DE-588)4134010-3 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Relationales Datenbanksystem |0 (DE-588)4130535-8 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Relationale Datenbank |0 (DE-588)4049358-1 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Datenbanksystem |0 (DE-588)4113276-2 |2 gnd |9 rswk-swf |
655 | 7 | |0 (DE-588)4151278-9 |a Einführung |2 gnd-content | |
689 | 0 | 0 | |a Relationale Datenbank |0 (DE-588)4049358-1 |D s |
689 | 0 | |5 DE-604 | |
689 | 1 | 0 | |a Datenbanksystem |0 (DE-588)4113276-2 |D s |
689 | 1 | 1 | |a SQL |0 (DE-588)4134010-3 |D s |
689 | 1 | |8 1\p |5 DE-604 | |
689 | 2 | 0 | |a Relationales Datenbanksystem |0 (DE-588)4130535-8 |D s |
689 | 2 | |8 2\p |5 DE-604 | |
700 | 1 | |a Widom, Jennifer |e Verfasser |4 aut | |
856 | 4 | 2 | |m HBZ Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016517101&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016517101 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804137684163100672 |
---|---|
adam_text | Table of Contents
The Worlds of Database Systems 1
1.1 The Evolution of Database Systems ................ 1
1.1.1 Early Database Management Systems........... 2
1.1.2 Relational Database Systems................ 3
1.1.3 Smaller and Smaller Systems................ 3
1.1.4 Bigger and Bigger Systems ................. 4
1.1.5 Information Integration................... 4
1.2 Overview of a Database Management System........... 5
1.2.1 Data-Definition Language Commands........... 5
1.2.2 Overview of Query Processing................ 5
1.2.3 Storage and Buffer Management.............. 7
1.2.4 Transaction Processing.................... 8
1.2.5 The Query Processor..................... 9
1.3 Outline of Database-System Studies ................ 10
1.4 References for Chapter 1....................... 12
Relational Database Modeling 15
The Relational Model of Data 17
2.1 An Overview of Data Models.................... 17
2.1.1 What is a Data Model?................... 17
2.1.2 Important Data Models................... 18
2.1.3 The Relational Model in Brief................ 18
2.1.4 The Semistructured Model in Brief............. 19
2.1.5 Other Data Models...................... 20
2.1.6 Comparison of Modeling Approaches............ 21
2.2 Basics of the Relational Model................... 21
2.2.1 Attributes........................... 22
2.2.2 Schemas............................. 22
2.2.3 Tuples............................. 22
2.2.4 Domains............................ 23
2.2.5 Equivalent Representations of a Relation ......... 23
IX
TABLE OF CONTENTS
2.2.6 Relation Instances...................... 24
2.2.7 Keys of Relations....................... 25
2.2.8 An Example Database Schema............... 26
2.2.9 Exercises for Section 2.2................... 28
2.3 Defining a Relation Schema in SQL................. 29
2.3.1 Relations in SQL....................... 29
2.3.2 Data Types.......................... 30
2.3.3 Simple Table Declarations.................. 31
2.3.4 Modifying Relation Schemas ................ 33
, 2.3.5 Default Values........................ 34
2.3.6 Declaring Keys........................ 34
2.3.7 Exercises for Section 2.3................... 36
2.4 An Algebraic Query Language ................... 38
2.4.1 Why Do We Need a Special Query Language?....... 38
2.4.2 What is an Algebra?..................... 38
2.4.3 Overview of Relational Algebra............... 39
2.4.4 Set Operations on Relations................. 39
2.4.5 Projection........................... 41
2.4.6 Selection ........................... 42
2.4.7 Cartesian Product...................... 43
2.4.8 Natural Joins......................... 43
2.4.9 Theta-Joins.......................... 45
2.4.10 Combining Operations to Form Queries.......... 47
2.4.11 Naming and Renaming.................... 49
2.4.12 Relationships Among Operations.............. 50
2.4.13 A Linear Notation for Algebraic Expressions....... 51
2.4.14 Exercises for Section 2.4................... 52
2.5 Constraints on Relations....................... 58
2.5.1 Relational Algebra as a Constraint Language....... 59
2.5.2 Referential Integrity Constraints.............. 59
2.5.3 Key Constraints....................... 60
2.5.4 Additional Constraint Examples.............. 61
2.5.5 Exercises for Section 2.5................... 62
2.6 Summary of Chapter 2........................ 63
2.7 References for Chapter 2....................... 65
Design Theory for Relational Databases 67
3.1 Functional Dependencies....................... 67
3.1.1 Definition of Functional Dependency............ 68
3.1.2 Keys of Relations....................... 70
3.1.3 Superkeys........................... 71
3.1.4 Exercises for Section 3.1................... 71
3.2 Rules About Functional Dependencies............... 72
3.2.1 Reasoning About Functional Dependencies........ 72
3.2.2 The Splitting/Combining Rule............... 73
TABLE OF CONTENTS xi
3.2.3 Trivial Functional Dependencies .............. 74
3.2.4 Computing the Closure of Attributes............ 75
3.2.5 Why the Closure Algorithm Works............. 77
3.2.6 The Transitive Rule..................... 79
3.2.7 Closing Sets of Functional Dependencies.......... 80
3.2.8 Projecting Functional Dependencies............ 81
3.2.9 Exercises for Section 3.2................... 83
3.3 Design of Relational Database Schemas ..............85
3.3.1 Anomalies........................... 86
3.3.2 Decomposing Relations ................... 86
3.3.3 Boyce-Codd Normal Form.................. 88
3.3.4 Decomposition into BCNF.................. 89
3.3.5 Exercises for Section 3.3................... 92
3.4 Decomposition: The Good, Bad, and Ugly............. 93
3.4.1 Recovering Information from a Decomposition ......94
3.4.2 The Chase Test for Lossless Join..............96
3.4.3 Why the Chase Works.................... 99
3.4.4 Dependency Preservation..................100
3.4.5 Exercises for Section 3.4...................102
3.5 Third Normal Form .........................102
3.5.1 Definition of Third Normal Form..............102
3.5.2 The Synthesis Algorithm for 3NF Schemas........103
3.5.3 Why the 3NF Synthesis Algorithm Works.........104
3.5.4 Exercises for Section 3.5...................105
3.6 Multivalued Dependencies......................105
3.6.1 Attribute Independence and Its Consequent Redundancy 106
3.6.2 Definition of Multivalued Dependencies..........107
3.6.3 Reasoning About Multivalued Dependencies........108
3.6.4 Fourth Normal Form.....................110
3.6.5 Decomposition into Fourth Normal Form.........Ill
3.6.6 Relationships Among Normal Forms............113
3.6.7 Exercises for Section 3.6...................113
3.7 An Algorithm for Discovering MVD s ...............115
3.7.1 The Closure and the Chase................. 115
3.7.2 Extending the Chase to MVD s............... 116
3.7.3 Why the Chase Works for MVD s ............. 118
3.7.4 Projecting MVD s...................... 119
3.7.5 Exercises for Section 3.7................... 120
3.8 Summary of Chapter 3........................ 121
3.9 References for Chapter 3....................... 122
xii TABLE OF CONTENTS
4 High-Level Database Models 125
4.1 The Entity/Relationship Model................... 126
4.1.1 Entity Sets.......................... 126
4.1.2 Attributes........................... 126
4.1.3 Relationships......................... 127
4.1.4 Entity-Relationship Diagrams................ 127
4.1.5 Instances of an E/R Diagram................ 128
4.1.6 Multiplicity of Binary E/R Relationships......... 129
4.1.7 Multiway Relationships................... 130
4.1.8 Roles in Relationships.................... 131
4.1.9 Attributes on Relationships................. 134
4.1.10 Converting Multiway Relationships to Binary....... 134
4.1.11 Subclasses in the E/R Model................ 135
4.1.12 Exercises for Section 4.1................... 138
4.2 Design Principles........................... 140
4.2.1 Faithfulness.......................... 140
4.2.2 Avoiding Redundancy.................... 141
4.2.3 Simplicity Counts ...................... 142
4.2.4 Choosing the Right Relationships.............. 142
4.2.5 Picking the Right Kind of Element............. 144
4.2.6 Exercises for Section 4.2................... 145
4.3 Constraints in the E/R Model.................... 148
4.3.1 Keys in the E/R Model................... 148
4.3.2 Representing Keys in the E/R Model ........... 149
4.3.3 Referential Integrity..................... 150
4.3.4 Degree Constraints...................... 151
4.3.5 Exercises for Section 4.3................... 151
4.4 Weak Entity Sets........................... 152
4.4.1 Causes of Weak Entity Sets................. 152
4.4.2 Requirements for Weak Entity Sets............. 153
4.4.3 Weak Entity Set Notation.................. 155
4.4.4 Exercises for Section 4.4................... 156
4.5 From E/R Diagrams to Relational Designs............. 157
4.5.1 From Entity Sets to Relations................ 157
4.5.2 From E/R Relationships to Relations ........... 158
4.5.3 Combining Relations..................... 160
4.5.4 Handling Weak Entity Sets................. 161
4.5.5 Exercises for Section 4.5................... 163
4.6 Converting Subclass Structures to Relations............ 165
4.6.1 E/R-Style Conversion.................... 166
4.6.2 An Object-Oriented Approach............... 167
4.6.3 Using Null Values to Combine Relations.......... 168
4.6.4 Comparison of Approaches ................. 169
4.6.5 Exercises for Section 4.6................... 171
4.7 Unified Modeling Language..................... 171
TABLE OF CONTENTS xiii
4.7.1 UML Classes......................... 172
4.7.2 Keys for UML classes.................... 173
4.7.3 Associations.......................... 173
4.7.4 Self-Associations....................... 175
4.7.5 Association Classes...................... 175
4.7.6 Subclasses in UML...................... 176
4.7.7 Aggregations and Compositions............... 177
4.7.8 Exercises for Section 4.7................... 179
4.8 Prom UML Diagrams to Relations.................179
4.8.1 UML-to-Relations Basics ..................179
4.8.2 Prom UML Subclasses to Relations.............180
4.8.3 Prom Aggregations and Compositions to Relations .... 181
4.8.4 The UML Analog of Weak Entity Sets...........181
4.8.5 Exercises for Section 4.8...................183
4.9 Object Definition Language.....................183
4.9.1 Class Declarations...................... 184
4.9.2 Attributes in ODL...................... 184
4.9.3 Relationships in ODL.................... 185
4.9.4 Inverse Relationships..................... 186
4.9.5 Multiplicity of Relationships ................ 186
4.9.6 Types in ODL ........................ 188
4.9.7 Subclasses in ODL...................... 190
4.9.8 Declaring Keys in ODL................... 191
4.9.9 Exercises for Section 4.9................... 192
4.10 Prom ODL Designs to Relational Designs............. 193
4.10.1 From ODL Classes to Relations...............193
4.10.2 Complex Attributes in Classes ...............194
4.10.3 Representing Set-Valued Attributes . . ..........195
4.10.4 Representing Other Type Constructors...........196
4.10.5 Representing ODL Relationships..............198
4.10.6 Exercises for Section 4.10..................198
4.11 Summary of Chapter 4........................200
4.12 References for Chapter 4.......................202
II Relational Database Programming 203
5 Algebraic and Logical Query Languages 205
5.1 Relational Operations on Bags...................205
5.1.1 Why Bags?..........................206
5.1.2 Union, Intersection, and Difference of Bags........207
5.1.3 Projection of Bags......................208
5.1.4 Selection on Bags.......................209
5.1.5 Product of Bags.......................210
5.1.6 Joins of Bags.........................210
xiv TABLE OF CONTENTS
5.1.7 Exercises for Section 5.1...................212
5.2 Extended Operators of Relational Algebra.............213
5.2.1 Duplicate Elimination....................214
5.2.2 Aggregation Operators....................214
5.2.3 Grouping...........................215
5.2.4 The Grouping Operator...................216
5.2.5 Extending the Projection Operator.............217
5.2.6 The Sorting Operator....................219
5.2.7 Outerjoins...........................219
5.2.8 Exercises for Section 5.2...................222
5.3 A Logic for Relations.........................222
5.3.1 Predicates and Atoms....................223
5.3.2 Arithmetic Atoms......................223
5.3.3 Datalog Rules and Queries .................224
5.3.4 Meaning of Datalog Rules..................225
5.3.5 Extensional and Intensional Predicates...........228
5.3.6 Datalog Rules Applied to Bags...............228
5.3.7 Exercises for Section 5.3...................230
5.4 Relational Algebra and Datalog...................230
5.4.1 Boolean Operations.....................231
5.4.2 Projection...........................232
5.4.3 Selection ...........................232
5.4.4 Product............................235
5.4.5 Joins..............................235
5.4.6 Simulating Multiple Operations with Datalog.......236
5.4.7 Comparison Between Datalog and Relational Algebra . . 238
5.4.8 Exercises for Section 5.4...................238
5.5 Summary of Chapter 5........................240
5.6 References for Chapter 5.......................241
6 The Database Language SQL 243
6.1 Simple Queries in SQL........................244
6.1.1 Projection in SQL......................246
6.1.2 Selection in SQL.......................248
6.1.3 Comparison of Strings....................250
6.1.4 Pattern Matching in SQL..................250
6.1.5 Dates and Times.......................251
6.1.6 Null Values and Comparisons Involving NULL.......252
6.1.7 The Truth-Value UNKNOWN..................253
6.1.8 Ordering the Output.....................255
6.1.9 Exercises for Section 6.1...................256
6.2 Queries Involving More Than One Relation............258
6.2.1 Products and Joins in SQL.................259
6.2.2 Disambiguating Attributes .................260
6.2.3 Tuple Variables........................261
TABLE OF CONTENTS xv
6.2.4 Interpreting Multirelation Queries.............262
6.2.5 Union, Intersection, and Difference of Queries.......265
6.2.6 Exercises for Section 6.2...................267
6.3 Subqueries...............................268
6.3.1 Subqueries that Produce Scalar Values...........269
6.3.2 Conditions Involving Relations...............270
6.3.3 Conditions Involving Tuples.................271
6.3.4 Correlated Subqueries....................273
6.3.5 Subqueries in FROM Clauses.................274
6.3.6 SQL Join Expressions....................275
6.3.7 Natural Joins.........................276
6.3.8 Outerjoins...........................277
6.3.9 Exercises for Section 6.3...................279
6.4 Pull-Relation Operations.......................281
6.4.1 Eliminating Duplicates....................281
6.4.2 Duplicates in Unions, Intersections, and Differences . . . 282
6.4.3 Grouping and Aggregation in SQL.............283
6.4.4 Aggregation Operators....................284
6.4.5 Grouping...........................285
6.4.6 Grouping, Aggregation, and Nulls .............287
6.4.7 HAVING Clauses........................288
6.4.8 Exercises for Section 6.4...................289
6.5 Database Modifications .......................291
6.5.1 Insertion............................291
6.5.2 Deletion............................292
6.5.3 Updates............................294
6.5.4 Exercises for Section 6.5...................295
6.6 Transactions in SQL.........................296
6.6.1 Serializability.........................296
6.6.2 Atomicity...........................298
6.6.3 Transactions.........................299
6.6.4 Read-Only Transactions...................300
6.6.5 Dirty Reads..........................302
6.6.6 Other Isolation Levels....................304
6.6.7 Exercises for Section 6.6...................306
6.7 Summary of Chapter 6........................307
6.8 References for Chapter 6.......................308
7 Constraints and Triggers 311
7.1 Keys and Foreign Keys........................311
7.1.1 Declaring Foreign-Key Constraints.............312
7.1.2 Maintaining Referential Integrity..............313
7.1.3 Deferred Checking of Constraints..............315
7.1.4 Exercises for Section 7.1...................318
7.2 Constraints on Attributes and Tuples................319
xvi TABLE OF CONTENTS
7.2.1 Not-Null Constraints.....................319
7.2.2 Attribute-Based CHECK Constraints.............320
7.2.3 Tuple-Based CHECK Constraints...............321
7.2.4 Comparison of Tuple- and Attribute-Based Constraints . 323
7.2.5 Exercises for Section 7.2...................323
7.3 Modification of Constraints.....................325
7.3.1 Giving Names to Constraints................325
7.3.2 Altering Constraints on Tables...............326
7.3.3 Exercises for Section 7.3...................327
7.4 Assertions...............................328
7.4.1 Creating Assertions .....................328
7.4.2 Using Assertions.......................329
7.4.3 Exercises for Section 7.4...................330
7.5 Triggers................................332
7.5.1 Triggers in SQL........................332
7.5.2 The Options for Trigger Design...............334
7.5.3 Exercises for Section 7.5...................337
7.6 Summary of Chapter 7........................339
7.7 References for Chapter 7.......................339
8 Views and Indexes 341
8.1 Virtual Views.............................341
8.1.1 Declaring Views .......................341
8.1.2 Querying Views........................343
8.1.3 Renaming Attributes.....................343
8.1.4 Exercises for Section 8.1...................344
8.2 Modifying Views...........................344
8.2.1 View Removal ........................345
8.2.2 Updatable Views.......................345
8.2.3 Instead-Of Triggers on Views................347
8.2.4 Exercises for Section 8.2...................349
8.3 Indexes in SQL............................350
8.3.1 Motivation for Indexes....................350
8.3.2 Declaring Indexes.......................351
8.3.3 Exercises for Section 8.3...................352
8.4 Selection of Indexes .........................352
8.4.1 A Simple Cost Model....................352
8.4.2 Some Useful Indexes.....................353
8.4.3 Calculating the Best Indexes to Create...........355
8.4.4 Automatic Selection of Indexes to Create.........357
8.4.5 Exercises for Section 8.4...................359
8.5 Materialized Views..........................359
8.5.1 Maintaining a Materialized View..............360
8.5.2 Periodic Maintenance of Materialized Views........362
8.5.3 Rewriting Queries to Use Materialized Views.......362
TABLE OF CONTENTS xvii
8.5.4 Automatic Creation of Materialized Views.........364
8.5.5 Exercises for Section 8.5...................365
8.6 Summary of Chapter 8........................366
8.7 References for Chapter 8.......................367
9 SQL in a Server Environment 369
9.1 The Three-Tier Architecture ....................369
9.1.1 The Web-Server Tier.....................370
9.1.2 The Application Tier.....................371
9.1.3 The Database Tier......................372
9.2 The SQL Environment........................372
9.2.1 Environments.........................373
9.2.2 Schemas............................374
9.2.3 Catalogs............................375
9.2.4 Clients and Servers in the SQL Environment.......375
9.2.5 Connections..........................376
9.2.6 Sessions............................377
9.2.7 Modules............................378
9.3 The SQL/Host-Language Interface.................378
9.3.1 The Impedance Mismatch Problem.............380
9.3.2 Connecting SQL to the Host Language...........380
9.3.3 The DECLARE Section.....................381
9.3.4 Using Shared Variables ...................382
9.3.5 Single-Row Select Statements................383
9.3.6 Cursors............................383
9.3.7 Modifications by Cursor...................386
9.3.8 Protecting Against Concurrent Updates..........387
9.3.9 Dynamic SQL.........................388
9.3.10 Exercises for Section 9.3...................390
9.4 Stored Procedures..........................391
9.4.1 Creating PSM Functions and Procedures .........391
9.4.2 Some Simple Statement Forms in PSM...........392
9.4.3 Branching Statements....................394
9.4.4 Queries in PSM........................395
9.4.5 Loops in PSM ........................396
9.4.6 For-Loops...........................398
9.4.7 Exceptions in PSM......................400
9.4.8 Using PSM Functions and Procedures...........402
9.4.9 Exercises for Section 9.4...................402
9.5 Using a Call-Level Interface.....................404
9.5.1 Introduction to SQL/CLI..................405
9.5.2 Processing Statements....................407
9.5.3 Fetching Data From a Query Result............408
9.5.4 Passing Parameters to Queries...............410
9.5.5 Exercises for Section 9.5...................412
xviii TABLE OF CONTENTS
9.6 JDBC.................................412
9.6.1 Introduction to JDBC....................412
9.6.2 Creating Statements in JDBC................413
9.6.3 Cursor Operations in JDBC.................415
9.6.4 Parameter Passing......................416
9.6.5 Exercises for Section 9.6...................416
9.7 PHP..................................416
9.7.1 PHP Basics..........................417
9.7.2 Arrays.............................418
, 9.7.3 The PEAR DB Library...................419
9.7.4 Creating a Database Connection Using DB........419
9.7.5 Executing SQL Statements.................419
9.7.6 Cursor Operations in PHP .................420
9.7.7 Dynamic SQL in PHP....................421
9.7.8 Exercises for Section 9.7...................422
9.8 Summary of Chapter 9........................422
9.9 References for Chapter 9.......................423
10 Advanced Topics in Relational Databases 425
10.1 Security and User Authorization in SQL..............425
10.1.1 Privileges...........................426
10.1.2 Creating Privileges......................427
10.1.3 The Privilege-Checking Process...............428
10.1.4 Granting Privileges......................430
10.1.5 Grant Diagrams .......................431
10.1.6 Revoking Privileges .....................433
10.1.7 Exercises for Section 10.1..................436
10.2 Recursion in SQL...........................437
10.2.1 Defining Recursive Relations in SQL............437
10.2.2 Problematic Expressions in Recursive SQL ........440
10.2.3 Exercises for Section 10.2..................443
10.3 The Object-Relational Model....................445
10.3.1 Prom Relations to Object-Relations............445
10.3.2 Nested Relations.......................446
10.3.3 References...........................447
10.3.4 Object-Oriented Versus Object-Relational.........449
10.3.5 Exercises for Section 10.3..................450
10.4 User-Defined Types in SQL.....................451
10.4.1 Defining Types in SQL....................451
10.4.2 Method Declarations in UDT s...............452
10.4.3 Method Definitions......................453
10.4.4 Declaring Relations with a UDT..............454
10.4.5 References...........................454
10.4.6 Creating Object ID s for Tables...............455
10.4.7 Exercises for Section 10.4..................457
TABLE OF CONTENTS xix
10.5 Operations on Object-Relational Data...............457
10.5.1 Following References.....................457
10.5.2 Accessing Components of Tuples with a UDT.......458
10.5.3 Generator and Mutator Functions.............460
10.5.4 Ordering Relationships on UDT s..............461
10.5.5 Exercises for Section 10.5..................463
10.6 On-Line Analytic Processing ....................464
10.6.1 OLAP and Data Warehouses................465
10.6.2 OLAP Applications .....................465
10.6.3 A Multidimensional View of OLAP Data.........466
10.6.4 Star Schemas.........................467
10.6.5 Slicing and Dicing......................469
10.6.6 Exercises for Section 10.6..................472
10.7 Data Cubes..............................473
10.7.1 The Cube Operator.....................473
10.7.2 The Cube Operator in SQL.................475
10.7.3 Exercises for Section 10.7..................477
10.8 Summary of Chapter 10.......................478
10.9 References for Chapter 10......................480
III Modeling and Programming for Semistructured
Data 481
11 The Semistructured-Data Model 483
11.1 Semistructured Data.........................483
11.1.1 Motivation for the Semistructured-Data Model......483
11.1.2 Semistructured Data Representation............484
11.1.3 Information Integration Via Semistructured Data.....486
11.1.4 Exercises for Section 11.1..................487
11.2 XML..................................488
11.2.1 Semantic Tags ........................488
11.2.2 XML With and Without a Schema.............489
11.2.3 Well-Formed XML......................489
11.2.4 Attributes...........................490
11.2.5 Attributes That Connect Elements.............491
11.2.6 Namespaces..........................493
11.2.7 XML and Databases.....................493
11.2.8 Exercises for Section 11.2..................495
11.3 Document Type Definitions.....................495
11.3.1 The Form of a DTD.....................495
11.3.2 Using a DTD.........................499
11.3.3 Attribute Lists........................499
11.3.4 Identifiers and References..................500
11.3.5 Exercises for Section 11.3..................502
xx TABLE OF CONTENTS
11.4 XML Schema.............................502
11.4.1 The Form of an XML Schema................502
11.4.2 Elements ...........................503
11.4.3 Complex Types........................504
11.4.4 Attributes...........................506
11.4.5 Restricted Simple Types...................507
11.4.6 Keys in XML Schema....................509
11.4.7 Foreign Keys in XML Schema................510
11.4.8 Exercises for Section 11.4..................512
11.5 Summary of Chapter 11.......................514
11.6 References for Chapter 11......................515
12 Programming Languages for XML 517
12.1 XPath.................................517
12.1.1 The XPath Data Model...................518
12.1.2 Document Nodes.......................519
12.1.3 Path Expressions.......................519
12.1.4 Relative Path Expressions..................521
12.1.5 Attributes in Path Expressions...............521
12.1.6 Axes..............................521
12.1.7 Context of Expressions....................522
12.1.8 Wildcards...........................523
12.1.9 Conditions in Path Expressions...............523
12.1.10Exercises for Section 12.1..................526
12.2 XQuery................................528
12.2.1 XQuery Basics........................530
12.2.2 FLWR Expressions......................530
12.2.3 Replacement of Variables by Their Values.........534
12.2.4 Joins in XQuery.......................536
12.2.5 XQuery Comparison Operators...............537
12.2.6 Elimination of Duplicates..................538
12.2.7 Quantification in XQuery..................539
12.2.8 Aggregations.........................540
12.2.9 Branching in XQuery Expressions.............540
12.2.10 Ordering the Result of a Query...............541
12.2.11 Exercises for Section 12.2..................543
12.3 Extensible Stylesheet Language...................544
12.3.1 XSLT Basics.........................544
12.3.2 Templates...........................544
12.3.3 Obtaining Values From XML Data.............545
12.3.4 Recursive Use of Templates.................546
12.3.5 Iteration in XSLT ......................549
12.3.6 Conditionals in XSLT....................551
12.3.7 Exercises for Section 12.3..................551
12.4 Summary of Chapter 12.......................553
TABLE OF CONTENTS xxi
12.5 References for Chapter 12......................554
Index 555
|
adam_txt |
Table of Contents
The Worlds of Database Systems 1
1.1 The Evolution of Database Systems . 1
1.1.1 Early Database Management Systems. 2
1.1.2 Relational Database Systems. 3
1.1.3 Smaller and Smaller Systems. 3
1.1.4 Bigger and Bigger Systems . 4
1.1.5 Information Integration. 4
1.2 Overview of a Database Management System. 5
1.2.1 Data-Definition Language Commands. 5
1.2.2 Overview of Query Processing. 5
1.2.3 Storage and Buffer Management. 7
1.2.4 Transaction Processing. 8
1.2.5 The Query Processor. 9
1.3 Outline of Database-System Studies . 10
1.4 References for Chapter 1. 12
Relational Database Modeling 15
The Relational Model of Data 17
2.1 An Overview of Data Models. 17
2.1.1 What is a Data Model?. 17
2.1.2 Important Data Models. 18
2.1.3 The Relational Model in Brief. 18
2.1.4 The Semistructured Model in Brief. 19
2.1.5 Other Data Models. 20
2.1.6 Comparison of Modeling Approaches. 21
2.2 Basics of the Relational Model. 21
2.2.1 Attributes. 22
2.2.2 Schemas. 22
2.2.3 Tuples. 22
2.2.4 Domains. 23
2.2.5 Equivalent Representations of a Relation . 23
IX
TABLE OF CONTENTS
2.2.6 Relation Instances. 24
2.2.7 Keys of Relations. 25
2.2.8 An Example Database Schema. 26
2.2.9 Exercises for Section 2.2. 28
2.3 Defining a Relation Schema in SQL. 29
2.3.1 Relations in SQL. 29
2.3.2 Data Types. 30
2.3.3 Simple Table Declarations. 31
2.3.4 Modifying Relation Schemas . 33
, 2.3.5 Default Values. 34
2.3.6 Declaring Keys. 34
2.3.7 Exercises for Section 2.3. 36
2.4 An Algebraic Query Language . 38
2.4.1 Why Do We Need a Special Query Language?. 38
2.4.2 What is an Algebra?. 38
2.4.3 Overview of Relational Algebra. 39
2.4.4 Set Operations on Relations. 39
2.4.5 Projection. 41
2.4.6 Selection . 42
2.4.7 Cartesian Product. 43
2.4.8 Natural Joins. 43
2.4.9 Theta-Joins. 45
2.4.10 Combining Operations to Form Queries. 47
2.4.11 Naming and Renaming. 49
2.4.12 Relationships Among Operations. 50
2.4.13 A Linear Notation for Algebraic Expressions. 51
2.4.14 Exercises for Section 2.4. 52
2.5 Constraints on Relations. 58
2.5.1 Relational Algebra as a Constraint Language. 59
2.5.2 Referential Integrity Constraints. 59
2.5.3 Key Constraints. 60
2.5.4 Additional Constraint Examples. 61
2.5.5 Exercises for Section 2.5. 62
2.6 Summary of Chapter 2. 63
2.7 References for Chapter 2. 65
Design Theory for Relational Databases 67
3.1 Functional Dependencies. 67
3.1.1 Definition of Functional Dependency. 68
3.1.2 Keys of Relations. 70
3.1.3 Superkeys. 71
3.1.4 Exercises for Section 3.1. 71
3.2 Rules About Functional Dependencies. 72
3.2.1 Reasoning About Functional Dependencies. 72
3.2.2 The Splitting/Combining Rule. 73
TABLE OF CONTENTS xi
3.2.3 Trivial Functional Dependencies . 74
3.2.4 Computing the Closure of Attributes. 75
3.2.5 Why the Closure Algorithm Works. 77
3.2.6 The Transitive Rule. 79
3.2.7 Closing Sets of Functional Dependencies. 80
3.2.8 Projecting Functional Dependencies. 81
3.2.9 Exercises for Section 3.2. 83
3.3 Design of Relational Database Schemas .85
3.3.1 Anomalies. 86
3.3.2 Decomposing Relations . 86
3.3.3 Boyce-Codd Normal Form. 88
3.3.4 Decomposition into BCNF. 89
3.3.5 Exercises for Section 3.3. 92
3.4 Decomposition: The Good, Bad, and Ugly. 93
3.4.1 Recovering Information from a Decomposition .94
3.4.2 The Chase Test for Lossless Join.96
3.4.3 Why the Chase Works. 99
3.4.4 Dependency Preservation.100
3.4.5 Exercises for Section 3.4.102
3.5 Third Normal Form .102
3.5.1 Definition of Third Normal Form.102
3.5.2 The Synthesis Algorithm for 3NF Schemas.103
3.5.3 Why the 3NF Synthesis Algorithm Works.104
3.5.4 Exercises for Section 3.5.105
3.6 Multivalued Dependencies.105
3.6.1 Attribute Independence and Its Consequent Redundancy 106
3.6.2 Definition of Multivalued Dependencies.107
3.6.3 Reasoning About Multivalued Dependencies.108
3.6.4 Fourth Normal Form.110
3.6.5 Decomposition into Fourth Normal Form.Ill
3.6.6 Relationships Among Normal Forms.113
3.6.7 Exercises for Section 3.6.113
3.7 An Algorithm for Discovering MVD's .115
3.7.1 The Closure and the Chase. 115
3.7.2 Extending the Chase to MVD's. 116
3.7.3 Why the Chase Works for MVD's . 118
3.7.4 Projecting MVD's. 119
3.7.5 Exercises for Section 3.7. 120
3.8 Summary of Chapter 3. 121
3.9 References for Chapter 3. 122
xii TABLE OF CONTENTS
4 High-Level Database Models 125
4.1 The Entity/Relationship Model. 126
4.1.1 Entity Sets. 126
4.1.2 Attributes. 126
4.1.3 Relationships. 127
4.1.4 Entity-Relationship Diagrams. 127
4.1.5 Instances of an E/R Diagram. 128
4.1.6 Multiplicity of Binary E/R Relationships. 129
4.1.7 Multiway Relationships. 130
4.1.8 Roles in Relationships. 131
4.1.9 Attributes on Relationships. 134
4.1.10 Converting Multiway Relationships to Binary. 134
4.1.11 Subclasses in the E/R Model. 135
4.1.12 Exercises for Section 4.1. 138
4.2 Design Principles. 140
4.2.1 Faithfulness. 140
4.2.2 Avoiding Redundancy. 141
4.2.3 Simplicity Counts . 142
4.2.4 Choosing the Right Relationships. 142
4.2.5 Picking the Right Kind of Element. 144
4.2.6 Exercises for Section 4.2. 145
4.3 Constraints in the E/R Model. 148
4.3.1 Keys in the E/R Model. 148
4.3.2 Representing Keys in the E/R Model . 149
4.3.3 Referential Integrity. 150
4.3.4 Degree Constraints. 151
4.3.5 Exercises for Section 4.3. 151
4.4 Weak Entity Sets. 152
4.4.1 Causes of Weak Entity Sets. 152
4.4.2 Requirements for Weak Entity Sets. 153
4.4.3 Weak Entity Set Notation. 155
4.4.4 Exercises for Section 4.4. 156
4.5 From E/R Diagrams to Relational Designs. 157
4.5.1 From Entity Sets to Relations. 157
4.5.2 From E/R Relationships to Relations . 158
4.5.3 Combining Relations. 160
4.5.4 Handling Weak Entity Sets. 161
4.5.5 Exercises for Section 4.5. 163
4.6 Converting Subclass Structures to Relations. 165
4.6.1 E/R-Style Conversion. 166
4.6.2 An Object-Oriented Approach. 167
4.6.3 Using Null Values to Combine Relations. 168
4.6.4 Comparison of Approaches . 169
4.6.5 Exercises for Section 4.6. 171
4.7 Unified Modeling Language. 171
TABLE OF CONTENTS xiii
4.7.1 UML Classes. 172
4.7.2 Keys for UML classes. 173
4.7.3 Associations. 173
4.7.4 Self-Associations. 175
4.7.5 Association Classes. 175
4.7.6 Subclasses in UML. 176
4.7.7 Aggregations and Compositions. 177
4.7.8 Exercises for Section 4.7. 179
4.8 Prom UML Diagrams to Relations.179
4.8.1 UML-to-Relations Basics .179
4.8.2 Prom UML Subclasses to Relations.180
4.8.3 Prom Aggregations and Compositions to Relations . 181
4.8.4 The UML Analog of Weak Entity Sets.181
4.8.5 Exercises for Section 4.8.183
4.9 Object Definition Language.183
4.9.1 Class Declarations. 184
4.9.2 Attributes in ODL. 184
4.9.3 Relationships in ODL. 185
4.9.4 Inverse Relationships. 186
4.9.5 Multiplicity of Relationships . 186
4.9.6 Types in ODL . 188
4.9.7 Subclasses in ODL. 190
4.9.8 Declaring Keys in ODL. 191
4.9.9 Exercises for Section 4.9. 192
4.10 Prom ODL Designs to Relational Designs. 193
4.10.1 From ODL Classes to Relations.193
4.10.2 Complex Attributes in Classes .194
4.10.3 Representing Set-Valued Attributes . . .195
4.10.4 Representing Other Type Constructors.196
4.10.5 Representing ODL Relationships.198
4.10.6 Exercises for Section 4.10.198
4.11 Summary of Chapter 4.200
4.12 References for Chapter 4.202
II Relational Database Programming 203
5 Algebraic and Logical Query Languages 205
5.1 Relational Operations on Bags.205
5.1.1 Why Bags?.206
5.1.2 Union, Intersection, and Difference of Bags.207
5.1.3 Projection of Bags.208
5.1.4 Selection on Bags.209
5.1.5 Product of Bags.210
5.1.6 Joins of Bags.210
xiv TABLE OF CONTENTS
5.1.7 Exercises for Section 5.1.212
5.2 Extended Operators of Relational Algebra.213
5.2.1 Duplicate Elimination.214
5.2.2 Aggregation Operators.214
5.2.3 Grouping.215
5.2.4 The Grouping Operator.216
5.2.5 Extending the Projection Operator.217
5.2.6 The Sorting Operator.219
5.2.7 Outerjoins.219
5.2.8 Exercises for Section 5.2.222
5.3 A Logic for Relations.222
5.3.1 Predicates and Atoms.223
5.3.2 Arithmetic Atoms.223
5.3.3 Datalog Rules and Queries .224
5.3.4 Meaning of Datalog Rules.225
5.3.5 Extensional and Intensional Predicates.228
5.3.6 Datalog Rules Applied to Bags.228
5.3.7 Exercises for Section 5.3.230
5.4 Relational Algebra and Datalog.230
5.4.1 Boolean Operations.231
5.4.2 Projection.232
5.4.3 Selection .232
5.4.4 Product.235
5.4.5 Joins.235
5.4.6 Simulating Multiple Operations with Datalog.236
5.4.7 Comparison Between Datalog and Relational Algebra . . 238
5.4.8 Exercises for Section 5.4.238
5.5 Summary of Chapter 5.240
5.6 References for Chapter 5.241
6 The Database Language SQL 243
6.1 Simple Queries in SQL.244
6.1.1 Projection in SQL.246
6.1.2 Selection in SQL.248
6.1.3 Comparison of Strings.250
6.1.4 Pattern Matching in SQL.250
6.1.5 Dates and Times.251
6.1.6 Null Values and Comparisons Involving NULL.252
6.1.7 The Truth-Value UNKNOWN.253
6.1.8 Ordering the Output.255
6.1.9 Exercises for Section 6.1.256
6.2 Queries Involving More Than One Relation.258
6.2.1 Products and Joins in SQL.259
6.2.2 Disambiguating Attributes .260
6.2.3 Tuple Variables.261
TABLE OF CONTENTS xv
6.2.4 Interpreting Multirelation Queries.262
6.2.5 Union, Intersection, and Difference of Queries.265
6.2.6 Exercises for Section 6.2.267
6.3 Subqueries.268
6.3.1 Subqueries that Produce Scalar Values.269
6.3.2 Conditions Involving Relations.270
6.3.3 Conditions Involving Tuples.271
6.3.4 Correlated Subqueries.273
6.3.5 Subqueries in FROM Clauses.274
6.3.6 SQL Join Expressions.275
6.3.7 Natural Joins.276
6.3.8 Outerjoins.277
6.3.9 Exercises for Section 6.3.279
6.4 Pull-Relation Operations.281
6.4.1 Eliminating Duplicates.281
6.4.2 Duplicates in Unions, Intersections, and Differences . . . 282
6.4.3 Grouping and Aggregation in SQL.283
6.4.4 Aggregation Operators.284
6.4.5 Grouping.285
6.4.6 Grouping, Aggregation, and Nulls .287
6.4.7 HAVING Clauses.288
6.4.8 Exercises for Section 6.4.289
6.5 Database Modifications .291
6.5.1 Insertion.291
6.5.2 Deletion.292
6.5.3 Updates.294
6.5.4 Exercises for Section 6.5.295
6.6 Transactions in SQL.296
6.6.1 Serializability.296
6.6.2 Atomicity.298
6.6.3 Transactions.299
6.6.4 Read-Only Transactions.300
6.6.5 Dirty Reads.302
6.6.6 Other Isolation Levels.304
6.6.7 Exercises for Section 6.6.306
6.7 Summary of Chapter 6.307
6.8 References for Chapter 6.308
7 Constraints and Triggers 311
7.1 Keys and Foreign Keys.311
7.1.1 Declaring Foreign-Key Constraints.312
7.1.2 Maintaining Referential Integrity.313
7.1.3 Deferred Checking of Constraints.315
7.1.4 Exercises for Section 7.1.318
7.2 Constraints on Attributes and Tuples.319
xvi TABLE OF CONTENTS
7.2.1 Not-Null Constraints.319
7.2.2 Attribute-Based CHECK Constraints.320
7.2.3 Tuple-Based CHECK Constraints.321
7.2.4 Comparison of Tuple- and Attribute-Based Constraints . 323
7.2.5 Exercises for Section 7.2.323
7.3 Modification of Constraints.325
7.3.1 Giving Names to Constraints.325
7.3.2 Altering Constraints on Tables.326
7.3.3 Exercises for Section 7.3.327
7.4 Assertions.328
7.4.1 Creating Assertions .328
7.4.2 Using Assertions.329
7.4.3 Exercises for Section 7.4.330
7.5 Triggers.332
7.5.1 Triggers in SQL.332
7.5.2 The Options for Trigger Design.334
7.5.3 Exercises for Section 7.5.337
7.6 Summary of Chapter 7.339
7.7 References for Chapter 7.339
8 Views and Indexes 341
8.1 Virtual Views.341
8.1.1 Declaring Views .341
8.1.2 Querying Views.343
8.1.3 Renaming Attributes.343
8.1.4 Exercises for Section 8.1.344
8.2 Modifying Views.344
8.2.1 View Removal .345
8.2.2 Updatable Views.345
8.2.3 Instead-Of Triggers on Views.347
8.2.4 Exercises for Section 8.2.349
8.3 Indexes in SQL.350
8.3.1 Motivation for Indexes.350
8.3.2 Declaring Indexes.351
8.3.3 Exercises for Section 8.3.352
8.4 Selection of Indexes .352
8.4.1 A Simple Cost Model.352
8.4.2 Some Useful Indexes.353
8.4.3 Calculating the Best Indexes to Create.355
8.4.4 Automatic Selection of Indexes to Create.357
8.4.5 Exercises for Section 8.4.359
8.5 Materialized Views.359
8.5.1 Maintaining a Materialized View.360
8.5.2 Periodic Maintenance of Materialized Views.362
8.5.3 Rewriting Queries to Use Materialized Views.362
TABLE OF CONTENTS xvii
8.5.4 Automatic Creation of Materialized Views.364
8.5.5 Exercises for Section 8.5.365
8.6 Summary of Chapter 8.366
8.7 References for Chapter 8.367
9 SQL in a Server Environment 369
9.1 The Three-Tier Architecture .369
9.1.1 The Web-Server Tier.370
9.1.2 The Application Tier.371
9.1.3 The Database Tier.372
9.2 The SQL Environment.372
9.2.1 Environments.373
9.2.2 Schemas.374
9.2.3 Catalogs.375
9.2.4 Clients and Servers in the SQL Environment.375
9.2.5 Connections.376
9.2.6 Sessions.377
9.2.7 Modules.378
9.3 The SQL/Host-Language Interface.378
9.3.1 The Impedance Mismatch Problem.380
9.3.2 Connecting SQL to the Host Language.380
9.3.3 The DECLARE Section.381
9.3.4 Using Shared Variables .382
9.3.5 Single-Row Select Statements.383
9.3.6 Cursors.383
9.3.7 Modifications by Cursor.386
9.3.8 Protecting Against Concurrent Updates.387
9.3.9 Dynamic SQL.388
9.3.10 Exercises for Section 9.3.390
9.4 Stored Procedures.391
9.4.1 Creating PSM Functions and Procedures .391
9.4.2 Some Simple Statement Forms in PSM.392
9.4.3 Branching Statements.394
9.4.4 Queries in PSM.395
9.4.5 Loops in PSM .396
9.4.6 For-Loops.398
9.4.7 Exceptions in PSM.400
9.4.8 Using PSM Functions and Procedures.402
9.4.9 Exercises for Section 9.4.402
9.5 Using a Call-Level Interface.404
9.5.1 Introduction to SQL/CLI.405
9.5.2 Processing Statements.407
9.5.3 Fetching Data From a Query Result.408
9.5.4 Passing Parameters to Queries.410
9.5.5 Exercises for Section 9.5.412
xviii TABLE OF CONTENTS
9.6 JDBC.412
9.6.1 Introduction to JDBC.412
9.6.2 Creating Statements in JDBC.413
9.6.3 Cursor Operations in JDBC.415
9.6.4 Parameter Passing.416
9.6.5 Exercises for Section 9.6.416
9.7 PHP.416
9.7.1 PHP Basics.417
9.7.2 Arrays.418
, 9.7.3 The PEAR DB Library.419
9.7.4 Creating a Database Connection Using DB.419
9.7.5 Executing SQL Statements.419
9.7.6 Cursor Operations in PHP .420
9.7.7 Dynamic SQL in PHP.421
9.7.8 Exercises for Section 9.7.422
9.8 Summary of Chapter 9.422
9.9 References for Chapter 9.423
10 Advanced Topics in Relational Databases 425
10.1 Security and User Authorization in SQL.425
10.1.1 Privileges.426
10.1.2 Creating Privileges.427
10.1.3 The Privilege-Checking Process.428
10.1.4 Granting Privileges.430
10.1.5 Grant Diagrams .431
10.1.6 Revoking Privileges .433
10.1.7 Exercises for Section 10.1.436
10.2 Recursion in SQL.437
10.2.1 Defining Recursive Relations in SQL.437
10.2.2 Problematic Expressions in Recursive SQL .440
10.2.3 Exercises for Section 10.2.443
10.3 The Object-Relational Model.445
10.3.1 Prom Relations to Object-Relations.445
10.3.2 Nested Relations.446
10.3.3 References.447
10.3.4 Object-Oriented Versus Object-Relational.449
10.3.5 Exercises for Section 10.3.450
10.4 User-Defined Types in SQL.451
10.4.1 Defining Types in SQL.451
10.4.2 Method Declarations in UDT's.452
10.4.3 Method Definitions.453
10.4.4 Declaring Relations with a UDT.454
10.4.5 References.454
10.4.6 Creating Object ID's for Tables.455
10.4.7 Exercises for Section 10.4.457
TABLE OF CONTENTS xix
10.5 Operations on Object-Relational Data.457
10.5.1 Following References.457
10.5.2 Accessing Components of Tuples with a UDT.458
10.5.3 Generator and Mutator Functions.460
10.5.4 Ordering Relationships on UDT's.461
10.5.5 Exercises for Section 10.5.463
10.6 On-Line Analytic Processing .464
10.6.1 OLAP and Data Warehouses.465
10.6.2 OLAP Applications .465
10.6.3 A Multidimensional View of OLAP Data.466
10.6.4 Star Schemas.467
10.6.5 Slicing and Dicing.469
10.6.6 Exercises for Section 10.6.472
10.7 Data Cubes.473
10.7.1 The Cube Operator.473
10.7.2 The Cube Operator in SQL.475
10.7.3 Exercises for Section 10.7.477
10.8 Summary of Chapter 10.478
10.9 References for Chapter 10.480
III Modeling and Programming for Semistructured
Data 481
11 The Semistructured-Data Model 483
11.1 Semistructured Data.483
11.1.1 Motivation for the Semistructured-Data Model.483
11.1.2 Semistructured Data Representation.484
11.1.3 Information Integration Via Semistructured Data.486
11.1.4 Exercises for Section 11.1.487
11.2 XML.488
11.2.1 Semantic Tags .488
11.2.2 XML With and Without a Schema.489
11.2.3 Well-Formed XML.489
11.2.4 Attributes.490
11.2.5 Attributes That Connect Elements.491
11.2.6 Namespaces.493
11.2.7 XML and Databases.493
11.2.8 Exercises for Section 11.2.495
11.3 Document Type Definitions.495
11.3.1 The Form of a DTD.495
11.3.2 Using a DTD.499
11.3.3 Attribute Lists.499
11.3.4 Identifiers and References.500
11.3.5 Exercises for Section 11.3.502
xx TABLE OF CONTENTS
11.4 XML Schema.502
11.4.1 The Form of an XML Schema.502
11.4.2 Elements .503
11.4.3 Complex Types.504
11.4.4 Attributes.506
11.4.5 Restricted Simple Types.507
11.4.6 Keys in XML Schema.509
11.4.7 Foreign Keys in XML Schema.510
11.4.8 Exercises for Section 11.4.512
11.5 Summary of Chapter 11.514
11.6 References for Chapter 11.515
12 Programming Languages for XML 517
12.1 XPath.517
12.1.1 The XPath Data Model.518
12.1.2 Document Nodes.519
12.1.3 Path Expressions.519
12.1.4 Relative Path Expressions.521
12.1.5 Attributes in Path Expressions.521
12.1.6 Axes.521
12.1.7 Context of Expressions.522
12.1.8 Wildcards.523
12.1.9 Conditions in Path Expressions.523
12.1.10Exercises for Section 12.1.526
12.2 XQuery.528
12.2.1 XQuery Basics.530
12.2.2 FLWR Expressions.530
12.2.3 Replacement of Variables by Their Values.534
12.2.4 Joins in XQuery.536
12.2.5 XQuery Comparison Operators.537
12.2.6 Elimination of Duplicates.538
12.2.7 Quantification in XQuery.539
12.2.8 Aggregations.540
12.2.9 Branching in XQuery Expressions.540
12.2.10 Ordering the Result of a Query.541
12.2.11 Exercises for Section 12.2.543
12.3 Extensible Stylesheet Language.544
12.3.1 XSLT Basics.544
12.3.2 Templates.544
12.3.3 Obtaining Values From XML Data.545
12.3.4 Recursive Use of Templates.546
12.3.5 Iteration in XSLT .549
12.3.6 Conditionals in XSLT.551
12.3.7 Exercises for Section 12.3.551
12.4 Summary of Chapter 12.553
TABLE OF CONTENTS xxi
12.5 References for Chapter 12.554
Index 555 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Ullman, Jeffrey D. 1942- Widom, Jennifer |
author_GND | (DE-588)123598230 |
author_facet | Ullman, Jeffrey D. 1942- Widom, Jennifer |
author_role | aut aut |
author_sort | Ullman, Jeffrey D. 1942- |
author_variant | j d u jd jdu j w jw |
building | Verbundindex |
bvnumber | BV023333201 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.9.D3 |
callnumber-search | QA76.9.D3 |
callnumber-sort | QA 276.9 D3 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 270 |
ctrlnum | (OCoLC)141384629 (DE-599)HBZHT015287644 |
dewey-full | 005.74 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.74 |
dewey-search | 005.74 |
dewey-sort | 15.74 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 3. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02133nam a2200529 c 4500</leader><controlfield tag="001">BV023333201</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20080829 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">080606s2008 d||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780136006374</subfield><subfield code="9">978-0-13-600637-4</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">013600637X</subfield><subfield code="9">0-13-600637-X</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)141384629</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)HBZHT015287644</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakwb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.9.D3</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.74</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 270</subfield><subfield code="0">(DE-625)143638:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ullman, Jeffrey D.</subfield><subfield code="d">1942-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)123598230</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">A first course in database systems</subfield><subfield code="c">Jeffrey D. Ullman ; Jennifer Widom</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">3. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Upper Saddle River, NJ</subfield><subfield code="b">Pearson Prentice Hall</subfield><subfield code="c">2008</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXI, 565 S.</subfield><subfield code="b">graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Administración de Bases de Datos</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Database management</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">SQL</subfield><subfield code="0">(DE-588)4134010-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Relationales Datenbanksystem</subfield><subfield code="0">(DE-588)4130535-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Relationale Datenbank</subfield><subfield code="0">(DE-588)4049358-1</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Datenbanksystem</subfield><subfield code="0">(DE-588)4113276-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="0">(DE-588)4151278-9</subfield><subfield code="a">Einführung</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Relationale Datenbank</subfield><subfield code="0">(DE-588)4049358-1</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Datenbanksystem</subfield><subfield code="0">(DE-588)4113276-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">SQL</subfield><subfield code="0">(DE-588)4134010-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Relationales Datenbanksystem</subfield><subfield code="0">(DE-588)4130535-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Widom, Jennifer</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">HBZ Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016517101&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016517101</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
genre | (DE-588)4151278-9 Einführung gnd-content |
genre_facet | Einführung |
id | DE-604.BV023333201 |
illustrated | Illustrated |
index_date | 2024-07-02T20:58:27Z |
indexdate | 2024-07-09T21:16:06Z |
institution | BVB |
isbn | 9780136006374 013600637X |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016517101 |
oclc_num | 141384629 |
open_access_boolean | |
owner | DE-20 |
owner_facet | DE-20 |
physical | XXI, 565 S. graph. Darst. |
publishDate | 2008 |
publishDateSearch | 2008 |
publishDateSort | 2008 |
publisher | Pearson Prentice Hall |
record_format | marc |
spelling | Ullman, Jeffrey D. 1942- Verfasser (DE-588)123598230 aut A first course in database systems Jeffrey D. Ullman ; Jennifer Widom 3. ed. Upper Saddle River, NJ Pearson Prentice Hall 2008 XXI, 565 S. graph. Darst. txt rdacontent n rdamedia nc rdacarrier Administración de Bases de Datos Database management SQL (DE-588)4134010-3 gnd rswk-swf Relationales Datenbanksystem (DE-588)4130535-8 gnd rswk-swf Relationale Datenbank (DE-588)4049358-1 gnd rswk-swf Datenbanksystem (DE-588)4113276-2 gnd rswk-swf (DE-588)4151278-9 Einführung gnd-content Relationale Datenbank (DE-588)4049358-1 s DE-604 Datenbanksystem (DE-588)4113276-2 s SQL (DE-588)4134010-3 s 1\p DE-604 Relationales Datenbanksystem (DE-588)4130535-8 s 2\p DE-604 Widom, Jennifer Verfasser aut HBZ Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016517101&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Ullman, Jeffrey D. 1942- Widom, Jennifer A first course in database systems Administración de Bases de Datos Database management SQL (DE-588)4134010-3 gnd Relationales Datenbanksystem (DE-588)4130535-8 gnd Relationale Datenbank (DE-588)4049358-1 gnd Datenbanksystem (DE-588)4113276-2 gnd |
subject_GND | (DE-588)4134010-3 (DE-588)4130535-8 (DE-588)4049358-1 (DE-588)4113276-2 (DE-588)4151278-9 |
title | A first course in database systems |
title_auth | A first course in database systems |
title_exact_search | A first course in database systems |
title_exact_search_txtP | A first course in database systems |
title_full | A first course in database systems Jeffrey D. Ullman ; Jennifer Widom |
title_fullStr | A first course in database systems Jeffrey D. Ullman ; Jennifer Widom |
title_full_unstemmed | A first course in database systems Jeffrey D. Ullman ; Jennifer Widom |
title_short | A first course in database systems |
title_sort | a first course in database systems |
topic | Administración de Bases de Datos Database management SQL (DE-588)4134010-3 gnd Relationales Datenbanksystem (DE-588)4130535-8 gnd Relationale Datenbank (DE-588)4049358-1 gnd Datenbanksystem (DE-588)4113276-2 gnd |
topic_facet | Administración de Bases de Datos Database management SQL Relationales Datenbanksystem Relationale Datenbank Datenbanksystem Einführung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016517101&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ullmanjeffreyd afirstcourseindatabasesystems AT widomjennifer afirstcourseindatabasesystems |