• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試開發技術數據庫設計三大范式應用實例剖析

    發布: 2009-9-28 10:13 | 作者: 不詳 | 來源: 領測軟件測試網 | 查看: 49次 | 進入軟件測試論壇討論

    領測軟件測試網

    (3) 插入異常:

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

      (4) 刪除異常:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    42/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>