Distributed Database Management Systems- A Practical Approach
A centralized database management system (DBMS) is a complex software program
that allows an enterprise to control its data on a single machine. In the past two decades,
there have been many mergers and acquisitions, which have resulted in organizations
owning more than one DBMS. Not all of these systems came from the same vendor. For
example, it is common for an enterprise to own a mainframe database that is controlled
by IBM DB2 and a few other smaller workgroup (or departmental) databases controlled
by Oracle, Microsoft SQL Server, Sybase, or other vendors. Most of the time, users
need to access their own workgroup database. Yet, sometimes, users need to access data
in some other workgroup’s database, or even in the larger, enterprise-level database.
The need to share data that is dispersed across an enterprise cannot be satisfied by
centralized DBMS software. To address this requirement, a new breed of software to
manage dispersed (or distributed data) called a distributed database management
system (DDBMS) is required.
A DDBMS maintains and manages data across multiple computers. A DDBMS can
be thought of as a collection of multiple, separate DBMSs, each running on a separate
computer, and utilizing some communication facility to coordinate their activities in
providing shared access to the enterprise data. The fact that data is dispersed across
different computers and controlled by different DBMS products is completely hidden
from the users. Users of such a system will access and use data as if the data were
locally available and controlled by a single DBMS.
This book addresses the issues in design and development of a DDBMS. In the
chapters that follow we will address the issues involved in developing such a system
and outline different approaches for solving these problems. We will also present two
Java-based frameworks and one Microsoft .NET-based framework that provide the
underlying structure needed to develop a DDBMS.
xxv
xxvi PREFACE
ACCOMPANYING WEBSITE
The official website for this book (www.computer.org/Rahimi_Haug) contains important
information for the book, such as links to the starter kit software bundles for all
three starter kits (JMS-SKIT, J2EE-SKIT, and DNET-SKIT), error corrections from
the text, and any updates to the source code, book content, or starter kits.
STRUCTURE OF THE BOOK
This book has been organized into 3 distinct units. Unit 1 addresses distributed database
theory. These chapters explore the issues with various aspects of a distributed database
system and discuss the various techniques and mechanisms that are available to address
these issues. Unit 2 (Chapters 10 through 14) focuses on the “state of the practice”
for distributed databases. The initial chapters in this unit present a general data modeling
overview and discuss several data modeling alternatives. The later chapters focus
on the architectural requirements and present architectural alternatives including the
traditional, top–down design of a homogenous distributed database, the bottom–up
design of a heterogeneous federated database, and two new, nontraditional architectural
approaches that focus on environments with more dynamic deployment characteristics.
Unit 3 (Chapters 15 through 19) focuses on distributed database implementation. The
chapters in this unit examine three platforms suitable for distributed database development.
Three starter kits are discussed, along with the platforms on which they are
built. The platforms discussed include the Java Message Service (JMS), the Java 2
Enterprise Edition (J2EE), and the Microsoft .NET Framework.