54.1 Advanced Database Management >> Distributed Databases


Overview:

A distributed database is a database in which storage devices are not all attached to a single processor. It may be stored in multiple computers located in the same physical location, or they may be dispersed over a network of interconnected computers. Unlike parallel systems, in which the processors are tightly coupled and constitute a single database system, a distributed database system consists of loosely coupled sites that share no physical components.

Key Characteristics of Distributed Databases:

  1. Transparency: The distribution should be transparent to users. They shouldn’t be aware of where the data is located, how data is replicated, etc.
  2. Scalability: Systems can be easily expanded by adding more machines to the network.
  3. Reliability: Due to data redundancy, if one site fails in a distributed database, a user can still access the same data from another site.
  4. Autonomy: Each location in the distributed system can operate independently.

Types of Distributed Databases:

  1. Homogeneous Distributed Databases: Every site uses the same DBMS product, and data structures are consistent across sites.
  2. Heterogeneous Distributed Databases: Different sites might use different schemas, and even different DBMS products.

Advantages of Distributed Databases:

  1. Reliability and Availability: If one site fails, only the local data is rendered inaccessible. The remaining sites can continue to function.
  2. Improved Performance: Data is located near the site of greatest demand.
  3. Easier Expansion: Systems can grow by adding more machines to the network without interruptions.

Challenges in Distributed Databases:

  1. Complexity: It’s harder to design and manage distributed systems as compared to a centralized system.
  2. Security Concerns: Data distributed across various sites can have security vulnerabilities.
  3. Integrity Control: Ensuring data consistency across all nodes/sites can be a challenge.
  4. Cost: Initial setup and the cost of maintaining integrity can be high.

Distributed Database Design:

  1. Data Fragmentation: The database is divided into fragments and stored across multiple sites. This can be done based on relation, row, or column.
  2. Data Replication: The same data is stored at multiple sites to ensure data availability.
  3. Data Allocation: Determines where each data fragment/replica should be located.

Distributed Database Operations:

  1. Distributed Query Processing: A strategy to decompose and distribute the query to get the fastest response time.
  2. Distributed Transaction Management: Ensures the consistency and integrity of a transaction across distributed sites.
  3. Concurrency Control: Manages concurrent access to data to ensure consistency.
  4. Commit Protocols: Ensures that a transaction is reflected in multiple sites or none at all.

Conclusion:

Distributed databases are integral in today’s world, especially with the rise of global applications and the need for high availability. However, they bring with them unique challenges that need to be addressed for efficient and reliable operations. Proper design, consistent policies, and robust technologies are essential for maintaining and operating such systems effectively.



Key terms in plain language

Open a term for a concise explanation of language used on this page.

Cloud Computing

Computing resources—such as applications, servers, storage, or databases—delivered from remote infrastructure and scaled as requirements change.

Infrastructure as a Service (IaaS)

Cloud-based servers, storage, and networking that customers configure and manage without owning the underlying data-center hardware.

Software as a Service (SaaS)

Software accessed as an online service instead of being installed and maintained entirely on the customer’s own computers or servers.

Disaster Recovery (DRaaS)

A plan and service for restoring applications, data, and operations after an outage or disruption. DRaaS provides recovery infrastructure through a managed cloud service.

Identity and Access Management (IAM)

The systems and policies that determine who a user is, what resources they may access, and how that access is authenticated and reviewed.

API

An application programming interface is a defined way for software systems to exchange data or request functions from one another.