101.school
CoursesAbout
Search...⌘K
Generate a course with AI...

    How Databases work

    Receive aemail containing the next unit.
    • Introduction to Databases
      • 1.1What is a Database?
      • 1.2Importance of Databases
      • 1.3Types of Databases
    • Database Models
      • 2.1Hierarchical Model
      • 2.2Network Model
      • 2.3Relational Model
      • 2.4Object-oriented Model
    • Relational Databases
      • 3.1Introduction to Relational Databases
      • 3.2Tables, Records, and Fields
      • 3.3Keys and Indexes
    • SQL Basics
      • 4.1Introduction to SQL
      • 4.2Basic SQL Commands
      • 4.3Creating and Modifying Tables
    • Advanced SQL
      • 5.1Joins
      • 5.2Subqueries
      • 5.3Stored Procedures
    • Database Design
      • 6.1Normalization
      • 6.2Entity-Relationship Diagrams
      • 6.3Data Integrity
    • Transaction Management
      • 7.1ACID Properties
      • 7.2Concurrency Control
      • 7.3Recovery Techniques
    • Database Security
      • 8.1Security Threats
      • 8.2Access Control
      • 8.3Encryption and Authentication
    • NoSQL Databases
      • 9.1Introduction to NoSQL
      • 9.2Types of NoSQL Databases
      • 9.3Use Cases for NoSQL
    • Big Data and Databases
      • 10.1Introduction to Big Data
      • 10.2Big Data Technologies
      • 10.3Big Data and Databases
    • Cloud Databases
      • 11.1Introduction to Cloud Databases
      • 11.2Benefits and Challenges
      • 11.3Popular Cloud Database Providers
    • Database Administration
      • 12.1Roles and Responsibilities of a Database Administrator
      • 12.2Database Maintenance
      • 12.3Performance Tuning
    • Future Trends in Databases
      • 13.1In-memory Databases
      • 13.2Autonomous Databases
      • 13.3Blockchain and Databases

    NoSQL Databases

    Types of NoSQL Databases

    NoSQL databases, also known as "non-SQL" or "not only SQL," are a type of database that provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. They are especially useful when working with large sets of distributed data. NoSQL databases come in four main types: Key-Value Stores, Document Databases, Column Stores, and Graph Databases.

    Key-Value Stores

    Key-Value Stores are the simplest type of NoSQL databases. Every single item in the database is stored as an attribute name, or key, together with its value. Examples of key-value stores are Redis and DynamoDB.

    • Redis: Redis is an open-source, in-memory data structure store, used as a database, cache, and message broker. It supports various types of data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, and geospatial indexes with radius queries.

    • DynamoDB: Amazon DynamoDB is a key-value and document database that delivers single-digit millisecond performance at any scale. It's a fully managed, multi-region, multi-active, durable database with built-in security, backup and restore, and in-memory caching for internet-scale applications.

    Document Databases

    Document databases pair each key with a complex data structure known as a document. Documents can contain many different key-value pairs, or key-array pairs, or even nested documents. MongoDB and CouchDB are examples of document databases.

    • MongoDB: MongoDB is a source-available cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc.

    • CouchDB: Apache CouchDB is an open-source document-oriented NoSQL database, implemented in Erlang. CouchDB uses JSON for data storage, JavaScript for MapReduce indexes, and regular HTTP for its API.

    Column Stores

    Column Stores, also known as wide-column stores, store data in columns instead of rows. This can allow for massive scalability and high performance. Cassandra and HBase are examples of column stores.

    • Cassandra: Apache Cassandra is a free and open-source, distributed, wide column store, NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.

    • HBase: Apache HBase is an open-source, non-relational, distributed database modeled after Google's Bigtable and written in Java. It is developed as part of Apache Software Foundation's Apache Hadoop project and runs on top of HDFS (Hadoop Distributed Filesystem), providing Bigtable-like capabilities for Hadoop.

    Graph Databases

    Graph databases are designed to treat the relationships between data as equally important to the data itself. It's thus intended to hold data without constricting it to a pre-defined model. Instead, the data is stored like we first draw it out - showing how each individual entity connects with or is related to others. Neo4j and Amazon Neptune are examples of graph databases.

    • Neo4j: Neo4j is a graph database management system developed by Neo4j, Inc. Described by its developers as an ACID-compliant transactional database with native graph storage and processing.

    • Amazon Neptune: Amazon Neptune is a fully managed graph database by Amazon.com. Neptune supports up to 15 low latency read replicas across three Availability Zones to scale read capacity and execute more than one-hundred thousand graph queries per second.

    Each type of NoSQL database has its own specific use case, benefits, and drawbacks. The choice of which to use depends largely on the individual needs of a project.

    Test me
    Practical exercise
    Further reading

    My dude, any questions for me?

    Sign in to chat
    Next up: Use Cases for NoSQL