UCONN

UCONN
UCONN

NoSQL Explained

NoSQL Explained

Google Datastore


NoSQL vs. SQL

Emergence of “NoSQL” (2000s)


  • 2000: Carlo Strozzi used the term “NoSQL” for a lightweight relational DB without SQL, but it wasn’t about today’s NoSQL concept.

  • 2004–2006: Internet giants like Google and Amazon faced scaling issues. They built custom non-relational systems:

    • Google Bigtable (2004): A distributed, column-oriented database to handle huge datasets (inspired Apache HBase, Cassandra).

    • Amazon Dynamo (2007): A key-value store for high availability (inspired DynamoDB, Cassandra, Riak).

  • 2009: Johan Oskarsson popularized the term “NoSQL” during a meetup to describe these new, distributed, non-relational databases. The name stuck.

  • “NoSQL” becomes shorthand for databases that are distributed, schema-flexible, and horizontally scalable.

The NoSQL Movement (2010s)

As “Web 2.0” scaled, NoSQL databases became mainstream. Four major types evolved:

  1. Key-Value Stores – DynamoDB, Riak, Redis
    (simple, fast lookups, session management, caching)

Use case: caching, session storage, user profiles

  1. Document Stores – MongoDB, CouchDB
    (flexible JSON/XML-like storage for semi-structured data)

Use case: content management, catalogs, JSON APIs

  1. Column-Family Stores – Cassandra, HBase
    (suited for analytics, time-series, and big data)

Use case: time-series data, analytics, IoT metrics

  1. Graph Databases – Neo4j, OrientDB
    (relationships and networks, e.g., social graphs, fraud detection)
    Types of NoSQL Databases

Use case: social networks, fraud detection, recommendation engines

Cloud providers like AWS, Azure, and Google Cloud quickly adopted NoSQL databases as managed services.

NoSQL Today (2020s–Present)

  • Mainstream adoption: NoSQL complements SQL rather than replacing it (hence “Not Only SQL”). Many companies use hybrid systems.

  • Polyglot persistence: Developers choose databases based on workload — SQL for transactions, NoSQL for scale and flexibility.

  • New trends:

    • Multi-model databases (ArangoDB, Cosmos DB) that support document, key-value, and graph in one engine.

    • Serverless & cloud-native NoSQL (e.g., AWS DynamoDB, Google Firestore).

    • Integration with AI/ML and real-time analytics, handling unstructured and streaming data.

NoSQL databases (aka "not only SQL") are non-tabular databases.

Store data differently than relational tables. 

The main types are document, key-value, wide-column, and graph

They provide flexible schemas and scale easily with large amounts

of data and high user loads.


The term “NoSQL database,”  refers to any non-relational database. 

NoSQL databases emerged in the late 2000s as the cost of storage

dramatically decreased.


No need to create a complex, difficult-to-manage data model in order

to avoid data duplication.


Developers were becoming the primary cost of software development,

NoSQL databases optimized for developer productivity.


As storage costs rapidly decreased, the amount of data that applications needed to store and query increased. 

This data came in all shapes and sizes  structured, semi-structured, and

polymorphic — and defining the schema in advance became nearly

Impossible.

 NoSQL databases allow developers to store huge amounts of

unstructured data, giving them a lot of flexibility.

Need to rapidly adapt to changing requirements. 

Ability to iterate quickly and make changes throughout their software stack 

all the way down to the database. 

With Cloud computing  developers began using public clouds to host their

applications and data. 

Ability to distribute data across multiple servers and regions to make their

applications resilient, to scale out instead of scale up, and to intelligently

geo-place their data. 

NoSQL database features

Each NoSQL database has its own unique features. At a high level, many NoSQL

Databases have the following features:

Types of NoSQL databases

Over time, four major types of NoSQL databases emerged: document databases, key-value databases, wide-column stores, and graph databases.

Document databases store data in documents similar to JSON (JavaScript

Object Notation) objects. Each document contains pairs of fields and values.


The values can typically be a variety of types including things like strings,

numbers, Booleans, arrays, or objects.


Key-value databases are a simpler type of database where each item contains keys and values.


Wide-column stores store data in tables, rows, and dynamic columns.

Graph databases store data in nodes and edges. 


Nodes typically store information about people, places, and things, while edges store information about the relationships between the nodes.

When should NoSQL be used?

When deciding which database to use, decision-makers typically find one or more of the following factors lead them to selecting a NoSQL database:

  • Fast-paced Agile development

  • Storage of structured and semi-structured data

  • Huge volumes of data

  • Requirements for scale-out architecture

  • Modern application paradigms like microservices and real-time streaming

NoSQL database misconceptions

  • Relationship data is best suited for relational databases.

  • NoSQL databases don't support ACID transactions.

Misconception: relationship data is best suited for relational databases

A common misconception is that NoSQL databases or non-relational databases

don’t store relationship data well. NoSQL databases can store relationship data

they just store it differently than relational databases do.

In fact, when compared with relational databases, many find modeling relationship data in NoSQL databases to be easier than in relational databases, because related data doesn’t have to be split between tables.

NoSQL data models allow related data to be nested within a single data structure.


No comments:

Post a Comment

 Assignment #7 due 10/31/25

  Build 8 graphs using matplotlib. I want two separate publicly traded companies e.g. AAPL & AMZN Volume and price graphs for a 1 year p...