新聞中心
隨著信息化時(shí)代的到來(lái),數(shù)據(jù)庫(kù)已成為企業(yè)信息管理的重要基礎(chǔ)設(shè)施。對(duì)于一個(gè)大型企業(yè)來(lái)說(shuō),數(shù)據(jù)庫(kù)中包含海量的數(shù)據(jù),只有以合理化的方式對(duì)其進(jìn)行管理,才能有效提高企業(yè)運(yùn)作效率。數(shù)據(jù)庫(kù)的規(guī)范化是實(shí)現(xiàn)合理化管理的重要手段之一,它可以提高數(shù)據(jù)的一致性和可維護(hù)性,減少數(shù)據(jù)冗余和錯(cuò)誤。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到細(xì)河網(wǎng)站設(shè)計(jì)與細(xì)河網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、網(wǎng)絡(luò)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋細(xì)河地區(qū)。
概述
數(shù)據(jù)規(guī)范化是指通過(guò)一系列的規(guī)則和操作,將一個(gè)不規(guī)范的數(shù)據(jù)庫(kù)設(shè)計(jì)轉(zhuǎn)化為規(guī)范化的數(shù)據(jù)庫(kù)設(shè)計(jì),以達(dá)到簡(jiǎn)化數(shù)據(jù)結(jié)構(gòu)的目的。數(shù)據(jù)規(guī)范化的基本原則為:每個(gè)記錄只包含一個(gè)實(shí)體的信息;每個(gè)屬性只包含一個(gè)數(shù)據(jù)項(xiàng)的信息;記錄之間的重復(fù)信息以關(guān)聯(lián)方式處理。通過(guò)數(shù)據(jù)規(guī)范化的處理,可以將原本復(fù)雜的數(shù)據(jù)結(jié)構(gòu)變得簡(jiǎn)單,易于理解和維護(hù)。
與此同時(shí),規(guī)范化還可以避免冗余數(shù)據(jù)的出現(xiàn),從而減少存儲(chǔ)空間的占用。例如,一個(gè)訂單表中包含了許多客戶信息,如果不進(jìn)行規(guī)范化處理,每個(gè)訂單記錄都會(huì)包含相同的客戶信息,導(dǎo)致數(shù)據(jù)冗余,浪費(fèi)存儲(chǔ)空間。但是,如果將客戶信息依照規(guī)范化原則單獨(dú)設(shè)立一個(gè)客戶表,訂單表只記錄每個(gè)訂單對(duì)應(yīng)的客戶ID,則可以避免數(shù)據(jù)冗余、提高數(shù)據(jù)一致性。
規(guī)范化原則
數(shù)據(jù)規(guī)范化有三個(gè)基本原則:之一范式、第二范式和第三范式。此外還有BC范式和第四范式等進(jìn)階范式。
1. 之一范式(1NF)
之一范式要求數(shù)據(jù)庫(kù)每個(gè)數(shù)據(jù)項(xiàng)都是不可分的原子值,即在每個(gè)數(shù)據(jù)項(xiàng)中不能包含多個(gè)數(shù)據(jù)值。例如,如果一個(gè)數(shù)據(jù)項(xiàng)是“姓名+地址”,則不符合之一范式。需要將其拆分成“姓名”和“地址”兩個(gè)單獨(dú)的數(shù)據(jù)項(xiàng),才能符合之一范式要求。
2. 第二范式(2NF)
第二范式要求數(shù)據(jù)庫(kù)中的每個(gè)記錄必須都能被唯一地識(shí)別。具體來(lái)說(shuō),要求數(shù)據(jù)表中的每個(gè)非關(guān)鍵字段都與一個(gè)唯一的主鍵相關(guān)聯(lián)。如果一個(gè)非關(guān)鍵字段只與部分主鍵相關(guān)聯(lián),則需要將其與其他數(shù)據(jù)一起移到新的表中,使其成為一個(gè)新的表的主鍵。
3. 第三范式(3NF)
第三范式要求數(shù)據(jù)庫(kù)中的每個(gè)字段都與主鍵相關(guān),而不僅僅是與某些字段相關(guān)。換句話說(shuō),每個(gè)字段都必須直接依賴于主鍵,而不依賴于其他非關(guān)鍵字段。如果存在某個(gè)字段依賴于其他非關(guān)鍵字段,需要將其移到新的數(shù)據(jù)表中,使其符合第三范式的要求。
BC范式
BC范式是指在第三范式基礎(chǔ)上,進(jìn)一步消除非主屬性對(duì)主屬性的傳遞函數(shù)依賴,并且消除一個(gè)關(guān)系模式中的多值依賴。例如,一個(gè)學(xué)生表中既包含學(xué)生姓名,又包含學(xué)生所在的班級(jí)和年級(jí)信息。班級(jí)和年級(jí)都可以通過(guò)學(xué)生的姓名唯一確定,因此在BC范式中,應(yīng)該將其分開(kāi)成三個(gè)數(shù)據(jù)表:學(xué)生表、班級(jí)表和年級(jí)表。
第四范式
第四范式是指在BC范式基礎(chǔ)上,消除多對(duì)多關(guān)系中的冗余數(shù)據(jù)。例如,一個(gè)訂單表與用戶表存在多對(duì)多的關(guān)系,一個(gè)用戶可以下多個(gè)訂單,一個(gè)訂單也可以被多個(gè)用戶下單。在第三范式中,需要將用戶信息和訂單信息分開(kāi)存儲(chǔ),因此需要在第四范式中再將訂單和用戶的關(guān)系拆分成一個(gè)新的關(guān)系表,避免冗余數(shù)據(jù)的產(chǎn)生。
總而言之,通過(guò)數(shù)據(jù)規(guī)范化的處理,可以使數(shù)據(jù)結(jié)構(gòu)更加簡(jiǎn)單直觀、易于理解和維護(hù),并且可以避免大量的數(shù)據(jù)冗余和錯(cuò)誤。但需要注意的是,數(shù)據(jù)規(guī)范化雖然非常重要,但是并不能解決所有的數(shù)據(jù)管理問(wèn)題,需要根據(jù)實(shí)際情況進(jìn)行調(diào)整和補(bǔ)充。
結(jié)論
數(shù)據(jù)庫(kù)規(guī)范化是企業(yè)信息管理的重要手段。通過(guò)規(guī)范化可以提高數(shù)據(jù)一致性和可維護(hù)性,減少數(shù)據(jù)冗余和錯(cuò)誤,做到信息共享和高效利用。但是,規(guī)范化設(shè)計(jì)并不是一勞永逸的,需要視情況不斷調(diào)整,以滿足企業(yè)發(fā)展的需求。掌握數(shù)據(jù)規(guī)范化的原則,對(duì)于數(shù)據(jù)庫(kù)設(shè)計(jì)、開(kāi)發(fā)和維護(hù)都有很大的參考價(jià)值。
相關(guān)問(wèn)題拓展閱讀:
- 數(shù)據(jù)庫(kù)規(guī)范化三個(gè)范式應(yīng)用實(shí)例
數(shù)據(jù)庫(kù)規(guī)范化三個(gè)范式應(yīng)用實(shí)例
規(guī)范化為什么重要?目前很多的數(shù)據(jù)庫(kù)由于種種原因還沒(méi)有被規(guī)范化。本文中解釋了其中一些原因,并用不同形式的范式(normal form)規(guī)范化了一個(gè)保險(xiǎn)公司的理賠表。在這個(gè)過(guò)程中表的改變以及添加的一些附加表使數(shù)據(jù)庫(kù)效率更高、錯(cuò)誤更少、更容易維護(hù)。
數(shù)據(jù)庫(kù)的規(guī)范化是優(yōu)化表的結(jié)構(gòu)和把數(shù)據(jù)組織到表中的實(shí)踐,這樣做數(shù)據(jù)才能更明確。規(guī)范化使你能夠改變業(yè)務(wù)規(guī)則、需求和數(shù)據(jù)而不需要重新構(gòu)造整個(gè)系統(tǒng)。
通過(guò)改變存儲(chǔ)數(shù)據(jù)的方式–僅僅改變一丁點(diǎn)–并改變?cè)L問(wèn)這些信息的程序,你就可以消除很多錯(cuò)誤或垃圾數(shù)據(jù)出現(xiàn)的機(jī)會(huì)并減輕更新信息所必要的工作量。
公司現(xiàn)實(shí)存在的一個(gè)問(wèn)題可以用一句話概括”我們一般都這樣做”。我們一般像采用那種方式存儲(chǔ)信息;我們一般允許人們把任何信息寫(xiě)入 ;我們一般采用那種方式編程。這通常是一件壞事,特別是對(duì)于年輕的和正在學(xué)習(xí)的公司來(lái)說(shuō)。但是,當(dāng)有新的系統(tǒng)和更好的完成任務(wù)的途徑的時(shí)候,有時(shí)”采用那種方式任務(wù)完成得很好”這句話可能需要重新探討和修改。規(guī)范化數(shù)據(jù)就是公司常常采用的有益的方式之一。
盡管對(duì)于COBOL程序(例如任何COBOL程序員都熟悉的文件布局)使用數(shù)據(jù)來(lái)說(shuō),把它們(數(shù)據(jù))存儲(chǔ)在關(guān)系數(shù)據(jù)庫(kù)中與存儲(chǔ)在平面文件中很相似,但是存儲(chǔ)在平面文件中的方法并不是完成任務(wù)的必要的的途徑,特別是由于你不了解兩者之間的差別或害怕改變,而簡(jiǎn)單地把過(guò)去的觀念帶入到現(xiàn)在的方式。
注意:Dictionary.com是這樣定義規(guī)范化的:”使其標(biāo)準(zhǔn),特別使導(dǎo)致它符合某種標(biāo)準(zhǔn)或規(guī)范?!被颉蹦撤N標(biāo)準(zhǔn)的強(qiáng)制接受”。Webopedia認(rèn)為規(guī)范化是”在關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中,組織數(shù)據(jù)以最小化冗余的過(guò)程。規(guī)范化通常包括把一個(gè)數(shù)據(jù)庫(kù)分成兩個(gè)或多個(gè)表并定義表之間的關(guān)系。其目標(biāo)是隔離數(shù)據(jù),這樣添加、刪除和修改某個(gè)字段只需要在一個(gè)表中進(jìn)行,接著可以通過(guò)定義的關(guān)系傳遞到數(shù)據(jù)庫(kù)中剩余的表中”。我更喜歡這個(gè)定義。
術(shù)語(yǔ)
在你了解現(xiàn)實(shí)世界中的一個(gè)保險(xiǎn)公司的例子之前,你需要了解一些在討論中會(huì)用到的術(shù)語(yǔ)。處理數(shù)據(jù)庫(kù)的時(shí)候,特別是在處理規(guī)范化問(wèn)題的時(shí)候,下面一部分講到的一組新的關(guān)鍵字很有作用:
· 關(guān)系(Relation):從本質(zhì)上說(shuō),關(guān)系是一個(gè)包含行和列的二維表或數(shù)組。
· 關(guān)聯(lián)(Relationship):關(guān)聯(lián)是不同表之間的數(shù)據(jù)彼此聯(lián)系的方法。關(guān)聯(lián)同時(shí)存在于形成不同實(shí)體的數(shù)據(jù)項(xiàng)之間和表實(shí)體本身之間,構(gòu)成了數(shù)據(jù)庫(kù)規(guī)范化的基本核心問(wèn)題。數(shù)據(jù)關(guān)聯(lián)有三種基本的類型,對(duì)它們有所了解是很重要的:
一對(duì)一(1:1):一對(duì)一關(guān)聯(lián)意味著任何給定的每個(gè)(而不是大多數(shù))實(shí)例嚴(yán)密地與另一個(gè)實(shí)體的一個(gè)實(shí)例對(duì)應(yīng)。每個(gè)人只有一個(gè)正確的指紋就是的。每個(gè)號(hào)碼準(zhǔn)確地與一個(gè)付帳的獨(dú)立私人客戶對(duì)應(yīng)(不是公司)。美國(guó)的每個(gè)人都只有一個(gè)社會(huì)保障號(hào)碼。
一對(duì)多(1:M):一對(duì)多關(guān)聯(lián)意味著給定實(shí)體的一個(gè)實(shí)例可以可以與另一個(gè)實(shí)體的零個(gè)實(shí)例、一個(gè)實(shí)例或者多個(gè)實(shí)例關(guān)聯(lián)。每個(gè)人可能沒(méi)有小孩、有一個(gè)小孩或多個(gè)小孩。每個(gè)人可能沒(méi)有汽車(chē)、有一輛汽車(chē)或多輛汽車(chē)。
多對(duì)多(M:N):多對(duì)多關(guān)聯(lián)(給定實(shí)體的零個(gè)、一個(gè)或多個(gè)實(shí)例與另一個(gè)實(shí)體的零個(gè)、一個(gè)或多個(gè)實(shí)例關(guān)聯(lián))是一種直接模擬很復(fù)雜的關(guān)聯(lián),它經(jīng)常被分解為多個(gè)1:M關(guān)聯(lián)。由于多個(gè)家庭混合在一起,一個(gè)或多個(gè)小孩可能沒(méi)有父母親(孤兒)、一個(gè)父母(單親家庭),多于一個(gè)父母(兩個(gè)仍然在一起或者離婚的兩個(gè)父母、或者離婚了又復(fù)婚了的父母)。房屋或財(cái)產(chǎn)可以給一個(gè)人或多個(gè)人,而這些人(一個(gè)或多個(gè))在遺囑上可能又一個(gè)或多個(gè)房屋或財(cái)產(chǎn)。
· 屬性(Attribute):屬性被認(rèn)為是程序或數(shù)據(jù)庫(kù)中的某些組件的可以修改的特性或特征,它可以被設(shè)置為不同值或者關(guān)系或表中的列。
· Tuple:Tuple是關(guān)系數(shù)據(jù)庫(kù)或非關(guān)系數(shù)據(jù)庫(kù)中的排序了的一組值或值屬性:關(guān)系中的一行。
· 刪除異常:刪除異常指由于其它數(shù)據(jù)故意的刪除而導(dǎo)致的數(shù)據(jù)矛盾或未預(yù)料到的數(shù)據(jù)(信息)丟失。
· 插入異常:插入異常指由于數(shù)據(jù)的缺少或缺乏導(dǎo)致沒(méi)有能力把信息添加到數(shù)據(jù)庫(kù)。
· 更新異常:更新異常指由于數(shù)據(jù)冗余或者冗余數(shù)據(jù)的不完整更新造成的數(shù)據(jù)矛盾。
· 關(guān)系的分解:關(guān)系的分解指把一個(gè)關(guān)系分解成多個(gè)關(guān)系,從而使關(guān)系符合更高的范式。
· 數(shù)據(jù)冗余:數(shù)據(jù)冗余指數(shù)據(jù)庫(kù)中沒(méi)有必要的數(shù)據(jù)重復(fù)。
· 數(shù)據(jù)完整性:數(shù)據(jù)完整性指數(shù)據(jù)庫(kù)中數(shù)據(jù)的一致性。保證數(shù)據(jù)完整性很重要,只有這樣用戶才知道他們依賴的數(shù)據(jù)是正確的、他們查詢的結(jié)果以及程序才是精確的和符合期望的。
· 原子值:原子值是一個(gè)值,它既不是能被進(jìn)一步拆分的一組值,也不是一個(gè)重復(fù)的組。每個(gè)列都有一個(gè)完整的值,但是只有一個(gè)值–這個(gè)值不能被分解為多個(gè)部分,它要么被數(shù)據(jù)庫(kù)使用,要么被使用數(shù)據(jù)庫(kù)的用戶訪問(wèn)的信息。
· 參考完整性規(guī)則:參考完整性規(guī)則指存儲(chǔ)在非空的外部健中的值必須是某種關(guān)系中的關(guān)鍵數(shù)據(jù)項(xiàng)。
· 外部健:外部健是一個(gè)關(guān)系中的一組屬性(一個(gè)或多個(gè)列),它同時(shí)也是某種(相同的或其它的)關(guān)系中的主鍵。它是關(guān)系之間的邏輯鏈接。參考自己關(guān)系的外部健稱為遞歸外部健。
· 功能依賴:功能依賴意味著一行中某個(gè)屬性的值由該行中另一個(gè)屬性的值決定。這通常出現(xiàn)在主鍵(使某行的信息片斷)與該行的其它信息之間。城市和州的組合依賴于Zip(郵政)代碼,即使給定的一個(gè)州中有很多Zip代碼與某個(gè)城市關(guān)聯(lián)。美國(guó)的每個(gè)合法的人員身份依賴于他的社會(huì)保障號(hào)碼。
· 決定性:功能依賴左邊的屬性決定行中其它屬性的值(Zip代碼決定了城市和州;社會(huì)保障號(hào)碼決定了人的身份;執(zhí)照號(hào)碼和州決定了汽車(chē)的擁有者)。
· 實(shí)體完整性規(guī)則:實(shí)體完整性規(guī)則指某一行的關(guān)鍵屬性可能為空(如果你在某個(gè)城市就有一個(gè)Zip代碼;如果你有一輛汽車(chē)就有一個(gè)執(zhí)照號(hào)碼)。
· 約束:約束是一種規(guī)則,它限定了數(shù)據(jù)庫(kù)中的值。號(hào)碼必須是數(shù)字的;美元數(shù)量必須是數(shù)字的;state必須是合法的州或?。籧ountry必須是合法的國(guó)家;日期不能是2月31號(hào)。
現(xiàn)在你已經(jīng)知道了很多相關(guān)的術(shù)語(yǔ)了,我們可以看看相關(guān)術(shù)語(yǔ)中規(guī)范會(huì)的意義了。下面的例子并不是典型的雇員―經(jīng)理―部門(mén)示例,也不是學(xué)生―教授―課程提供示例。我將演示一個(gè)假設(shè)的保險(xiǎn)公司的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中的表比本示例中用到的要復(fù)雜得多,但是與人們遇到的比較相近。
圖1顯示了理賠(claim)表的非規(guī)范化定義。盡管在某個(gè)保險(xiǎn)公司的數(shù)據(jù)庫(kù)中的表比它多得多,但是這些表為我們提供了一些背景,通過(guò)它我們可以看到規(guī)范化和其分支。請(qǐng)記住每個(gè)章節(jié)中的示例都只有部分列,這樣就簡(jiǎn)化了示例并使你輕易地看到發(fā)生變化的東西。
CLAIM_NUM、 OCCURANCE_NUM 、 CLAIM_STATUS、 ACCDNT_YR、 ACCDNT_DT、 REPORTED_DT、 ENTERED_DT、 CLAIM_DT1、 CLAIM_DT2、 CLAIM_DT3 、 CLAIM_DT4、 CLAIM_DT4 、 CLAIM_DT5 、 CLAIM_DT6 、 CLAIM_DT7、 CLAIM_DT8 、 CLAIM_DT9 、 CLAIM_DT10、 CLOSED_DT 、 DEATH_DT、 ASSIGNED_DT、 ADTER_CD 、ADJUSTER_NAME 、 AGENT_CD 、 AWARD_CD 、 CAUSE_CD 、 CAUSE_DESC、 LOCATION 、 SITE 、 COVERAGE_CD 、 COVERAGE_DESC、 DED_RECOV、 DEDUCTIBLE_REMAIN 、 PAID_1 、 RESERVED_1 、 PAID_2 、 RESERVED_2 、 PAID_3 、 RESERVED_3 、 PAID_4 、 RESERVED_4 、 PAID_5 、 RESERVED_5 、 PAID_6 、 RESERVED_6 、 PAID_7 、 RESERVED_7 、 PAID_8 、 RESERVED_8、 PAID_9 、 RESERVED_9 、 PAID_10 、 RESERVED_10 、 LEGAL_FLG、 KEY1、 KEY2、 KEY3、 KEY4、 KEY5、 KEY6、 KEY7、 KEY8、 KEY9、 KEY10、 SEVERITY_CD 、 POLICY_NUM 、 PAYMENT_NUM 、 SSN、 STATE、 ACTVY_DT、 ENTRY_DT、 ADMIN_CD、ADMIN_DESC、 REOPEN_DT、 INSURED_NAME、 INSURED_ADDRESS、 INSURED_PHONE、 INSURED_CITY、 INSURED_STATE、 INSURED_ZIP、 CLAIMANT_NAME、 CLAIMANT_ADDRESS、 CLAIMANT_CITY、 CLAIMANT_STATE、 CLAIMANT_ZIP、 CLAIMANT_PHONE、 SPECIAL_DT_1 、 SPECIAL_DT_2、 SPECIAL_DT_3、 SPECIAL_DT_4 、 SPECIAL_DT_5、 SPECIAL_DT_6 、 SPECIAL_DT_7 、SPECIAL_DT_8 、SPECIAL_DT_9 、 SPECIAL_DT_10 、 GROSS_PD、 POLICY_ID
關(guān)于關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站營(yíng)銷(xiāo)推廣找創(chuàng)新互聯(lián),全國(guó)分站站群網(wǎng)站搭建更好做SEO營(yíng)銷(xiāo)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)四川成都IDC基礎(chǔ)服務(wù)商,價(jià)格厚道。提供成都服務(wù)器托管租用、綿陽(yáng)服務(wù)器租用托管、重慶服務(wù)器托管租用、貴陽(yáng)服務(wù)器機(jī)房服務(wù)器托管租用。
文章題目:數(shù)據(jù)庫(kù)規(guī)范化:優(yōu)化關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì) (關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化)
網(wǎng)址分享:http://www.dlmjj.cn/article/dphhopd.html


咨詢
建站咨詢
