本篇內(nèi)容主要講解“DSM的優(yōu)缺點(diǎn)是什么”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“DSM的優(yōu)缺點(diǎn)是什么”吧!
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到吐魯番網(wǎng)站設(shè)計(jì)與吐魯番網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國(guó)際域名空間、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋吐魯番地區(qū)。
NSM vs DSM
NSM:N元存儲(chǔ)模型,也就是行式存儲(chǔ)模型。數(shù)據(jù)的物理結(jié)構(gòu)和他們的邏輯結(jié)構(gòu)是一樣的。磁盤是由一個(gè)一個(gè)block組成的,因此連續(xù)的數(shù)據(jù)也分在了連續(xù)的block里。邏輯和物理的對(duì)應(yīng)關(guān)系如下圖:
DSM:分解的存儲(chǔ)模型,其實(shí)是關(guān)系表的一種設(shè)計(jì)方式,即每一行記錄都分解成二元關(guān)系表,每個(gè)二元表對(duì)應(yīng)一個(gè)屬性加一個(gè)ID主鍵,這樣兩張表還可以 Join 起來(lái)。邏輯和物理的對(duì)應(yīng)關(guān)系如下圖:
DSM的結(jié)構(gòu)優(yōu)勢(shì)
避免空值:分解之后,就不用屬性之間對(duì)齊了,對(duì)于稀疏數(shù)據(jù)來(lái)說(shuō),能有效避免空值的存儲(chǔ),節(jié)省空間。
減少數(shù)據(jù)冗余:能讓邏輯清晰,即范式化。在NSM中,如果不對(duì)照兩個(gè)表的SS#字段,則不能區(qū)分 Nicole 是重名的還是一個(gè)人,存在一張表里可以清楚的看到 Nicole 就是一個(gè)人。
Differential File
首先介紹一個(gè)概念,叫 Differential File(差異文件,參考《Differential Files: Their Application to the Maintenance of Large Databases》)。類似圖書后邊的勘誤表,和 LSM 的概念差不多,主要為了減輕數(shù)據(jù)更新負(fù)載。當(dāng)更新一個(gè)記錄(一行數(shù)據(jù))時(shí),不直接修改原始記錄,而是將整個(gè)新的記錄寫在一個(gè) Differential File中,這個(gè)文件的格式和原表一樣,每修改一個(gè)記錄這里就多一個(gè)記錄,當(dāng)這個(gè)文件大小超過(guò)一定閾值,就合并兩個(gè)文件。
簡(jiǎn)單介紹一下 Differential File的優(yōu)勢(shì):
(1) 在沒(méi)有Differential File 時(shí),要想防止磁盤損壞導(dǎo)致數(shù)據(jù)丟失,需要定期全量備份數(shù)據(jù)庫(kù),而有了 Differential File,只需要一次全量,后邊只增量備份 Differential File 就可以了。
(2)每次定期備份的時(shí)候,需要數(shù)據(jù)庫(kù)狀態(tài)一致,即備份時(shí)拒絕修改。通過(guò)增量備份很小的 Differential File,則可以避免這個(gè)限制。解法是在備份時(shí)維護(hù)一個(gè) differential-differential file,即在當(dāng)前備份狀態(tài)(原文件-差異文件)上的差異文件。但是這樣搞有個(gè)前提:Differential file 比較小,大了就傻逼了。
(3)方便測(cè)試,一份不可修改的數(shù)據(jù),兩份差異文件,可以同時(shí)運(yùn)行兩個(gè)系統(tǒng),每個(gè)系統(tǒng)維護(hù)一份數(shù)據(jù)和自己的差異文件。一個(gè)生產(chǎn)系統(tǒng),一個(gè)測(cè)試系統(tǒng),可以隨時(shí)debug。
(4)由于原始文件不可修改,支持簡(jiǎn)單的并發(fā)訪問(wèn)。
其實(shí) Differential File 到底是存一整行數(shù)據(jù)還是僅僅存儲(chǔ)被修改的屬性,僅僅是個(gè)實(shí)現(xiàn)問(wèn)題,這里采用了完整數(shù)據(jù)。
DSM的更新查詢優(yōu)勢(shì)
差異文件主要是記錄數(shù)據(jù)庫(kù)的更新的,在存儲(chǔ)完整記錄的配置下,NSM和DSM有啥區(qū)別呢?顯然DSM需要記錄的信息少??!如下圖:
由于DSM模型中每個(gè)表都只有兩列,因此在其上構(gòu)建索引和查詢引擎也很簡(jiǎn)單。
DSM的缺點(diǎn)
可以看到,NSM 中 ID 只用存一次,但是 DSM 中 ID 需要存很多次。會(huì)占用更多磁盤空間。
在更新時(shí),每修改或增加一條 NSM 中的記錄,僅需要更新一個(gè)完整記錄,但是 DSM 中需要為每個(gè)二元屬性表修改一次記錄。如果在表上構(gòu)建索引,索引的操作也更多。
這些缺點(diǎn)基本是和存儲(chǔ)特點(diǎn)綁定的。
到此,相信大家對(duì)“DSM的優(yōu)缺點(diǎn)是什么”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!