Table of Contents | Next

Page 5

Overview

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 535

21 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 34

Normalization Rule 2: All Columns Depend Only on the
Primary Key 35

Normalization Rule 3: All Columns Depend on the Primary
Key and Nothing But the Primary Key 35

Applying 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 527

Creating 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" 613

Quiz 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" 631

Quiz 631

Exercises 631

Day 14, "Developer/2000: Application Development with
Oracle Forms" 632

Quiz 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" 633

Quiz 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" 637

Quiz 637

Chapter 21, "Oracle: The Next Generation" 638

Quiz 638

Index 639

Page 23

Introduction

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.

Contents

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

Table of Contents | Next



Используются технологии uCoz