mongodb資料是特別靈活的,與sql資料庫相比,它不需要在插入資料前先定義表的結構。mongodb的集合不強調固定的文件結構。這種靈活性使它能夠輕鬆對映文件結構。每乙個文件都可以對映它要表達的物件,即使這些資料有實質性的不同。其實在實際中,同一集合下的文件通常採用相似的結構。
mongodb資料建模的主要問題時在應用程式的需求,資料庫引擎的效能特性和資料檢索模型之間做乙個平衡。設計資料模型是,總是要考慮應用程式使用到的資料(查詢、更新以及需要處理的資料等等)以及資料結構本身。
文件結構
設計mongodb資料模型的關鍵是考慮好文件結構和應用程式表示的資料之間的關係。有兩種方式可以表達這種關係:引用(references)和嵌入文件(embedded documents)。
引用(references)
引用(references)儲存資料之間的關係,包括從乙個文件鏈結或引用到另外乙個文件。這樣應用程式就解決了訪問關聯資料的問題,一般來說,這些都是規範資料的資料模型。
嵌入式文件通過儲存相關的資料在乙個文件結構中來捕獲資料之間的關係。mongodb文件可以在當前文件的字段或陣列中嵌入文件作為子文件。
這些非規範化資料模型允許應用程式檢索和操作相關的資料在乙個單一的資料庫操作。
寫操作的原子性
在mongodb中,寫操作的原子性限制在文件級別,沒有乙個寫操作可以自動影響到多個文件或多個集合。規範化的嵌入式資料模型整合了所有的關聯資料在乙個文件中來展現實體。這有助於原子寫操作在乙個寫操作中插入和更新實體的資料。規範化資料能夠分隔多個集合的資料並且需要在非原子性操作中需要多個寫操作。
然後,促進原子寫的模式可能限制應用程式使用資料,也可能限制修改應用程式的方法。原子性考慮設計模式的挑戰,平衡靈活性和原子性。
文件增加
像新增元素到陣列或者增加新字段這樣的更新,會增加文件的大小。如果文件的大小超過了為該文件分配空間,mongodb會重新分配磁碟空間。考慮到空間的增加,應該規範化或使用規範的資料。
資料使用和效能
簡要介紹MongoDB的資料模型
mongodb資料是特別靈活的,與sql資料庫相比,它不需要在插入資料前先定義表的結構。mongodb的集合不強調固定的文件結構。這種靈活性使它能夠輕鬆對映文件結構。每乙個文件都可以對映它要表達的物件,即使這些資料有實質性的不同。其實在實際中,同一集合下的文件通常採用相似的結構。mongodb資料建...
資料探勘簡要介紹
一 定義 資料探勘是指從大量的資料中搜尋隱藏於其中的有著特殊關係性的資訊的過程。二 挖掘物件 三 挖掘過程 主要分為 資料收集 資料清洗轉換 模型建立與評估 應用整合 模型管理。四 資料探勘任務 1 關聯分析 分析兩個或兩個以上變數取值之間存在的某種規律 2 聚類分析 將資料按照相似性劃分為若干類 ...
crontab 的簡要介紹
1 概述 crontab 用於週期性被執行的指令,該指令從標準裝置輸入指令,並將指令存放在crontab檔案中,供之後讀取和執行。etc crontab 存放被定期執行的指令 etc cron.deny 不能使用crontab的使用者 etc cron.allow 可以使用crontab的使用者 以...