11bNoSQL

Database Management

Mick McQuaid

University of Texas at Austin

11 May 2026

Intro

  • I previously mentioned ORMs as a (niche) alternative to SQL
  • A much larger alternative, in popularity and variety, is NoSQL
  • NoSQL typically requires programming expertise, which is not surprising because it began as a group of programmers rejecting SQL
  • They meant, literally “No SQL!” at first, but later softened their position to “Not Only SQL” and most but not all NoSQL databases have some SQL capabilities

Properties of SQL

Paraphrased from Gemini:

  • NoSQL databases are without schemas and require programming to enter and extract data
  • They are designed from scratch for horizontal scaling, meaning that one database is spread across many machines
  • They are optimized for specialized tasks, allowing high performance for those tasks but making other tasks difficult or impossible
  • They are designed to allow data types to change over time (related to the lack of schemas)

Kinds of NoSQL

From Gemini:

  • Document Stores: Store data in documents, commonly JSON or BSON (e.g., MongoDB, CouchDB)
  • Key-Value Stores: Store data as collections of key-value pairs (e.g., Redis, DynamoDB).
  • Wide-Column Stores: Store data in column families, optimized for massive data analysis (e.g., Cassandra, HBase)
  • Graph Databases: Store complex relationships between data entities (e.g., Neo4j)

Document Stores

  • The most popular NoSQL database package is MongoDB, which became extremely popular in the late 2010s
  • Its popularity has waned, but it’s still in the top five at DB-Engines
  • Its basic unit is a document, which is a data structure composed of field-value pairs (not necessarily unique, as in key-value pairs)
  • It looks like a JSON array but is more flexible

Example of a MongoDB document

{
  _id: ObjectId("507f1f77bcf86cd799439011"),
  name: "Alice",
  birthdate: ISODate("1990-01-01T00:00:00Z"),
  address: {
    street: "123 Main St",
    city: "Springfield",
    state: "IL"
  },
  hobbies: ["reading", "hiking", "coding"]
}

Features of the document

  • It contains a hierarchy (values can be field-value pairs)
  • It contains a repeating group
  • We can later add or subtract field-value pairs (except _id, which is required)

Up next

  • We’ll skip key-value stores and wide-column stores
  • We’ll go right to a very different kind of database, the graph database, next

END

Colophon

This slideshow was produced using quarto

Fonts are Roboto, Roboto Light, and Victor Mono Nerd Font