| |
| |
Foreword | |
| |
| |
Introduction | |
| |
| |
Why This Book Makes Sense | |
| |
| |
Some Basic Assumptions | |
| |
| |
Quickie Overview of This Book | |
| |
| |
Road Map | |
| |
| |
Getting Started | |
| |
| |
Putting Oracle8i to Work | |
| |
| |
Tuning Up and Turbocharging | |
| |
| |
The Part of Tens | |
| |
| |
Appendixes | |
| |
| |
Of Mice and Sven (Mouse Moves and Special Text) | |
| |
| |
Icons Used in This Book | |
| |
| |
About the Author | |
| |
| |
Road Map | |
| |
| |
A Quick Tour of Oracle8i | |
| |
| |
Discovering Oracle8i: The Program That Runs It All | |
| |
| |
Oracle8i's core package | |
| |
| |
Oracle8i's newest star: WebDB | |
| |
| |
Enterprise Manager | |
| |
| |
DBA Management Pack packs five all-star tools | |
| |
| |
Starting Up Oracle8i | |
| |
| |
Starting the database with the Instance Manager | |
| |
| |
Starting Oracle8i using the Server Manager | |
| |
| |
Looking Around with Schema Manager | |
| |
| |
The Object window | |
| |
| |
The other Schema Manager elements | |
| |
| |
The Main Menu and Button elements | |
| |
| |
Getting Acquainted with SQL: The Messenger Priestess of Oracle8i | |
| |
| |
Starting and stopping SQL *Plus Worksheet on any platform | |
| |
| |
Starting and stopping SQL *Plus on a desktop | |
| |
| |
Starting and stopping SQL *Plus on a minframe or a newtork | |
| |
| |
Initializing the Enterprise Manager Console | |
| |
| |
Creating a repository for Enterprise Manager Version 2 | |
| |
| |
Starting the Enterprise Manager Service | |
| |
| |
Starting the Agent | |
| |
| |
Taking a quick tour of Enterprise Manager Console | |
| |
| |
Getting Help: Let Your Mouse Do the Walking | |
| |
| |
Shutting Down Oracle8i | |
| |
| |
Shutting down Oracle8i on a desktop | |
| |
| |
Shutting down Oracle8i on a mainframe or a network | |
| |
| |
Data Whaaaaat? A Database Primer | |
| |
| |
Dataspeak Definitions for the Techno-Impaired | |
| |
| |
Relational Database Concepts | |
| |
| |
Users and roles | |
| |
| |
Tables | |
| |
| |
Columns and rows | |
| |
| |
Relationships | |
| |
| |
Object-Relational Database Concepts | |
| |
| |
An object defined | |
| |
| |
The scoop on object types | |
| |
| |
The connection of relational tables with objects | |
| |
| |
Object reference | |
| |
| |
Methods to their madness | |
| |
| |
Nested tables | |
| |
| |
Varrays | |
| |
| |
The Kinds of Database Things That You Can Do with Oracle8i | |
| |
| |
Keeping track of a fishbowl (the easy example) | |
| |
| |
Running a pet shop (the medium example) | |
| |
| |
Tracking endangered species globally (the hard example) | |
| |
| |
SQL Nuts and Bolts | |
| |
| |
Starting Up SQL Worksheet | |
| |
| |
Asking a Question in SQL | |
| |
| |
The basic SQL query | |
| |
| |
Some sample queries | |
| |
| |
Some tips to help you write good queries | |
| |
| |
Using an Editor While Running SQL *Plus Worksheet | |
| |
| |
Pulling Out Data Without Breaking Anything | |
| |
| |
Combining Tables: The Meat and Potatoes of SQL | |
| |
| |
Basic join query structure | |
| |
| |
Examples of join queries | |
| |
| |
Using the Built-In Functions of Oracle8i | |
| |
| |
Reformatting a date with to_Char | |
| |
| |
Concatenating columns with Concatenate (11) | |
| |
| |
Grouping and Summarizing Data | |
| |
| |
Making Power Changes in the Data | |
| |
| |
Modifying data with the Update command | |
| |
| |
Inserting new rows with grace and style | |
| |
| |
Deleting rows with distinction | |
| |
| |
Fixing Mistakes, or Where's the Brake?! | |
| |
| |
The Commit and Rollback commands | |
| |
| |
Commands that can't be undone, even with Rollback | |
| |
| |
Object SQL: The New Stuff | |
| |
| |
Starting Up SQL Worksheet | |
| |
| |
Querying Object Tables in SQL | |
| |
| |
The basic object-oriented SQL query | |
| |
| |
Queries using a nested table | |
| |
| |
Queries using a varray | |
| |
| |
Making Changes to Object Table Data | |
| |
| |
Updating an object | |
| |
| |
Updating one row in a nested table | |
| |
| |
Inserting rows into an object table | |
| |
| |
Inserting rows into a varray | |
| |
| |
Inserting rows into a nested table | |
| |
| |
Deleting rows from an object table | |
| |
| |
Deleting a row from a nested table | |
| |
| |
Using the Enterprise Manager DBA Tools | |
| |
| |
Managing the Enterprise Manager | |
| |
| |
Exploring Three Cornerstone Tools | |
| |
| |
Storage Manager: The external viewpoint | |
| |
| |
Security Manager: The keeper of the gate | |
| |
| |
Schema Manager: The builder of tables | |
| |
| |
Getting Started | |
| |
| |
The Relational Model and You | |
| |
| |
Redundant Relational Database Redundancy | |
| |
| |
Keys Rule | |
| |
| |
Considering types of keys | |
| |
| |
Importing foreign keys | |
| |
| |
The Key, the Whole Key, and Nothing but the Key | |
| |
| |
One to Many: The Bread and Butter of Relational Databases | |
| |
| |
Objects and the Oracle8i Database | |
| |
| |
Defining an object | |
| |
| |
Connecting relational tables with objects | |
| |
| |
Diagramming Your World | |
| |
| |
Getting Something Down on Paper | |
| |
| |
Using Tree Diagrams: Easy When You Know the Lingo | |
| |
| |
Hooking Up with Objects | |
| |
| |
Understanding the Basic UML Type Model Diagram | |
| |
| |
Getting Familiar with Oracle8i Data-Dictionary Views | |
| |
| |
Viewing Oracle8i's Data-Dictionary Views | |
| |
| |
Using Data-Dictionary Views | |
| |
| |
Looking at Data-Dictionary Views with the SQL*Plus Worksheet | |
| |
| |
Oracle's User | |
| |
| |
Playing a Role | |
| |
| |
What kinds of users are there? | |
| |
| |
What kind of user are you? | |
| |
| |
Creating a New User from Scratch | |
| |
| |
Changing Your Password | |
| |
| |
Changing your password in SQL*Plus Worksheet | |
| |
| |
Changing any user's password in Security Manager | |
| |
| |
Changing User Identity | |
| |
| |
Connecting anew in Enterprise Manager tools | |
| |
| |
Putting Oracle8i to Work | |
| |
| |
Defining Tables, Tablespaces, and Columns | |
| |
| |
Tablespace: The Final Frontier | |
| |
| |
A Word or Two about Columns | |
| |
| |
Defining columns in Oracle8i | |
| |
| |
Allowing nulls or not | |
| |
| |
A Table of Your Own with SQL | |
| |
| |
Schema Manager's Wizard for Tables | |
| |
| |
Creating Object Types, Objects, and References | |
| |
| |
Types Need No Space | |
| |
| |
Defining an object type | |
| |
| |
Making a table type | |
| |
| |
Creating an array type | |
| |
| |
Objects Still Sit inside Tablespaces | |
| |
| |
Making an object table | |
| |
| |
Making hybrid tables | |
| |
| |
Security Options: Roles, Profiles, and Grants | |
| |
| |
Security Blanket Included | |
| |
| |
Roles Meet the Real World | |
| |
| |
Roles and Privileges with Security Manager | |
| |
| |
Creating a role | |
| |
| |
Assigning users to a role | |
| |
| |
Assigning privileges to roles | |
| |
| |
Roles and Privileges with SQL | |
| |
| |
Profiles: The Power Players | |
| |
| |
Creating a profile | |
| |
| |
Assigning a profile to a user | |
| |
| |
Views and Synonyms: Do You See What I See? | |
| |
| |
Views: Like a Table -- Almost | |
| |
| |
Views that narrow | |
| |
| |
Views that tie everything together | |
| |
| |
Views with Schema Manager | |
| |
| |
Object views with Schema Manager | |
| |
| |
Synonyms: Nicknames for Tables and Views | |
| |
| |
Good uses for synonyms | |
| |
| |
A grant and a synonym combined | |
| |
| |
WebDB: The Best New Tool for the Internet | |
| |
| |
Exploring WebDB | |
| |
| |
Assigning WebDB Developers | |
| |
| |
Creating a Web Report | |
| |
| |
Going for a Form | |
| |
| |
Java and the Internet Database | |
| |
| |
Discovering Java Virtual Machine (JVM) | |
| |
| |
Using Oracle8i's JVM -- some benefits | |
| |
| |
Introducing SQLJ | |
| |
| |
Creating a Stored Database Procedure with Java and SQLJ | |
| |
| |
Writing Java code with embedded SQLJ | |
| |
| |
Loading the Java into the database | |
| |
| |
Creating a SQL wrapper for the Java code | |
| |
| |
Using the SQL wrapper in a SQL query | |
| |
| |
Running a Java Stored Procedure from a Java Applet on the Web | |
| |
| |
The Five Ws of Safeguarding Your Data | |
| |
| |
Why Back Up -- Onward and Upward! | |
| |
| |
What to Back Up | |
| |
| |
When to Back Up (Before You Go off the Cliff) | |
| |
| |
How to Back Up (Choosing Your Backup Weapon) | |
| |
| |
Data Manager | |
| |
| |
EXP and IMP commands | |
| |
| |
Where to Hide Your Backup Files | |
| |
| |
Tuning Up and Turbocharging | |
| |
| |
What's Slowing Your Query Down? | |
| |
| |
Helping the Optimizer Do Its Job | |
| |
| |
Moods and modes of the Optimizer | |
| |
| |
One command to analyze your entire schema | |
| |
| |
Personal attention: Analyzing one table at a time | |
| |
| |
A hint ... you're getting warmer | |
| |
| |
Getting Ahead While Testing and Tuning | |
| |
| |
Baby steps versus giant leaps | |
| |
| |
The SQL*Plus Worksheet's timing | |
| |
| |
Speeding Up Queries with Keys and Indexes | |
| |
| |
Why Create an Index? | |
| |
| |
Adding and Removing a Primary Key | |
| |
| |
Adding a primary key | |
| |
| |
Removing a primary key | |
| |
| |
Creating and Dropping Foreign Keys | |
| |
| |
Adding a foreign key | |
| |
| |
Removing a foreign key | |
| |
| |
Creating Your Own Indexes | |
| |
| |
Adding an index | |
| |
| |
Removing an index | |
| |
| |
Using Indexes with Object Tables and Nested Tables | |
| |
| |
Creating an index on an object table | |
| |
| |
Creating an index on a nested table | |
| |
| |
Removing an index on an object table or a nested table | |
| |
| |
Oracle's Brain on Indexes | |
| |
| |
Do you have an index? | |
| |
| |
The infamous null value and the index | |
| |
| |
Wildcards can throw everything off | |
| |
| |
The logically illogical order of data | |
| |
| |
Correcting Flaws | |
| |
| |
Categories of Column Changes | |
| |
| |
Baby Bear: Easy as Porridge | |
| |
| |
Mama Bear: A Few Medium Steps | |
| |
| |
If the column must be null.... | |
| |
| |
Column must not have nulls | |
| |
| |
Papa Bear: A Lotta Steps | |
| |
| |
Modification of Object Tables in Schema Manager | |
| |
| |
The Part of Tens | |
| |
| |
Ten Tips for Good Design | |
| |
| |
Name Tables and Columns Creatively and Clearly | |
| |
| |
Look Before You Leap (Design Before You Build) | |
| |
| |
Go Ahead, Leap! (Build a Prototype) | |
| |
| |
Share -- Don't Reinvent the Wheel | |
| |
| |
Remember that Primary Keys Are Your Friends | |
| |
| |
Small keys take up less room | |
| |
| |
Nonintelligent keys are easy to maintain | |
| |
| |
Use Caution When Modifying Table Definitions | |
| |
| |
Handle Derived Data Efficiently | |
| |
| |
Approach Security Roles in Practical Ways | |
| |
| |
Low security | |
| |
| |
Medium security | |
| |
| |
High security | |
| |
| |
Be Smart about Test Data | |
| |
| |
Talk to Non-Techie-Type Humans | |
| |
| |
Ten Handy Oracle8i Features | |
| |
| |
Con Text Cartridge | |
| |
| |
Network Computer Architecture | |
| |
| |
Web Assistant | |
| |
| |
Migration Assistant for Access | |
| |
| |
Data Migration Assistant | |
| |
| |
File Packager | |
| |
| |
Database Configuration Assistant | |
| |
| |
Net8 | |
| |
| |
Performance Monitor | |
| |
| |
Sniffing Out and Mending Broken Relationships | |
| |
| |
Appendixes | |
| |
| |
Glossary | |
| |
| |
About the CD | |
| |
| |
Sample Schemas | |
| |
| |
Build the AMY schema | |
| |
| |
Create the AMYOBJ schema | |
| |
| |
Create the BAKERY schema | |
| |
| |
Sample SQL Scripts | |
| |
| |
Additional Software | |
| |
| |
SQL tools from Quest Software | |
| |
| |
Web Design tools from Allaire Corporation | |
| |
| |
Miscellaneous tools from 4Developers LLC | |
| |
| |
Index | |
| |
| |
IDG Books Worldwide End-User License Agreement | |
| |
| |
Installation Instructions | |
| |
| |
Book Registration Information | |