CONTENTS
PREFACE
The Evolution of Database Technology = xvii
Object-Oriented Database Processing = xviii
Overview of This Text = xix
Learning Enhancements in This Text = xxi
Supplementary Materials = xxii
Acknowledgments = xxii
PART I FUNDAMENTAL CONCEPTS
Chapter 1 Introduction = 3
The Need for Information = 3
An Illustration = 4
File Processing Systems = 6
Database Processing Systems = 9
The Definition of Database = 11
The Database as a Model of an Organization = 13
Database Applications = 16
Kinds of database Systems = 18
A Short History of Database Processing = 19
The Organizational Context = 19
The End-User Context = 20
The Distributed database Context = 24
Comparing the Three Contexts = 25
Summary = 25
Questions : Group I = 27
Questions : Group II = 27
Chapter 2 Database Applications = 29
Eastcoast State University Computer Lab = 29
An Information System for the Lab = 30
Database Applicatiions for the Lab = 31
Database Application System Components = 33
Hardware = 33
Programs = 35
Data = 37
Procedures = 39
People = 40
Database Application Functional Components = 42
Mechanisms for Updating Data = 42
Mechanisms for Displaying Data = 48
Mechanisms for Control = 52
Summary = 54
Questions : Group I = 56
Questions : Group II = 57
Chapter 3 Database Management Systems : Toolkits for Application Development = 59
The DBMS = 62
Generic DBMS Functions = 63
The Subsystems of a DBMS = 65
The DBMS Engine = 65
The Definition Tools Subsystem = 68
The Processing Interface Subsystem = 69
The Application Development Tools Subsystem = 73
The Data Dictionary Subsystem = 74
The Application Development Process = 75
The Definition Phase = 75
The Requirements Phase = 77
Evaluation = 78
Design = 79
Implementation = 81
Summary = 82
Questions : Group I = 83
Questions and Exercises : Group II = 84
PART II DATABASE DESIGN = 85
Chapter 4 Specifying Database Requirements = 87
Requirements Definition = 88
Goals for the Requirements Phase = 88
Determining User Requirements = 88
Database Objects = 90
Object Characteristics = 91
Property Domains = 94
Object Views = 95
A Process for Identifying Objects = 96
Objects for the University Administration database = 97
The COLLEGE Object = 98
The DEPARTMENT Object = 99
The STUDENT Object = 102
The TEACHING-STAFF Object = 103
Validating Object Definitions = 104
The PROFESSOR Object = 105
Object Specification = 108
Specifying Application and Their Functional Components = 108
Dataflow Diagrams = 111
Determining Functional Components = 114
The STUDENT-RECORDS Application = 114
Functional Components for ACADEMIC-RECORDS and PROFESSOR-PERSONNEL Applications = 122
Inter-application Requirements = 122
Operations, Database Administration, and Environmental Requirements = 123
The Requirements Review = 124
Requirements Documentation = 124
The User Review = 125
The Evaluation Phase = 126
Summary = 126
Questions : Group I = 127
Questions and Exercises : Group II = 129
Chapter 5 Relation Definition and Normalization = 131
Approaches to Relation Design = 131
Terminology = 132
Normalization = 133
Modification Anomalies = 134
Classes of Relations = 137
Relationships among Attributes = 138
Functional Dependencies = 138
Keys = 139
Functional Dependencies, Keys, and Uniqueness = 141
First Through Fifth Normal Forms = 142
Second Normal Form = 142
Third Normal Form = 142
Boyce-Codd Normal Form = 144
Fourth Normal Form = 145
Fifth Normal Form = 148
Domain / Key Normal Form = 149
Definition = 149
Domain / Key Normal Form Example 1 = 150
Domain / Key Normal Form Example 2 = 152
Domain / Key Normal Form Example 3 = 154
Rules for Composing Relations = 156
The One-to-One Attribute Relationship = 157
The Many-to-One Attribute Relationship = 158
The Many-to-Many Attribute Relationship = 159
Multivalued Dependencies, Iteration Two = 160
A Note on Constraints = 161
Summary = 162
Questions : Group I = 163
Questions and Exercises : Group II = 164
Chapter 6 Logical Database Design = 167
Binary Relationships = 168
One-to-One Relationships = 169
One-to-Many Relationships = 174
Many-to-Many Relationships = 178
Summary of the Three Types of Binary Relationships = 182
Trees and Networks = 183
Trees = 183
Simple Networks = 185
Complex Networks = 186
Object Types = 186
Simple Objects = 187
Composite Objects = 187
Compound Objects = 192
Association Objects = 195
Aggregation Objects = 196
Transforming Objects into Relations = 200
Transformation of Simple Objects = 200
Transformation of Composite Objects = 200
Transformation of Compound Objects = 202
Transformation of Association Objects = 202
Sample Objects = 205
Subscription Form = 206
Product Description = 208
Traffic Warning Citation = 209
Summary = 210
Questions: Group I = 213
Questions and Exercises : Group II = 214
PART III USING A DATABASE = 217
Chapter 7 Multi-user Processing and Database Administration = 219
The Multi-user Database Environment = 220
Data as a Corporate Resource = 221
Functions of the DBA = 222
Management of Data Activity = 223
Management of the Database Structure = 226
Management of the DBMS = 228
DBA Personnel and Placement = 229
Functions of the DBMS = 233
Control of Concurrent Processing = 233
Database Recovery = 241
Database Security = 246
Summary = 251
Questions : Group I = 252
Questions and Exercises : Group II = 253
Chapter 8 Designing Database Applications = 255
Functions of a Database Application = 256
Print, Query, and Update Objects = 256
Enable User Direction = 258
Maintain the Security and Integrity of the Database = 258
Materializing Object Views = 259
Object Views = 260
Materialization = 260
The Role of Applications in Object Materialization = 263
Application Design = 263
Step 1 : Determine Applications and Scope = 263
Application Development at Eastcoast State University = 264
Applications and Scope for the Lab Database = 266
Step 2 : Design Control Mechanisms = 267
Step 3 : Determine Options for Each Menu = 267
Step 4 : Specify Logic, Design Materializations, Check Integrity = 270
Form Design = 272
Form Structure = 272
Data Lookup = 275
Modeless Processing = 275
Pop-up Windows = 276
Cursor Movement and Pervasive Keys = 276
Report Design = 277
Report Structure = 277
Processing of Sorted-by Clauses = 279
Processing Updates = 281
Restrictions on Updates to Parent Records = 283
Restrictions on Updates to Child Records = 285
Enforcing Constraints = 285
Summary = 286
Questions : Gruoup I = 288
Questions and Exercises : Group II = 289
PART IV END-USER DATABASE PROCESSING = 291
Chapter 9 Relational Processing with SQL = 293
Characteristics of Relational Database Applications = 295
Impact of the Relational Model = 296
Relational Data Definition = 297
Terminology = 297
Expressing Relationships with the Relational Model = 298
Relational Data Manipulation = 305
Categories of Relational Data Manipulation Language = 306
Sample Relations = 308
Relational Algebra = 308
Expressing Queries in Relational Algebra = 317
Relational Data Manipulation Language-SQL = 321
Terms = 322
Querying a Single Table = 322
Querying Multiple Table = 327
Changing Data = 334
Summary = 336
Questions : Group I = 337
Questions and Exercises : Group II = 340
Chapter 10 Microcomputer Databases = 341
The Microcomputer Database Environment = 341
The Typical User = 342
Development by End Users = 342
Redefinition of the MIS Department's Role = 343
The Scale of Database and Applications = 343
Microcomputer Database Administration = 344
Classes of Microcomputer Databases = 344
Type I : Stand-Alone Microcomputer Databases = 344
Type II : Databases of Imported Data = 348
Type III : Multi-User Microcomputer Databases = 354
Designing a Microcomputer Database = 360
Outputs from Logical Design = 360
Defining Tables and Columns = 361
Distinguishing Column Names from Domain Names = 363
Views = 364
Constraints = 369
Security = 375
Summary = 375
Questions : Group I = 377
Questions and Exercises : Group II = 378
Chapter 11 Relational Database Application = 379
Case Study : KDK Appliances = 379
Problems = 380
Overview of the Solution = 381
Database Security Precautions = 383
Object Definitions = 383
Relatiion Definitions = 388
KDK Case Summary = 394
DB2 : The Product = 396
Key Features = 396
The DB2 Data Definition Language = 399
DB2 Data Manipulation Language : SQL = 409
DB2 Concurrent Processing = 416
DB2 Backup and Recovery = 418
DB2 Security = 418
Relational Implementation Using DB2 = 421
Creating the Database Structrue = 421
Examples of Interactive Query = 421
Application Program Example = 421
Summary = 431
Questions : Group I = 433
Questions and Exercises : Group II = 434
PART V ORGANIZATIONAL DATABASE PROCESSING = 437
Chapter 12 Transaction Processing and the Hierarchical Model with DL / I = 439
Transaction Processing = 439
Characteristics of Transactiion Processing = 440
Databases for Transaction Processing = 442
Three Data Models = 443
Predefined Relationships = 444
Designing Databases for Transaction Processing = 444
Data Language / I = 446
Representation of Objects for DL / I Processing = 449
The Physical Representation of Trees = 449
Transforming Simple Networks into Trees = 451
Complex Networks = 452
Eliminating Data Duplication = 454
DL / I Representation of the Library Example = 457
Logical and Physical Records = 460
Application Views = 460
DL /I Data Manipulation Language = 461
Get Unique(GU) = 462
Get Net(GN) = 464
Get Next within Parent(GNP) = 466
Get Hold Commands = 466
Replace(REPL) = 466
Delete(DLET) = 467
Insert(INSRT) = 469
DL / I Data Manipulation Command Summary = 469
Summary = 470
Questions : Group I = 471
Questions and Exercises : Group II = 472
Chapter 13 The Network Data Model and CODASYL DBTG = 475
The CODASYL DBTG Data Model = 476
The CODASYL DBTG Data Definition Language = 477
CODASYL DBTG Data Definition = 477
CODASYL DBTG Representation of Objects = 484
Composite Objects = 484
1 : 1 Compound Objects = 486
1 : N Compound Objects = 486
M : N Compound Objects = 487
Association Objects = 488
DBTG Set Ordering = 490
Set Membership = 492
Set Insertion Status = 492
Set Retention Status = 492
Constraints = 493
Domatin Constraints = 494
Intra-record Constraints = 494
Inter-record Constraints = 495
A Schema Definition for the Library Database = 496
Record Definitions = 496
Set Definitions = 499
Subschema Definitions = 501
Subschemas for the Library Database = 501
The PURCHASE Subschema = 503
The BORROW Subschema = 503
The CODASYL DBTG Data Manipulation Language = 505
General DML Concepts = 505
Currency Indicators = 505
Special Registers = 506
DBTG DML for Single-Record Processing = 508
Processing Multiple Records with Sets = 509
The CODASYL DBTG Model as a Model = 513
Summary = 514
Questions : Group I = 515
Questions and Exercises : Group II = 516
Chapter 14 CODASYL DBTG Implementation with IDMS / R = 519
What is a CODASYL DBTG DBMS? = 520
CODASYL DBTG DBMS Products = 520
IDMS / R = 521
IDMS / R Database Definition and Access = 523
IDMS / R Physical Storage = 525
Pages = 526
Set Representation = 527
IDMS / R Data Definition = 529
DDL Differences from the 1981 DBTG Model = 529
Schema Definition = 534
DMCL Description = 535
Subschema Descriptions = 535
IDMS / R Data Manipulation Facilities = 537
Data Retrieval Commands = 537
Update Commands = 539
IDMS / R Concurrent Processing and Recovery = 540
IDMS / R Locking Facilities = 540
IDMS / R Checkpoints = 542
IDMS / R Recovery = 543
IDMS / R Security = 544
User Authorization = 545
Program Registration = 545
Subschema Authorization = 545
Area Security = 546
Record Security = 547
Set Security = 547
Authorization by Database Procedure = 547
An Example of IDMS / R = 547
The IDMS / R Schema for the Library Database = 547
The SCHEMA Statement = 548
DMCL Descriptions = 557
Subschema Description = 558
An Example of an IDMS / R Application Program = 561
Summary = 566
Questions : Group I = 567
Questions and Exercises : Group II = 569
PART VI DISTRIBUTED DATABASE PROCESSING = 571
Chapter 15 Fundamentals of Distributed Database Processing = 573
Overview of Distributed Database Processing = 574
Advantages of Distributed Processing = 576
Disadvantages of Distributed Processing = 577
Components of Distributed Database Systems = 578
Hardware = 579
The DDBMS = 579
Data Replication = 581
Procedures = 582
Personnel = 582
Four Goals for a Distributed DBMS = 583
Location Transparency = 583
Replication Transparency = 584
Concurrency Transparency = 584
Failure Transparency = 585
Systems Application Architectrue = 585
The Definition and Components of SAA = 586
Programming Languages and Services = 586
User Access = 586
Communications Support = 587
The Implications of SAA for Distributed Database Processing = 587
Distributed Concurrency Control = 588
Concurrent Processing Anomalies = 588
Serial and Serial-Equivalent Executions = 590
Commitment in Distributed Systems = 593
Concurrency Control via Distributed Two-Phase Locking = 595
Distributed Locking = 596
Distributed Deadlock Processing = 597
Concurrency Control in R = 599
Failure Transparency = 600
The Need for Directory Management = 600
Two-Phae Commit with Acknowledgment = 602
Consistency in Partitioned Networks = 604
Summary = 608
Questions : Group I = 610
Questions and Exercises : Group II = 611
APPENDIX A File Organization = 613
Direct Access Storage Devices = 613
Disk = 614
Other Direct Access Hardware = 615
Direct Access Data Formats = 616
Key and No-Key Formats = 616
Fixed Block Architecture = 618
Record Blocking = 619
Basic File Organizations = 619
Sequential File Organizatiion = 620
Indexed Sequential File Organization = 620
Direct File Organization = 624
Summary = 632
Questions : Group I = 633
Questions and Exercises : Group II = 634
APPENDIX B Data Structures for Database Processing = 635
Flat Files = 636
Processing Flat Files in Multiple Orders = 636
A Note on Record Addressing = 637
Maintaining Order with Linked Lists = 638
Maintaining Order with Inverted Lists = 639
B-Trees = 643
Summary of Data Structures = 645
Representing Binary Relationships = 645
Review of Record Relationships = 646
Representing Trees = 649
Representing Simple Networks = 652
Representing Complex Networks = 654
Summary of Relationship Representations = 656
Secondary-Key Representations = 657
Linked List Representation of Secondary Keys = 660
Inverted List Representation of Secondary Keys = 662
Summary = 664
Questions : Group I = 664
Questions and Exercises : Group II = 666
GLOSSARY = 667
BIBLIOGRAPHY = 675
INDEX = 681