Page 3
Introduction xlv
Part I Oracle Concepts
Part II Oracle Systems and Servers
Part III Oracle Tools and Utilities
Part IV Database Administration
Page 4
Part V Developing Applications
Part VI Designer/2000
Part VII Developer/2000
Part VIII Oracle Objects for OLE
Part IX Discoverer 3.0
Part X Other Oracle Development Tools
Page 5
Part XI Integrating Oracle and Third-Party Tools
Part XII Oracle and the Web
Part XIII Advanced Topics
Page 6
Introduction xlv
Part I Oracle Concepts
The Hierarchical Database Model 4The Birth of Oracle 5
The Network Database Model 5
Relational Databases, So Help Me Codd 5
The Goals of the NCA 8CORBA 11
What Is the Difference Between the Network Computer and What We Have Today? 9
What Network Computers Offer 10
The Challenges Facing NCA 10
Network Computer, Inc. 11
America's Promise, Oracle's Promise 11
The Oracle Enterprise Manager 13The Universal Data Server 14
The Universal Application Server 13
Oracle Cartridge Solutions Network Fund 14
Oracle Alliance Value Service 15Oracle Support 16
The Support Olympics: Bronze, Silver, or Gold? 16The Oracle Developer Programme 20
Customer Support Identification Number 17
Crossing the TAR Pits 17
Oracle's Automated Support 18
Traditional Classroom Setting 20Oracle Consulting 22
The Oracle Channel 21
The Oracle Masters Programs 21
Page 7
Hierarchical and Network Models 26RDBMS Components 30
Elements of the Relational Model 27
The RDBMS Kernel 30Nonprocedural Data Access (SQL) 32
The Data Dictionary 31
The Oracle8 RDBMS Server 38Oracle Directions 43
Networking Products 40
Client/Server Development Tools 41
Memory 46Global View of the Oracle Architecture 47
Processes/Programs 46
File Systems 46
Network 46
What Is a Database? 47Oracle Files 51
Oracle Files 49
System and User Processes 49
Memory 49
Network Software and SQL*Net 50
Database Files 52System and User Processes 53
Control Files 52
Redo Logs 52
Other Supporting Files 53
Mandatory System Processes 53
Optional System Processes 54
User Processes 56
Page 8
System Global Area (SGA) 58Storage 61
Process Global Area 60
The Oracle Programs 61
Tablespaces and Database Files 61System Database Objects 64
Segments 62
Extents 62
Oracle Blocks 62
ROWID in Oracle8 63
Free Space and Automatic Compaction 63
The Data Dictionary 64Protecting Your Data 66
Rollback Segments 64
Temporary Segments 65
Bootstrap/Cache Segment 66
Transactions, Commit, and Rollback 66Backup and Recovery 72
Data Integrity 67
System-Level Privileges 70
Object-Level Privileges 71
Users and Roles 71
Auditing 72
Backup and Recovery Options 72Distributed Databases 77
Multiplexing 76
Part II Oracle Systems and Servers
Personal Oracle7 and Oracle Lite Components 85System Requirements 90
Hardware Requirements for Personal Oracle7 90
Hardware Requirements for Personal Oracle Lite 91
Software Requirements 91
Page 9
Oracle Navigator for Windows 95, Windows NT, and OS/2 93Database Backup and Recovery Tools 97
SQL*DBA 94
Server Manager (Line Mode) 94
Instance Manager 94
Database Manager 95
Database Password Manager for Windows 96
The User Manager 96
The Object Manager 97
The Session Manager 97
The Database Expander 97
The Backup Manager 97The Export, Import, and SQL*Loader Utilities 98
The Recovery Manager 97
The Export and Import Utilities 98SQL Products 98
SQL*Loader 98
Networking Software 99Middleware 99
Oracle Objects for OLE 99Personal Oracle7 Database Options 100
Oracle7 ODBC Driver 100
Oracle Call Interface 100
Distributed Option 101When to Use Personal Oracle7 and Oracle Lite 101
Replication Option 101
How Oracle7 Workgroup Server Differs from Other Oracle Packages 104System Requirements 109
Oracle7 Workgroup Server Components 106
Server Hardware Requirements 110Oracle7 Workgroup Server Tools and Utilities 113
Server Operating System Requirements 111
Client System Requirements 113
Oracle Enterprise Manager 113
Oracle Administrator Toolbar 116
Oracle WebServer Manager 116
Oracle7 Performance Monitor for Windows NT 116
Page 10
Oracle Intelligent Agent 116Oracle7 Workgroup Server Distributed and Replication Features 119
Network Manager for Windows 118
Database Links 119When to Use Oracle7 Workgroup Server 120
Distributed Queries and Joins 119
Distributed Updates with Two-Phase Commit 120
Read-Only Snapshots 120
XA Support 120
Connectivity to Non-Oracle Data via Oracle Open Gateway 120
Physical Storage Improvements 128Summary 156
SQL Language Extensions 132
Deferred Constraint Checking 135
Object Types 136
Object Views 140
Nested Tables 143
New PL/SQL Extensions and Packages 145
Optimizer Improvements 150
Administration and Security Enhancements 152
Oracle8 OCI 154
Oracle Type Translator (OTT) 155
Oracle7 Server Components 158Oracle7 Server and Oracle7 Universal Data Server 160
Oracle Video Server 160System Requirements 162
Oracle WebServer 161
Oracle OLAP Option 161
Oracle Messaging Option 162
Oracle Spatial Data Option 162
Oracle ConText Option 162
Server Hardware Requirements 163
Server Operating System Requirements 164
Client System Requirements 165
Page 11
Instance Manager for Windows NT 166New Features in Oracle7 Server 7.3 172
Oracle Instance Manager 166
Oracle Response File Generator 167
Server Manager 167
Screen-Mode Utilities for NetWare 168
Oracle7 Enterprise Backup Utility 169
Oracle Trace 171
SQL*Plus for NetWare 171
Standby Database 172How Oracle7 Server Differs from Other
Bitmap Index 172
Hash Joins 173
Partition Views 173
Operating System Integration Support 174When To Use Oracle7 Server 176
Oracle7 Server Options 175
HTTP Server 180Component Interaction 183
Web Request Broker 181
Cartridges 182
Database Access 188Using Supplied Cartridges 191
The PL/SQL Cartridge 191Developing Cartridges with the WRB API 200
The LiveHTML Cartridge 197
The Java Cartridge 198
Other Oracle Cartridges 200
The Architecture of Electronic Commerce 206Is Electronic Commerce a Solution for My Business? 208
The Future of Electronic Commerce with the NC 207
Factors That Make Electronic Commerce Profitable 208
Factors That Could Make Electronic Commerce
Unprofitable 210
Page 12
The Big Picture 211A Peek at Some of the Third-Party Internet Commerce
The ICS Store Manager 213
The ICS Persistent Shopping Cart 213
Product Browsing and Searches with ConText 213
Customizable User Interface 213
User Preferences 213
Promotions and Discounts 214
Customer Accounts 214
Open Interface 214
Oracle Applications for the Web 215Encryption and Electronic Commerce 216
Oracle Web Customers 215
Oracle Web Employees 215
Oracle Web Suppliers 216
Encryption and Decryption: The Spy and Walt Whitman 216Summary 220
Web Encryption 218
Part III Oracle Tools and Utilities
SQL ”The Standard 224Datatypes 224
Numeric 225The CREATE Statement 227
Date 225
Character 226
Binary 226
Others 227
Tables 227Writing Queries 234
Indexes 230
Sequences 232
Other Objects 233
Built-In Functions 236The DECODE Statement 250
Know Your Tables and Views 245
Joining Tables 245
Page 13
Package Creation 258Creating Package Subprograms 260
Procedure Definition 260Cursors 263
Function Definition 261
Subprogram Parameter Modes 261
Subprogram Specifications 262
Default Procedure Parameters 262
Stand-Alone Procedures 262
Declaring Cursors 263Procedure Variables 265
Cursor Control 263
Explicit Cursor Attributes 263
Cursor Parameters 264
Creating Cursor Packages 264
Variable Declaration and Assignment 265Scalar Datatypes 268
The DEFAULT Keyword 267
Variable and Constant Attributes 267
Boolean 268Composite Datatypes 269
Date/Time 268
Character 268
Number 269
Array Processing 269Processing Control 271
Record Processing 270
Loop Control 271Exception Handling 274
Iterative Control 273
User-Defined Exceptions 274Comments 276
System-Defined Exceptions 275
Referencing Stored Procedures 277
Stored Procedure States 278
Overloading 279
Page 14
Referencing Internal Functions 280Additional Topics 280
Internal Functions 280
The DECLARE Statement 280Oracle8 Enhancements 287
Naming Conventions 281
Datatype Conversion 282
Database Triggers 282
More on Exceptions 284
More on Control Structures 286
National Language Support 287Summary 288
Object Types 287
External Procedure Reference 288
Commands That Initiate the SQL*Plus Environment 292Character-Mode Environments 293
SQL*Plus Execute Commands 295SQL*Plus Reporting 301
SQL*Plus Editing Commands 296
SQL*Plus Formatting Commands 297
Miscellaneous Commands 299
Access Commands for Various Databases 301
Reporting Techniques 301SQL*Plus Additional Functionality 310
Advanced Reporting Techniques 303
SQL Creating SQL 310Summary 316
SQL Creating Command-Language Scripts 312
SQL*Plus Creating Database-Driven
Command-Language Scripts 313
The Server Manager Command Set 318
Before You Start Server Manager 319
Page 15
Starting Server Manager in Line Mode 320Server Manager in Command Mode 322
Startup and Shutdown with Server Manager in Line Mode 320
Automating the Startup and Shutdown Options 323Server Manager Command Reference 326
! (the Exclamation Mark) 327Summary 342
@ (the "at" Symbol) 327
ARCHIVE LOG 328
CONNECT 329
DESCRIBE 329
DISCONNECT 330
EXECUTE 330
EXIT 331
HOST (see !) 331
PRINT 332
RECOVER 332
REMARK 333
SET 334
SHOW 336
SHUTDOWN 338
SPOOL 339
STARTUP 340
VARIABLE 341
The Navigator Window 347Backup Manager 353
The Map Window 348
The Job Control Window 349
The Event Management Window 352
Export 355Instance Manager 357
Import 355
Load 357
Page 16
The Input Data 364Physical Versus Logical Records 368
The Control File 366
The Log File 366
Discard and Bad Files 368
The Conventional Path 369Parallel Data Loading 372
The Direct Path 370
OPTIONS Clause 376Command-Line Options and Parameter Files 387
UNRECOVERABLE/RECOVERABLE Clause 377
LOAD DATA Clause 377
INFILE Clause 377
Table Loading Methods 379
CONCATENATION Clause 380
INTO TABLE Clause 381
Using a Parameter File 391Import 403
Table Mode 396
User Mode 396
Full Database Mode 396
Command Line Versus Interactive 396
Export Parameters That Affect Performance 398
Exporting Tablespaces 400
Types of Exports: Complete, Incremental, and Cumulative 402
A Backup Strategy 403
Import Usage 403
User Mode 408
Table Mode 408
Full-Database Mode 409
Page 17
Interactive Versus Command Line 409Importing and Exporting with Personal Oracle7 411
Import Parameters That Affect Performance 410
How Objects Import 411
Create an Index File 412Summary 414
Adjusting Storage Parameters 412
Reorganizing Data 413
Reducing Database Fragmentation 413
Importing Tables with LONG and LONG RAW Datatypes 413
Part IV Database Administration
Base Product Options 418Installation Preparation 422
Trusted Oracle Options 420
Other Optional Components 423Directory Structure 424
UNIX 424Summary 425
DEC VAX VMS 425
Microsoft Windows 425
The First Objects Created 436Startup and Shutdown 437
Startup Stages 437The Data Dictionary 441
Shutdown Stages 440
Core System Tables 442Redo Logs 444
Data Dictionary Views 442
Dynamic Performance Tables 443
Other Data Dictionary Views 443
Creating, Altering, and Dropping Redo Logs 444
Multiplexing Redo Logs 445
Page 18
Multiplexing Control Files 446Trace and Alert Files 447
NOARCHIVELOG Mode 448Useful Data Dictionary Views 449
Archive Log Mode 448
Changing the Mode of the Database 448
Oracle Blocks in the Database Files 470Using the ROWID in Oracle8 474
Segments and Extents 471
Growth Patterns 472
Forcing Additional Extents 473
Understanding the Storage Clause 475Using Rollback Segments 478
Using Other Storage Parameters 476
Creating Public and Private Rollback Segments 478Using Tablespaces 480
Creating Additional Rollback Segments 478
Enabling and Disabling Rollback Segments 479
Expanding and Monitoring Rollback Segments 479
Maintaining Rollback Segments 480
Creating the First New Tablespace 480Using Temporary Segments 482
Creating Additional Tablespaces 481
Adding Files to a Tablespace 481
Increasing the Size of Database Files 481
Dropping Tablespaces 482
What Does the User Want? 488
What Does the User Need to Accomplish the Job?M 488
Is Someone Currently Set Up with the Same
Configuration Requested by the User? 489
Page 19
Requires to Do the Job? 489What Is the Maximum Level of Access the User
Should Reasonably Have? 490What Constraints (Technical or Political) Exist
When Setting Up the User? 490User Authentication Methods 491
Password Authentication 491User Configuration Setup 492
Operating System Authentication 491
Profiles 492Resource Management 494
Default Tablespace 493
Temporary Tablespace 494
Using Profiles 495User Database Accounts 502
Using Quotas 501
Creating User Accounts 502Special Account Considerations 505
Modifying User Accounts 504
Deleting User Accounts 504
Changing User Passwords 504
Working with INIT.ORA Parameters 505
Setting Up a Generic Database Administrator 505Maintaining User Data 506
Setting Up a Generic Applications Administrator 506
Designing User Data Tables 507Summary 508
User Table Maintenance 507
Redo Logs 512Requirements for Backups 519
What Is a Database? 519Types of Backups 522
Control Files 521
Database Files 521
Redo Log Files 522
Control File Backups 522
Redo Log File Backups 525
Cold Backups 528
Page 20
Hot Backups 530Alternative Backup Methods 532
Oracle Enterprise Manager 531
Tablespace Offline Copy 532Types of Database Failure 534
Export 532
SQL*Loader Readable File 533
Tablespace 534Recovery Methods 537
Control File 535
Redo Logs 536
Archive Logs 537
Cold Restore 537Sample Database Backup Scripts 540
Full Database Recovery 538
Time-Based Recovery 538
Cancel-Based Recovery 539
Change-Based Recovery 540
Cold Backup 541Summary 543
Hot Backup 542
Applications Tuning 546Parallel Processing 553
Database Tuning 548
Operating System Tuning 549
Viewing SGA and Parameter Settings 554Tuning Database SGA 564
utlbstat and utlestat 555
EXPLAIN PLAN 556
SQL*Trace and TKPROF 559
Dynamic Performance (V$) Tables 562
Examining the Current SGA 565Contention Issues 572
Changing the SGA Size 566
Ramifications of SGA Changes 570
I/O Contention and Load Balancing 572
Rollback Segment Contention 575
Page 21
Redo Log Contention 576Database Objects 577
Checkpoints 577
Tables and Indexes 578Database Locking 583
Partitioned Tables 582
Views 583
Triggers 583
Types and Classes of Locks 584Summary 586
Unresolved Locking Issues 584
Checking Locking Situation 585
Password Authentication 589Why Protect Passwords? 590
Operating System Authentication 590
Control 591Privileged Accounts 592
Protection 591
Integrity 592
Operating System Account: oracle 593Remote Passwords 595
Operating System Account: root 593
SYS 593
SYSTEM 594
Operating System Group : oracle 594
Operating System Group: dba 594
Operating System Group: oper 595
Object Security 596Object Security Model 606
System Security 600
Protected Object Ownership Schema 606Defining Database Roles 608
Capacity Planning Requirements 606
Avoiding Tablespace Fragmentation Issues 607
Creating Roles 609
Modifying Roles 609
Deleting Roles 610
Setting and Changing the Default Role 610
Password Protecting Roles 611
Page 22
Defining Roles at Operating System Level 611Database Auditing 614
System Privilege Roles 613
Statement-Level Auditing 615Summary 620
Object-Level Auditing 618
Audit Trail Location 619
Part V Developing Applications
The Normalization Process 631The Physical Model 634
Column Attributes and DDL 634Summary 648
Performance Considerations 638
Capacity Planning 647
Package Variables and Initialization 652Package Privileges 659
Overloading 654
Retrieving Results 656
Exception Handling 657
Concurrent Transactions 676
Discreet Transactions 676
Distributed Transactions 677
In-Doubt Transactions 677
Normal Transactions 677
Read-Only Transactions 677
Remote Transactions 678
Page 23
Entering DML/DDL Statements 679Processing a Remote or Distributed Transaction 687
Assigning Rollback Segments 679
Using the Optimizer 681
Parsing Statements 684
Handling Locks 685
Generating Redo Logs 685
Stepping Through the Transaction 686
Entering DDL/DML Statements 688The SET TRANSACTION Command Reference 690
Assigning Rollback Segments 688
Breaking Down Statements 688
Optimizing Local Statements 688
Forwarding Remote Commands 688
Assigning Remote Rollback Segments and Writing
Redo Logs 689
Optimizing Remote Statements 689
Returning Data to the Local Database 689
Summarizing Remote and Distributed Transactions 689
READ ONLY Option 690Transaction Space 691
READ WRITE Option 690
USE ROLLBACK SEGMENT Option 690
Page 24
Part VI Designer/2000
Client 743Back Up, Back Up, Back Up 744
Server 744
Oracle CASE 5.1 745Client Installation 745
Designer/2000 6.0.0 to 6.0.4 745
Designer/2000 6.0.5 to 6.06 745
Complete Installation 747Server Installation 750
Default Installation 749
Custom Installation/Deinstallation 750
The Repository Management Screen 757The Matrix Diagrammer 762
The Privileges Dialog Box 758
The Tablespace Analysis Screen 758
The Maintain Users Screen 759
The User Extensibility Screen 760
The User Extensions Section 762
Startup 764Repository Reports 772
Navigating the Hierarchy Tree 765
The Property Sheet 766
The Toolbar 767
The RON Menus 768
Page 25
Multiple Diagrams 782Functional Hierarchy Diagrammer 784
Making a Diagram Easier to Follow 783
Creating a Diagram 791Systems Design 795
Modifying Dataflow Structure 793
Multiple Diagrams 794
Starting the Database Design Wizard 795The Data Diagrammer 799
Continuing to Generate 798
Creating a Diagram 799The Application Design Wizard 804
Multiple Diagrams 803
Generate the Tables Again 803
Retrofit 803
Generating DDL 803
Starting the Application Design Wizard 804The Module Structure Diagrammer 805
Starting Up 806Summary 810
Modifying a Diagram 809
Where Are Preferences Used? 812Starting the Module Data Diagrammer 816
What Do Preferences Do? 813
Calling from the Module Data Diagrammer 814
What Do the Codes Mean? 814
Saving Your Preferences 815
Generating the Calling Module 815
Marking a Preference 815
Searching for Preferences 815
Creating a Diagram 816Summary 828
Saving the Diagram 823
Placing Screen Items of Different Windows or Canvases 824
Generating Screens 824
Page 26
Part VII Developer/2000
Oracle Forms 4.5 832Why Use Developer/2000? 833
Oracle Reports 2.5 832
Oracle Graphics 2.5 833
The Object Navigator 835Summary 838
Database Connectivity 837
Module Access 838
The Object Navigator 840Building a Simple Default Form 848
Object Properties Sheets 843
The Layout Editor 844
Customizing the Forms Environment 846
Creating New Forms Modules 848
Applications 850Customizing Forms with Properties 853
Working with the Mouse 862Considerations for Multiple Form Applications 869
Working with Alerts 865
Using Timers for Event Control 866
The Data Model Editor 878
The Layout Editor 879
Initializing the Reports Environment 882
Page 27
Creating a Report 884Constructing a Tabular Report 885
Using Secondary Queries 888Customizing Reports with Boilerplate Text and Graphics 894
Adding Report Break Levels 892
The Mailing Label Report 906Creating Dynamic Reports 910
The Form Letter Report 907
The Matrix Report 908
Using Dynamic Query Parameters 910Ten Tips for Oracle Reports 2.5 913
Defining Runtime Queries with Lexical Parameters 912
The Layout Editor 916Defining Displays 920
Initializing the Graphics Environment 917
Creating a New Display 919
Creating a Pie Chart 920Defining Parameters for Charts 924
Creating a Columnar Chart 922
Other Chart Types 923
Creating a Drill-Down Chart 926Formatting Charts with Text and Breaks 930
Creating a Multi-Layer Chart 927
Adding Text Items to Charts 930Advanced Formatting Techniques 933
Customizing the Chart Labels 930
Creating a Break Chart 932
Using Format Triggers 933Summary 935
Creating Data Filters 934
Page 28
Object Orientation 949New Features in Reports 3.0 951
Database Integration and Scalability 949
Increased Productivity 950
Extended Windows Support 951
Support for PL/SQL Version 2.3 951
The Report Wizard and Live Previewer 951Improvements in Graphics 3.0 953
Report Templates 952
New User-Interface Elements 952
Support for PL/SQL Version 2.3 952
Runtime Enhancements for Reports 3.0 952
Part VIII Oracle Objects for OLE
The In-Process Automation Server 958OO4O and the Open Database Connectivity API 960
Oracle C++ Class Library 960
Oracle Data Control 960
What Is an OLE Automation Server? 964Getting Started 965
Accessing the Automation Server 966Executing SQL Statements and PL/SQL Blocks 966
Connecting to Oracle Database Servers 966
The CreateDynaset Method 967
The CreatePlsqlDynaset Method 968
The ExecuteSQL and CreateSQL Methods 969
Page 29
Parameter Arrays 971The OraDynaset Edit, Update, and AddNew Methods 974
Executing PL/SQL Blocks 972
Minimizing the OLE COM Overhead 979Thread Safety 982
Minimizing the Network Roundtrips 980
Reusing Database Connections 981
Part IX Discoverer 3.0
Create Business Areas (Mandatory) 1015
Edit Item Properties 1016
Create Joins 1016
Create Calculated Items 1017
Create Conditions 1017
Page 30
Create Item and Date Hierarchies 1018The Discoverer 3.0 User Edition 1022
Create Item Classes 1019
Create New Folders 1019
Create Summary Folders 1020
Grant Business Area Access (Mandatory) 1022
Part X Other Oracle Development Tools
Naming Conventions 1037Host Program Requirements 1040
Embedded SQL 1038
PL/SQL Blocks 1038
Data Declaration Area 1040Error Handling 1047
Data Manipulation Area 1044
General Guidelines 1047Host Arrays 1051
SQLCA Variables 1047
The WHENEVER Statement 1049
Indicator Variables 1050
Method One 1055
Method Two 1056
Method Three 1056
Method Four 1056
Page 31
Poor Performance 1059New Features in Version 1.8 1061
Improving Performance 1060
Part XI Integrating Oracle and Third-Party Tools
Page 32
Part XII Oracle and the Web
Benefits 1125HTML 1127
Pitfalls 1127
The Basics 1127The Medium Is the Message 1137
Making Your HTML Fancier 1130
Creating Links 1130
HTML Editors 1132
HTML Style and Design Considerations 1133
NCA and VRML 1144Summary 1144
The CORBA Object Model 1156CGI Programming with Perl 1176
The CORBA Architecture 1157
Inter-ORB Protocol 1159
Interface Definition Language (IDL) 1161
Developing Java-Based CORBA Services 1166
IDL-to-Java Mapping 1166
Generating Java Source from IDL 1170
Developing the Implementations 1171
Binding Server Objects in the Name Service 1171
Accessing Objects from Client Applications 1173
Design Considerations 1174
Communicating with Oracle 1176
What Are CGI Scripts? 1177
Request Methods 1178
Page 33
Output of CGI Scripts 1178Summary 1181
Security Issues with CGI 1178
Writing CGI Scripts in Perl 1179
The Perl Language 1180
Getting Data from the Database 1180
Connecting to the Database 1186Handling JDBC Exceptions 1197
Retrieving Results 1188
Applying DML Statements 1191
Accessing Functions and Procedures 1195
Using Output Parameters 1196
Native Libraries and Supported Platforms 1201Using RMI 1204
Thin Client and Multitier Designs 1202
considerations 1207Advanced JDBC Application Design 1209
Defining the User Domain 1218Oracle's Network Computing Architecture 1222
Designing Web Applications 1220
NCA Components: Cartridges 1222PL/SQL Web Applications 1226
Supported Languages for Cartridge Development 1225
The Cartridge Internals 1225
PL/SQL Developer's Toolkit 1226
Page 34
Oracle Web Server Hypertext Procedures andCreating a Cartridge Using C 1230
Hypertext Functions Packages 1226
PL/SQL Cartridge Samples 1228
Creating a Simple Java Application 1235Summary 1239
Part XIII Advanced Topics
Operating System Impact in Parallel Processing 1275Leveraging Parallel Processing Platforms 1276
New World Processing 1275
Test Results 1279Oracle Server Scalable Parallel Architecture for Open
Parallel Hardware Systems 1280Oracle Parallel Architecture: An Overview 1284
The Shared-Nothing Approach 1281
The Shared-Disk Approach 1282
What the Real World Needs 1283
Oracle Parallel Server Technology 1284
Oracle Parallel Query Technology 1285
Dynamic Parallel Execution: Key Elements 1285
Page 35
Intraoperator and Interoperator Parallelism 1286The Oracle Advantage over Pure
Flexible Parallelism 1288
Internode Parallelism 1290
Static Data Partitioning and Parallelism 1291Parallel Processing Platform Hardware Configuration
Leverage of Processing Power 1292
Ease of Administration 1293
Robust Scalability 1294
Emerging Trends in Technology 1294
Fail-Safe Redundant Hosts 1295Making the Right Choice 1301
Cross or Remote Mounted Disk Drives 1295
Disk Drive Allocation 1296
Disk Partitioning 1296
Maximizing Parallel Platform Database and Disk
Performance Through Balancing the Oracle Processes 1296
Disk Optimization for Oracle and the Parallel
Server Option 1296
Disk Storage Devices 1297
RAID Versus the Speed of Disk Mirroring 1298
Parallel Processor Types, Smart Controller Cards,
and Bus I/O 1300
Transaction Processing Performance CouncilRoutine Parallel Platform Server Maintenance 1307
(TPC) Benchmarks 1301
Parallel Processing Platform Selection Criteria 1303
Parallel Index Platform Design 1304
Parallel Processing Database and Tool Upgrades 1307Summary 1308
Page 36
Data Stores 1339Typical Uses of Data Warehouses 1344
Programs and Processes 1341
Other Types of Databases 1343
Determining the Information Needed 1345Star Join Schema 1350
Other Data for the Future 1346
Data Extraction from Online Systems 1347
Purge Processes 1349
Index1355
Page 45
by Brett Mark, Advanced Information Systems, Inc.
This is a very exciting time for the information-processing industry. Companies like Oracle and Sun have led a technological revolution culminating in today's software advances. New languages such as Java, and advanced database servers such as Oracle8, provide a shift in paradigm for application developers. This new paradigm yields capabilities unparalleled in comparison to software systems of yesterday . At last we have the tools necessary to network the entire world to large database systems in a secure fashion.
A few years ago were the database wars. Several relational database vendors readied server-based systems that accommodated large user communities performed industry standard database operations. Relational and client/server became buzzwords that were served up within technical circles to add weight to otherwise weightless words. All the major database vendors adopted SQL (Structured Query Language) and the relational model. Market share was initially well-distributed among a handful of these vendors. There was no clear leader, only a race to fulfill the promise of a few important requirements. Two of these included performance ”measured in transactions per second and portability. Of these, Oracle has always lead the pack. Slowly but surely, due to these and other factors, Oracle gained on the competition to become the second largest software company and the leading database vendor of today.
I marvel at the progress that has been made in the last couple versions of the product. Version 7 was known as the parallel everything architecture. Oracle7 accommodated for parallel operations to be performed anywhere from loading data to querying the database to adding redundancy and horsepower to the central server.
With the advent of Oracle8, I would like to suggest that the war has been won, and I am not an Oracle fanatic; I have used many different relational databases. Version 8 of Oracle places databases in a whole new category. Oracle8 offers several very important enhancements that take relational databases another quantum leap forward. The most significant change from Oracle7 is the implementation of objects. In fact, the database is considered to be object-relational, as opposed to its purely relational predecessors. Another significant improvement is seen in Oracle's commitment to Web computing through the NCA (network computing architecture) and the Web Application Server. With these, as well as many other enhancements from the OCI (Oracle Call Interface), improved PL/SQL, and a potpourri of GUI administration and development tools, Oracle has a real winner with this product.
Page 46
Oracle8 offers a sophisticated approach to implementing objects within the database itself. Never before could a database designer create objects that closely resemble the way business is actually performed. Instead, a set of tables would be normalized to contain discrete pieces of a single concept from the business world. It is this capability to focus on modeling real-world business problems that makes Oracle8 a powerful tool. It takes us another step further from merely using the database as a storage and retrieval system, to helping us solve real problems. The relational model required that business data be broken apart in order to store it in the database. Now, object datatypes, as well as object tables, provide a powerful single layer of object orientation. Although no features such as inheritance is currently supported, future versions can provide this kind of powerful functionality.
Many new features provide an abundance of capabilities for designing these database objects. Chapter 7, "Oracle8 Server," goes into detail on what these are and how to use them. You will learn about the collection type, Zero or Many methods, and One or Many attributes. Examples of the new PL/SQL extensions show how to write database code to process within the object paradigm. Sophisticated techniques show how to nest tables. These and other new features will be illustrated , thus providing a comprehensive understanding of Oracle8's object relational model.
Oracle8 will continue to support code as well as data models created using previous versions. The SQL and PL/SQL interpreters have been extended to support objects, and a whole new OCI layer is required to program a host language to Oracle8. Old OCI code is completely supported, performing relational operations to the server.
Oracle8 has been designed to accommodate the needs of today's business environment. Opening a database system to the general public via the World Wide Web is a daunting task. Possibly millions of hits a day might need to interface with Oracle8. Oracle's Web Application Server acts as a conduit to the database server. The Web Application Server incorporates a cartridge architecture that facilitates the creation of secure transactions over the Web. Several chapters discuss the architecture of the Web Server, as well as programming code in Java, C, and PL/SQL to create dynamic Web pages.
NCA provides a robust array of development options that exploit the Web Application Server architecture. Several programming languages are available to write responses to URL requests over the Web. These responses provide dynamic Web pages capable of filling computer screens all over the world with data from Oracle servers. Cartridges can be written by developers wishing to provide particular functionality, thereby extending the capabilities of the NCA.
Page 47
Oracle8 Server has drastically increased the potential performance for large databases. Virtually no limitations stand in the way of businesses requiring large data stores, Oracle
It is time to say goodbye to those other database products and buckle your seatbelt. You are about to experience the most comprehensive compilation of tips, techniques, and information on a wide range of Oracle8 Server features, as well as other related products. This book should serve as a learning tool and a reference manual for persons relatively new to Oracle and to those who are considered advanced database administrators. You will benefit from learning about the new features in security, networking, and advanced server options. Database designers will quickly assimilate the new object features and begin designing radically different data models. Programmers will find themselves knee-deep in source code and architecture for a variety of popular languages, including C, PL/SQL, and Java.
All aboard for the database tour of your life.