Preface

Oracle is the most widely used database system in the world. It runs on virtually all platforms ranging from the PC to the mainframes. It also comes with an array of programming tools and environments and provides access to the database from a variety of high-level programming languages.

In recent years, more and more universities in the United States and elsewhere are using Oracle in their database courses as the primary vehicle to illustrate database concepts and principles. This has resulted in the need for a concise book on Oracle programming to supplement the traditional text in the database courses. The main motivation for writing this book is to satisfy this need. This book can also be used by a non-academic professional who is interested in learning about SQL, PL/SQL, embedded-SQL programming, JDBC and SQLJ.

The topics discussed in this book are Oracle SQL, PL/SQL, embedded programming with Pro*C/C++, JDBC and SQLJ. A brief introduction to the object features of Oracle8 is also presented in the book. To work with Oracle, it is absolutely essential to learn about SQL and PL/SQL, the two languages at the core of the Oracle database engine. Embedded-SQL (Pro*C/C++), JDBC access to Oracle, and the relatively new SQLJ standard are some of the important environments to develop applications in. Java is an emerging language which will have a significant impact in computing in the coming years and Oracle is investing in this technology by providing JDBC drivers, SQLJ translator, and other related tools to develop applications, expecially on the Web. Embedded-SQL is part of the SQL standards and is also an important technique for database programmers to learn.

Three sample databases are introduced early in the book and most of the chapters use these databases for illustration purposes. Several application programs are developed in their entirety in the different programming environments discussed in the text.1.

Book Use

This book is suitable as a supplemental text for an introductory database course which covers the relational model and uses Oracle as the database system for the course projects and assignments. Course projects can be developed using embedded-SQL (Pro*C/C++), JDBC, or SQLJ. An entire chapter is devoted to suggestions for course projects. These course projects are typically assigned in introductory database courses where a team of students start with a problem statement, write the problem specifications, design the database, create the database in Oracle, and write application programs that access the database. Some of the chapters also have review problems for the reader to go over to consolidate their understanding of the concepts presented in these chapters.

This book is also appropriate for a non-academic individual who is interested in learning about Oracle. He or she can find materials on SQL, PL/SQL, Pro*C/C++, JDBC and SQLJ, all in one text. This book can be considered a starting point in the exploration of what Oracle has to offer.

World Wide Web Support

Most of the code presented in the book can also be found at the following {\tt World Wide Web} site:
  http://www.awl.com/cseng/
In addition, the author will attempt to include other related materials to be developed in the near future at this Web site.

Acknowledgements

First of all, I would like to acknowledge Katherine Harutunian at Addison Wesley for working with me closely and diligently to get this book out in time. The staff at Addison Wesley is always a pleasure to work with. The reviewers, Akira Kawaguchi (City College of New York), Louis Mazzucco (SUNY Cobleskill), Mark Barnard (Marquette University), Willie Favero (Professional) and Ashesh Parekh (Professional) deserve special mention, as they made very useful and critical observations to improve the presentation and content of the book.

I would also like to acknowledge all my students who have diligently worked on various projects using Oracle over the past several years at Wichita State University and Georgia State University. In particular, I would like to acknowlede the effort put forth by Krissy Echols, Veena Pujari and Radhika Venkataraman, in designing and implementing the investment portfolio database application introduced in this edition of the text.

Finally, I would like to acknowledge the support my family has shown to me during the writing of this edition of the book. Thank you, Radhu, for all the hardwork and understanding and thanks, Nannu and Nammi, for encouraging me to write this book so that I can buy you candy and toys from the money I get for this book!


1 The programs and the applications presented in this book have been included for their instructional value. They have been tested with care but are not guaranteed for any particular purpose. The publisher does not offer any warranties or representations, nor does it accept any liabilities with respect to the programs or applications.