Chapter 5. Designing a Distributed System

Application developers and DBAs face numerous challenges and choices as they design a distributed application. Many, if not most, of these issues are not specific to the particular RDBMS vendor they have selected but are a function of business requirements and other constraints. This chapter takes a step back from Oracle specifics and examines topics common to distributed applications in general, including:

  • The characteristics of a successful distributed system

  • Data partitioning

  • Application partitioning

  • The client/server approach

  • Common solutions to common problems

We introduced some of these topics in Chapter 1. Chapter 6, discusses these issues in greater detail in the context of the Oracle RDBMS.

Characteristics of a Distributed System

Before designing a distributed system, you should have a clear understanding of what a distributed system is and what requirements it must meet. In his book An Introduction to Database Systems (Addison-Wesley, 1995), the relational database deity C. J. (Chris) Date states his “fundamental principle of distributed database,” as follows:

To the user, a distributed system should look exactly like a nondistributed system.

Date goes on to enumerate 12 objectives that must be met in order to satisfy this principle, as follows:

  1. Local autonomy

  2. No reliance on a single site

  3. Continuous operation

  4. Location transparency

  5. Fragmentation independence

  6. Replication independence

  7. Distributed query processing

  8. Distributed transaction management ...

Get Oracle Distributed Systems now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.