您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“DSM的優(yōu)缺點是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“DSM的優(yōu)缺點是什么”吧!
NSM vs DSM
NSM:N元存儲模型,也就是行式存儲模型。數(shù)據(jù)的物理結(jié)構(gòu)和他們的邏輯結(jié)構(gòu)是一樣的。磁盤是由一個一個block組成的,因此連續(xù)的數(shù)據(jù)也分在了連續(xù)的block里。邏輯和物理的對應(yīng)關(guān)系如下圖:
DSM:分解的存儲模型,其實是關(guān)系表的一種設(shè)計方式,即每一行記錄都分解成二元關(guān)系表,每個二元表對應(yīng)一個屬性加一個ID主鍵,這樣兩張表還可以 Join 起來。邏輯和物理的對應(yīng)關(guān)系如下圖:
DSM的結(jié)構(gòu)優(yōu)勢
避免空值:分解之后,就不用屬性之間對齊了,對于稀疏數(shù)據(jù)來說,能有效避免空值的存儲,節(jié)省空間。
減少數(shù)據(jù)冗余:能讓邏輯清晰,即范式化。在NSM中,如果不對照兩個表的SS#字段,則不能區(qū)分 Nicole 是重名的還是一個人,存在一張表里可以清楚的看到 Nicole 就是一個人。
Differential File
首先介紹一個概念,叫 Differential File(差異文件,參考《Differential Files: Their Application to the Maintenance of Large Databases》)。類似圖書后邊的勘誤表,和 LSM 的概念差不多,主要為了減輕數(shù)據(jù)更新負載。當(dāng)更新一個記錄(一行數(shù)據(jù))時,不直接修改原始記錄,而是將整個新的記錄寫在一個 Differential File中,這個文件的格式和原表一樣,每修改一個記錄這里就多一個記錄,當(dāng)這個文件大小超過一定閾值,就合并兩個文件。
簡單介紹一下 Differential File的優(yōu)勢:
(1) 在沒有Differential File 時,要想防止磁盤損壞導(dǎo)致數(shù)據(jù)丟失,需要定期全量備份數(shù)據(jù)庫,而有了 Differential File,只需要一次全量,后邊只增量備份 Differential File 就可以了。
(2)每次定期備份的時候,需要數(shù)據(jù)庫狀態(tài)一致,即備份時拒絕修改。通過增量備份很小的 Differential File,則可以避免這個限制。解法是在備份時維護一個 differential-differential file,即在當(dāng)前備份狀態(tài)(原文件-差異文件)上的差異文件。但是這樣搞有個前提:Differential file 比較小,大了就傻逼了。
(3)方便測試,一份不可修改的數(shù)據(jù),兩份差異文件,可以同時運行兩個系統(tǒng),每個系統(tǒng)維護一份數(shù)據(jù)和自己的差異文件。一個生產(chǎn)系統(tǒng),一個測試系統(tǒng),可以隨時debug。
(4)由于原始文件不可修改,支持簡單的并發(fā)訪問。
其實 Differential File 到底是存一整行數(shù)據(jù)還是僅僅存儲被修改的屬性,僅僅是個實現(xiàn)問題,這里采用了完整數(shù)據(jù)。
DSM的更新查詢優(yōu)勢
差異文件主要是記錄數(shù)據(jù)庫的更新的,在存儲完整記錄的配置下,NSM和DSM有啥區(qū)別呢?顯然DSM需要記錄的信息少?。∪缦聢D:
由于DSM模型中每個表都只有兩列,因此在其上構(gòu)建索引和查詢引擎也很簡單。
DSM的缺點
可以看到,NSM 中 ID 只用存一次,但是 DSM 中 ID 需要存很多次。會占用更多磁盤空間。
在更新時,每修改或增加一條 NSM 中的記錄,僅需要更新一個完整記錄,但是 DSM 中需要為每個二元屬性表修改一次記錄。如果在表上構(gòu)建索引,索引的操作也更多。
這些缺點基本是和存儲特點綁定的。
到此,相信大家對“DSM的優(yōu)缺點是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。