Cloud database
Database running on a cloud computing platform
From Wikipedia, the free encyclopedia
A cloud database is a database that typically runs on a cloud computing platform, with access provided as a service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service maintained by a cloud database provider. Cloud databases may use either a relational SQL or a NoSQL data model.
Database services handle scalability and high availability, while making the underlying software stack transparent to users.[1]
Deployment models
There are two primary methods to run a database on a cloud platform:
- Virtual machine image
- Cloud platforms allow users to purchase virtual machine instances for a limited time, on which a database can be run. Users can upload their own machine image with a database installed or use ready-made machine images that include an optimized installation of a database.[2]
- Database-as-a-service (DBaaS)
- With a database as a service (DBaaS) model, users pay a cloud provider for database services and computing resources, which may reduce the operational overhead needed to develop and manage databases.[2] Users are provided with tools to create and manage database instances, as well as to manage database users. Some cloud providers also offer tools for managing database structures and data.[3] Many cloud providers offer both relational (e.g., Amazon RDS, SQL Server) and NoSQL (e.g., MongoDB, Amazon DynamoDB) databases.[3] DBaaS is a type of software as a service (SaaS).
Architecture and common characteristics
- Most database services offer web-based consoles that end users can use to provision and configure database instances.
- Database services routinely include a database-manager component that manages the underlying database instances using a service API. The API is exposed to end users and permits them to perform maintenance and scaling operations on their database instances.
- The underlying software stack typically includes the operating system, the database, and third-party software used to manage the database. The service provider is responsible for installing, patching, and updating the underlying software stack, as well as ensuring the overall health and performance of the database.
- Scalability features differ between vendors—some offer auto-scaling, others allow users to scale resources via an API but do not scale automatically.[2]
- Service providers typically commit to a defined level of high availability (e.g., 99.9% or 99.99%). This is achieved through techniques such as data replication and automatic failover to standby instances.[4]
Data model
The design and development of typical systems often use data management and relational databases as key building blocks. Advanced queries expressed in SQL work well with the strict relationships imposed by relational databases. However, relational database technology was not originally designed for use over distributed systems. This limitation has been addressed through clustering enhancements, although some fundamental operations—such as data synchronization—still require complex and expensive protocols.[5]
Modern relational databases can exhibit poor performance on data-intensive systems. As a result, the NoSQL paradigm has been adopted within database management systems for cloud-based systems.[6] NoSQL storage does not require fixed table schemas, and join operations are typically avoided. NoSQL databases have been shown to provide efficient horizontal scalability, high performance, and ease of integration into cloud applications.[7] Additionally, data models that rely on simplified relay algorithms have been employed in data-intensive cloud mapping applications specific to virtual frameworks.[8]
It is also important to differentiate between cloud databases which are relational (SQL) and those that are non-relational (NoSQL).[9]
- SQL databases
- SQL databases can run in the cloud either on virtual machines or as a managed service, depending on the vendor. While SQL databases are generally easy to scale vertically, horizontal scalability presents a greater challenge.
- NoSQL databases
- NoSQL databases are designed to service heavy read/write loads and can scale up and down easily,[10] making them well suited to cloud environments. However, many contemporary applications are built around a relational (SQL) data model, so adopting NoSQL databases often requires significant changes to application code.[11]
- Some SQL databases have developed NoSQL capabilities, including JSON, binary JSON (e.g. BSON or similar variants), and key-value store data types.
- Multi-model databases combine relational and non-relational capabilities, providing a standard SQL interface to users and applications. Native multi-model databases support multiple data models with a single core, facilitating their use in applications built around SQL.
Vendors
The following table lists notable database vendors that offer cloud database services, classified by deployment model—machine image or database as a service—and by data model (SQL or NoSQL).
| Virtual Machine Deployment | Database as a Service | |
|---|---|---|
| SQL Data Model |
| |
| NoSQL Data Model |
|
|