Welcome!

NoSQL Concepts

Miriam Antona

Software engineer

Topics covered

  • Chapter 1: NoSQL vs relational databases / key-value databases
  • Chapter 2: Document databases
  • Chapter 3: Column family databases
  • Chapter 4: Graph databases
NoSQL Concepts

About the course

  • Conceptual course (no coding required)

Datazy logo

NoSQL Concepts

NoSQL vs relational databases

Relational databases

  • Use tables/rows/columns
  • Need a predefined schema/complicated to change
  • Slow queries when joining multiple tables
  • Vertically scalable
    • scale by adding more power (e.g. CPU, RAM...)
    • more expensive
  • Guarantee ACID transactions
  • Typically closed source

NoSQL

  • Originally non-SQL/non-relational
  • Not only SQL
  • Non-relational databases
  • Don't use tables/rows/columns
  • Schema-less/easy changes
  • Fast queries
  • Horizontal scalable/cheaper
  • Most don't support ACID transactions
  • Open source
NoSQL Concepts

NoSQL vs relational databases

  • Are complementary
  • Can coexist
NoSQL Concepts

Types of NoSQL databases

  • Key-value databases
  • Document databases
  • Column family databases
  • Graph databases
NoSQL Concepts

Key-value databases

  • Simplest NoSQL databases
  • Get/Set values with associated key

A visual example of two key-value tuples, The first key is K1, and the first value is Hello. The second key is K2, and the second value is Goodbye.

NoSQL Concepts

Key

  • Examples:
    • DataCampCourse:123:name
    • Client456
    • 123456789
    • [email protected]
    • C09113276F59B26EF3394D90CD31BAA90AA7B4BE
  • Any binary sequence
  • Unique
  • Can be generated by algorithms
  • No long keys
NoSQL Concepts

Value

  • Associated with a key
  • Retrieve, set, delete a value by key
  • Numbers, strings, JSON, images...
  • Size restrictions
NoSQL Concepts

Value

  • Associated with a key
  • Retrieve, set, delete a value by key
  • Numbers, strings, JSON, images...
  • Size restrictions

$$

key value
dataCampCourses:123:name Cleaning data in a SQL Server database
dataCampCourses:123:softLaunchDate 10/01/2020
user:12:address ('123 Sesame Street', 'NY')
user:125:address {"street" : "123 Sesame Street" , "city" : "NY"}
NoSQL Concepts

Datazy example

User preferences

key value
user:457:preferences {"language" : "en_US" , "color" : "green" , "timezone" : "GTM-4"}
user:458:preferences {"language" : "es_US" , "color" : "blue" , "timezone" : "GTM+2"}

 

  • Convention (:)
    • user:id:preferences
NoSQL Concepts

Popular key-value databases

Logos of some popular key-value databases.

NoSQL Concepts

Let's practice!

NoSQL Concepts

Preparing Video For Download...