"This is an excellent book. It is relevant, readable, timely, and technically accurate. The author has a good handle on what is important to the industry, separating the hype from the practical solutions." -Rick Cattell "Peter's book is rich with code examples that will help you understand exactly how to follow his footsteps to get a working system." -Mary Loomis Building Scalable Database Applications: Object-Oriented Design, Architectures, and Implementation is a comprehensive and authoritative guide to building client/server applications by developing a stable and reusable business model. The business and database models illustrated in this book both address the unique challenge of manipulating object storage and retrieval from a developer's point of view. Software engineers and programmers need this information to lead their development teams toward businesswide distributed software systems. This book demonstrates the pragmatic approach of integrating systems that are currently in use into a cost-effective and time-saving object-oriented system. The approach allows for the business model and the database schema to operate independently so that they can evolve individually, allowing them to be easily reused and maintained. Highlights include: *llustration of the design for reusable business components *Maximization of reuse and openness *Application of inheritance techniques to database design *Migration from legacy and relational systems to object orientation without discarding your investments This is the first book to thoroughly cover scalable database applications; Building Scalable Database Applications focuses on building independent models that are free from all database and user-interface aspects. 0201310139B04062001
Foreword. Preface. Acknowledgments. About the Author.
I. AN OBJECT-ORIENTED VIEW ON PERSISTENCE. 1. A New Generation of Software.
From Data to Information.
Improving Software Quality.
To Have and to Hold.
Concentrating on the Essence.
The Importance of Scalability.
Application Program Interfaces.
The Road to Follow.2. The Database Community Today.
Walking among Dinosaurs.
Designing Database Applications.
Client / Server Systems.
Problems with Traditional Systems.
4GL: The Solution?
Summary.3. An Object-Oriented View on Database Applications.
Data-Driven Software Design.
Supporting Multiple Applications.
Object-Oriented Software Design.
The Object Model.
Example: Student Administration.
Business Models and Supporting Multiple Applications.
C++, Java, or Smalltalk: The Ultimate Answer?
Building Reusable Software.
Toward Open Client / Server Applications.
Object Orientation and Client / Server Design.
Analogy between User Interfaces and Databases.
Object-Oriented or Relational?
Persistence from a Different Angle.
Persistence and Separation of Concerns.
II. AN ARCHITECTURE FOR OBJECT PERSISTENCE. 4. Making Objects Persistent.
Basic Requirements of a Persistence Framework.
Interfacing with a Relational World: Problems to Conquer.
Abstracting the Database.
An Architecture for Object Persistence.5. Abstracting the Database.
A Persistent Container Class.
Basic Functionality of PSet.
Implementing the Persistence Architecture.
Resolving the Impedance Mismatch.
Reading and Writing Objects.
Direct Instances of PSet.
Searching for Objects.
Supporting Multiple Technologies.6. Encapsulating Data Access.
Deriving from PSet.
Example: Class City.
Using Class City.
Derived IM Resolvers.
Reuse and Migration to Other Technologies.
III. IMPLEMENTING BUSINESS MODELS. 7. Designing Business Objects.
Developing a Simple Invoicing System.
Searching Compound Objects.
Object ID versus Primary Key.
Developing Generic IM Resolvers.
An OID-Based Reference Class.
Supporting Existing Database Layouts.
Stability of Program Code against Schema Changes.
Storing Multimedia Objects.
Efficiency.8. Inheritance of Persistent Objects.
Specialization: Using Inheritance for Reuse.
Generalization: Using Inheritance for Polymorphism.
Using Generalizations as Member Objects.
Inheritance in Relational Database Systems.
Designing Reusable Software Components.
Attributes versus Associations.
Collections: One-to-Many Relationships.
Associations and Reuse.
A Closer Look at Associations.
Associations as Independent Entities.
Referential Integrity.10. Transaction Management and Concurrency Control.
The ACID Test.
Transaction Management Exceeds the Database Level.
Concurrency Control: Locking.
Example: A Transaction Class.
Transactions in Relational Database Systems.
Distributed Database Systems.
Other Levels of Concurrency.
Lock Notification through Call-Back Functions.11. The Front End.
Analogy between User Interfaces and Databases.
Separating the User Interface from the Business Model.
What to Put Where.
Navigating through Persistent Sets.12. Case Study: An Electronic Telephone Directory.
Comparing Development Approaches.
Designing the User Interface.
The Database Model.
Designing the Business Model.
Comparing the Business Model and the Database Model.
Implementing the Business Objects.
Making Classes Persistent.
Impedance Mismatch Examples.
Implementing the User Interface.13. Toward Open Applications.
Third-Party Access to Your Application's Data.
Standard Report Generators and Query Tools.
Interoperability with Other Applications.
Implementing an Informationbase.
Architecture for Next-Generation Software.14. Conclusion. Appendix.
DBtools-Based Implementation of Scoop.
Resolving Impedance Mismatch.
Building the Select Statement. 0201310139T04062001