青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 14,  comments - 4,  trackbacks - 0
引言
     數(shù)據(jù)庫的設計范式是數(shù)據(jù)庫設計所需要滿足的規(guī)范,滿足這些規(guī)范的數(shù)據(jù)庫是簡潔的、結構明晰的,同時,不會發(fā)生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給數(shù)據(jù)庫的編程人員制造麻煩,而且面目可憎,可能存儲了大量不需要的冗余信息。

  設計范式是不是很難懂呢?非也,大學教材上給我們一堆數(shù)學公式我們當然看不懂,也記不住。所以我們很多人就根本不按照范式來設計數(shù)據(jù)庫。

  實質上,設計范式用很形象、很簡潔的話語就能說清楚,道明白。本文將對范式進行通俗地說明,并以筆者曾經(jīng)設計的一個簡單論壇的數(shù)據(jù)庫為例來講解怎樣將這些范式應用于實際工程。

范式說明

  第一范式(1NF):數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。這個單一屬性由基本類型構成,包括整型、實數(shù)、字符型、邏輯型、日期型等。
    例如,如下的數(shù)據(jù)庫表是符合第一范式的:
字段1 字段2 字段3 字段4
    而這樣的數(shù)據(jù)庫表是不符合第一范式的:
字段1 字段2 字段3    字段4
       字段3.1 字段3.2  

  很顯然,在當前的任何關系數(shù)據(jù)庫管理系統(tǒng)(DBMS)中,傻瓜也不可能做出不符合第一范式的數(shù)據(jù)庫,因為這些DBMS不允許你把數(shù)據(jù)庫表的一列再分成二列或多列。因此,你想在現(xiàn)有的DBMS中設計出不符合第一范式的數(shù)據(jù)庫都是不可能的。

  第二范式(2NF):數(shù)據(jù)庫表中不存在非關鍵字段對任一候選關鍵字段的部分函數(shù)依賴(部分函數(shù)依賴指的是存在組合關鍵字中的某些字段決定非關鍵字段的情況),也即所有非關鍵字段都完全依賴于任意一組候選關鍵字。

  假定選課關系表為SelectCourse(學號, 姓名, 年齡, 課程名稱, 成績, 學分),關鍵字為組合關鍵字(學號, 課程名稱),因為存在如下決定關系:

  (學號, 課程名稱) → (姓名, 年齡, 成績, 學分)

  這個數(shù)據(jù)庫表不滿足第二范式,因為存在如下決定關系:

  (課程名稱) → (學分)

  (學號) → (姓名, 年齡)

  即存在組合關鍵字中的字段決定非關鍵字的情況。

  由于不符合2NF,這個選課關系表會存在如下問題:

  (1) 數(shù)據(jù)冗余:

  同一門課程由n個學生選修,"學分"就重復n-1次;同一個學生選修了m門課程,姓名和年齡就重復了m-1次。

  (2) 更新異常:

  若調(diào)整了某門課程的學分,數(shù)據(jù)表中所有行的"學分"值都要更新,否則會出現(xiàn)同一門課程學分不同的情況。

  (3) 插入異常:

  假設要開設一門新的課程,暫時還沒有人選修。這樣,由于還沒有"學號"關鍵字,課程名稱和學分也無法記錄入數(shù)據(jù)庫。

  (4) 刪除異常:

  假設一批學生已經(jīng)完成課程的選修,這些選修記錄就應該從數(shù)據(jù)庫表中刪除。但是,與此同時,課程名稱和學分信息也被刪除了。很顯然,這也會導致插入異常。

  把選課關系表SelectCourse改為如下三個表:

  學生:Student(學號, 姓名, 年齡);

  課程:Course(課程名稱, 學分);

  選課關系:SelectCourse(學號, 課程名稱, 成績)。

  這樣的數(shù)據(jù)庫表是符合第二范式的,消除了數(shù)據(jù)冗余、更新異常、插入異常和刪除異常。

  另外,所有單關鍵字的數(shù)據(jù)庫表都符合第二范式,因為不可能存在組合關鍵字。

  第三范式(3NF):在第二范式的基礎上,數(shù)據(jù)表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函數(shù)依賴則符合第三范式。所謂傳遞函數(shù)依賴,指的是如果存在"A → B → C"的決定關系,則C傳遞函數(shù)依賴于A。因此,滿足第三范式的數(shù)據(jù)庫表應該不存在如下依賴關系:

  關鍵字段 → 非關鍵字段x → 非關鍵字段y

  假定學生關系表為Student(學號, 姓名, 年齡, 所在學院, 學院地點, 學院電話),關鍵字為單一關鍵字"學號",因為存在如下決定關系:

  (學號) → (姓名, 年齡, 所在學院, 學院地點, 學院電話)

  這個數(shù)據(jù)庫是符合2NF的,但是不符合3NF,因為存在如下決定關系:

  (學號) → (所在學院) → (學院地點, 學院電話)

  即存在非關鍵字段"學院地點"、"學院電話"對關鍵字段"學號"的傳遞函數(shù)依賴。

  它也會存在數(shù)據(jù)冗余、更新異常、插入異常和刪除異常的情況,讀者可自行分析得知。

  把學生關系表分為如下兩個表:

  學生:(學號, 姓名, 年齡, 所在學院);

  學院:(學院, 地點, 電話)。

  這樣的數(shù)據(jù)庫表是符合第三范式的,消除了數(shù)據(jù)冗余、更新異常、插入異常和刪除異常。

  鮑依斯-科得范式(BCNF):在第三范式的基礎上,數(shù)據(jù)庫表中如果不存在任何字段對任一候選關鍵字段的傳遞函數(shù)依賴則符合第三范式。

  假設倉庫管理關系表為StorehouseManage(倉庫ID, 存儲物品ID, 管理員ID, 數(shù)量),且有一個管理員只在一個倉庫工作;一個倉庫可以存儲多種物品。這個數(shù)據(jù)庫表中存在如下決定關系:

  (倉庫ID, 存儲物品ID) →(管理員ID, 數(shù)量)

  (管理員ID, 存儲物品ID) → (倉庫ID, 數(shù)量)

  所以,(倉庫ID, 存儲物品ID)和(管理員ID, 存儲物品ID)都是StorehouseManage的候選關鍵字,表中的唯一非關鍵字段為數(shù)量,它是符合第三范式的。但是,由于存在如下決定關系:

  (倉庫ID) → (管理員ID)

  (管理員ID) → (倉庫ID)

  即存在關鍵字段決定關鍵字段的情況,所以其不符合BCNF范式。它會出現(xiàn)如下異常情況:

  (1) 刪除異常:

  當倉庫被清空后,所有"存儲物品ID"和"數(shù)量"信息被刪除的同時,"倉庫ID"和"管理員ID"信息也被刪除了。

  (2) 插入異常:

  當倉庫沒有存儲任何物品時,無法給倉庫分配管理員。

  (3) 更新異常:

  如果倉庫換了管理員,則表中所有行的管理員ID都要修改。

  把倉庫管理關系表分解為二個關系表:

  倉庫管理:StorehouseManage(倉庫ID, 管理員ID);

  倉庫:Storehouse(倉庫ID, 存儲物品ID, 數(shù)量)。

  這樣的數(shù)據(jù)庫表是符合BCNF范式的,消除了刪除異常、插入異常和更新異常。
原文出自:http://www.cnblogs.com/worksguo/articles/1030206.html
posted on 2011-12-06 20:42 mr_chen 閱讀(62) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿

隨筆檔案(14)

文章分類(8)

文章檔案(11)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩成人| 久久综合久久综合久久| 欧美午夜影院| 欧美日韩亚洲综合在线| 欧美色大人视频| 国产女主播一区| 伊人一区二区三区久久精品| 欧美va亚洲va日韩∨a综合色| 美女国产一区| 欧美一区二区视频观看视频| 久久久久久久久久久一区| 久久视频这里只有精品| 亚洲国产成人av在线| 亚洲国产黄色| 亚洲私人影院| 久久蜜桃资源一区二区老牛| 欧美精品网站| 加勒比av一区二区| 亚洲无亚洲人成网站77777 | 亚洲国产一区二区三区在线播| 亚洲精品综合久久中文字幕| 亚洲一二区在线| 久久这里只有| 亚洲视频自拍偷拍| 久久久久久亚洲精品不卡4k岛国| 欧美激情国产日韩精品一区18| 国产精品美女午夜av| 国产亚洲欧美一级| 国内精品久久久久影院薰衣草 | 国产欧美日韩另类一区| 永久免费毛片在线播放不卡| 亚洲一区二区三区视频| 欧美顶级艳妇交换群宴| 亚洲欧美国产77777| 久久视频这里只有精品| 国产精品亚洲综合色区韩国| ●精品国产综合乱码久久久久| 午夜亚洲激情| 亚洲精选一区| 欧美韩国在线| 亚洲国产精品久久久久秋霞影院 | 麻豆精品91| 国产乱码精品一区二区三区忘忧草| 亚洲精品一线二线三线无人区| 欧美亚洲一区二区在线观看| 亚洲免费大片| 欧美日韩国产在线一区| 91久久黄色| 男女精品网站| 久久免费的精品国产v∧| 国产欧美高清| 亚洲欧洲av一区二区| 欧美日韩在线看| 夜夜狂射影院欧美极品| 欧美激情无毛| 免费在线观看精品| 亚洲国产日韩欧美在线99 | 亚洲男女自偷自拍| 亚洲国产日韩在线| 久久视频在线视频| 狠狠干成人综合网| 久久青草欧美一区二区三区| 亚洲免费视频成人| 国产欧美日韩不卡免费| 久久精品视频va| 久久国产精品久久国产精品| 国产一区二区成人久久免费影院| 欧美一区视频在线| 性欧美大战久久久久久久久| 国产网站欧美日韩免费精品在线观看| 欧美一区视频在线| 快射av在线播放一区| 亚洲精品偷拍| 亚洲一区中文| 一区免费视频| 亚洲人成网站在线观看播放| 国产精品v欧美精品v日本精品动漫| 性欧美暴力猛交另类hd| 久久久久久久久久久久久久一区 | 极品av少妇一区二区| 欧美成人一品| 欧美日韩精品一区视频| 性久久久久久久久久久久| 先锋影音一区二区三区| 亚洲国产第一页| 一本色道久久综合亚洲精品不卡 | 欧美色图五月天| 性色一区二区三区| 午夜精品久久久久久久久久久久久| 国产一区二区成人| 亚洲高清网站| 国产日韩综合一区二区性色av| 欧美 日韩 国产一区二区在线视频| 欧美激情bt| 久久久精品一区| 欧美久久久久久| 欧美一区二区三区久久精品茉莉花| 久久网站免费| 先锋资源久久| 一本色道久久88综合亚洲精品ⅰ| 亚洲欧美一区在线| 99国产精品久久久久久久成人热| 午夜精品久久久久| 一区二区精品国产| 久久色在线播放| 欧美在线91| 欧美日韩一区在线| 免费日韩成人| 国产午夜精品理论片a级探花| 亚洲国产综合在线看不卡| 国产一区二区av| 亚洲一区欧美一区| 中文在线资源观看网站视频免费不卡| 久久精品视频在线播放| 亚洲欧美日韩中文播放| 久久久精品日韩欧美| 日韩视频不卡| 亚洲国产欧美日韩另类综合| 欧美一区二区三区免费视频| 一区二区三区四区蜜桃| 久久尤物电影视频在线观看| 欧美一区二区高清| 欧美午夜精品久久久久久浪潮| 亚洲第一精品影视| 精品不卡视频| 久久久久久久欧美精品| 久久久欧美精品sm网站| 国产欧美日韩一区二区三区| 一区二区欧美精品| 亚洲在线观看| 国产精品久久久久aaaa九色| 亚洲精品免费在线观看| 99精品视频免费| 欧美日韩亚洲不卡| 一本大道av伊人久久综合| 一区二区三区欧美亚洲| 欧美日韩国产精品| 99pao成人国产永久免费视频| 日韩视频在线观看国产| 欧美大片免费观看在线观看网站推荐| 欧美风情在线| 亚洲另类视频| 欧美日本在线| 一本不卡影院| 欧美在线高清视频| 激情视频亚洲| 老**午夜毛片一区二区三区| 欧美激情精品久久久久久蜜臀| 亚洲精品日本| 欧美亚一区二区| 午夜精品美女自拍福到在线 | 国产麻豆日韩| 性视频1819p久久| 久热这里只精品99re8久| 尤物yw午夜国产精品视频明星 | 欧美激情中文不卡| 亚洲毛片网站| 国产精品99一区二区| 亚洲永久精品国产| 麻豆国产精品一区二区三区 | 欧美一区二区三区久久精品茉莉花 | 国产精品青草久久| 久久精品国产亚洲a| 亚洲风情亚aⅴ在线发布| 亚洲午夜女主播在线直播| 国产伦精品免费视频| 美女视频黄免费的久久| 日韩一区二区免费高清| 久久国产精彩视频| 亚洲肉体裸体xxxx137| 欧美性猛交xxxx免费看久久久| 午夜久久久久久| 亚洲国产精品第一区二区三区| 中文国产成人精品久久一| 国产亚洲观看| 欧美日韩亚洲综合| 欧美一区二区精品久久911| 欧美午夜精品久久久久久孕妇| 亚洲日本免费| 久久精品二区| 99热在线精品观看| 国产视频欧美视频| 欧美国产日韩一区| 欧美尤物巨大精品爽| 91久久精品一区| 久久免费视频网| 一区二区三区国产精华| 在线高清一区| 国产一区二区精品| 国产精品欧美一区二区三区奶水 | 欧美性开放视频| 欧美成人精品一区二区| 欧美在线观看视频| 亚洲网站在线播放| 亚洲精品中文字幕在线观看| 欧美成ee人免费视频| 久久不射网站| 欧美在线电影| 欧美在线一二三| 亚洲欧洲av一区二区|