IBM Data Engineering Professional Certificate
,Reading Note
,Coursera
,Introduction to NoSQL Databases
- 講解 RDBMS 與 NoSQL 的差別,如何在不同場景做選擇。
- 深入探討 NoSQL 的功能與特性。
- 講解 ACID 與 BASE 兩個模型之間的差異與效能優勢。
What is NoSQL?
NoSQL 可稱為 Not only SQL。
儲存資料的方式與技術都有別於關聯式資料庫。
新的方式儲存和提取資料。
適合用於處理大數據資料。
比起關聯式資料庫更容易開發應用程式。
History of NoSQL
NoSQL Database Categories(類別)
NoSQL Database Characteristics(特徵)
有自家的開源社群。
大部分的NoSQL是以開源的方式提供使用。
以開源的方式作為商業基礎。
NoSQL的開發公司多數會同時提供商業版及開源版本。
每家公司都會有自家的獨特技術,但是還是有部分共同的技術,如:
Benefits of NoSQL Databases
Scalability
Performance
Availability
Cloud Architecture
Flexible Schema
Varied Data Structures
Specialized Capabilities
Key-Value NoSQL Database Architecture
Key-Value NoSQL Database Use Cases
Suitable Use Cases
Unsuitable Use Cases
資料與資料之間是 many-to-many 的關係,如:
在併發作業的過程中,依然可以為此資料的一致性。
Apps 基於 value 和 key 運行資料請求
Key-Value NoSQL Database Examples
Document-Based NoSQL Database Architecture
Document-Based NoSQL Database Use Cases
Suitable Use Cases
Event logging for apps and processes
Online blogs
Operational datasets and metadata for web and mobile apps
Unsuitable Use Cases
在需要 ACID transactions 的場景
資料是以 aggregate-oriented 方式設計
Document-Based NoSQL Database Example
Column-Based NoSQL Database Architecture
Suitable Use Cases
Unsuitable Use Cases
ACID transactions
在前期開發過程中,可能要對Columns進行增減,這可能會造成成本增加及產品的開發時間。
Column-Based NoSQL Database Examples
Graph NoSQL Database Architecture
Suitable Use Cases
Unsuitable use Cases
Graph NoSQL Database Examples
ACID vs BASE consistency models
ACID definition
ACID consistency model
BASE definition
BASE consistency model
Concepts of distributed systems
Fragmentation
Replication
Advantages of distributed systems
CAP Theorem
Partition Tolerance
NoSQL: CP or AP
RDMS or NoSQL
RDBMS to NoSQL : a mindset change
Data driven model to Query driven data model
Normalized to Denormalized data
From ACID to BASE model
NoSQL systems, by design, do not support transactions and joins(except in limited cases)
課程完整整理的內容,所以把它記錄下來
Basics of NoSQL
- NoSQL means Not only SQL.
- NoSQL databases have their roots in the open source community.
- NoSQL database implementations are technically different from each other.
- There are several benefits of adopting NoSQL databases including storing and retrieving session information, and event logging for apps.
- The four main categories of NoSQL database are Key-Value, Document, Wide Column, and Graph.
- Key-Value NoSQL databases are the least complex architecturally.
- Document-based NoSQL databases use documents to make values visible for queries.
- In document-based NoSQL databases, each piece of data is considered a document, which is typically stored in either JSON or XML format.
- Column-based databases spawned from the architecture of Google’s Bigtable storage system.
- The primary use cases for column-based NoSQL databases are event logging and blogs, counters, and data with expiration values.
- Graph databases store information in entities (or nodes) and relationships (or edges).
Working with Distributed Data
- ACID stands for Atomicity, Consistency, Isolated, Durable.
- BASE stands for Basic Availability, Soft-state, Eventual Consistency.
- ACID and BASE are the consistency models used in relational and NoSQL databases.
- Distributed databases are physically distributed across data sites by fragmenting and replicating the data.
- Fragmentation enables an organization to store a large piece of data across all the servers of a distributed system by breaking the data into smaller pieces.
- You can use the CAP Theorem to classify NoSQL databases.
- Partition Tolerance is a basic feature of NoSQL databases.
- NoSQL systems are not a de facto replacement of RDBMS.
- RDBMS and NoSQL cater to different use cases, which means that your solution could use both RDBMS and NoSQL.