亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        淺談數(shù)據(jù)庫(kù)設(shè)計(jì)中范式的應(yīng)用

        2011-10-31 07:51:36鄒瓊
        關(guān)鍵詞:主鍵字段姓名

        鄒瓊

        (湖北經(jīng)濟(jì)學(xué)院 信息管理學(xué)院,湖北 武漢 430205)

        淺談數(shù)據(jù)庫(kù)設(shè)計(jì)中范式的應(yīng)用

        鄒瓊

        (湖北經(jīng)濟(jì)學(xué)院 信息管理學(xué)院,湖北 武漢 430205)

        非計(jì)算機(jī)專業(yè)的數(shù)據(jù)庫(kù)理論的教學(xué)是個(gè)難點(diǎn),文章針對(duì)“范式”概念的理解結(jié)合筆者在教學(xué)實(shí)踐中的實(shí)驗(yàn)案例,對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)中的數(shù)據(jù)模式的規(guī)范化進(jìn)行了詳細(xì)闡述。并對(duì)常用的三大范式和反范式的一些應(yīng)用進(jìn)行了探討。

        數(shù)據(jù)庫(kù)設(shè)計(jì);范式;關(guān)系規(guī)范化

        隨著信息化時(shí)代的到來(lái),數(shù)據(jù)庫(kù)技術(shù)被廣泛地應(yīng)用于經(jīng)濟(jì)建設(shè)、科學(xué)研究、組織管理的各個(gè)領(lǐng)域和我們生活的各個(gè)方面,學(xué)習(xí)和掌握一定的數(shù)據(jù)庫(kù)知識(shí)變得尤為重要,為此許多高等院校都為非計(jì)算機(jī)專業(yè)的學(xué)生開(kāi)設(shè)了《數(shù)據(jù)庫(kù)原理》公共課程。但是許多學(xué)生對(duì)數(shù)據(jù)庫(kù)的基本理論知識(shí)的掌握存在困難,特別是數(shù)據(jù)庫(kù)設(shè)計(jì)中的范式的定義與作用,普遍覺(jué)得難以理解。下面就針對(duì)這個(gè)知識(shí)點(diǎn)結(jié)合筆者多年的教學(xué)實(shí)踐中的一些教學(xué)案例來(lái)進(jìn)行說(shuō)明。

        一、范式概述

        在整個(gè)數(shù)據(jù)庫(kù)的開(kāi)發(fā)過(guò)程中,數(shù)據(jù)庫(kù)的設(shè)計(jì)的好壞是一個(gè)數(shù)據(jù)庫(kù)成敗與否的關(guān)鍵;而對(duì)于占主流地位的關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)而言,如何構(gòu)造一個(gè)適合該系統(tǒng)的數(shù)據(jù)模式,如何確定每個(gè)關(guān)系模式或者直接說(shuō)確定每張表的屬性字段等就直接影響到未來(lái)該系統(tǒng)的運(yùn)行效率。這里我們就需要一個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的有力工具——規(guī)范化理論。關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論是E. F.Godd在1971年提出的,它按照屬性間的不同依賴程度分為第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、Boyce-Codd范式、第四范式(4NF)和第五范式(5NF)等。這些范式其實(shí)就是一些確定關(guān)系模式的規(guī)則,而且這些規(guī)則是按層次遞進(jìn)分等級(jí)的,每一級(jí)都是在下一級(jí)的基礎(chǔ)上制定的更嚴(yán)格的規(guī)則,即滿足最低要求的范式是第一范式(1NF),在第一范式的基礎(chǔ)上進(jìn)一步滿足更多要求的是第二范式(2NF),以此類推。實(shí)際上在一般的系統(tǒng)設(shè)計(jì)中,通常只需要規(guī)范到3NF的層次就足夠了。滿足3NF規(guī)則的數(shù)據(jù)庫(kù)結(jié)構(gòu)明晰的,可以避免發(fā)生插入、刪除和更新操作異常,最大限度降低數(shù)據(jù)庫(kù)的冗余度,提高了數(shù)據(jù)庫(kù)的通用性和安全性。

        二、范式的理解與應(yīng)用

        (一)第一范式(1NF)

        第一范式是關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系要滿足的最低要求,它要求每一個(gè)關(guān)系或表中的每一個(gè)字段分量都是不可再分的數(shù)據(jù)項(xiàng),簡(jiǎn)而言之,第一范式就是無(wú)重復(fù)的列。我們以常見(jiàn)的教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù)中的信息為例,以下表1是一張記錄學(xué)生基本信息以及選課情況的表。這是我們手工制表中經(jīng)常出現(xiàn)的形式,但是很明顯表中的選修課程字段存在大量重復(fù)的字段信息,它不滿足第一范式的要求,列中出現(xiàn)子列的形式根本不屬于關(guān)系模型,是不可能導(dǎo)入到任意一個(gè)關(guān)系型的數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS中的。所以我們應(yīng)該對(duì)它進(jìn)行規(guī)范和細(xì)分。

        我們可以通過(guò)把重復(fù)的字段放到一個(gè)獨(dú)立的表中,把這些表通過(guò)一對(duì)多關(guān)聯(lián)聯(lián)系起來(lái)的這種方式來(lái)消除表中的重復(fù)字段。這里我們可以將選修課程字段從學(xué)生表中拿出,單獨(dú)放置到選課表中,而選課表包含學(xué)號(hào),課程編號(hào)和課程名稱字段。這樣每一條記錄就能表達(dá)一個(gè)學(xué)生所選的一門課程,同一個(gè)學(xué)生所選的不同課程就會(huì)產(chǎn)生另一條學(xué)號(hào)相同,課程名稱不同的記錄。而且這張表通過(guò)學(xué)號(hào)字段就能與原來(lái)的學(xué)生表關(guān)聯(lián)起來(lái)。這樣消除了重復(fù)的選修課程字段后表就屬于1NF。

        ?

        (二)第二范式(2NF)

        第一范式是關(guān)系數(shù)據(jù)庫(kù)中的表要滿足的最低要求,而僅僅滿足這個(gè)最低要求的表極有可能出現(xiàn)一些異常,我們還是來(lái)看這樣一張記錄選修課程情況的表,表中包含字段有:學(xué)號(hào)、姓名、課程編號(hào)、課程名稱、學(xué)分、成績(jī)??雌饋?lái)這張表中的數(shù)據(jù)十分完備,而且表中沒(méi)有重復(fù)字段,已經(jīng)是1NF了??墒沁M(jìn)一步分析我們卻能發(fā)現(xiàn)其中問(wèn)題多多:每當(dāng)有一位同學(xué)選修了一門新的課程時(shí),該同學(xué)的姓名就不得不隨著新記錄的插入而被重復(fù)存儲(chǔ)一次,學(xué)生們選修的課程越多意味著姓名重復(fù)越多。同時(shí)課程名稱和學(xué)分字段也是如此,一門課程被選修的次數(shù)越多,意味著該課程的課程名稱與學(xué)分字段也必須得重復(fù)存儲(chǔ)越多,這就是典型的數(shù)據(jù)冗余。重復(fù)的冗余數(shù)據(jù)進(jìn)而會(huì)引發(fā)數(shù)據(jù)的更新異常。因?yàn)橐坏┬枰薷哪硞€(gè)姓名或課程名稱、學(xué)分等所涉及到的修改就不止一條記錄,重復(fù)的越多意味著出錯(cuò)的可能性越大。而且由于課程名稱和學(xué)分字段僅存于這張表中,若有新開(kāi)的課程要記錄就會(huì)因?yàn)檫€沒(méi)有選修該課程的學(xué)生而無(wú)法存入該表,這就帶來(lái)了插入異常。同樣的道理,如果出于某些原因如轉(zhuǎn)學(xué)等將某個(gè)學(xué)生的選課記錄刪除,那么如果只有該生選修了某門課程的話,這門課程的信息也將隨著該記錄的刪除而徹底丟失,這也就是發(fā)生了刪除異常的情況。

        這些異常情況的發(fā)生實(shí)際上都是因?yàn)楸碇械淖侄未嬖诓糠忠蕾嚨那闆r。所謂部分依賴就是指表中的非主鍵字段,并不是完全依賴于主鍵而確定,而僅僅是由主鍵的一部分來(lái)確定。我們知道主鍵是能夠確定每一條記錄的標(biāo)識(shí)字段,也就是一個(gè)主鍵值對(duì)應(yīng)一條記錄。對(duì)于單一字段的主鍵,是不可能出現(xiàn)部分依賴的情況的,而對(duì)于多字段構(gòu)成的聯(lián)合主鍵則不然。如果表中某個(gè)字段僅由聯(lián)合主鍵中的某一個(gè)字段就能確定的話,我們就稱之為發(fā)生了部分依賴。在這張選修課程記錄表中,很明顯主鍵是由學(xué)號(hào)和課程編號(hào)兩個(gè)字段聯(lián)合擔(dān)當(dāng),也就是說(shuō)每一條記錄的學(xué)號(hào)與課程編號(hào)的組合都是互不相同的唯一的。但是其中姓名字段僅只依賴于學(xué)號(hào)就可以確定;課程名稱和學(xué)分字段也是非主鍵字段,但它們也僅僅只依賴于主鍵的一部分——課程編號(hào)字段就能確定。

        正是由于這些部分依賴的存在引發(fā)了各種異常情況,所以我們必須通過(guò)進(jìn)一步規(guī)范化的手段消除這些部分依賴。我們可以通過(guò)分解原表,使得每一張表都成為2NF。將姓名字段歸并到一張學(xué)生表中,與原表靠學(xué)號(hào)字段關(guān)聯(lián);將課程名稱和學(xué)分字段也單獨(dú)成立一張課程表依靠課程編號(hào)字段關(guān)聯(lián),分解后的3張表中的字段如下:學(xué)生表(學(xué)號(hào)、姓名、性別、出生日期等);課程表(課程編號(hào)、課程名稱、學(xué)分);選課表(學(xué)號(hào)、課程編號(hào)、成績(jī))。當(dāng)我們消除了表中的部分依賴后,我們就可以說(shuō)我們的表已經(jīng)是2NF了。因此所謂第二范式就是要消除表中的部分依賴,同時(shí)我們也就清楚了如果表中的主鍵是單一字段的話那么就一定是2NF,因?yàn)橹挥新?lián)合主鍵才可能出現(xiàn)違反2NF的部分依賴。

        (三)第三范式(3NF)

        第三范式是在第二范式的基礎(chǔ)上加上了更嚴(yán)格的限制條件:表中非主鍵字段不能傳遞依賴與主鍵。我們來(lái)看這樣一張記錄學(xué)生基本信息的表,表中字段有:學(xué)號(hào),姓名,性別,出生日期、專業(yè)、所屬院系。我們可以很直觀的判斷出這是一個(gè)2NF,因?yàn)楸淼闹麈I是單一字段學(xué)號(hào),表中其他的非主鍵字段如姓名、出生日期、專業(yè)、院系都完全依賴于學(xué)號(hào),不可能出現(xiàn)部分依賴。可是該表仍有明顯的問(wèn)題,那就是學(xué)號(hào)能夠唯一確定專業(yè),可是專業(yè)也能夠唯一確定院系,也就是說(shuō)出現(xiàn)了傳遞依賴的情況。當(dāng)存儲(chǔ)學(xué)生信息時(shí),同一個(gè)專業(yè)的學(xué)生所屬院系將會(huì)被重復(fù)存儲(chǔ),這便帶來(lái)了數(shù)據(jù)冗余。所以表7沒(méi)有達(dá)第三范式的要求,不是3NF。

        為了使該表成為3NF,我們同樣要對(duì)表進(jìn)行規(guī)范化的重新設(shè)計(jì),我們將專業(yè)與院系的字段從學(xué)生表中移除,使其單獨(dú)成為一張?jiān)合当恚⑶彝ㄟ^(guò)專業(yè)編號(hào)進(jìn)行關(guān)聯(lián),這樣的兩張表消除了傳遞依賴關(guān)系,就都是第三范式了。

        經(jīng)過(guò)3個(gè)范式的層層規(guī)范,現(xiàn)在的數(shù)據(jù)模式已經(jīng)得到了極大程度的優(yōu)化,通過(guò)這幾張表之間適當(dāng)?shù)倪B接查詢,我們既可以得到所需的數(shù)據(jù),同時(shí)又避免了數(shù)據(jù)冗余和各種異常。

        三、反范式的應(yīng)用

        規(guī)范化的優(yōu)點(diǎn)是明顯的,它避免了大量的數(shù)據(jù)冗余,節(jié)省了存儲(chǔ)空間,保持了數(shù)據(jù)的一致性。當(dāng)一個(gè)庫(kù)里的數(shù)據(jù)經(jīng)常發(fā)生變化時(shí),達(dá)到3NF的庫(kù)可以使用戶不必在超過(guò)兩個(gè)以上的地方更改同一個(gè)值。那么是不是只要把所有的表都規(guī)范為3NF后,數(shù)據(jù)庫(kù)的設(shè)計(jì)就是最優(yōu)的呢?這可不一定。范式越高意味著表的劃分更細(xì),一個(gè)數(shù)據(jù)庫(kù)中需要的表也就越多,用戶不得不將原本相關(guān)聯(lián)的數(shù)據(jù)分?jǐn)偟蕉鄠€(gè)表中。當(dāng)用戶同時(shí)需要這些數(shù)據(jù)時(shí)只能采用連接表的形式將數(shù)據(jù)重新合并在一起。同時(shí)把多個(gè)表聯(lián)接在一起的花費(fèi)是巨大的,尤其是當(dāng)需要連接的兩張或者多張表數(shù)據(jù)非常龐大的時(shí)候,表連接操作幾乎是一個(gè)噩夢(mèng),這嚴(yán)重地降低了系統(tǒng)運(yùn)行性能。

        所以有時(shí)為了提高數(shù)據(jù)庫(kù)的性能,需要適當(dāng)犧牲規(guī)范化的要求,采取所謂反范式的設(shè)計(jì),即不完全按照范式的理論來(lái)設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)。比如在上面的數(shù)據(jù)庫(kù)中學(xué)生的姓名是很少變化的,而選課表中由于保存的數(shù)據(jù)非常多,而且最終提取學(xué)生成績(jī)時(shí)常常是需要姓名信息的,那么為了避免數(shù)據(jù)庫(kù)系統(tǒng)實(shí)際運(yùn)行時(shí)為獲取姓名頻繁地聯(lián)接學(xué)生表,我們就干脆違反2NF將姓名字段重復(fù)的存儲(chǔ)在選課表中。還有一種情況就是當(dāng)表中數(shù)據(jù)量很大,而數(shù)據(jù)的緊要程度又不完全相同的時(shí)候,我們也可以違反范式的無(wú)重復(fù)原則,把一張完整的表分成多張子表來(lái)分表存儲(chǔ)。比如我們可以用水平分割表的方法將表中的歷史陳舊數(shù)據(jù)分割到另一張表中進(jìn)行靜態(tài)存儲(chǔ),這樣可以加快表的查找速度。但同時(shí)反范式也會(huì)引入相應(yīng)的更新刪除等額外操作和程序設(shè)計(jì)的復(fù)雜性,因此在實(shí)際應(yīng)用中應(yīng)按實(shí)際需求適當(dāng)使用。

        四、結(jié)語(yǔ)

        由此可見(jiàn)范式是改善關(guān)系模式的一種方法,可衡量一個(gè)數(shù)據(jù)庫(kù)中表設(shè)計(jì)的合理與否并不僅僅只依賴于范式,在實(shí)際應(yīng)用中,我們應(yīng)該靈活運(yùn)用三大范式而不拘泥于三大范式,在一定制約條件下,尋求能較好地滿足用戶需求的關(guān)系模式且性能最優(yōu)的數(shù)據(jù)庫(kù)。

        [1]薩師煊,王珊.數(shù)據(jù)庫(kù)系統(tǒng)概論(第3版)[M].北京:高等教育出版社,2000,(2).

        [2]佘學(xué)兵,饒?zhí)K敏.關(guān)系數(shù)據(jù)庫(kù)中關(guān)系模式的規(guī)范化[J].科技廣場(chǎng),2008,(10).

        [3]徐興雷,汪嬋嬋.反范式在海量數(shù)據(jù)庫(kù)設(shè)計(jì)中的應(yīng)用[J].科技傳播,2011,(5).

        [4]褚洪波.關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)范式應(yīng)用實(shí)例剖析[J].雞西大學(xué)學(xué)報(bào),2008,(1).

        [5]朱海峰.關(guān)系規(guī)范化理論在數(shù)據(jù)庫(kù)設(shè)計(jì)中的應(yīng)用[J].中國(guó)科技信息,2006,(13).

        猜你喜歡
        主鍵字段姓名
        基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        梁潮印箋·姓名章戢孴
        基于外鍵的E-R圖繪制方法研究
        姓名的『姓』字為什么是『女』旁?
        CNMARC304字段和314字段責(zé)任附注方式解析
        無(wú)正題名文獻(xiàn)著錄方法評(píng)述
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        找朋友
        數(shù)據(jù)庫(kù)主鍵的設(shè)計(jì)方法探討
        亚洲h电影| 国产高潮视频在线观看| 高清中文字幕一区二区| 成人做爰69片免费看网站野花| 国产人妻精品一区二区三区不卡 | 无码一区二区三区不卡AV| 亚洲国产av午夜福利精品一区| 国产精品一区二区三区专区| 久久久国产精品免费a片3d| 亚洲成av人片在线观看无码| 亚洲欧美一区二区三区国产精| 国产视频在线播放亚洲| 亚洲精品人成中文毛片| 奇米影视7777久久精品| 亚洲 高清 成人 动漫| 欧美综合区自拍亚洲综合| 中文字幕av素人专区| 中国无码人妻丰满熟妇啪啪软件| 无码人妻丰满熟妇啪啪7774| 乱人伦人妻中文字幕不卡| 国产午夜免费啪视频观看| 国产乱子伦| 日韩在线精品国产成人| 中文字幕精品人妻av在线| 丰满少妇人妻久久精品| 日韩激情无码免费毛片| 亚洲V在线激情| 91精品蜜桃熟女一区二区| 在线观看 国产一区二区三区| 久久精品国产亚洲av无码娇色| 国产羞羞视频在线观看| 国产精品日本一区二区三区| 亚洲天堂av三区四区不卡| 香蕉久久福利院| AV无码免费不卡在线观看| 亚洲精品中文字幕不卡| 无码人妻久久久一区二区三区| 中文字幕精品一二三四五六七八| 青青青伊人色综合久久亚洲综合| 久久老熟女一区二区三区| 精品无人码麻豆乱码1区2区|