Document Details

WiseZeal

Uploaded by WiseZeal

UCM

Tags

NoSQL databases document stores key-value stores database technologies

Summary

This document provides an introduction to NoSQL databases, focusing on their various types, use cases, and features. It explains how they differ from traditional relational databases in terms of structure and flexibility. Examples such as news website applications and social media are used to illustrate NoSQL database applications.

Full Transcript

**NOSQL DATABASES** **INTRO TO NOSQL DATABASES:** **NoSQL (non-relational databases):** designed to store, retrieve and manage non-tabular data. - Schema-less or flexible schema - Horizontally scalable - Handle a variety of data types: structured, semi-structured (JSON) and unstructur...

**NOSQL DATABASES** **INTRO TO NOSQL DATABASES:** **NoSQL (non-relational databases):** designed to store, retrieve and manage non-tabular data. - Schema-less or flexible schema - Horizontally scalable - Handle a variety of data types: structured, semi-structured (JSON) and unstructured (text, images, logs) WHEN ARE THEY USED: - [When scalability is necessary:] easily handle large volumes of data with horizontal scaling - [When flexibility is needed:] dynamic schema design allows for quick iterations and changes - [When performance is important:] optimized for specific data models and access patterns - [In Big Data and Real-Time Applications:] suited for handling big data and real-time analytics **TYPES OF NON-RELATIONAL DATABASES:** **DOCUMENT STORES:** used for content management systems (store all the documents in a website) *MongoDB* **Documents within the same collection can have different fields or structures. The database doesn´t enforce a strict schema, giving developers the flexibility to store varied data formats within a single collection.** **Useful when you are storing products that can have different attributes depending on the category.** **[Use case:]** A **news website** uses MongoDB to store [articles]. Each article is a document containing fields like title, body, author, tags, and publication date. MongoDB's flexible schema allows for [easy addition of new fields] (e.g., multimedia content) without altering existing documents. The site can handle [millions of readers] by distributing the load across **multiple servers**. [Ex:] \"carID\": 101, \"brand\": \"Toyota\", \"model\": \"Corolla\", \"year\": 2020 } { \"carID\": 102, "color\": "Blue\", \"model\": "Ibiza\", \"year\": 2019 **KEY-VALUE STORES:** used for caching mechanisms, session management and real-time bidding *Redis*, *DynamoDB* [Use Case:] An online shopping platform uses Redis to manage user sessions. Each user\'s session is stored with a unique session ID as the key, and the session data (e.g., cart contents, authentication tokens) as the value. Redis allows for **[quick access and updates]** to session information, ensuring a seamless shopping experience even **[when the site experiences high traffic]** during events like Black Friday sales. **GRAPH DATABASES:** it´s a graph database management system, designed to efficiently store, manage and query highly interconnected data. \*[Graph data model:] data model that represents data as **nodes** (entities) connected by relationships (edges). This makes it particularly suitable for **[scenarios where relationships between data points are important]**. It can be used in various domains (social networks, recommendation systems, network and IT operations, fraud detection). Its flexibility comes from its ability to model complex relationships efficiently. [Use case:] A social media platform uses *Neo4j* to manage and analyze its social graph. Users are nodes, and relationships like friendships, messages, and likes are edges. Neo4j allows the platform to efficiently query and analyze these connections to recommend new friends, detect communities, and identify influencers. This setup also helps in detecting fraudulent behavior by analyzing unusual patterns in the connections and interactions. **NEO4J PRODUCTS:** - **Neo4j Database:** it´s the core product, available in both Community and Enterprise editions. This graph database management system allows users to model, store and query highly connected data efficiently. - **Neo4j Aura:** fully managed [cloud service] for deploying and running Neo4j databases. It provides users with the benefits of Neo4j´s graph database technology without the need to manage infrastructure, offering scalability, security and reliability in the cloud. - **Neo4j Desktop:** desktop application that provides a development environment for Neo4j. It allows developers to create and manage local Neo4j databases, develop applications using Neo4j and explore graph data visually. - **Neo4j Bloom:** graph visualization and exploration tool designed to help users uncover insights from their graph data. It provides an intuitive interface for exploring and querying graph databases using natural language search and interactive visualizations. - **Neo4j Graph Data Science Library:** collection of algorithms and tools specifically designed for analyzing and extracting insights from graph data. It includes algorithms for centrality analysis, community detection and similarity analysis, enabling advanced graph analytics. - **Neo4j AuraDB for Google Cloud:** fully managed graph database service hosted on Google Cloud Platform (GCP).

Use Quizgecko on...
Browser
Browser