資料建模簡介(
一些概念,乙個mongod服務可以有建立多個資料庫,每個資料庫可以有多張表,這裡的表名叫collection,每個collection可以存放多個文件(document),這個文件就是一行記錄,每個文件都以bson(binary json)的形式存放於硬碟中,因此可以儲存比較複雜的資料型別。
(1)每個文件可以匹配表示實體的資料字段,即使資料有很大的差異。
(2)在實際中,同一集合下的文件通常採用相似的結構。
1、文件結構(document structure)
設計mongodb資料模型的關鍵是考慮好文件結構和應用程式表示的資料之間的關係。有兩種方式可以表達這種關係:引用(references)和嵌入文件(embedded documents)
1、1 引用(references)
引用(references)儲存資料之間的關係,包括從乙個文件鏈結或引用到另外乙個文件。這樣應用程式就解決了訪問關聯資料的問題,一般來說,這些都是規範資料的資料模型。
1、2嵌入式文件(embedded data)
嵌入式文件通過儲存相關的資料在乙個文件結構中來捕獲資料之間的關係。mongodb文件可以在當前文件的字段或陣列中嵌入文件作為子文件。這些非規範化資料模型允許應用程式檢索和操作相關的資料在乙個單一的資料庫操作。
2、寫操作的原子性(atomicity of write operations)
2、1 寫操作的原子性限制在文件級別,沒有乙個寫操作可以自動影響到多個文件或多個集合
3、文件增加(document growth)
像新增元素到陣列或者增加新字段這樣的更新,會增加文件的大小。如果文件的大小超過了為該文件分配空間,mongodb會重新分配磁碟空間。考慮到空間的增加,應該規範化或使用規範的資料。
文件驗證(document validation)
資料建模概念(data modeling concepts)
1、資料模型設計(data model design)
1、1 嵌入式資料模型(embedded data models)
以下情況使用這種模型:
(1) 實體間有包含關係
(2) 實體間一對多(one-many)
優點:讀操作效能更高。
缺點:隨著文件的增長,影響寫的效能,並導致資料碎片;資料重複。
1、2 規範化的資料模型(normalized data models)
引用描述實體間的關係。
一下情況使用這種模型:
(1)嵌入式模型造成的資料重複問題嚴重,不足以用其的讀取優勢彌補。
(2)表示更複雜的多對多的關係。(many-to-many)。
(3)模擬大型分層資料集。
資料模型的例項和模式(data model examples and patterns)
1、文件之間的模型關係(model relationships between documents)
1、1 一對一的關係和嵌入式(model one-to-one relationships with embedded documents)
1、2 一對多的關係和嵌入式(model one-to-many relationships with embedded documents)
1、3 一對多和應用(model one-to-many relationships with document references)
出版者和書籍的關係
簡要介紹MongoDB的資料模型
mongodb資料是特別靈活的,與sql資料庫相比,它不需要在插入資料前先定義表的結構。mongodb的集合不強調固定的文件結構。這種靈活性使它能夠輕鬆對映文件結構。每乙個文件都可以對映它要表達的物件,即使這些資料有實質性的不同。其實在實際中,同一集合下的文件通常採用相似的結構。mongodb資料建...
簡要介紹MongoDB的資料模型
mongodb資料是特別靈活的,與sql資料庫相比,它不需要在插入資料前先定義表的結構。mongodb的集合不強調固定的文件結構。這種靈活性使它能夠輕鬆對映文件結構。每乙個文件都可以對映它要表達的物件,即使這些資料有實質性的不同。其實在實際中,同一集合下的文件通常採用相似的結構。mongodb資料建...
概念資料模型 邏輯資料模型 物理資料模型
概念資料模型設計與邏輯資料模型設計 物理資料模型設計是資料庫及資料倉儲模型設計的三個主要步驟。在資料倉儲領域有乙個概念叫conceptual data model,中文一般翻譯為 概念資料模型 概念資料模型是終端使用者對資料儲存的看法,反映了終端使用者綜合性的資訊需求,它以資料類的方式描述企業級的資...