在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 應(yīng)用軟件教程 > 詳細(xì)頁面

數(shù)據(jù)庫設(shè)計(jì)中的反規(guī)范技術(shù)探討

數(shù)據(jù)庫設(shè)計(jì)中的反規(guī)范技術(shù)探討

更新時(shí)間:2025-10-17 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲(chǔ)存在一起、能與多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)...
數(shù)據(jù)庫,簡而言之可視為電子化的文件柜——存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)進(jìn)行新增、截取、更新、刪除等操作。所謂“數(shù)據(jù)庫”是以一定方式儲(chǔ)存在一起、能與多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。
原標(biāo)題:淺談數(shù)據(jù)庫設(shè)計(jì)中的反規(guī)范
 
1.   摘要
 
   本文從提高數(shù)據(jù)庫性能的角度,介紹了數(shù)據(jù)庫設(shè)計(jì)中幾種常用的反規(guī)范方法,并對(duì)這些方法的優(yōu)缺點(diǎn)以及使用時(shí)的注意事項(xiàng)做了較為深入的論述。 
關(guān)鍵詞: 數(shù)據(jù)庫設(shè)計(jì)  反規(guī)范  提高性能
 
 
2.   數(shù)據(jù)庫設(shè)計(jì)簡述
    數(shù)據(jù)庫設(shè)計(jì)是把現(xiàn)實(shí)世界的商業(yè)模型與需求轉(zhuǎn)換成數(shù)據(jù)庫的模型的過程,它是建立數(shù)據(jù)庫應(yīng)用系統(tǒng)的核心問題。設(shè)計(jì)的關(guān)鍵是如何使設(shè)計(jì)的數(shù)據(jù)庫能合理地存儲(chǔ)用戶的數(shù)據(jù),方便用戶進(jìn)行數(shù)據(jù)處理。 
   數(shù)據(jù)庫設(shè)計(jì)完全是人的問題,而不是數(shù)據(jù)庫管理系統(tǒng)的問題。系統(tǒng)不管設(shè)計(jì)是好是壞,照樣運(yùn)行。數(shù)據(jù)庫設(shè)計(jì)應(yīng)當(dāng)由數(shù)據(jù)庫管理員和系統(tǒng)分析員一起和用戶一道工作,了解各個(gè)用戶的要求,共同為整個(gè)數(shù)據(jù)庫做出恰當(dāng)?shù)摹⑼暾脑O(shè)計(jì)。  
    數(shù)據(jù)庫及其應(yīng)用的性能和調(diào)優(yōu)都是建立在良好的數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ)上,數(shù)據(jù)庫的數(shù)據(jù)是一切操作的基礎(chǔ),如果數(shù)據(jù)庫設(shè)計(jì)不好,則其它一切調(diào)優(yōu)方法提高數(shù)據(jù)庫性能的效果都是有限的。  
數(shù)據(jù)的規(guī)范化 

2.1.   范式概述
     規(guī)范化理論是研究如何將一個(gè)不好的關(guān)系模式轉(zhuǎn)化為好的關(guān)系模式的理論,規(guī)范化理論是圍繞范式而建立的。規(guī)范化理論認(rèn)為,一個(gè)關(guān)系數(shù)據(jù)庫中所有的關(guān)系,都應(yīng)滿足一定的規(guī)范(約束條件)。規(guī)范化理論把關(guān)系應(yīng)滿足的規(guī)范要求分為幾級(jí),滿足最低要求的一級(jí)叫做第一范式(1NF),在第一范式的基礎(chǔ)上提出了第二范式(2NF),在第二范式的基礎(chǔ)上又提出了第三范式(3NF),以后又提出了BCNF范式,4NF,5NF。范式的等級(jí)越高,應(yīng)滿足的約束集條件也越嚴(yán)格。規(guī)范的每一級(jí)別都依賴于它的前一級(jí)別,例如若一個(gè)關(guān)系模式滿足2NF,則一定滿足1NF。下面我們只介紹1NF,2NF,3NF范式。  

2.2.   1NF
    1NF是關(guān)系模型的最低要求,它的規(guī)則是:   
每一列必須是原子的,不能分成多個(gè)子列。
每一行和列的位置只能有一個(gè)值。
不能具有多值列。
例:如果要求一個(gè)學(xué)生一行,一個(gè)學(xué)生可選多門課,則下面的“學(xué)生”表就不滿足1NF: 
student(s-no,s-name,class-no)
其中:s-no為學(xué)號(hào),s-name為學(xué)生姓名,class-no為課程號(hào)。因?yàn)橐粋(gè)學(xué)生可選多門課,所以列class-no有多個(gè)值,所以空不符合1NF。 
  規(guī)范化就是把它分成如下兩個(gè)表:“學(xué)生”表和“選課”表,則這兩個(gè)表就都滿足1NF了。
student(s-no,s-name)
stu-class(s-no,class-no)   

2.3.   2NF 
  對(duì)于滿足2NF的表,除滿足1NF外,非主碼的列必須依賴于所有的主碼,而不是組合主碼的一部分。如果滿足1NF的表的主碼只有一列,則它自動(dòng)滿足2NF。  例:下面的“選課”表,不符合2NF。 
stu-class(s-no,class-no,class-name)
其中:class-name為課程名稱。因?yàn)樵~表的主碼是:(s-no,class-no),非主碼列class-name依賴于組合主碼的一部分class-no,所以它不符合2NF。    
對(duì)該表規(guī)范化也是把它分解成兩個(gè)表:“選課”表和“課程”表,則它們就都滿足2NF了。 
stu-class(s-no,class-no) 
class(class-no,class-name)    

2.4.   3NF
   3NF的規(guī)則是除滿足2NF外,任一非主碼列不能依賴于其它非主碼列。   例:下面的“課程”表,不符合3NF。
class(class-no,class-name,teacher-no,teacher-name)
其中:teacher-no為任課教師號(hào),teacher-name為任課教師姓名。因?yàn)榉侵鞔a列teacher-name依賴于另一非主碼列teacher-no,所以它不符合3NF。  其解決辦法也是把它分解成兩個(gè)表:“課程”表和“教師”表,則它們就都滿足3NF了。   
class(class-no,class-name,teacher-no)
teacher(teacher-no,teacher-name)  

2.5.   小結(jié) 
  當(dāng)一個(gè)表是規(guī)范的,則其非主碼列依賴于主碼列。從關(guān)系模型的角度來看,表滿足3NF最符合標(biāo)準(zhǔn),這樣的設(shè)計(jì)容易維護(hù)。一個(gè)完全規(guī)范化的設(shè)計(jì)并不總能生成最優(yōu)的性能,因此通常是先按照3NF設(shè)計(jì),如果有性能問題,再通過反規(guī)范來解決。  
    數(shù)據(jù)庫中的數(shù)據(jù)規(guī)范化的優(yōu)點(diǎn)是減少了數(shù)據(jù)冗余,節(jié)約了存儲(chǔ)空間,相應(yīng)邏輯和物理的I/O次數(shù)減少,同時(shí)加快了增、刪、改的速度,但是對(duì)完全規(guī)范的數(shù)據(jù)庫查詢,通常需要更多的連接操作,從而影響查詢的速度。因此,有時(shí)為了提高某些查詢或應(yīng)用的性能而破壞規(guī)范規(guī)則,即反規(guī)范。 

3.   數(shù)據(jù)的反規(guī)范
 
3.1.   反規(guī)范的好處
    是否規(guī)范化的程度越高越好?這要根據(jù)需要來決定,因?yàn)椤胺蛛x”越深,產(chǎn)生的關(guān)系越多,關(guān)系過多,連接操作越頻繁,而連接操作是最費(fèi)時(shí)間的,特別對(duì)以查詢?yōu)橹鞯臄?shù)據(jù)庫應(yīng)用來說,頻繁的連接會(huì)影響查詢速度。所以,關(guān)系有時(shí)故意保留成非規(guī)范化的,或者規(guī)范化以后又反規(guī)范了,這樣做通常是為了改進(jìn)性能。例如帳戶系統(tǒng)中的“帳戶”表B-TB01,它的列busi-balance(企業(yè)帳戶的總余額)就違反規(guī)范,其中的值可以通過下面的查詢獲得: 
select busi-code,sum(acc-balance)  
from   B-TB06   
group by busi-code 
  如果B-TB01中沒有該列,若想獲得busi-name(企業(yè)名稱)和企業(yè)帳戶的總余額,則需要做連接操作:  
               select busi-name,sum(acc-balance)   
               from B-TB01,B-TB06   
               where B-TB01.busi-code=B-TB06.busi-code   
               group by busi-code
如果經(jīng)常做這種查詢,則就有必要在B-TB01中加入列busi-balance,相應(yīng)的代價(jià)則是必須在表B-TB06上創(chuàng)建增、刪、改的觸發(fā)器來維護(hù)B-TB01表上busi-balance列的值。類似的情況在決策支持系統(tǒng)中經(jīng)常發(fā)生。  
     反規(guī)范的好處是降低連接操作的需求、降低外碼和索引的數(shù)目,還可能減少表的數(shù)目,相應(yīng)帶來的問題是可能出現(xiàn)數(shù)據(jù)的完整性問題。加快查詢速度,但會(huì)降低修改速度。因此決定做反規(guī)范時(shí),一定要權(quán)衡利弊,仔細(xì)分析應(yīng)用的數(shù)據(jù)存取需求和實(shí)際的性能特點(diǎn),好的索引和其它方法經(jīng)常能夠解決性能問題,而不必采用反規(guī)范這種方法。     
 
 
3.2.   常用的反規(guī)范技術(shù)
在進(jìn)行反規(guī)范操作之前,要充分考慮數(shù)據(jù)的存取需求、常用表的大小、一些特殊的計(jì)算(例如合計(jì))、數(shù)據(jù)的物理存儲(chǔ)位置等。常用的反規(guī)范技術(shù)有增加冗余列、增加派生列、重新組表和分割表。 
 
3.2.1.    增加冗余列
 
增加冗余列是指在多個(gè)表中具有相同的列,它常用來在查詢時(shí)避免連接操作。例如前面例子中,如果經(jīng)常檢索一門課的任課教師姓名,則需要做class和teacher表的連接查詢:
          select class-name,teacher-name   
            from   class,teacher   
            where  class.teacher-no=teacher.teacher-no   
這樣的話就可以在class表中增加一列teacher-name就不需要連接操作了。
增加冗余列可以在查詢時(shí)避免連接操作,但它需要更多的磁盤空間,同時(shí)增加表維護(hù)的工作量。 

3.2.2.    增加派生列
增加派生列指增加的列來自其它表中的數(shù)據(jù),由它們計(jì)算生成。它的作用是在查詢時(shí)減少連接操作,避免使用集函數(shù)。例如前面所講的賬戶系統(tǒng)中的表B-TB01的列busi-balance就是派生列。派生列也具有與冗余列同樣的缺點(diǎn)。

3.2.3.    重新組表
重新組表指如果許多用戶需要查看兩個(gè)表連接出來的結(jié)果數(shù)據(jù),則把這兩個(gè)表重新組成一個(gè)表來減少連接而提高性能。例如,用戶經(jīng)常需要同時(shí)查看課程號(hào),課程名稱,任課教師號(hào),任課教師姓名,則可把表class(class-no,class-name,teacher-no)和表teacher(teacher-no,teacher-name)合并成一個(gè)表class(class-no,class-name,teacher-no,teacher-name)。這樣可提高性能,但需要更多的磁盤空間,同時(shí)也損失了數(shù)據(jù)在概念上的獨(dú)立性。  
 
3.2.4.    分割表
有時(shí)對(duì)表做分割可以提高性能。表分割有兩種方式: 
   1水平分割:根據(jù)一列或多列數(shù)據(jù)的值把數(shù)據(jù)行放到兩個(gè)獨(dú)立的表中。   水平分割通常在下面的情況下使用:A 表很大,分割后可以降低在查詢時(shí)需要讀的數(shù)據(jù)和索引的頁數(shù),同時(shí)也降低了索引的層數(shù),提高查詢速度。B 表中的數(shù)據(jù)本來就有獨(dú)立性,例如表中分別記錄各個(gè)地區(qū)的數(shù)據(jù)或不同時(shí)期的數(shù)據(jù),特別是有些數(shù)據(jù)常用,而另外一些數(shù)據(jù)不常用。C 需要把數(shù)據(jù)存放到多個(gè)介質(zhì)上。   例如法規(guī)表law就可以分成兩個(gè)表active-law和inactive-law。activea-authors表中的內(nèi)容是正生效的法規(guī),是經(jīng)常使用的,而inactive-law表則使已經(jīng)作廢的法規(guī),不常被查詢。水平分割會(huì)給應(yīng)用增加復(fù)雜度,它通常在查詢時(shí)需要多個(gè)表名,查詢所有數(shù)據(jù)需要union操作。在許多數(shù)據(jù)庫應(yīng)用中,這種復(fù)雜性會(huì)超過它帶來的優(yōu)點(diǎn),因?yàn)橹灰饕P(guān)鍵字不大,則在索引用于查詢時(shí),表中增加兩到三倍數(shù)據(jù)量,查詢時(shí)也就增加讀一個(gè)索引層的磁盤次數(shù)。
  2垂直分割:把主碼和一些列放到一個(gè)表,然后把主碼和另外的列放到另一個(gè)表中。如果一個(gè)表中某些列常用,而另外一些列不常用,則可以采用垂直分割,另外垂直分割可以使得數(shù)據(jù)行變小,一個(gè)數(shù)據(jù)頁就能存放更多的數(shù)據(jù),在查詢時(shí)就會(huì)減少I/O次數(shù)。其缺點(diǎn)是需要管理冗余列,查詢所有數(shù)據(jù)需要join操作。  

4.   反規(guī)范技術(shù)需要維護(hù)數(shù)據(jù)的完整性
  無論使用何種反規(guī)范技術(shù),都需要一定的管理來維護(hù)數(shù)據(jù)的完整性,常用的方法是批處理維護(hù)、應(yīng)用邏輯和觸發(fā)器。批處理維護(hù)是指對(duì)復(fù)制列或派生列的修改積累一定的時(shí)間后,運(yùn)行一批處理作業(yè)或存儲(chǔ)過程對(duì)復(fù)制或派生列進(jìn)行修改,這只能在對(duì)實(shí)時(shí)性要求不高的情況下使用。數(shù)據(jù)的完整性也可由應(yīng)用邏輯來實(shí)現(xiàn),這就要求必須在同一事務(wù)中對(duì)所有涉及的表進(jìn)行增、刪、改操作。用應(yīng)用邏輯來實(shí)現(xiàn)數(shù)據(jù)的完整性風(fēng)險(xiǎn)較大,因?yàn)橥贿壿嫳仨氃谒械膽?yīng)用中使用和維護(hù),容易遺漏,特別是在需求變化時(shí),不易于維護(hù)。另一種方式就是使用觸發(fā)器,對(duì)數(shù)據(jù)的任何修改立即觸發(fā)對(duì)復(fù)制列或派生列的相應(yīng)修改。觸發(fā)器是實(shí)時(shí)的,而且相應(yīng)的處理邏輯只在一個(gè)地方出現(xiàn),易于維護(hù)。一般來說,是解決這類問題的最好的辦法。  

5.   結(jié)束語 
     數(shù)據(jù)庫的反規(guī)范設(shè)計(jì)可以提高查詢性能。常用的反規(guī)范技術(shù)有增加冗余列、增加派生列、重新組表和分割表。但反規(guī)范技術(shù)需要維護(hù)數(shù)據(jù)的完整性。因此在做反規(guī)范時(shí),一定要權(quán)衡利弊,仔細(xì)分析應(yīng)用的數(shù)據(jù)存取需求和實(shí)際的性能特點(diǎn)。

全新的路由器不僅讓你更穩(wěn)定快速地連接無線網(wǎng)絡(luò),更可以讓家中的智能設(shè)備連接在一起。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 免费日韩在线观看| 亚洲中文字幕无码一区二区三区| 男女裸体影院高潮| 久久久成人精品一区二区三区 | av片在线免费| 久久这里只有精品8| 欧美a级免费视频| 丝袜人妻一区二区三区| 无码专区aaaaaa免费视频| a级黄色小视频| 日本精品www| 18岁视频在线观看| 在线播放av中文字幕| gogogo免费高清日本写真| 青青草免费在线视频观看| 日韩精品综合在线| 欧美三级一级片| 天天爽人人爽夜夜爽| 亚欧精品在线视频| 性一交一乱一伧国产女士spa| 欧美另类videosbestsex日本| 91网站在线观看免费| 国产精品免费入口| 色一情一区二区三区| 热这里只有精品| 日韩精品xxxx| 伊人精品视频在线观看| 久久99久久99精品| 欧美亚洲日本在线观看| 黄色影视在线观看| 国产av无码专区亚洲精品| 天天久久综合网| 漂亮人妻被中出中文字幕| 香蕉视频999| 日韩少妇内射免费播放18禁裸乳| 欧美性猛交xxxx乱大交91| 免费在线观看亚洲视频| 操人视频免费看| 国产精品涩涩涩视频网站| 99久热在线精品视频| 日本人视频jizz页码69| 日韩国产欧美亚洲| 三年中国中文在线观看免费播放| 91淫黄看大片| 国产特级淫片高清视频| 日韩在线视频在线| 国产农村妇女精品久久| 中文字幕一区二区三区四区在线视频| 人妻无码一区二区三区四区| 日本三级黄色网址| 日韩中文字幕二区| 亚洲精品蜜桃久久久久久| 亚洲精品成人在线播放| 欧美伦理视频在线观看| 国产综合av在线| 一二三四视频社区在线| 成年女人18级毛片毛片免费| 中文字幕制服丝袜在线| 亚洲一区二区三区四区精品| 亚洲欧美自偷自拍另类| 中文字幕视频在线免费观看| 99精品视频播放| 精品久久久久av| 无码人妻丰满熟妇区五十路百度| 我的公把我弄高潮了视频| 久久久久久久香蕉| 日韩黄色片在线| 亚洲人精品午夜射精日韩| 日韩 欧美 视频| 成人毛片视频网站| 国产真实乱子伦| 依人在线免费视频| www.日本久久| 精品一二三四五区| 欧美 国产 综合| 国产精品无码av无码| jizz大全欧美jizzcom| 不卡中文字幕在线观看| 精品少妇人妻av一区二区| 激情六月天婷婷| 看av免费毛片手机播放| 91人人澡人人爽人人精品| 中文字幕资源在线观看| 成年人深夜视频| 国产黄色一级网站| 三上悠亚av一区二区三区| 久久免费看毛片| 男女视频网站在线观看| 亚洲欧美视频二区| 99精品一级欧美片免费播放| 国产精品成人久久电影| 一区二区三区国产免费| 黄色一级片av| 99视频在线视频| 亚洲精品国产suv一区88| 阿v天堂2017| 亚洲高清视频免费| 日韩av黄色网址| 黄色污污在线观看| 国产成人精品视频ⅴa片软件竹菊| 99精品999| 欧美 国产 小说 另类| 大片在线观看网站免费收看| 国产xxxxx在线观看| 成人在线观看毛片| 九色porny91| 国产精品333| 奇米777四色影视在线看| 久久99999| 成人观看免费完整观看| 日本男女交配视频| 激情文学亚洲色图| 免费看黄色一级大片| 欧美久久久久久久久久久久久| 中文字幕 91| 国产理论在线播放| 亚洲精品无码久久久久久| 久久久久久久香蕉| 可以免费看的黄色网址| 日韩va在线观看| 9久久婷婷国产综合精品性色| 毛片在线视频播放| 成人一对一视频| 欧美图片激情小说| 成年女人18级毛片毛片免费| 激情五月五月婷婷| 日本特黄在线观看| dy888午夜| 青青草原网站在线观看| 久久久一二三四| 精品国产一区二区三区在线| 亚洲最大天堂网| 91丝袜超薄交口足| 伊人精品视频在线观看| 异国色恋浪漫潭| 欧美 日韩 国产精品| 久久亚洲国产成人精品无码区| 国产 欧美 日本| 成人午夜视频在线观看免费| 欧美成人三级在线视频| 日本精品一区二区三区四区| 日本一区二区黄色| 日韩视频免费在线播放| 天天干天天干天天干天天干天天干| 国产v亚洲v天堂无码久久久| 日日噜噜噜噜久久久精品毛片| 日本不卡一区在线| 99久re热视频精品98| 成品人视频ww入口| 免费在线观看的av网站| 亚洲国产精品三区| 中文字幕在线乱| av7777777| 婷婷激情小说网| 久草热视频在线观看| 欧美视频第三页| 三年中文在线观看免费大全中国| av电影一区二区三区| 日韩欧美在线播放视频| av中文字幕网址| 少妇人妻大乳在线视频| 乌克兰美女av| 欧美午夜小视频| 男人午夜视频在线观看| 黄页网站大全在线观看| 在线观看免费污视频| 精品无码一区二区三区在线| 九九精品久久久| 日本黄色三级大片| 警花观音坐莲激情销魂小说| 超碰av在线免费观看| av在线观看地址| 超碰97免费观看| 波多结衣在线观看| 成熟丰满熟妇高潮xxxxx视频| 手机av在线网站| 毛片一区二区三区四区| 拔插拔插海外华人免费| 日韩人妻精品一区二区三区| 波多野结衣天堂| 国产 福利 在线| 日韩精品视频在线观看视频| www.国产福利| 中国黄色片免费看| 国产精品乱码久久久久| 国产男女在线观看| 亚洲熟妇无码一区二区三区导航| 欧美成人手机在线视频| 男女视频在线看| 超碰在线97免费| 久久综合伊人77777麻豆最新章节| 水蜜桃色314在线观看| 韩日视频在线观看| 99在线免费视频观看| avav在线播放| 国产精品12345| 成人综合视频在线| 人妻精品无码一区二区三区| 人妻熟妇乱又伦精品视频| 国产二区视频在线播放|