數(shù)據(jù)冗余發(fā)生在數(shù)據(jù)庫(kù)系統(tǒng)中,指的是一個(gè)字段在多個(gè)表里重復(fù)出現(xiàn)。舉個(gè)例子,如果每條客戶購(gòu)買商品的信息里都連帶記錄了客戶自身的信息,這樣的數(shù)據(jù)冗余可能造成不一致,因?yàn)榭蛻糇陨淼男畔⒖赡懿灰粯印?數(shù)據(jù)冗余會(huì)導(dǎo)致數(shù)據(jù)異常和損壞,一般來說設(shè)計(jì)上應(yīng)該被避免。數(shù)據(jù)庫(kù)規(guī)范化防止了冗余而且不浪費(fèi)存儲(chǔ)容量。適當(dāng)?shù)氖褂猛怄I可以使得數(shù)據(jù)冗余和異常降到最低。但是,如果考慮效率和便利,有時(shí)候也會(huì)設(shè)計(jì)冗余數(shù)據(jù),而不考慮數(shù)據(jù)被破壞的風(fēng)險(xiǎn)。
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù),簡(jiǎn)而言之可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)運(yùn)行新增、截取、更新、刪除等操作。
所謂“數(shù)據(jù)庫(kù)”系以一定方式儲(chǔ)存在一起、能予多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。
數(shù)據(jù)庫(kù)規(guī)范化
數(shù)據(jù)庫(kù)規(guī)范化,又稱數(shù)據(jù)庫(kù)或資料庫(kù)的正規(guī)化、標(biāo)準(zhǔn)化,是數(shù)據(jù)庫(kù)設(shè)計(jì)中的一系列原理和技術(shù),以減少數(shù)據(jù)庫(kù)中數(shù)據(jù)冗余,增進(jìn)數(shù)據(jù)的一致性。關(guān)系模型的發(fā)明者E. F. Codd最早提出這一概念,并于1970年代初定義了第一范式、第二范式和第三范式的概念,還與Raymond F. Boyce于1974年共同定義了第三范式的改進(jìn)范式——BC范式。
除外還包括針對(duì)多值依賴的第四范式,連接依賴的第五范式,DK范式和第六范式。
現(xiàn)在數(shù)據(jù)庫(kù)設(shè)計(jì)最多滿足3NF,普遍認(rèn)為范式過高,雖然具有對(duì)數(shù)據(jù)關(guān)系更好的約束性,但也導(dǎo)致數(shù)據(jù)關(guān)系表增加而令數(shù)據(jù)庫(kù)IO更易繁忙,原來交由數(shù)據(jù)庫(kù)處理的關(guān)系約束現(xiàn)更多在數(shù)據(jù)庫(kù)使用程序中完成。
目的分類
數(shù)據(jù)的應(yīng)用中為了某種目的采取數(shù)據(jù)冗余方式。
1、重復(fù)存儲(chǔ)或傳輸數(shù)據(jù)以防止數(shù)據(jù)的丟失。
2、對(duì)數(shù)據(jù)進(jìn)行冗余性的編碼來防止數(shù)據(jù)的丟失、錯(cuò)誤,并提供對(duì)錯(cuò)誤數(shù)據(jù)進(jìn)行反變換得到原始數(shù)據(jù)的功能。
3、為簡(jiǎn)化流程所造成額數(shù)據(jù)冗余。例如向多個(gè)目的發(fā)送同樣的信息、在多個(gè)地點(diǎn)存放同樣的信息,而不對(duì)數(shù)據(jù)進(jìn)行分析而減少工作量。
4、為加快處理過程而將同一數(shù)據(jù)在不同地點(diǎn)存放。例如并行處理同一信息的不同內(nèi)容,或用不同方法處理同一信息等。
5、為方便處理而使同一信息在不同地點(diǎn)有不同的表現(xiàn)形式。例如一本書的不同語(yǔ)言的版本。
6、大量數(shù)據(jù)的索引,一般在數(shù)據(jù)庫(kù)中經(jīng)常使用。其目的類似第4點(diǎn)。
7、方法類的信息冗余:比如每個(gè)司機(jī)都要記住同一城市的基本交通信息;大量個(gè)人電腦都安裝類似的操作系統(tǒng)或軟件。
8、為了完備性而配備的冗余數(shù)據(jù)。例如字典里的字很多,但我們只查詢其中很少的一些字。軟件功能很多,但我們只使用其中一部分。
9、規(guī)則性的冗余。根據(jù)法律、制度、規(guī)則等約束進(jìn)行的。例如合同中大量的模式化的內(nèi)容。
10、為達(dá)到其他目的所進(jìn)行的冗余。例如重復(fù)信息以達(dá)到被重視等等。
參考資料 >