qileilove

          blog已經(jīng)轉移至github,大家請訪問 http://qaseven.github.io/

          數(shù)據(jù)庫關系模式規(guī)范化

            在教學中,大多實例都是主鍵由一列構成,所以也可以簡單地說主屬性與主鍵沒有什么區(qū)別。
            第三范式的定義:如果關系模式R中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴,則稱關系R是屬于第三范式的。記作R 3NF。
            如:學生關系模式S1(學號,姓名,系號,系名,系地址)
            (學號)為關鍵字,因是單屬性關鍵字,不存在部份依賴問題,應屬于第二范式。但因為:學號—>系號,系號—\>學號,系號—>系地址,因此:學號—>系地址 是通過傳遞依賴實現(xiàn)的。即候選關鍵字“學號”不直接函數(shù)決定于非主屬性“系地址”。所以此關系不屬于第三范式。應將其分解為:
            SC(學號,姓名,系號)
            D(系號,系名,系地址)
            C(課程號,課程名,學分)
            S(學號,課程號,成績)
            設計原則:“一事一地”,即一個關系反映一個實體或一個聯(lián)系,不應把幾樣東西混合放在一起。基本關系模式切忌“大而全”,在若干個基本關系模式組成的關系模型上,根據(jù)需要可以通過自然聯(lián)接導出所需要的關系。
            BCNF的定義:如果一個關系R中的所有屬性都不傳遞依賴于R的任何候選關鍵字,或者說關系R中的每個決定因數(shù)都是候選關鍵字時,則稱關系R屬于BCNF范式,記作R BCNF。
            一個滿足BCNF的關系模式有
            1.所有非主屬性對每一個碼都是完全函數(shù)依賴。
            2.所有的主屬性對每一個不包含它的碼,也是完全函數(shù)依賴。
            3.沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。
            由于RBCNF,按定義排除了任何屬性對碼的傳遞依賴與部分依賴,所以R3NF。但是若R3NF,則R未必屬于BCNF。
            下面用幾個例子說明屬于3NF的關系模式有的屬于BCNF,但有的不屬于BCNF。
            詳細信息...
            例l 關系模式SJP(S,J,P)中,S是學生,J表示課程,P表示名次。每一個學生選修每門課程的成績有一定的名次,每門課程中每一名次只有一個學生(即沒有并列名次)。由語義可得到下面的函數(shù)依賴:
            (S,J)→P ,(J,P)→S
            所以(S,J)與(J,P)都可以作為候選碼。這兩個碼各由兩個屬性組成,而且它們是相交的。這個關系模式中顯然沒有屬性對碼傳遞依賴或部分依賴。所以SJP3NF,而且除(S,J)與(J,P)以外沒有其它決定因素,所以SJPBCNF。
            例2 關系模式STJ(S,T,J)中,S表示學生,T表示教師,J表示課程。每一教師只教一門課。每門課有若干教師,某一學生選定某門課,就對應一個固定的教師。由語義可得到如下的函數(shù)依賴。
            (S,J)→T;(S,T)→J;T→J。
            這里(S,J),(S,T)都是候選碼。
            STJ是3NF,因為沒有任何非主屬性對碼傳遞依賴或部分依賴。但STJ不是BCNF關系,因為T是決定因素,而T不包含碼。
            3NF的“不徹底”性表現(xiàn)在可能存在主屬性對碼的部分依賴和傳遞依賴。非BCNF的關系模式也可以通過分解成為BCNF。例如STJ可分解為ST(S,T)與TJ(T,J),它們都是BCNF。
            一個模式中的關系模式如果都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實現(xiàn)了徹底的分離,已消除了插入和刪除的異常。
            關系模式規(guī)范化小結
            目的:規(guī)范化的目的是使結構合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新。
            原則:遵從概念單一化“一事一地”的原則,即一個關系模式描述一個實體或實體間的一種聯(lián)系。規(guī)范的實質(zhì)就是概念單一化。
            方法:將關系模式投影分解成兩個或兩個以上的關系模式。
            要求:分解后的關系模式集合應當與原關系模式“等價”,即經(jīng)過自然聯(lián)接可以恢復原關系而不丟失信息,并保持屬性間合理的聯(lián)系。

          posted on 2014-05-21 10:10 順其自然EVO 閱讀(531) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          <2014年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 塔城市| 三河市| 上饶县| 古田县| 惠州市| 固始县| 夹江县| 平昌县| 双鸭山市| 兰考县| 北流市| 宽甸| 临城县| 安阳市| 肇东市| 霍林郭勒市| 丘北县| 韶山市| 常山县| 崇文区| 行唐县| 留坝县| 衡阳市| 旅游| 马尔康县| 泉州市| 榆树市| 宝坻区| 崇仁县| 嘉峪关市| 济源市| 河津市| 怀宁县| 澳门| 株洲县| 安达市| 耒阳市| 达日县| 澜沧| 辽宁省| 昆山市|