In this chapter we turn our attention to distributed databases
(DDBs), distributed database management systems (DDBMSs), and how the
client-server architecture is used as a platform for database application
development. Distributed databases bring the advantages of distributed
computing to the database management domain. A distributed computing system consists of a number of processing
elements, not necessarily homogeneous, that are interconnected by a computer
network, and that cooperate in performing certain assigned tasks. As a general
goal, distributed computing systems partition a big, unmanageable problem into
smaller pieces and solve it efficiently in a coordinated manner. The economic
viability of this approach stems from two reasons: more computing power is
harnessed to solve a complex task, and each autonomous processing element can be
managed independently to develop its own applications.
DDB technology resulted from a merger of two
technologies: database technology, and network and data communication
technology. Computer networks allow distributed processing of data.
Traditional databases, on the other hand, focus on providing centralized,
controlled access to data. Distributed databases allow an integration of
information and its processing by applications that may themselves be
centralized or distributed.
Several distributed database prototype systems
were developed in the 1980s to address the issues of data distribution,
distributed query and transaction process-ing, distributed database metadata
management, and other topics. However, a full-scale comprehensive DDBMS that
implements the functionality and techniques proposed in DDB research never
emerged as a commercially viable product. Most major vendors redirected their
efforts from developing a pure DDBMS
product into developing systems based on client-server concepts, or toward
developing technolo-gies for accessing distributed heterogeneous data sources.
Organizations continue to be interested in the decentralization of processing (at the
system level) while achieving an integration
of the information resources (at the logical level) within their
geographically distributed systems of databases, applications, and users. There
is now a general endorsement of the client-server approach to application
development, and the three-tier approach to Web applications development (see Section
In this chapter we discuss distributed
databases, their architectural variations, and concepts central to data
distribution and the management of distributed data. Details of the advances in
communication technologies facilitating the development of DDBs are outside
the scope of this book; see the texts on data communications and networking
listed in the Selected Bibliography at the end of this chapter.
Section 25.1 introduces distributed database
management and related concepts. Sections 25.2 and 25.3 introduce different
types of distributed database systems and their architectures, including
federated and multidatabase systems. The problems of heterogeneity and the
needs of autonomy in federated database systems are also highlighted. Detailed
issues of distributed database design, involving fragmenting of data and
distributing it over multiple sites with possible replication, are discussed in
Section 25.4. Sections 25.5 and 25.6 introduce distributed database query and
trans-action processing techniques, respectively. Section 25.7 gives an
overview of the concurrency control and recovery in distributed databases.
Section 25.8 discusses catalog management schemes in distributed databases. In
Section 25.9, we briefly discuss current trends in distributed databases such
as cloud computing and peer-to-peer databases. Section 25.10 discusses
distributed database features of the Oracle RDBMS. Section 25.11 summarizes the
For a short introduction to the topic of
distributed databases, Sections 25.1, 25.2, and 25.3 may be covered.