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

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

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

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

    軟件測試開發技術之正確的數據庫設計確保數據的完整性[1]

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

    領測軟件測試網 軟件測試開發技術之正確的數據庫設計確保數據的完整性[1]  數據庫設計

    關鍵字:數據庫設計 完整性

      誰需要它?

      解決了正規化、主鍵和關系問題后,一些人可能會忽視引用完整性。假定你負責維護一個重要數據庫,其中存儲著產品和訂單數據。同時,假定你為主鍵使用了自然數據,并在某天更新了一位特定用戶的主鍵值。不久,客戶氣沖沖地打來電話,因為發票出錯,或是因為承諾的時間并沒有發貨。另外,也可能是因為客戶獲得了訂單,但一直沒有拿到發票。錯誤可能要等到系統審計時才會發現——而且即便在審計時,也有可能檢測不到任何錯誤。

      到底發生了什么?當你更改客戶的主鍵值時,你實際忽略了為那個客戶的相關記錄更新外鍵值。換言之,你創建了“孤兒”——也就是不和主鍵值匹配的外鍵記錄。在這種情況下,系統沒辦法將訂單的細節與客戶對應起來。

      沒有引用完整性的保障,就可能輸入不匹配的外鍵值。關系模型不允許這些“孤兒”記錄。盡管你的數據庫系統可能允許創建“孤兒”,但開發者必須主動地防止它們。要防止“孤兒”,最簡單的辦法就是實現引用完整性。

      什么是引用完整性?

      關系模型強制引用完整性。你必須啟用系統的引用完整性特性來滿足關系規則。雖然在表和表之間啟用引用完整性是一個簡單的操作,但你必須理解這樣做(和不這樣做)的后果。從技術上說,完整性規則負責維護關系(也因此維護著數據)。有3種類型的完整性:

      Entity(實體)——必須不重復地標識每一條記錄。

      Referential(引用)——每個外鍵值都必須在相關的表中有一個匹配的主鍵值(或者為Null)。

      Business(業務)——這些規則是業務特有的,與關系數據庫理論無關。

      如果禁用引用完整性,你在任何時候都可輸入數據,只要數據不會違反其他表或字段屬性的要求,例如驗證規則和數據類型等。相反,引用完整性會強制規則,限制你在什么時候能修改、添加或刪除數據。啟用引用完整性后,除非在相關的表中存在一個匹配的主鍵值,否則不能輸入一個新的外鍵值。如果相關的表中有一個匹配的外鍵值,就不能更改主鍵值。另外,如果在相關的表中有匹配的外鍵值,就不能刪除一個主鍵值。在這種情況下刪除主鍵記錄會造成“孤兒”。

      決定何時啟用引用完整性

      除非你有非常特別的理由,否則在每個數據庫中都應啟用引用完整性。但在啟用引用完整性之前,必須滿足幾方面的條件:

      要強制引用完整性的關系必須基于一個主鍵或者一個惟一性的索引。

      不可在不同數據庫的表之間強制引用完整性。所有表都必須在同一個數據庫內。

      關系必須基于數據類型相同的字段(有的系統允許在自動編號字段和一個編號字段之間建立關系)。

      一個例子

      只有親身體驗,才能完全掌握引用完整性。以一個書籍數據庫為基礎,使用你的系統在Books和Publishers表之間啟用引用完整性。圖A展示了Microsoft Access中的對話框和Relationships窗口(請查閱文檔,了解如何在自己系統中啟用引用完整性)。

      

      

    延伸閱讀

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

    TAG: 技術 開發 軟件測試 數據庫設計

    21/212>

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