Database

A database is an organized collection of structured information, or data, typically stored electronically in a computer system and controlled by a database management system (DBMS).

Data management

Polyglot persistence is a data storage practice that recognizes the variety of data storage needs and uses multiple data storage technologies in practice, chosen based upon the use of the data. Multi-model databases are designed to support multiple data models against a single, integrated back end providing the modeling advantages of polyglot persistence while reducing the complexity. Read Multi-model Databases: A New Journey to Handle the Variety of Data.

Polyglot vs multi-model

Polyglot Multi-model
Large product variety Small product variety
Complex deployment Single system deployment
Each data store scales independently Common resource pool for scaling
Duplicate and sync across data stores Interconnected data
Manage data set relationships across data sets Entire domain is represented in the same data store
Each data store is optimized Eliminates cross system latency
Can do some work in parallel Can leverage caching

Multi-model

Read Building on Multi-Model Databases.

  • Describe how data is accessed with GraphQL
  • Create data by adding documents to collections like NoSQL
  • ACID compliant

Common database models

A database model defines the logical structure of a database. Common models include:

  • Hierarchical model
  • Network model
  • Relational model
  • Entity-relationship model
  • Object model
  • Document model
  • Graph model
  • Multi-model

Graph model

Data is represented as nodes and the relationships between them as edges.

Languages

SQL

Structured query language.

  • table structure
  • requires schema
  • relational
  • scales vertically
  • atomicity, consistency, isolation, and durability (ACID) compliant.

SQL resources

NoSQL

Not only structured query language

  • document structure
  • flexible to schema changes
  • non-relational
  • scales horizontally
  • ACID compliant at the document level

NoSQL resources

Resources