WK10 - Nosql Databases
WK10 - Nosql Databases
3
Week 10 Database Management II
Introduction
Relational databases store data in structured tables that have a predefined
schema.
To use relational databases, a data model must be designed and then
the data is transformed and loaded into the database.
When data is used in applications, the data then must be retrieved using
SQL, and adapted to the form used in the application. Then when the data
is written back, it must be transformed again back into the relational tables.
NoSQL databases allow the data to be stored in ways that are easier to
understand or closer to the way the data is used by applications. Fewer
transformations are required when the data is stored or retrieved for use.
With NoSQL Databases, many different types of data, whether structured,
unstructured, or semi-structured, can be stored and retrieved more easily.
4
Week 10 Database Management II
What is No SQL?
7
Week 10 Database Management II
Enablers – 1. Types of Data to be stored
8
Week 10 Database Management II
Enablers – 2. Agile Methodology
9
Week 10 Database Management II
Enablers – 3. Cloud Computing
10
Week 10 Database Management II
Why use NoSQL Databases
11
Week 10 Database Management II
NoSQL Database Categories
14
Week 10 Database Management II
Key-Value NoSQL Database Architecture
15
Week 10 Database Management II
Key-Value NoSQL Database Architecture
16
Week 10 Database Management II
Key-Value NoSQL Database: Suitable Use Cases
17
Week 10 Database Management II
Key-Value NoSQL Database: Suitable Use Cases
18
Week 10 Database Management II
Key-Value NoSQL Database: Unsuitable Use Cases
Key-Value type NoSQL databases would not be suitable for use cases that require
just the opposite.
When your data is interconnected with a number of many-to-many
relationships in the data, such as:
social networking or recommendation engine scenarios, a Key-Value NoSQL database is likely
to exhibit poor performance.
When high level of consistency for multi-operation transactions with
multiple keys.
Needs a database that provides Atomicity, Consistency, Isolation, and Durability, (or ACID),
transactions.
When apps run queries based on value vs. key
Consider the ‘Document’ category of NoSQL databases, which we will cover next.
19
Week 10 Database Management II
Key-Value NoSQL Database Examples
20
Week 10 Database Management II
Document-Based NoSQL
Databases
Its architecture and primary use cases
21
Week 10 Database Management II
Document-Based NoSQL Database Architecture
22
Week 10 Database Management II
Document-Based NoSQL Database Architecture
23
Week 10 Database Management II
Document-Based NoSQL Database – Suitable Use Cases
24
Week 10 Database Management II
Document-Based NoSQL Database – Unsuitable Use
Cases
25
Week 10 Database Management II
Document-Based NoSQL Database – Examples
26
Week 10 Database Management II
Column-Based NoSQL
Databases
Its architecture and primary use cases
27
Week 10 Database Management II
Column-Based NoSQL Database Architecture
Great for when you're dealing with large amounts of sparse data.
When compared to row-oriented databases, Column-based databases can
better compress data and save storage space.
Similar to document databases, a Column-based No SQL database
could be used for event logging and blogs, but the data would
be stored in a different fashion.
For enterprise logging, every application can write to its own set
of columns and have each row key formatted in such a way to
promote easy lookup based on application and timestamp.
29
Week 10 Database Management II
Column-Based NoSQL Database – Suitable Use Cases
30
Week 10 Database Management II
Column-Based NoSQL Database – Unsuitable Use Cases
31
Week 10 Database Management II
Column-Based NoSQL Database – Examples
32
Week 10 Database Management II
Graph NoSQL Databases
Its architecture and primary use cases
33
Week 10 Database Management II
Graph NoSQL Database Architecture
This database category stands apart from the previous three types covered because it
doesn't follow a few of the common traits previously seen.
Graph databases store information in entities (or nodes), and relationships (or
edges).
Graph databases are impressive when your dataset resembles a graph-like data
structure. Traversing all of the relationships is quick and efficient, but these
databases tend not to scale as well horizontally.
Sharding a graph database is not recommended since traversing a graph with nodes split across
multiple servers can become difficult and hurt performance.
Graph databases are also ACID transaction compliant. This prevents any
dangling relationships between nodes that don't exist.
34
Week 10 Database Management II
Graph NoSQL database – Suitable Use Cases
35
Week 10 Database Management II
Graph NoSQL database – Unsuitable Use Cases
Graph databases are not a good fit when you’re looking for some
of the advantages offered by the other NoSQL database
categories.
When an application needs to scale horizontally, you're going to
quickly reach the limitations associated with these types of data
stores.
Another general negative surfaces when trying to update all or a
subset of nodes with a given parameter.
These types of operations can prove to be difficult and non-trivial.
36
Week 10 Database Management II
Graph NoSQL database – Examples
37
Week 10 Database Management II
No SQL Database Characteristics
38
Week 10 Database Management II
No SQL Database Characteristics
41
Week 10 Database Management II
Benefits of NoSQL Databases
42
Week 10 Database Management II
Benefits of NoSQL Databases
43
Week 10 Database Management II
Benefits of NoSQL Databases
44
Week 10 Database Management II
Benefits of NoSQL Databases
45
Week 10 Database Management II
Benefits of NoSQL Databases
46
Week 10 Database Management II
Benefits of NoSQL Databases
47
Week 10 Database Management II
Benefits of NoSQL Databases
48
Week 10 Database Management II
Benefits of NoSQL Databases
49
Week 10 Database Management II
Differences between SQL and NoSQL
SQL Databases NoSQL Databases
Data Storage Model Tables with fixed rows and Document: JSON dcocuments
columns Key-Value: key-value pairs
Wide-Columns: tables with rows and
dynamic columns
Graph: nodes and edges.
Development History Developed in the 1970s with Developed in the late 2000s with a focus on
focus on reducing data duplication scaling and allowing for rapid application
change driven by agile and DevOps
practices.
Examples: Oracle, MySQL, Microsoft SQL Document: MongoDB and Couch DB
Server, and PostgresSQL Key-Value: Redis and DynamoDB
Wide-Columns: Cassandra and Hbase
50
Week 10 Database Management II
Graph: Neo4j and Amazon Neptune
Differences between SQL and NoSQL
SQL Databases NoSQL Databases
Data to Object Requires ORM (object –relational Many do not require ORMs. For example,
Mapping mapping) MongoDB documents map directly to data
structures in most popular programming
languages.
52
Week 10 Database Management II
Difference between RDBMS and NoSQL databases
53
Week 10 Database Management II
RDBMS vs NoSQL: Data Modeling Example
54
Week 10 Database Management II
RDBMS vs NoSQL: Data Modeling Example
55
Week 10 Database Management II
RDBMS vs NoSQL: Data Modeling Example
56
Week 10 Database Management II
When should NoSQL be used?
57
Week 10 Database Management II
Drawbacks of NoSQL Databases?
58
Week 10 Database Management II
Summary
Key-Value NoSQL databases are the least complex architecturally speaking; the
data is stored with a key and corresponding value blob and is represented by a
hashmap.
The primary use cases for the Key-Value NoSQL database category are for
quick CRUD operations; for example, storing and retrieving session
information, storing in-app user profiles, and storing shopping cart data in
online stores.
Document-based NoSQL databases use documents to make values visible and
able to be queried. Each piece of data is considered a document and typically
stored in either JSON or XML format.
Each document offers a flexible schema.
60
Week 10 Database Management II
Summary – Key Points
61
Week 10 Database Management II
Summary – Key Points
62
Week 10 Database Management II