index

Table of Contents Next

Page 3

Overview

Introduction xlv

Part I Oracle Concepts

1 Oracle Company Overview 3
2 What Is an RDBMS? 25
3 Oracle, Client/Server, and Enterprise Computing 35
4 Overview of the Oracle Architecture 45

Part II Oracle Systems and Servers

5 Personal Oracle7, Oracle Lite 83
6 Oracle Workgroup Server 103
7 Oracle8 Server 123
8 Oracle7 Enterprise Server 157
9 Oracle Web Application Server 3.0 179
10 Electronic Commerce Server 203

Part III Oracle Tools and Utilities

11 SQL 223
12 PL/SQL ”A Procedural Language 257
13 SQL*Plus 289
14 Server Manager 317
15 Enterprise Manager 343
16 SQL*Loader 363
17 Import and Export 389

Part IV Database Administration

18 Installation 417
19 Managing the Database 427
20 Managing Disk Space 469
21 Managing Users 485
22 Backup and Recovery 509
23 Performance Tuning and Optimization 545
24 Database Security 587

Page 4

Part V Developing Applications

25 Designing a Database 623
26 Object-Oriented Programming with Packages 649
27 Transaction Processing 671
28 Enforcing Integrity 693
29 Application Security 717

Part VI Designer/2000

30 Introduction to and Installation of Designer/2000 737
31 Repository Administration 755
32 Systems Modeling and Design 775
33 Generating Applications 811

Part VII Developer/2000

34 Introduction to Developer/2000 831
35 Oracle Forms 839
36 Oracle Reports 877
37 Oracle Graphics 915
38 Developer/2000 Integration 937
39 A Preview of Developer/2000 Release 2.0 947

Part VIII Oracle Objects for OLE

40 Introduction to Oracle Objects for OLE 957
41 Oracle OLE Automation Server 963
42 The Oracle Data Control 983

Part IX Discoverer 3.0

43 Introducing Oracle Discoverer 991
44 Using Discoverer 3.0 1007

Part X Other Oracle Development Tools

45 Programmer/2000 1031

Page 5

Part XI Integrating Oracle and Third-Party Tools

46 Using PowerBuilder 1065
47 Using SQLWindows 1077
48 Using Visual Basic 1085
49 Using Delphi 1097
50 Using the AIS Web Developer Suite 1109

Part XII Oracle and the Web

51 Putting Information on the Web 1121
52 Oracle Web Programming with Java and Perl 1145
53 Web Database Connectivity 1183
54 Putting an Application on the Web 1217

Part XIII Advanced Topics

55 Networking 1243
56 Parallel Processing 1273
57 ODBC 1311
58 Data Warehouses and Data Marts 1335

Page 6

Contents

Introduction xlv

Part I Oracle Concepts

  1. Oracle Company Overview 3
    Databases Before Oracle 4
    The Hierarchical Database Model 4
    The Network Database Model 5
    Relational Databases, So Help Me Codd 5
    The Birth of Oracle 5
    The Relational Database Wars ”A Never-Ending Story 6
    Oracle Today and Tomorrow 7
    Oracle's New Baby: Network Computing Architecture 8
    The Goals of the NCA 8
    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
    CORBA 11
    Introducing the Cartridge 13
    The Oracle Enterprise Manager 13
    The Universal Application Server 13
    Oracle Cartridge Solutions Network Fund 14
    The Universal Data Server 14
    The Oracle Alliance 14
    Oracle Alliance Value Service 15
    Oracle Support 16
    The Support Olympics: Bronze, Silver, or Gold? 16
    Customer Support Identification Number 17
    Crossing the TAR Pits 17
    Oracle's Automated Support 18
    The Oracle Developer Programme 20
    Back to School: Oracle Education 20
    Traditional Classroom Setting 20
    The Oracle Channel 21
    The Oracle Masters Programs 21
    Oracle Consulting 22
    Oracle Sales 23
    Oracle on the Web 23
    Summary 24

Page 7

  1. What Is an RDBMS? 25
    The Relational Database Model 26
    Hierarchical and Network Models 26
    Elements of the Relational Model 27
    RDBMS Components 30
    The RDBMS Kernel 30
    The Data Dictionary 31
    Nonprocedural Data Access (SQL) 32
    Databases and the Web 33
    Summary 34
  2. Oracle, Client/Server, and Enterprise Computing 35
    An Overview of Client/Server Computing 36
    Databases in a Client/Server Architecture 37
    Oracle and Client/Server Computing 38
    The Oracle8 RDBMS Server 38
    Networking Products 40
    Client/Server Development Tools 41
    Oracle Directions 43
    Summary 44
  3. Overview of the Oracle Architecture 45
    Computer Architecture Fundamentals 46
    Memory 46
    Processes/Programs 46
    File Systems 46
    Network 46
    Global View of the Oracle Architecture 47
    What Is a Database? 47
    Oracle Files 49
    System and User Processes 49
    Memory 49
    Network Software and SQL*Net 50
    Oracle Files 51
    Database Files 52
    Control Files 52
    Redo Logs 52
    Other Supporting Files 53
    System and User Processes 53
    Mandatory System Processes 53
    Optional System Processes 54
    User Processes 56

Page 8

    Oracle Memory 58
    System Global Area (SGA) 58
    Process Global Area 60
    The Oracle Programs 61
    Storage 61
    Tablespaces and Database Files 61
    Segments 62
    Extents 62
    Oracle Blocks 62
    ROWID in Oracle8 63
    Free Space and Automatic Compaction 63
    System Database Objects 64
    The Data Dictionary 64
    Rollback Segments 64
    Temporary Segments 65
    Bootstrap/Cache Segment 66
    Protecting Your Data 66
    Transactions, Commit, and Rollback 66
    Data Integrity 67
    System-Level Privileges 70
    Object-Level Privileges 71
    Users and Roles 71
    Auditing 72
    Backup and Recovery 72
    Backup and Recovery Options 72
    Multiplexing 76
    Distributed Databases 77
    National Language Support 77
    Data Warehousing 78
    Following a SQL Statement Through the Architecture 79
    Summary 80

    Part II Oracle Systems and Servers

    1. Personal Oracle7, Oracle Lite 83
      Overview of Personal Oracle7 and Oracle Lite 84
      Personal Oracle7 and Oracle Lite Components 85
      System Requirements 90
      Hardware Requirements for Personal Oracle7 90
      Hardware Requirements for Personal Oracle Lite 91
      Software Requirements 91

    Page 9

      Database Administration Tools 92
      Oracle Navigator for Windows 95, Windows NT, and OS/2 93
      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
      Database Backup and Recovery Tools 97
      The Backup Manager 97
      The Recovery Manager 97
      The Export, Import, and SQL*Loader Utilities 98
      The Export and Import Utilities 98
      SQL*Loader 98
      SQL Products 98
      Networking Software 99
      Middleware 99
      Oracle Objects for OLE 99
      Oracle7 ODBC Driver 100
      Oracle Call Interface 100
      Personal Oracle7 Database Options 100
      Distributed Option 101
      Replication Option 101
      When to Use Personal Oracle7 and Oracle Lite 101
      Summary 101
      • Oracle Workgroup Server103
      Overview of the Oracle7 Workgroup Server 104
      How Oracle7 Workgroup Server Differs from Other Oracle Packages 104
      Oracle7 Workgroup Server Components 106
      System Requirements 109
      Server Hardware Requirements 110
      Server Operating System Requirements 111
      Client System Requirements 113
      Oracle7 Workgroup Server Tools and Utilities 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 116
        Network Manager for Windows 118
        Oracle7 Workgroup Server Distributed and Replication Features 119
        Database Links 119
        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
        When to Use Oracle7 Workgroup Server 120
        Summary 122
        • Oracle8 Server123
        Architectural Overview 124
        Oracle SGA 125
        New Features in Oracle8 128
        Physical Storage Improvements 128
        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
        Summary 156
        • Oracle7 Enterprise Server 157
        An Overview of Oracle7 Server 158
        Oracle7 Server Components 158
        Oracle7 Server and Oracle7 Universal Data Server 160
        Oracle Video Server 160
        Oracle WebServer 161
        Oracle OLAP Option 161
        Oracle Messaging Option 162
        Oracle Spatial Data Option 162
        Oracle ConText Option 162
        System Requirements 162
        Server Hardware Requirements 163
        Server Operating System Requirements 164
        Client System Requirements 165

        Page 11

          Oracle7 Database Tools and Utilities 166
          Instance Manager for Windows NT 166
          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
          New Features in Oracle7 Server 7.3 172
          Standby Database 172
          Bitmap Index 172
          Hash Joins 173
          Partition Views 173
          How Oracle7 Server Differs from Other
          Oracle Packages 174
          Operating System Integration Support 174
          Oracle7 Server Options 175
          When To Use Oracle7 Server 176
          Summary 177
          • Oracle Web Application Server 3.0 179
          Architectural Overview 180
          HTTP Server 180
          Web Request Broker 181
          Cartridges 182
          Component Interaction 183
          Installation and Configuration 187
          Database Access 188
          Using Supplied Cartridges 191
          The PL/SQL Cartridge 191
          The LiveHTML Cartridge 197
          The Java Cartridge 198
          Other Oracle Cartridges 200
          Developing Cartridges with the WRB API 200
          Summary 202
          • Electronic Commerce Server 203
          What Is Electronic Commerce? 204
          The Architecture of Electronic Commerce 206
          The Future of Electronic Commerce with the NC 207
          Is Electronic Commerce a Solution for My Business? 208
          Factors That Make Electronic Commerce Profitable 208
          Factors That Could Make Electronic Commerce
          Unprofitable 210

          Page 12

            The Architecture of Oracle's Internet Commerce Server 211
            The Big Picture 211
            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
            A Peek at Some of the Third-Party Internet Commerce
            Server Cartridges 214
            Oracle Applications for the Web 215
            Oracle Web Customers 215
            Oracle Web Employees 215
            Oracle Web Suppliers 216
            Encryption and Electronic Commerce 216
            Encryption and Decryption: The Spy and Walt Whitman 216
            Web Encryption 218
            Summary 220

            Part III Oracle Tools and Utilities

            • SQL 223
            Oracle's SQL: An Overview 224
            SQL ”The Standard 224
            Datatypes 224
            Numeric 225
            Date 225
            Character 226
            Binary 226
            Others 227
            The CREATE Statement 227
            Tables 227
            Indexes 230
            Sequences 232
            Other Objects 233
            Writing Queries 234
            Built-In Functions 236
            Know Your Tables and Views 245
            Joining Tables 245
            The DECODE Statement 250
            INSERTs, UPDATEs, and DELETEs 251

            Page 13

              Master/Detail or Parent/Child SQL 254
              Additional Tips 255
              Summary 256
              • PL/SQL ”A Procedural Language 257
              Packaged Procedures 258
              Package Creation 258
              Creating Package Subprograms 260
              Procedure Definition 260
              Function Definition 261
              Subprogram Parameter Modes 261
              Subprogram Specifications 262
              Default Procedure Parameters 262
              Stand-Alone Procedures 262
              Cursors 263
              Declaring Cursors 263
              Cursor Control 263
              Explicit Cursor Attributes 263
              Cursor Parameters 264
              Creating Cursor Packages 264
              Procedure Variables 265
              Variable Declaration and Assignment 265
              The DEFAULT Keyword 267
              Variable and Constant Attributes 267
              Scalar Datatypes 268
              Boolean 268
              Date/Time 268
              Character 268
              Number 269
              Composite Datatypes 269
              Array Processing 269
              Record Processing 270
              Processing Control 271
              Loop Control 271
              Iterative Control 273
              Exception Handling 274
              User-Defined Exceptions 274
              System-Defined Exceptions 275
              Comments 276
              Stored Procedures 277
              Referencing Stored Procedures 277
              Stored Procedure States 278
              Overloading 279

              Page 14

                Commits 279
                The STANDARD Package 279
                Referencing Internal Functions 280
                Internal Functions 280
                Additional Topics 280
                The DECLARE Statement 280
                Naming Conventions 281
                Datatype Conversion 282
                Database Triggers 282
                More on Exceptions 284
                More on Control Structures 286
                Oracle8 Enhancements 287
                National Language Support 287
                Object Types 287
                External Procedure Reference 288
                Summary 288
                • SQL*Plus 289
                A Brief History of SQL*Plus 290
                Use and Limitations 290
                Platforms 291
                SQL*Plus Commands 292
                Commands That Initiate the SQL*Plus Environment 292
                Character-Mode Environments 293
                Graphical-Mode Environments 295
                SQL*Plus Execute Commands 295
                SQL*Plus Editing Commands 296
                SQL*Plus Formatting Commands 297
                Miscellaneous Commands 299
                Access Commands for Various Databases 301
                SQL*Plus Reporting 301
                Reporting Techniques 301
                Advanced Reporting Techniques 303
                SQL*Plus Additional Functionality 310
                SQL Creating SQL 310
                SQL Creating Command-Language Scripts 312
                SQL*Plus Creating Database-Driven
                Command-Language Scripts 313
                Summary 316
                • Server Manager 317
                Introduction to Server Manager 318
                The Server Manager Command Set 318
                Before You Start Server Manager 319

                Page 15

                  Server Manager Operation Modes 319
                  Server Manager in Line Mode 320
                  Starting Server Manager in Line Mode 320
                  Startup and Shutdown with Server Manager in Line Mode 320
                  Server Manager in Command Mode 322
                  Automating the Startup and Shutdown Options 323
                  Server Manager Command Reference 326
                  ! (the Exclamation Mark) 327
                  @ (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
                  Summary 342
                  • Enterprise Manager 343
                  Installing Enterprise Manager 345
                  The Enterprise Manager Console 345
                  The Navigator Window 347
                  The Map Window 348
                  The Job Control Window 349
                  The Event Management Window 352
                  Backup Manager 353
                  Data Manager 354
                  Export 355
                  Import 355
                  Load 357
                  Instance Manager 357
                  Schema Manager 358
                  Security Manager 358

                  Page 16

                    Software Manager 359
                    SQL Worksheet 360
                    Storage Manager 361
                    Summary 362
                    • SQL*Loader 363
                    Basic SQL*Loader Components 364
                    The Input Data 364
                    The Control File 366
                    The Log File 366
                    Discard and Bad Files 368
                    Physical Versus Logical Records 368
                    Concatenated Records 369
                    SQL*Loader Paths 369
                    The Conventional Path 369
                    The Direct Path 370
                    Parallel Data Loading 372
                    Control File Syntax 374
                    OPTIONS Clause 376
                    UNRECOVERABLE/RECOVERABLE Clause 377
                    LOAD DATA Clause 377
                    INFILE Clause 377
                    Table Loading Methods 379
                    CONCATENATION Clause 380
                    INTO TABLE Clause 381
                    Command-Line Options and Parameter Files 387
                    Summary 388
                    • Import and Export 389
                    Export 390
                    Using a Parameter File 391
                    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 403
                    Import Usage 403
                    User Mode 408
                    Table Mode 408
                    Full-Database Mode 409

                    Page 17

                      Interactive Versus Command Line 409
                      Import Parameters That Affect Performance 410
                      How Objects Import 411
                      Importing and Exporting with Personal Oracle7 411
                      Import and Export Hints and Tips 412
                      Create an Index File 412
                      Adjusting Storage Parameters 412
                      Reorganizing Data 413
                      Reducing Database Fragmentation 413
                      Importing Tables with LONG and LONG RAW Datatypes 413
                      Summary 414

                      Part IV Database Administration

                      • Installation 417
                      Oracle Software Options 418
                      Base Product Options 418
                      Trusted Oracle Options 420
                      Installation Preparation 422
                      Installing the Software 422
                      Other Optional Components 423
                      Directory Structure 424
                      Operating System Specifics 424
                      UNIX 424
                      DEC VAX VMS 425
                      Microsoft Windows 425
                      Summary 425
                      • Managing the Database 427
                      The Parameter File: INIT.ORA 428
                      The Oracle SID 433
                      Creating a New Database 434
                      The First Objects Created 436
                      Startup and Shutdown 437
                      Startup Stages 437
                      Shutdown Stages 440
                      The Data Dictionary 441
                      Core System Tables 442
                      Data Dictionary Views 442
                      Dynamic Performance Tables 443
                      Other Data Dictionary Views 443
                      Redo Logs 444
                      Creating, Altering, and Dropping Redo Logs 444
                      Multiplexing Redo Logs 445

                      Page 18

                        Control Files 446
                        Multiplexing Control Files 446
                        Trace and Alert Files 447
                        Database Modes 448
                        NOARCHIVELOG Mode 448
                        Archive Log Mode 448
                        Changing the Mode of the Database 448
                        Useful Data Dictionary Views 449
                        Summary 468
                        • Managing Disk Space 469
                        Obtaining Object Storage 470
                        Oracle Blocks in the Database Files 470
                        Segments and Extents 471
                        Growth Patterns 472
                        Forcing Additional Extents 473
                        Using the ROWID in Oracle8 474
                        Using the Storage Clause 475
                        Understanding the Storage Clause 475
                        Using Other Storage Parameters 476
                        Using Rollback Segments 478
                        Creating Public and Private Rollback Segments 478
                        Creating Additional Rollback Segments 478
                        Enabling and Disabling Rollback Segments 479
                        Expanding and Monitoring Rollback Segments 479
                        Maintaining Rollback Segments 480
                        Using Tablespaces 480
                        Creating the First New Tablespace 480
                        Creating Additional Tablespaces 481
                        Adding Files to a Tablespace 481
                        Increasing the Size of Database Files 481
                        Dropping Tablespaces 482
                        Using Temporary Segments 482
                        Analyzing Storage 483
                        Estimating Storage for a Table 484
                        Summary 484
                        • Managing Users 485
                        User Needs Analysis 486
                        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

                          What Is the Minimum Level of Access the User
                          Requires to Do the Job? 489
                          What Is the Maximum Level of Access the User
                          Should Reasonably Have? 490
                          What Constraints (Technical or Political) Exist
                          When Setting Up the User? 490
                          User Authentication Methods 491
                          Password Authentication 491
                          Operating System Authentication 491
                          User Configuration Setup 492
                          Profiles 492
                          Default Tablespace 493
                          Temporary Tablespace 494
                          Resource Management 494
                          Using Profiles 495
                          Using Quotas 501
                          User Database Accounts 502
                          Creating User Accounts 502
                          Modifying User Accounts 504
                          Deleting User Accounts 504
                          Changing User Passwords 504
                          Working with INIT.ORA Parameters 505
                          Special Account Considerations 505
                          Setting Up a Generic Database Administrator 505
                          Setting Up a Generic Applications Administrator 506
                          Maintaining User Data 506
                          Designing User Data Tables 507
                          User Table Maintenance 507
                          Summary 508
                          • Backup and Recovery 509
                          Importance of Backups 510
                          Terminology 511
                          Redo Logs 512
                          Requirements for Backups 519
                          What Is a Database? 519
                          Control Files 521
                          Database Files 521
                          Redo Log Files 522
                          Types of Backups 522
                          Control File Backups 522
                          Redo Log File Backups 525
                          Cold Backups 528

                          Page 20

                            Hot Backups 530
                            Oracle Enterprise Manager 531
                            Alternative Backup Methods 532
                            Tablespace Offline Copy 532
                            Export 532
                            SQL*Loader Readable File 533
                            Types of Database Failure 534
                            Tablespace 534
                            Control File 535
                            Redo Logs 536
                            Archive Logs 537
                            Recovery Methods 537
                            Cold Restore 537
                            Full Database Recovery 538
                            Time-Based Recovery 538
                            Cancel-Based Recovery 539
                            Change-Based Recovery 540
                            Sample Database Backup Scripts 540
                            Cold Backup 541
                            Hot Backup 542
                            Summary 543
                            • Performance Tuning and Optimization 545
                            General Concepts in Database Tuning 546
                            Applications Tuning 546
                            Database Tuning 548
                            Operating System Tuning 549
                            Parallel Processing 553
                            Parallel Server Option 553
                            Parallel Query Option 553
                            Performance Tools 554
                            Viewing SGA and Parameter Settings 554
                            utlbstat and utlestat 555
                            EXPLAIN PLAN 556
                            SQL*Trace and TKPROF 559
                            Dynamic Performance (V$) Tables 562
                            Tuning Database SGA 564
                            Examining the Current SGA 565
                            Changing the SGA Size 566
                            Ramifications of SGA Changes 570
                            Contention Issues 572
                            I/O Contention and Load Balancing 572
                            Rollback Segment Contention 575

                            Page 21

                              Redo Log Contention 576
                              Checkpoints 577
                              Database Objects 577
                              Tables and Indexes 578
                              Partitioned Tables 582
                              Views 583
                              Triggers 583
                              Database Locking 583
                              Types and Classes of Locks 584
                              Unresolved Locking Issues 584
                              Checking Locking Situation 585
                              Summary 586
                              • Database Security 587
                              Authentication 588
                              Password Authentication 589
                              Operating System Authentication 590
                              Why Protect Passwords? 590
                              Control 591
                              Protection 591
                              Integrity 592
                              Privileged Accounts 592
                              Operating System Account: oracle 593
                              Operating System Account: root 593
                              SYS 593
                              SYSTEM 594
                              Operating System Group : oracle 594
                              Operating System Group: dba 594
                              Operating System Group: oper 595
                              Remote Passwords 595
                              Object Versus System Security 596
                              Object Security 596
                              System Security 600
                              Object Security Model 606
                              Protected Object Ownership Schema 606
                              Capacity Planning Requirements 606
                              Avoiding Tablespace Fragmentation Issues 607
                              Defining Database Roles 608
                              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 611
                                System Privilege Roles 613
                                Database Auditing 614
                                Statement-Level Auditing 615
                                Object-Level Auditing 618
                                Audit Trail Location 619
                                Summary 620

                                Part V Developing Applications

                                1. Designing a Database 623
                                  Requirements Definition 624
                                  The Logical Model 627
                                  The Normalization Process 631
                                  The Physical Model 634
                                  Column Attributes and DDL 634
                                  Performance Considerations 638
                                  Capacity Planning 647
                                  Summary 648
                                2. Object-Oriented Programming with Packages 649
                                  The Package Specification 650
                                  The Package Body 652
                                  Package Variables and Initialization 652
                                  Overloading 654
                                  Retrieving Results 656
                                  Exception Handling 657
                                  Package Privileges 659
                                  Accessing Oracle Packages from Client Applications 661
                                  Object-Oriented Concepts 663
                                  Summary 668
                                3. Transaction Processing 671
                                  Sessions Versus Transactions 672
                                  Commits, Rollbacks, and Savepoints 674
                                  Transaction Control Statements 676
                                  Types of Transactions 676
                                  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

                                  Read-Consistency 678
                                  Steps to Processing a Transaction 679
                                  Entering DML/DDL Statements 679
                                  Assigning Rollback Segments 679
                                  Using the Optimizer 681
                                  Parsing Statements 684
                                  Handling Locks 685
                                  Generating Redo Logs 685
                                  Stepping Through the Transaction 686
                                  Processing a Remote or Distributed Transaction 687
                                  Entering DDL/DML Statements 688
                                  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
                                  The SET TRANSACTION Command Reference 690
                                  READ ONLY Option 690
                                  READ WRITE Option 690
                                  USE ROLLBACK SEGMENT Option 690
                                  Transaction Space 691
                                  Summary 691
                                  • Enforcing Integrity 693
                                  A Common Integrity Problem 694
                                  Column Constraints 696
                                  Table Constraints 702
                                  Using Sequences 705
                                  Using Triggers 707
                                  Application and Performance Considerations 711
                                  Summary 715
                                  • Application Security 717
                                  Reasons for Using Application Security 718
                                  Using Application-Specific Database Objects 719
                                  Table-Driven Application Security 723
                                  Application and Performance Considerations 731
                                  Summary 733

                                  Page 24

                                  Part VI Designer/2000

                                  1. Introduction to and Installation of
                                    Designer/2000 737
                                    Business Process Reengineering 738
                                    Information Engineering 740
                                    Rapid Application Development 740
                                    Legacy-Led Development 741
                                    Installing Designer/2000 742
                                    System Requirements 743
                                    Client 743
                                    Server 744
                                    Back Up, Back Up, Back Up 744
                                    Upgrading to Designer/2000 744
                                    Oracle CASE 5.1 745
                                    Designer/2000 6.0.0 to 6.0.4 745
                                    Designer/2000 6.0.5 to 6.06 745
                                    Client Installation 745
                                    Complete Installation 747
                                    Default Installation 749
                                    Custom Installation/Deinstallation 750
                                    Server Installation 750
                                    Summary 753
                                  2. Repository Administration 755
                                    The Repository Administration Utility 756
                                    The Repository Management Screen 757
                                    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
                                    The Matrix Diagrammer 762
                                    The Repository Object Navigator 764
                                    Startup 764
                                    Navigating the Hierarchy Tree 765
                                    The Property Sheet 766
                                    The Toolbar 767
                                    The RON Menus 768
                                    Repository Reports 772
                                    Summary 772
                                  3. Systems Modeling and Design 775
                                    Creating, Opening, and Saving a Diagram 776
                                    Starting Up 777

                                  Page 25

                                    Entity Relationship Diagrammer 778
                                    Multiple Diagrams 782
                                    Making a Diagram Easier to Follow 783
                                    Functional Hierarchy Diagrammer 784
                                    Dataflow Diagrammer 790
                                    Creating a Diagram 791
                                    Modifying Dataflow Structure 793
                                    Multiple Diagrams 794
                                    Systems Design 795
                                    Database Design Wizard 795
                                    Starting the Database Design Wizard 795
                                    Continuing to Generate 798
                                    The Data Diagrammer 799
                                    Creating a Diagram 799
                                    Multiple Diagrams 803
                                    Generate the Tables Again 803
                                    Retrofit 803
                                    Generating DDL 803
                                    The Application Design Wizard 804
                                    Starting the Application Design Wizard 804
                                    The Module Structure Diagrammer 805
                                    Starting Up 806
                                    Modifying a Diagram 809
                                    Summary 810
                                    • Generating Applications 811
                                    Preferences Navigator 812
                                    Where Are Preferences Used? 812
                                    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
                                    Starting the Module Data Diagrammer 816
                                    Creating a Diagram 816
                                    Saving the Diagram 823
                                    Placing Screen Items of Different Windows or Canvases 824
                                    Generating Screens 824
                                    Summary 828

                                    Page 26

                                    Part VII Developer/2000

                                    1. Introduction to Developer/2000 831
                                      What Is Developer/2000? 832
                                      Oracle Forms 4.5 832
                                      Oracle Reports 2.5 832
                                      Oracle Graphics 2.5 833
                                      Why Use Developer/2000? 833
                                      Features of Developer/2000 834
                                      Common Tool Set Features 835
                                      The Object Navigator 835
                                      Database Connectivity 837
                                      Module Access 838
                                      Summary 838
                                    2. Oracle Forms 839
                                      The Oracle Forms Environment 840
                                      The Object Navigator 840
                                      Object Properties Sheets 843
                                      The Layout Editor 844
                                      Customizing the Forms Environment 846
                                      Creating New Forms Modules 848
                                      Building a Simple Default Form 848
                                      Using Boilerplate Text and Graphics to Enhance Forms
                                      Applications 850
                                      Customizing Forms with Properties 853
                                      Implementing Triggers and Program Units 854
                                      Using Record Groups and Lists of Values for Data Validation 857
                                      Using Relationships to Link Separate Blocks in a Form 860
                                      Mouse Events, Timers, and Other Advanced Widgets 862
                                      Working with the Mouse 862
                                      Working with Alerts 865
                                      Using Timers for Event Control 866
                                      Considerations for Multiple Form Applications 869
                                      Techniques for Dynamic Runtime Applications 870
                                      Working with Menus 872
                                      Libraries, Object Classes, and Visual Attributes 874
                                      Quality Considerations for Oracle Forms 874
                                      Summary 876
                                    3. Oracle Reports 877
                                      The Oracle Reports 2.5 Environment 878
                                      The Data Model Editor 878
                                      The Layout Editor 879
                                      Initializing the Reports Environment 882

                                    Page 27

                                      Creating a Report 884
                                      Constructing a Tabular Report 885
                                      Creating a Master-Detail Report 888
                                      Using Secondary Queries 888
                                      Adding Report Break Levels 892
                                      Customizing Reports with Boilerplate Text and Graphics 894
                                      Working with Summary and Formula Columns 900
                                      Formatting Reports 903
                                      Exploring Complex Reports 906
                                      The Mailing Label Report 906
                                      The Form Letter Report 907
                                      The Matrix Report 908
                                      Creating Dynamic Reports 910
                                      Using Dynamic Query Parameters 910
                                      Defining Runtime Queries with Lexical Parameters 912
                                      Ten Tips for Oracle Reports 2.5 913
                                      Summary 914
                                      • Oracle Graphics 915
                                      The Oracle Graphics Environment 916
                                      The Layout Editor 916
                                      Initializing the Graphics Environment 917
                                      Creating a New Display 919
                                      Defining Displays 920
                                      Creating a Pie Chart 920
                                      Creating a Columnar Chart 922
                                      Other Chart Types 923
                                      Defining Parameters for Charts 924
                                      Multiple Chart Applications 926
                                      Creating a Drill-Down Chart 926
                                      Creating a Multi-Layer Chart 927
                                      Formatting Charts with Text and Breaks 930
                                      Adding Text Items to Charts 930
                                      Customizing the Chart Labels 930
                                      Creating a Break Chart 932
                                      Advanced Formatting Techniques 933
                                      Using Format Triggers 933
                                      Creating Data Filters 934
                                      Summary 935
                                      • Developer/2000 Integration 937
                                      Displaying Oracle Graphics in Oracle Forms 938
                                      Executing Oracle Reports from Oracle Forms 940
                                      Displaying Oracle Graphics in Oracle Reports 941

                                      Page 28

                                        Interfacing to Non-Oracle Applications 942
                                        Interfacing with the Windows API and
                                        Other DLLs 944
                                        Summary 945
                                        • A Preview of Developer/2000 Release2.0 947
                                        New Terminology in Developer/2000 948
                                        Tools Integration 948
                                        New Features in Forms 5.0 948
                                        Object Orientation 949
                                        Database Integration and Scalability 949
                                        Increased Productivity 950
                                        Extended Windows Support 951
                                        Support for PL/SQL Version 2.3 951
                                        New Features in Reports 3.0 951
                                        The Report Wizard and Live Previewer 951
                                        Report Templates 952
                                        New User-Interface Elements 952
                                        Support for PL/SQL Version 2.3 952
                                        Runtime Enhancements for Reports 3.0 952
                                        Improvements in Graphics 3.0 953
                                        Developer/2000 and the Web 953
                                        Summary 953

                                        Part VIII Oracle Objects for OLE

                                        1. Introduction to Oracle Objects for OLE 957
                                          Components of OO4O 958
                                          The In-Process Automation Server 958
                                          Oracle C++ Class Library 960
                                          Oracle Data Control 960
                                          OO4O and the Open Database Connectivity API 960
                                          Host Environments 961
                                          Summary 961
                                        2. Oracle OLE Automation Server 963
                                          Background 964
                                          What Is an OLE Automation Server? 964
                                          Getting Started 965
                                          Accessing the Automation Server 966
                                          Connecting to Oracle Database Servers 966
                                          Executing SQL Statements and PL/SQL Blocks 966
                                          The CreateDynaset Method 967
                                          The CreatePlsqlDynaset Method 968
                                          The ExecuteSQL and CreateSQL Methods 969

                                        Page 29

                                          Using Parameters 969
                                          Parameter Arrays 971
                                          Executing PL/SQL Blocks 972
                                          The OraDynaset Edit, Update, and AddNew Methods 974
                                          LONG and LONG RAW Column Support 975
                                          Transactions 977
                                          Error Handling 978
                                          Performance Tuning 979
                                          Minimizing the OLE COM Overhead 979
                                          Minimizing the Network Roundtrips 980
                                          Reusing Database Connections 981
                                          Thread Safety 982
                                          Summary 982
                                          • The Oracle Data Control 983
                                          Using the ODC in Visual Basic 984
                                          Using the ODC and OO4O Automation Server Objects 986
                                          Summary 988

                                          Part IX Discoverer 3.0

                                          1. Introducing Oracle Discoverer 991
                                            Multidimensional Database Primer 992
                                            A Semi-Formal Definition of OLAP 997
                                            Multidimensional Storage Strategies ”A Star Schema
                                            Is Born 999
                                            Discoverer as a Tool for Data Warehousing 1001
                                            Discoverer 3.0 ”Features, Functions, and Benefits 1002
                                            Summary 1005
                                          2. Using Discoverer 3.0 1007
                                            Creating the Tutorial and Video Databases 1009
                                            Creating the OLAP Database 1010
                                            Creating the Sample Database 1011
                                            Mapping Data From a Database into Discoverer:
                                            The Load Wizard 1012
                                            Moving Around in the Land of Folders and Items 1014
                                            The Administration Tasklist: Don't Enter the
                                            Dimensions Without It! 1014
                                            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 1018
                                          Create Item Classes 1019
                                          Create New Folders 1019
                                          Create Summary Folders 1020
                                          Grant Business Area Access (Mandatory) 1022
                                          The Discoverer 3.0 User Edition 1022
                                          Multidimensional Databases: The Possibilities
                                          Are Endless, Spock! 1024
                                          OLAP of the Mind 1026
                                          Summary 1026

                                          Part X Other Oracle Development Tools

                                          1. Programmer/2000 1031
                                            Oracle Precompilers 1032
                                            Why Precompile Source Code? 1032
                                            General Precompiler Features 1032
                                            Precompiler Languages 1033
                                            ANSI/IO Standards 1033
                                            Precompiler Options 1034
                                            How to Precompile a Program 1035
                                            Conditional Precompiling 1036
                                            Embedded SQL Host Programs 1037
                                            Basics of a Host Program 1037
                                            Naming Conventions 1037
                                            Embedded SQL 1038
                                            PL/SQL Blocks 1038
                                            Host Program Requirements 1040
                                            Data Declaration Area 1040
                                            Data Manipulation Area 1044
                                            Error Handling 1047
                                            General Guidelines 1047
                                            SQLCA Variables 1047
                                            The WHENEVER Statement 1049
                                            Indicator Variables 1050
                                            Host Arrays 1051
                                            Dynamic SQL 1052
                                            Coding Methods for Dynamic SQL Statements 1055
                                            Method One 1055
                                            Method Two 1056
                                            Method Three 1056
                                            Method Four 1056

                                          Page 31

                                          User Exits 1057
                                          Performance Tuning 1059
                                          Poor Performance 1059
                                          Improving Performance 1060
                                          New Features in Version 1.8 1061
                                          Oracle Call Interface (OCI) 1061
                                          SQL*Module 1062
                                          Productivity, Security, and Performance 1062
                                          Summary 1062

                                          Part XI Integrating Oracle and Third-Party Tools

                                          1. Using PowerBuilder 1065
                                            Connecting to the Database 1066 Communicating with the Database 1068 Summary 1074
                                          2. Using SQLWindows 1077
                                            Connecting to the Database 1078 Communicating with the Database 1079 Summary 1083
                                          3. Using Visual Basic 1085
                                            Third-Party Products That Decrease Development Time
                                            and Add Value 1086 Immediate Benefits to RAF Users 1086 Rapid Application Development 1086 RAF Courses 1087 Connecting to the Database 1087 Summary 1096
                                          4. Using Delphi 1097
                                            Configuring a Data Source 1098 Communicating with the Database 1100 Summary 1106
                                          5. Using the AIS Web Development Suite 1109
                                            Common Problems When Building Java Database
                                            Applications 1110 Application Architecture 1111 Architecture Building Blocks 1112 Features of the Architecture 1112 Tools 1113 Summary 1117

                                          Page 32

                                          Part XII Oracle and the Web

                                          1. Putting Information on the Web 1121
                                            The Rocket That Launched the Internet 1122
                                            The Birth of the Web 1122
                                            Why Put Information on the Web ”Benefits and Pitfalls 1125
                                            Benefits 1125
                                            Pitfalls 1127
                                            HTML 1127
                                            The Basics 1127
                                            Making Your HTML Fancier 1130
                                            Creating Links 1130
                                            HTML Editors 1132
                                            HTML Style and Design Considerations 1133
                                            The Medium Is the Message 1137
                                            The Role of the Browser 1138
                                            HTML and Oracle's Web Server 1139
                                            Oracle's ConText Product 1141
                                            VRML 1142
                                            NCA and VRML 1144
                                            Summary 1144
                                          2. Oracle Web Programming with Java
                                            and Perl 1145
                                            Java Basics 1146
                                            The Java Object Model 1146
                                            The Java Language 1148
                                            Advantages of Using Java 1155
                                            CORBA Fundamentals 1156
                                            The CORBA Object Model 1156
                                            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
                                            CGI Programming with Perl 1176
                                            What Are CGI Scripts? 1177
                                            Request Methods 1178

                                          Page 33

                                            Output of CGI Scripts 1178
                                            Security Issues with CGI 1178
                                            Writing CGI Scripts in Perl 1179
                                            The Perl Language 1180
                                            Getting Data from the Database 1180
                                            Summary 1181
                                            • Web Database Connectivity 1183
                                            Writing JDBC Applets and Applications 1185
                                            Connecting to the Database 1186
                                            Retrieving Results 1188
                                            Applying DML Statements 1191
                                            Accessing Functions and Procedures 1195
                                            Using Output Parameters 1196
                                            Handling JDBC Exceptions 1197
                                            JDBC Debugging 1200
                                            Deployment Issues 1201
                                            Native Libraries and Supported Platforms 1201
                                            Thin Client and Multitier Designs 1202
                                            Using RMI 1204
                                            Using JavaIDL 1205
                                            Applets Versus Java Application and Security
                                            considerations 1207
                                            Advanced JDBC Application Design 1209
                                            Performance Considerations and Multithreading 1209
                                            Writing a JDBC Driver 1210
                                            JDBC-Native Interface Mapping 1211
                                            JDBC Conformance 1211
                                            Using JNI 1212
                                            The Future of JDBC 1214
                                            Summary 1215
                                            • Putting an Application on the Web 1217
                                            Planning Your Web Applications 1218
                                            Defining the User Domain 1218
                                            Designing Web Applications 1220
                                            Oracle's Network Computing Architecture 1222
                                            NCA Components: Cartridges 1222
                                            Supported Languages for Cartridge Development 1225
                                            The Cartridge Internals 1225
                                            PL/SQL Web Applications 1226
                                            PL/SQL Developer's Toolkit 1226

                                            Page 34

                                            Oracle Web Server Hypertext Procedures and
                                            Hypertext Functions Packages 1226
                                            PL/SQL Cartridge Samples 1228
                                            Creating a Cartridge Using C 1230
                                            Java 1235
                                            Creating a Simple Java Application 1235
                                            Summary 1239

                                            Part XIII Advanced Topics

                                            1. Networking 1243
                                              A Quick and Dirty Introduction to Networking 1245
                                              An Overview of Oracle Networking 1248
                                              Host/Terminal Connections 1249
                                              Client/Server Connections 1250
                                              Web/Internet Connections 1254
                                              Database-to-Database Connections 1256
                                              SQL*Net 1 1259
                                              SQL*Net 2 1263
                                              Net/3 1264
                                              ODBC, JDBC, and OLE 1265
                                              Other Middleware Vendors 1265
                                              Sample Configurations 1267
                                              Network Development Tips 1270
                                              Summary 1272
                                            2. Parallel Processing 1273
                                              Understanding the Requirements for Parallel Processing 1274
                                              Operating System Impact in Parallel Processing 1275
                                              New World Processing 1275
                                              Leveraging Parallel Processing Platforms 1276
                                              Comparing Parallel Processing to Mainframes 1279
                                              Test Results 1279
                                              Oracle Server Scalable Parallel Architecture for Open
                                              Data Warehousing 1280
                                              Parallel Hardware Systems 1280
                                              The Shared-Nothing Approach 1281
                                              The Shared-Disk Approach 1282
                                              What the Real World Needs 1283
                                              Oracle Parallel Architecture: An Overview 1284
                                              Oracle Parallel Server Technology 1284
                                              Oracle Parallel Query Technology 1285
                                              Dynamic Parallel Execution: Key Elements 1285

                                            Page 35

                                              Intraoperator and Interoperator Parallelism 1286
                                              Flexible Parallelism 1288
                                              Internode Parallelism 1290
                                              The Oracle Advantage over Pure
                                              Shared-Nothing Systems 1291
                                              Static Data Partitioning and Parallelism 1291
                                              Leverage of Processing Power 1292
                                              Ease of Administration 1293
                                              Robust Scalability 1294
                                              Emerging Trends in Technology 1294
                                              Parallel Processing Platform Hardware Configuration
                                              Requirements 1295
                                              Fail-Safe Redundant Hosts 1295
                                              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
                                              Making the Right Choice 1301
                                              Transaction Processing Performance Council
                                              (TPC) Benchmarks 1301
                                              Parallel Processing Platform Selection Criteria 1303
                                              Parallel Index Platform Design 1304
                                              Routine Parallel Platform Server Maintenance 1307
                                              Parallel Processing Database and Tool Upgrades 1307
                                              Summary 1308
                                              • ODBC 1311
                                              Components of ODBC 1312
                                              Configuring an ODBC Data Source 1313
                                              Connecting to an ODBC Data Source Using the
                                              ODBC API 1317
                                              Setting Connection Options 1320
                                              Applying SQL Transactions 1320
                                              Retrieving Result Sets 1324
                                              Handling Errors 1328

                                              Page 36

                                                Calling Stored Procedures and Functions 1330
                                                Disconnecting and Freeing Resources 1332
                                                Debugging ODBC Applications 1333
                                                Limitations of ODBC 1334
                                                Summary 1334
                                                • Data Warehouses and Data Marts 1335
                                                An Introduction to Data Warehouses and
                                                Data Marts 1336
                                                Data Stores 1339
                                                Programs and Processes 1341
                                                Other Types of Databases 1343
                                                Typical Uses of Data Warehouses 1344
                                                Designing a Data Warehouse 1345
                                                Determining the Information Needed 1345
                                                Other Data for the Future 1346
                                                Data Extraction from Online Systems 1347
                                                Purge Processes 1349
                                                Star Join Schema 1350
                                                Tuning Data Warehouses in Oracle 1351
                                                Oracle Data Marts 1351
                                                OLAP Engines 1353
                                                Summary 1353

                                                Index1355

                                                Page 45

                                                Introduction

                                                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

                                                The Object-Relational Model

                                                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.

                                                Network Computing Architecture (NCA)

                                                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

                                                Advanced Features: Oracle8

                                                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

                                                • Supports large user communities. It has realized the need to support large user communities via the World Wide Web. Connect time as well as memory requirements have drastically been reduced. Sessions can be multiplexed, allowing a single server to maintain thousands of simultaneous connections.
                                                • Supports star queries. Bitmap indices and support for star queries have been enhanced.
                                                • Allows for parallel enhancements, support for parallel insert, update, and delete. These new features add to the parallel query feature that was available in version 7.
                                                • Provides table partitioning. Allows for striping data across multiple tablespaces based on a logical partition ranges. This feature can drastically reduce I/O and contention.
                                                • Supports replication. Advanced asynchronous replication of data between two or more computers is available, ensuring that data can be distributed and updated automatically. Snapshots allow for simple copies of data to be refreshed from one system to another.
                                                • Supports Java. The Web Application Server allows for server-side Java applications to be interpreted through a cartridge-based virtual machine.
                                                • Supports Enterprise Manager. A graphical facility is now available to assist a developer/DBA with such tasks as security management, event monitoring, job scheduling, and replication monitoring.

                                                All Aboard!

                                                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.

                                                Table of Contents Next


Oracle Unleashed
Oracle Development Unleashed (3rd Edition)
ISBN: 0672315750
EAN: 2147483647
Year: 1997
Pages: 391

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net