Distributed database

A distributed database is a database in which storage devices are not all attached to a common processor.[1] It may be stored in multiple computers, located in the same physical location; or 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.

System administrators can distribute collections of data (e.g. in a database) across multiple physical locations. A distributed database can reside on organized network servers or decentralized independent computers on the Internet, on corporate intranets or extranets, or on other organization networks. Because Distributed databases store data across multiple computers, distributed databases may improve performance at end-user worksites by allowing transactions to be processed on many machines, instead of being limited to one.[2]

Two processes ensure that the distributed databases remain up-to-date and current: replication and duplication.

  1. Replication involves using specialized software that looks for changes in the distributive database. Once the changes have been identified, the replication process makes all the databases look the same. The replication process can be complex and time-consuming depending on the size and number of the distributed databases. This process can also require a lot of time and computer resources.
  2. Duplication, on the other hand, has less complexity. It basically identifies one database as a master and then duplicates that database. The duplication process is normally done at a set time after hours. This is to ensure that each distributed location has the same data. In the duplication process, users may change only the master database. This ensures that local data will not be overwritten.

Both replication and duplication can keep the data current in all distributive locations.[2]

Besides distributed database replication and fragmentation, there are many other distributed database design technologies. For example, local autonomy, synchronous and asynchronous distributed database technologies. These technologies' implementations can and do depend on the needs of the business and the sensitivity/confidentiality of the data stored in the database, and the price the business is willing to spend on ensuring data security, consistency and integrity.

When discussing access to distributed databases, Microsoft favors the term distributed query, which it defines in protocol-specific manner as "[a]ny SELECT, INSERT, UPDATE, or DELETE statement that references tables and rowsets from one or more external OLE DB data sources".[3] Oracle provides a more language-centric view in which distributed queries and distributed transactions form part of distributed SQL.[4]

Today the distributed DBMS market is evolving dramatically, with new, innovative entrants and incumbents supporting the growing use of unstructured data and NoSQL DBMS engines, as well as XML databases and NewSQL databases. These databases are increasingly supporting distributed database architecture that provides high availability and fault tolerance through replication and scale out ability. Some examples are Aerospike,[5] Cassandra,[6] Clusterpoint,[7] ClustrixDB,[8] Couchbase,[9] Druid (open-source data store),[10] FoundationDB,[11] NuoDB,[12] Riak[13] and OrientDB.[14] The blockchain technology popularised by bitcoin is an implementation of a distributed database.[15]

Architecture

A database user accesses the distributed database through:

Local applications
applications which do not require data from other sites.
Global applications
applications which do require data from other sites.

A homogeneous distributed database has identical software and hardware running all databases instances, and may appear through a single interface as if it were a single database. A heterogeneous distributed database may have different hardware, operating systems, database management systems, and even data models for different databases.

Homogeneous Distributed Databases Management System

In homogeneous distributed database, all sites have identical software and are aware of each other and agree to cooperate in processing user requests. Each site surrenders part of its autonomy in terms of right to change schema or software. A homogeneous DBMS appears to the user as a single system. The homogeneous system is much easier to design and manage. The following conditions must be satisfied for homogeneous database:

Heterogeneous DDBMS

In a heterogeneous distributed database, different sites may use different schema and software. Difference in schema is a major problem for query processing and transaction processing. Sites may not be aware of each other and may provide only limited facilities for cooperation in transaction processing. In heterogeneous systems, different nodes may have different hardware & software and data structures at various nodes or locations are also incompatible. Different computers and operating systems, database applications or data models may be used at each of the locations. For example, one location may have the latest relational database management technology, while another location may store data using conventional files or old version of database management system. Similarly, one location may have the Windows operating system, while another may have UNIX. Heterogeneous systems are usually used when individual sites use their own hardware and software. On heterogeneous system, translations are required to allow communication between different sites (or DBMS). In this system, the users must be able to make requests in a database language at their local sites. Usually the SQL database language is used for this purpose. If the hardware is different, then the translation is straightforward, in which computer codes and word-length is changed. The heterogeneous system is often not technically or economically feasible. In this system, a user at one location may be able to read but not update the data at another location.

Important considerations

Care with a distributed database must be taken to ensure the following:

There are two principal approaches to store a relation r in a distributed database system:

A) Replication
B) Fragmentation/Partitioning

A) Replication: In replication, the system maintains several identical replicas of the same relation r in different sites.

  • Data is more available in this scheme.
  • Parallelism is increased when read request is served.
  • Increases overhead on update operations as each site containing the replica needed to be updated in order to maintain consistency.
  • Multi-datacenter replication provides geographical diversity, like in Clusterpoint[16] or Riak.[17]

B) Fragmentation: The relation r is fragmented into several relations r1, r2, r3....rn in such a way that the actual relation could be reconstructed from the fragments and then the fragments are scattered to different locations. There are basically two schemes of fragmentation:

  • Horizontal fragmentation - splits the relation by assigning each tuple of r to one or more fragments.
  • Vertical fragmentation - splits the relation by decomposing the schema R of relation r.

A distributed database can be run by independent or even competing parties as, for example, in bitcoin or Hasq.

Advantages

The Merge Replication Method is popularly used to consolidate the data between databases.

Disadvantages

See also

References

  1. http://www.its.bldrdoc.gov/fs-1037/dir-012/_1750.htm
  2. 1 2 O'Brien, J. & Marakas, G.M.(2008) Management Information Systems (pp. 185-189). New York, NY: McGraw-Hill Irwin
  3. "TechNet Glossary". Microsoft. Retrieved 2013-07-16. distributed query[:] Any SELECT, INSERT, UPDATE, or DELETE statement that references tables and rowsets from one or more external OLE DB data sources.
  4. Ashdown, Lance; Kyte, Tom (September 2011). "Oracle Database Concepts, 11g Release 2 (11.2)". Oracle Corporation. Retrieved 2013-07-17. Distributed SQL synchronously accesses and updates data distributed among multiple databases. [...] Distributed SQL includes distributed queries and distributed transactions.
  5. "Aerospike distributed database". Aerospike.
  6. "Apache Cassandra database menagement system". Apache.org.
  7. "Clusterpoint XML distributed database". Clusterpoint.
  8. "Frequently Asked Questions about ClustrixDB - Clustrix Documentation". Clustrix, Inc.
  9. "Couchbase distributed database". Couchbase.
  10. "Druid distributed datastore/database". The Druid Community.
  11. "FoundationDB database". FoundationDB.
  12. Clark, Jack. "NuoDB slurps European cash for database expansion" The Register. Feb. 26, 2014
  13. "Basho Riak Distributed database". Basho.
  14. "OrientDB database". OrientDB.
  15. Margaret, Alyson (23 June 2015). "How Bitcoin and the blockchain are a transformative technology". Retrieved 23 July 2015.
  16. "Clusterpoint database distributed storage multi-datacenter replication". Clusterpoint.
  17. "Riak database multi-datacenter replication". Basho.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.