Page 5
Introduction xxvi
Week 1 At A Glance 1
Day 1 Exploring the World of Relational Databases 3
2 Guidelines for Developing an Oracle Application 19
3 Logical Database Design 29
4 Implementing Your Logical Model: Physical Database Design 55
5 Introduction to Structured Query Language (SQL) 95
6 Using SQL to Modify Data 125
7 Taking Advantage of SQL Built-In Functions 149
Week 1 In Review 187
Week 2 At A Glance 189
Day 8 More Sophisticated Queries with SQL 191
9 Programming an Oracle Database with PL/SQL 227
10 Program Development with PL/SQL 249
11 More Programming Techniques with PL/SQL 283
12 Developer/2000: Introduction to Oracle Forms 327
13 Developer/2000: Developing a User Interface with Oracle Forms 355
14 Developer/2000: Application Development with Oracle Forms 379
Week 2 In Review 403
Week 3 At A Glance 405
Day 15 Developer/2000: Developing Reports with Oracle Reports 407
16 Developer/2000: Using Oracle Graphics and Procedure Builder 435
17 Introduction to Oracle Power Objects 459
18 Developing an Application with Oracle Power Objects 487
19 An Overview of Oracle Database Security and Tuning 513
20 Using Oracle Database Designer and Oracle Designer/2000
in Application Development 53521 Oracle: The Next Generation 555
Page 6
Week 3 In Review 577
Bonus Day 22 Using PowerBuilder with an Oracle Database 579
Bonus Day 23 Oracle8: New Features 591
Appendix
A Answers to Quizzes and Exercises 607
Index 639
Page 7
Page 8
3 Logical Database Design 29
Relational Database Theory 30
A Table Is Rows and Columns 30
The Order of Rows Is Arbitrary 31
The Order of Columns Is Arbitrary 31
Data Integrity 31
Primary Key 31
No Part of the Primary Key Is Null 32
Referential Integrity 32
Relationship 32
The Concept of the Null Value 33
Normalization 33
Normalization Rule 1: All Columns Should Contain a Single
Piece of Information 34Normalization Rule 2: All Columns Depend Only on the
Primary Key 35Normalization Rule 3: All Columns Depend on the Primary
Key and Nothing But the Primary Key 35Applying Normalization to Database Design 35
Entity Relationship Diagramming Tools 36
The Sample Application Database 37
Requirements 37
The Student Table 38
The Department Table 39
The Instructor Table 39
The Course Table 39
The Class Location Table 40
The Schedule Type Table 40
The Schedule Type Details Table 41
The Class Table 41
The Student Schedule Table 41
Oracle Terminology: Connection, User, and Session 42
Database Connection 42
Database User 43
Connecting to an Oracle Database 43
Creating a New User 43
Creating a New User with the Personal Oracle Navigator 44
Creating a New User with Security Manager 45
Oracle Datatypes 47
Numbers 47
Strings 49
Date and Time Information 50
Large Strings 51
BLOBs 51
Summary 52
What Comes Next? 52
Page 9
Q&A 52
Workshop 53
Quiz 53
Exercises 53
4 Implementing Your Logical Model: Physical Database Design 55
Basics of the CREATE TABLE Statement 57
Naming a Table 57
Naming a Column 58
Examples of Creating Tables 59
Identifying the Primary Key 61
Identifying Foreign Keys 62
Constraining a Column's Value with the CHECK Clause 64
Establishing a Default Value for a Column 65
Using ALTER TABLE to Modify the Table Definition 66
Changing a Column Definition from NOT NULL to NULL 67
Changing a Column Definition from NULL to NOT NULL 68
Increasing a Column's Width 69
Decreasing a Column's Width 70
Using a Primary Key 71
Defining a Primary Key During Table Creation 71
Defining a Primary Key After Table Creation 72
The Foreign Key and Referential Integrity 73
Declaring a Foreign Key During Table Creation 73
Declaring a Foreign Key After Table Creation 75
Primary and Foreign Key Columns 75
Disabling and Enabling Key Constraints 76
Dropping a Primary Key 76
Dropping a Foreign Key 78
Declaring Unique Constraints 78
Differences Between Primary Key and Unique Constraints 79
Table Indexes 79
Creating an Index 80
Why You Shouldn't Create Unique Indexes 81
Viewing Constraints 81
Restricting Values with a Column CHECK Constraint 83
A Column Can Have More Than One CHECK Constraint 85
Referencing Other Columns in a CHECK Constraint 86
Using Pseudocolumns in a CHECK Constraint 87
Common Restrictions on Modifying a Table 87
Changing the Primary Key 87
Script for Creating the Sample Database 88
Summary 91
What Comes Next? 92
Q&A 92
Workshop 92
Quiz 93
Exercise 93
Page 10
5 Introduction to Structured Query Language (SQL) 95
Retrieving and Modifying Data 96
SQL Grammar 96
Syntax of the SELECT Statement 97
A Simple SELECT Statement 97
The Select List 100
Results Returned by a SELECT 101
Using Expressions in the Select List 101
Built-in Functions 105
Specifying Criteria in the WHERE Clause 105
Combining Conditions with AND and OR 106
Sorting Data in the ORDER BY Clause 107
Counting Rows in a Table 108
Finding Rows Where a Column Value Is NULL 109
Searching for Rows with the LIKE Operator 112
Searching for Rows with the BETWEEN Operator 115
The IN Operator 116
Referencing Columns with an Alias 119
How to Use a Subquery 119
Creating a New Table with the SELECT Statement 120
Summary 121
What Comes Next? 122
Q&A 122
Workshop 122
Quiz 123
Exercise 123
6 Using SQL to Modify Data 125
SQL Data-Manipulation Language 126
Adding Rows with INSERT 126
INSERT Syntax 126
Specifying Values in the INSERT Statement 128
Column and Value Datatype Must Match 129
Using Pseudocolumns as Values 130
Why Columns Should Be Specified in an INSERT 131
Using a Subquery with INSERT 133
INSERT Syntax with Subquery 133
Generating Test Data 134
Modifying Data with UPDATE 135
Basic Syntax of UPDATE 135
Changing the Value of More Than One Column 135
Think of Sets, Not Records 136
Using a Subquery with an UPDATE 137
Throwing Out Data with the DELETE Statement 139
DELETE Syntax 139
Removing All Rows with the TRUNCATE TABLE Statement 140
Page 11
Concurrency 140
Read Consistency and Read-Only Transactions 141
Setting a Column Value to NULL 142
Assigning a NULL During an INSERT 142
Setting a Column to NULL with an UPDATE 142
Default Values and NULL 143
A Transaction Is a Logical Unit of Work 144
Saving Work with COMMIT 144
Undoing Changes with ROLLBACK 144
Savepoints 145
Summary 146
What Comes Next? 147
Q&A 147
Workshop 147
Quiz 147
Exercise 148
7 Taking Advantage of SQL Built-In Functions 149
Manipulating Strings 150
Finding the Length of a String 150
Extracting a Substring from a String 150
Finding Patterns in a String 152
Replacing a Portion of a String 153
Trimming a String 156
Padding a String 158
LPAD 158
RPAD 160
Changing the Case in a String 160
Using the DECODE Function to Return a String 162
Converting a Character to Its ASCII Numeric Value 163
Manipulating Dates 164
The Oracle date Datatype 164
Using the date Datatype to Store Time Information 164
The Current Date and Time: SYSDATE 166
The Oracle Date Format Model 166
The Oracle Default Date Format 168
Converting Dates to Strings 169
Converting Strings to Dates 170
Dates and Time 171
Calculating the Difference Between Two Dates 172
Specifying a Numeric Column 172
How Oracle Stores Numbers 175
Converting a Number to a String 175
Automatic Conversion of a Number to a String 175
Using TO_CHAR to Convert a Number to a String 176
Converting a String to a Number 178
Using Statistical Built-In Functions 179
Page 12
Rounding and Truncating Numbers 179
Finding the Largest or Smallest Value 181
Determining If a Value Is Null 181
Summary 183
What Comes Next? 184
Q&A 185
Workshop 185
Quiz 185
Exercise 185
Week 1 In Review 187
Week 2 At A Glance 189
Day 8 More Sophisticated Queries with SQL 191
Built-In Group Functions 191
The COUNT Function 192
Obtaining Maximum and Minimum Values 193
Using AVG and SUM 193
Combining Group Functions with Other Columns 194
Looking for Distinct Rows 194
Grouping Rows 195
Dealing with Hierarchical Information 198
Using the EXISTS Operator 201
The Join Operation 203
A Simple Two-Table Join 204
Beware of the Cartesian Product 206
Multiple Table Joins 207
Self-Join 208
Outer Joins 209
Using Set Operators in the SELECT Statement 211
The INTERSECT Operator 211
The UNION Operator 214
The MINUS Operator 217
Creating a Table by Selecting from Another Table 218
Using Views 220
View Syntax 220
Restricting Data Access with a View 222
Hiding Complexity with a View 223
Summary 224
What Comes Next? 224
Q&A 225
Workshop 225
Quiz 225
Exercise 225
Page 13
9 Programming an Oracle Database with PL/SQL 227
PL/SQL Is a Block-Structured Language 228
The Declaration Section 230
The Executable Section 230
The Exception Section 231
Declaring Variables with PL/SQL 231
Using %TYPE to Declare a Variable 231
Using %ROWTYPE to Declare a Variable 232
Some Familiar Control Structures 232
The IF Statement 233
The Simple LOOP Statement 234
The EXIT Statement 234
The WHILE-LOOP Statement 235
The FOR-LOOP Statement 235
The GOTO Statement 236
The NULL Statement 236
The Assignment Statement 237
Including Comments in a PL/SQL Subprogram 237
Using SQL Statements in a PL/SQL Program 237
PL/SQL and the SELECT Statement 238
PL/SQL Subprograms 239
Using Sub-Blocks 239
Declaring a Procedure 240
Declaring a Function 243
Procedure and Function Arguments 245
Summary 246
What Comes Next? 247
Q&A 247
Workshop 247
Quiz 247
Exercise 247
10 Program Development with PL/SQL 249
Creating a Stored Procedure or Function 250
Obtaining Error Messages When Creating Stored Procedures 253
Retrieving a Stored Procedure 254
Obtaining a List of Procedures, Functions, Packages,
and Package Bodies 255
Forward Declaration of Procedures and Functions 256
Using Stored Functions in a SQL Statement 259
Storing Results to a Table 259
Invoking a Stored Procedure or Function 260
Packages 260
Declaring a Package 260
Declaring a Package Body 262
Designing a Package for Use by Database Triggers 268
Page 14
Additional PL/SQL Datatypes 269
The BOOLEAN Datatype 269
The BINARY_INTEGER Datatype 270
Using %TYPE 271
Using %ROWTYPE 271
More Complex Datatypes: Tables and Records 275
Declaring PL/SQL Tables 275
Declaring User-Defined Records 278
Specifying Default Values for Variables 280
Summary 280
What Comes Next? 281
Q&A 281
Workshop 282
Quiz 282
Exercises 282
11 More Programming Techniques with PL/SQL 283
Handling Errors in PL/SQL 284
The Exception Section 284
Pre-Defined Exceptions 286
The DUP_VAL_ON_INDEX Exception 287
The INVALID_NUMBER Exception 287
The NO_DATA_FOUND Exception 288
The TOO_MANY_ROWS Exception 289
The VALUE_ERROR Exception 290
Declaring an Exception 291
Success or Failure: Inspecting SQLCODE and SQLERRM 292
Returning Errors with RAISE_APPLICATION_ERROR 293
Retrieving Data with a Cursor 294
Declaring a Cursor 297
Opening a Cursor 298
Fetching Rows from a Cursor 301
Closing a Cursor 302
Working with Cursor FOR Loops 304
Was It %FOUND or %NOTFOUND 306
Getting the Number of Rows with %ROWCOUNT 306
Enforcing Business Rules with Database Triggers 308
Creating a Trigger 309
Statement-Level and Row-Level Triggers 310
Referencing Column Values in the Trigger Body 310
Triggering Events 310
BEFORE and AFTER Triggers 311
Possible Triggers for a Table 311
Validating Column Values with a Trigger 312
Enforcing Security with a Trigger 314
Page 15
Setting Column Values with a Trigger 315
Cascading Triggers 317
COMMIT and ROLLBACK Cannot Be Used in Triggers 320
Calling Stored Procedures from a Trigger 320
Dropping, Enabling, and Disabling Triggers 321
Summary 322
What Comes Next? 323
Q&A 324
Workshop 324
Quiz 324
Exercises 324
12 Developer/2000: Introduction to Oracle Forms 327
What Is Developer/2000? 328
Building a Simple Form with Forms Designer 328
Connecting to an Oracle Database 328
Creating a New Block 330
Testing the New Form 333
Navigating Through a Form 334
Query Behavior of Oracle Forms 335
Modifying a Record with Oracle Forms 337
Saving a Form 339
Elements of Oracle Forms 340
Forms 340
Menus 341
Libraries 341
Elements of a Form 341
Working with the Object Navigator 342
Object Properties 344
Blocks 344
Canvas-Views 347
Windows 347
Triggers 347
Record Groups 349
LOVs 349
Alerts 350
Parameters 350
Using the Registry Editor to Change Oracle Components 350
Summary 352
What Comes Next? 353
Q&A 353
Workshop 353
Quiz 353
Exercise 353
Page 16
13 Developer/2000: Developing a User Interface
with Oracle Forms 355
Building a Master-Detail Form 356
Defining the Master Block 356
Defining the Detail Block 359
Defining the Relationship 359
Working with the Layout Editor 361
Formatting Text 361
Sizing Objects 362
Modifying Text 364
Sizing, Spacing, and Aligning Objects 365
Running the Master-Detail Form 367
Improving the Form 367
Controlling the Tab Order for Block Items 370
Creating a List of Values (LOV) 370
Summary 375
What Comes Next? 376
Q&A 376
Workshop 376
Quiz 377
Exercises 377
14 Developer/2000: Application Development
with Oracle Forms 379
An Overview of Triggers 380
Default Triggers 380
Using a Trigger to Retrieve Values from Another Table 382
Using a Form-Level Trigger to Execute a Query 388
Using a Trigger to Validate User Input 390
Elements of a Menu 392
Building a Menu 392
Incorporating New Menus 394
Adding Items to a Menu 396
Saving the Menu 397
Generating the Menu 397
Building a Multiform Application 397
Creating a Windows Shortcut to Run an Application 399
Closing a Form 400
Summary 400
What Comes Next? 401
Q&A 401
Workshop 402
Quiz 402
Exercises 402
Week 2 In Review 403
Page 17
Week 3 At A Glance 405
15 Developer/2000: Developing Reports with Oracle Reports 407
Elements of an Oracle Report 407
Data Model 408
Layout 408
Parameter Form 408
Oracle Reports Programs 409
Building a Tabular Report Based on a Single Table 409
Connecting to an Oracle Database 409
Creating a Data Model 410
Specifying a Default Layout 413
Sizing and Aligning Objects 417
Adding a Title, Date, and Page Count to the Report 418
Testing the Report 419
Printing a Report 421
Saving the Report 421
Building a Master-Detail Report 422
Creating a Data Model 422
Specifying a Default Layout 425
Testing the Report 428
Generating a Runtime Version of a Report 428
Using a Format Trigger 429
Creating a Shortcut to Run a Report 430
Invoking a Report from an Oracle Form 431
Summary 432
What Comes Next? 433
Q&A 433
Workshop 434
Quiz 434
Exercise 434
16 Developer/2000: Using Oracle Graphics and
Procedure Builder 435
The Role of Oracle Graphics 435
The Elements of Oracle Graphics 436
Building a Chart with the Graphics Designer 436
Connecting to an Oracle Database 436
Creating a New Chart 437
Choosing the Chart Type 437
Customizing the Chart Layout 439
Saving the Chart 440
Creating a Shortcut to Run a Chart 441
The Role of Procedure Builder in the Application
Development Process 442
Page 18
Elements of Procedure Builder 442
Connecting to an Oracle Database 443
Using the Procedure Builder's Object Navigator 444
Program Unit Editor 444
PL/SQL Interpreter 444
Stored Program Unit Editor 446
Database Trigger Editor 447
Viewing and Editing a Stored Program Unit 448
Creating a Database Trigger with the Database Trigger Editor 452
Testing the New Database Trigger 455
Summary 457
What Comes Next? 458
Q&A 458
Workshop 458
Quiz 458
Exercises 458
17 Introduction to Oracle Power Objects 459
Elements of an Oracle Power Objects Application 459
Creating a New Session 461
Viewing the Definition of a Database Object 462
Viewing and Modifying the Contents of a Database Object 464
Creating a New Application 466
Creating a Form 467
Adding Controls to a Form 469
Testing the Form 471
Adding a Scrollbar to the Form 472
Specifying the Retrieval Order for the Form 472
Naming the Form 473
Creating a Master-Detail Form 473
Using Radio Buttons 477
Displaying a Lookup Field 481
Summary 483
What Comes Next? 484
Q&A 484
Workshop 484
Quiz 485
Exercises 485
18 Developing an Application with Oracle Power Objects 487
Methods and Method Code 488
Validating User Input 490
Displaying Calculated Values in a Form 491
Creating a Class 493
Adding an Instance of a Class to a Form 495
Adding Method Code to the Class 496
Changing a Property in a Class Object 497
Page 19
Overriding an Inherited Class Property 498
Overriding an Inherited Class Method 499
Building an Oracle Power Objects Report 500
Sections of a Report 501
Specifying Report Objects 502
Specifying the PageHeader Area 503
Specifying the GroupHeader Area 504
Specifying the Detail Area 505
Adding a Lookup Field to a Report 508
Summary 509
What Comes Next? 510
Q&A 510
Workshop 510
Quiz 511
Exercises 511
19 An Overview of Oracle Database Security and Tuning 513
Users and Roles 513
Pre-Defined Users: SYS and SYSTEM 514
Pre-Defined Roles 514
System and Object Privileges 515
Creating and Using a Role 515
Limiting a User's Resources with a Profile 519
Obstacles to Optimal Performance 519
Synonyms 520
Synonym Syntax 520
Dropping Synonyms 522
Hiding Table Ownership with Public Synonyms 522
Synonyms, the Navigator, and Schema Manager 523
Examining a Synonym with the Navigator 524
Creating a Synonym with the Navigator 524
Deleting a Synonym with the Navigator 525
Where's the Bottleneck? 525
Network 525
Identifying Application Bottlenecks 526
Determining the Execution Plan for an SQL Statement
with EXPLAIN PLAN 527Creating Indexes to Improve Performance 530
Tuning an Oracle Database 531
Summary 532
What Comes Next? 533
Q&A 533
Workshop 533
Quiz 533
Exercise 534
Page 20
20 Using Oracle Database Designer and Oracle Designer/2000
in Application Development 535
Creating an Entity-Relationship Diagram with Database Designer 537
Adding a Table to the Diagram 538
Specifying the Columns for a Table 540
Specifying a Table's Constraints 541
Specifying a Foreign Key 543
Generating the DDL Statements for the Diagram 545
Using Database Designer to Reverse Engineer an Oracle Database 548
The Basics of Designer/2000 550
Process Modeller 551
Entity Relationship Diagrammer 551
Function Hierarchy Diagrammer 551
Database Design and Application Design Wizards 552
Module Structure Diagrammer 552
Summary 553
Q&A 553
Workshop 554
Quiz 554
21 Oracle: The Next Generation 555
Connecting an Oracle Database to the Web: Using Oracle
WebServer 556
Elements of the Oracle WebServer 556
Web Listener 558
Web Application Server Administration 559
Database Access Descriptor (DAD) Administration 561
Web Request Broker Administration 562
Cartridge Administration 563
Special PL/SQL Packages htp and htf 564
Using a Stored Procedure to Generate Dynamic HTML 564
Developer/2000 for the Web 566
Configuring Oracle Forms for the Web 568
Development Considerations Regarding Developer/2000
for the Web 569
Oracle's Network Computing Architecture 571
Overview of the Network Computing Architecture 572
CORBA 572
Components of the Network Computing Architecture 573
Cartridges 573
Inter-Cartridge Exchange 574
Summary 574
Q&A 575
Workshop 575
Quiz 575
Week 3 In Review 577
Page 21
Bonus Day 22 Using PowerBuilder with an Oracle Database 579
Defining a Database Profile 580
Creating a DataWindow 583
Error Handling with Oracle 588
Summary 590
23 Oracle8: New Features 591
Enhancement of Existing Datatypes and Some New Datatypes 592
Large Objects or LOBs 593
Using CLOBs 594
New Datatypes Available with the Oracle Objects Option 597
The Object Datatype 597
Nested Tables 599
The VARRAY Datatype 600
Data Dictionary Views for User-defined Types 602
Changes to the SELECT Statement 603
Referencing External Procedures 604
Object Views 605
Development Considerations 606
Summary 606
Appendix
A Answers to Quizzes and Exercises 607
Day 1, "Exploring the World of Relational Databases" 608
Quiz 608
Exercise 608
Day 2, "Guidelines for Developing an Oracle Application" 609
Quiz 609
Exercise 609
Day 3, "Logical Database Design" 610
Quiz 610
Exercises 611
Day 4, "Implementing Your Logical Model: Physical
Database Design" 613Quiz 613
Exercise 613
Day 5, "Introduction to Structured Query Language (SQL)" 614
Quiz 614
Exercise 614
Day 6, "Using SQL to Modify Data" 615
Quiz 615
Exercise 616
Day 7, "Taking Advantage of SQL Built-In Functions" 617
Quiz 617
Exercise 617
Page 22
Day 8, "More Sophisticated Queries with SQL" 619
Quiz 619
Exercise 620
Day 9, "Programming an Oracle Database with PL/SQL" 621
Quiz 621
Exercise 622
Day 10, "Program Development with PL/SQL" 623
Quiz 623
Exercises 624
Day 11, "More Programming Techniques with PL/SQL" 626
Quiz 626
Exercises 627
Day 12, "Developer/2000: Introduction to Oracle Forms" 630
Quiz 630
Exercise 631
Day 13, "Developer/2000: Developing a User Interface with
Oracle Forms" 631Quiz 631
Exercises 631
Day 14, "Developer/2000: Application Development with
Oracle Forms" 632Quiz 632
Exercises 632
Day 15, "Developer/2000: Developing Reports with Oracle Reports" 632
Quiz 632
Exercise 633
Day 16, "Developer/2000: Using Oracle Graphics and Procedure
Builder" 633Quiz 633
Exercises 633
Day 17, "Introduction to Oracle Power Objects" 634
Quiz 634
Exercises 634
Day 18, "Developing an Application with Oracle Power Objects" 634
Quiz 634
Exercises 635
Day 19, "An Overview of Oracle Database Security and Tuning" 635
Quiz 635
Exercise 636
Day 20, "Using Oracle Database Designer and Oracle
Designer/2000 in Application Development" 637Quiz 637
Chapter 21, "Oracle: The Next Generation" 638
Quiz 638
Index 639
Page 23
Welcome to Teach Yourself Oracle8 Database Development in 21 Days! This book explores the use of the Oracle database and related Oracle tools in the application development process. During a three-week period, you will be introduced to the various facets of database development including logical database design, physical database design, and the use of Structured Query Language (SQL), a standard language for interfacing with a relational database.
In addition, you will learn about PL/SQL, Oracle's procedural language extension to SQL. With PL/SQL, you can embed application logic within an Oracle database. Once you've learned the basics of PL/SQL, you'll spend five lessons on Developer/2000, a suite of application-development tools, including Oracle Forms, Reports, Graphics, and Procedure Builder. Another two lessons focus on a different application-development tool: Oracle Power Objects. You'll also learn about Oracle database security and performance tuning; following that lesson is an overview of two Oracle products that you might use during application development: Designer/2000 and Database Designer. The final lesson delves into three areas: the Oracle Web Application Server, Developer/2000 for the Web, and Oracle's Network Computing Architecture.
In addition to the 21 lessons, there are two Bonus Days: the first day discusses the use of Powerbuilder with an Oracle database, and the second day discusses new features of Oracle8 that are of particular interest to database designers and application developers.
Assumptions
You'll get the most out of this book if you have the following level of experience:
The best way to learn any new subject is to practice and experiment. To follow the examples presented in each lesson, as well as each quiz and exercise, you'll need access to the following:
Page 27
About the CD-ROM
The CD-ROM contains a file, named flugle.dmp, which contains the sample database discussed throughout the book. By loading this file into an Oracle database, you can follow the examples that are presented in each lesson. A file on the CD-ROM, readme.txt, contains directions for loading flugle.dmp into an Oracle database.
In addition, there is a folder for each lesson which contains the script files for the code listings presented in each lesson. Each folder may also contain other files that are applicable to the Oracle tool discussed in that lesson.
How To Use This Book
This book has been designed as a 21-day teach-yourself training course complete with chapter quizzes, exercises, and examples that you can try out on your own. It is expected that you can complete one chapter each day of the week for three weeks. However, you should work at your own rate. If you think you can complete two or more chapters a day, go for it! Also, if you think that you should spend more than one day on a certain chapter, spend as much time as you need.
Each week begins with a Week at a Glance section and ends with a Week in Review section. Each day ends with a Q&A section containing questions and answers related to that day's material. There also is a Workshop at the end of the day. A Quiz tests your knowledge of the day's concepts, and one or more exercises put your new skills to use. We urge you to complete these sections to reinforce your new knowledge.
Page 28
Conventions Used in This Book
This book contains special features to help highlight important concepts and information.
NOTE |
A Note presents interesting pieces of information related to the surrounding discussion. |
TIP |
A Tip offers advice or teaches you an easier way to do something. |
WARNING |
A Warning advises you about potential problems and helps you steer clear of disaster. |
The New Term icon is added to paragraphs in which a new term is defined. The new term also is italicized so you can find it easily.
The Input icon identifies a code snippet or listing in which you must type some or all the code yourself.
The Output icon identifies information that represents Oracle output in a code snippet or listing.
The Input/Output icon identifies a code snippet or listing that contains code that you must type and code that is output by Oracle. Input is presented in boldface type, and output is presented in regular type.
The Analysis icon identifies the explanation and purpose of the listing just
presented.
Introduction xxvi
Week 1 At A Glance 1
Day 1 Exploring the World of Relational Databases 3
Structured Query Language (SQL) 5
The Oracle Product Line 5
Oracle Universal Server 6
Oracle Workgroup Server 6
Personal Oracle 6
Other Oracle Products 7
What Is Client/Server Computing? 8
The Origins of Client/Server Computing 9
The Birth of the PC 9
PC Databases 10
LAN Databases 10
The Emergence of the Relational Database 11
Middleware 11
Application Development Tools 13
The "Fat" Client versus the "Thin" Client 13
CORBA 14
The Challenge to Client/Server Computing: The Network Computer 15
The Purpose of This Book 15
Summary 16
What Comes Next? 16
Q&A 17
Workshop 17
Quiz 17
Exercise 17
2 Guidelines for Developing an Oracle Application 19
Lessons Learned 20
Gathering Requirements 21
Designing and Building the Application 23
Testing the Application 25
Deploying the Application 26
Maintaining the Application 26
Summary 27
What Comes Next? 27
Q&A 27
Workshop 28
Quiz 28
Exercises 28