Centralized database

A centralized database (sometimes abbreviated CDB) is a database that is located, stored, and maintained in a single location. This location is most often a central computer or database system, for example a desktop or server CPU, or a mainframe computer. In most cases, a centralized database would be used by an organization (e.g. a business company) or an institution (e.g. a university.) Users access a centralized database through a computer network which is able to give them access to the central CPU, which in turn maintains to the database itself.

Historical context
The need for databases rose in the 60's with the invention of direct access storage, which allowed users to directly access records. Previously, computer systems were tape based, meaning records could only be accessed sequentially. Organizations quickly adopted databases for storage and retrieval of data. The traditional approach for storing data was to use a centralized database, and users would query the data from various points over a network.

An example for a centralized database could be given with the Australian Department of Defense, which centralized their databases in the mid 1970s.

Advantages
Centralized databases hold a substantial amount of advantages against other types of databases. Some of them are listed below:


 * Data integrity is maximized and data redundancy is minimized, as the single storing place of all the data also implies that a given set of data only has one primary record. This aids in the maintaining of data as accurate and as consistent as possible and enhances data reliability.
 * Central host computer can be more easily protected from unauthorized access.
 * Generally easier data portability and database administration.
 * Data kept in the same location is easier to be changed, re-organized, mirrored, or analyzed
 * Transactions can more easily comply with the properties of ACID.

Disadvantages
Centralized databases also have a certain amount of limitations, such as those described below:
 * Access speed is limited by network speed.
 * The central computer is a single point of failure, if the computer experiences downtime, users will not be able to access any data.
 * If there is no fault-tolerant setup and hardware failure occurs, all the data within the database will be lost.
 * If someone accesses the central computer, all of the data can easily be compromised.
 * Difficult to scale as the centralized computer would need to be replaced to scale up.

Centralized databases vs. Distributed databases
The underlying idea of centralized databases is that they should be able to receive, maintain, and complete every single request that the main system must perform by themselves. There is only one database file, kept at a single location on a given network.

A distributed database, however, is a database in which all the information is stored on multiple physical locations. Distributed databases are divided into two groups: homogeneous and heterogeneous. It relies on replication and duplication within its multiple sub-databases in order to maintain its records up to date. It is composed of multiple database files, all controlled by a central DBMS.

The main differences between centralized and distributed databases arise due to their respective basic characteristics. Differences include but are not limited to:


 * Centralized databases store data on a single CPU bound to a single certain physical/geographical location. Distributed databases, however, rely on a central DBMS which manages all its different storage devices remotely, as it is not necessary for them to be kept in the same physical and/or geographical location.
 * As outlined above, centralized databases are easier to maintain up to date than distributed databases. This is so because distributed databases require additional (often manual) work to keep the data stored relevant, and to avoid data redundancy, as well as to improve the overall performance.
 * If data is lost in a centralized system, retrieving it would be much harder. If, however, data is lost in a distributed system, retrieving it would be very easy, because there is always a copy of the data in a different location of the database.
 * Designing a centralized database is generally much less complex than designing a distributed database, as distributed database systems are based on a hierarchical structure.