Distributed database
A distributed database is a database in which data is stored across different physical locations.[1] It may
be stored in multiple computers located in the same physical location (e.g. a data centre); or maybe
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 organised network servers or decentralised independent
computers on the Internet, on corporate intranets or extranets, or on other organisation 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[3] 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 much time and computer resources.
2. Duplication, on the other hand, has less complexity. It 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. The implementation of these technologies 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".[4] Oracle provides a
more language-centric view in which distributed queries and distributed transactions form part of
distributed SQL.[5]
Architecture
There are 3 main architecture types for distributed databases:
Shared-memory: very rarely used[6]
Shared-disk
Shared-nothing
In the shared-memory and shared-disk architectures, the data is not partitioned, but it has to be in a
shared-nothing architecture.
Shared-disk architecture is more common for cloud databases than for on-premise.[6]
Historically, shared-nothing was the first architecture to be implemented on the cloud, before the advent
of shared cloud storage made shared-disk possible.
In practice, different layers of the database can have different architectures. It is now common to have a
compute layer with a shared nothing architecture, and a storage layer with a shared disk architecture. This
is for instance the case of Snowflake[7] and AWS Aurora.[8]
List of shared-nothing databases
IBM Db2
Greenplum
Netezza
Teradata
TiDB
OceanBase ([Link]
Vertica
List of shared-disk databases
AWS Aurora
Neon
Snowflake
See also
Centralized database
Data grid
Distributed cache
Distributed data store
Distributed hash table
Routing protocol
Distributed SQL
References
1. "Definition: distributed database" ([Link]
[Link].
2. O'Brien, J. & Marakas, G.M.(2008) Management Information Systems (pp. 185-189). New
York, NY: McGraw-Hill Irwin
3. Ozsu, M.T.; Valduriez, P. (1991). "Distributed database systems: where are we now?".
Computer. 24 (8): 68–78. doi:10.1109/2.84879 ([Link]
ISSN 1558-0814 ([Link] S2CID 5898169 ([Link]
[Link]/CorpusID:5898169).
4. "TechNet Glossary" ([Link] Microsoft.
28 January 2010. 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."
5. Ashdown, Lance; Kyte, Tom (September 2011). "Oracle Database Concepts, 11g Release 2
(11.2)" ([Link]
1/server.112/e25789/[Link]). Oracle Corporation. Archived from the original ([Link]
[Link]/cd/E11882_01/server.112/e25789/[Link]) on 2013-07-15. Retrieved 2013-07-17.
"Distributed SQL synchronously accesses and updates data distributed among multiple
databases. [...] Distributed SQL includes distributed queries and distributed transactions."
6. Garrod, Charlie (2023). "Lecture #21: Introduction to Distributed Databases" ([Link]
[Link]/spring2023/notes/[Link]) (PDF). Carnegie Mellon University -
School of Computer Science. Retrieved 2023-03-12.
7. Kaushik, Arun (2020-02-14). "What Makes Snowflake So Powerful — It's the Hybrid of
Shared Disk and Shared Nothing Architecture" ([Link]
makes-snowflake-so-powerful-its-the-hybrid-of-shared-disk-and-shared-nothing-architecture
-5b4fa8f039fa). Medium. Retrieved 2024-03-12.
8. Brahmadesam, Murali; Ternstrom, Tobias (2019). "Amazon Aurora storage demystified: How
it all works" ([Link]
ge_demystified_How_it_all_works_DAT309-[Link]) (PDF). Retrieved 2024-03-12.
Further reading
M. T. Özsu and P. Valduriez, Principles of Distributed Databases (3rd edition) (2011),
Springer, ISBN 978-1-4419-8833-1
Elmasri and Navathe, Fundamentals of database systems (3rd edition), Addison-Wesley
Longman, ISBN 0-201-54263-3
Oracle Database Administrator's Guide 10g (Release 1),
[Link]
Retrieved from "[Link]