1. 程式人生 > >5.2 NoSQL資料庫

5.2 NoSQL資料庫

所有不符合上節所述的關係模型的資料庫統稱為 NoSQL 資料庫。NoSQL 資料庫一般使用集合代替表,使用文件代替記錄。NoSQL 資料庫採用的設計方式使聯結變得困難,所以多數根本不支援這種操作。對於結構如圖 5-1 所示的 NoSQL 資料庫,若要列出各使用者及其角色,需要在應用中執行聯結操作,即先讀取每個使用者的 role_id,再在 roles 表中搜索對應的記錄。

NoSQL 資料庫更適合設計成如圖 5-2 所示的結構。這是執行反規範化操作得到的結果,它減少了表的數量,卻增加了資料重複量。

圖 5-2:NoSQL 資料庫示例

這種結構的資料庫要把角色名儲存在每個使用者中。如此一來,重新命名角色的操作就變得很耗時,可能需要更新大量文件。

使用 NoSQL 資料庫當然也有好處。資料重複可以提升查詢速度。列出使用者及其角色的操作將很簡單,因為無須聯結。

《基於Python的Web應用開發實戰(第二版)》