基礎介紹

基礎

  • 現今資料庫中又分成:

    • SQL(關聯式資料庫)

    • NoSQL(非關聯式資料庫)(此篇要講的)

  • MongoDB 為一種 NoSQL 資料庫

    • 一般的MongoDB是使用終端機來操作

    • 若不想使用終端機,則可以利用圖形化介面 Robo 3T

  • 但假若今天你要 使用 Node.js 操作 MongoDB,則可以用到 Mongoose,他是給 Node.js 用的 MongoDB ODM。

  • Mongoose 基本觀念:

    • 由 Schema出發(定義MongoDb內一個Document的格式)

    • 定義好 Schema 後,將 Schema 輸出為一個 Model

    • Model 完成後,可控制 Model 做到 CRUD 功能。

思維

  • Why NoSQL:面對巨量資料時,有著較佳的管理與分析

  • NoSQL與大數據的關係:

    • 速度

    • 多樣的資料格式:NoSQL屬於無綱要(Schemaless)設計,所以在儲存資料之前不需要事先定義資料庫綱要(你可以想像成不用先定義各種欄位)

    • 資料量:處理大量資料

NoSQL 分類

  • 文件導向資料庫(Document):MongoDB

    • 應用場景:Web環境下的數據資料

    • 說明:以集合方式儲存,每個集合(Collection)有多筆文件(Document)組成,每筆文件可為Web 結構化資料(如JSON)

    • 層級

      • 多個 Document,組成一個 Collection 。

      • 多個 Collection,組成一個DB

請深刻記得以上文件導向資料庫的層級

  • 鍵值資料庫(Key-Value):Redis、Dynamo

  • 應用場景:內容快取

  • 列式資料庫(Column):Cassandra、BigTable、Hbase

    • 應用場景:分散式檔案系統

  • 圖形資料庫(Graph):GraphDB

    • 應用場景:社交網路

    • 說明:採用圖結構的概念儲存資料,並利用圖結構相關演算法提高效能。

Last updated