• <em id="ommgs"></em>
    <dd id="ommgs"><center id="ommgs"></center></dd>

    1. <em id="ommgs"><acronym id="ommgs"><u id="ommgs"></u></acronym></em>
      首 頁IT知識庫翔宇問吧收藏本站
      當前位置:翔宇亭IT樂園IT知識庫數據庫數據庫基礎

      設計不好的關系模式存在的問題

      減小字體 增大字體 作者:biye5u.com  來源:本站原創  發布時間:2017-05-26 09:48:46

      在討論如何設計一個好的關系模式之前,我們先來了解一下設計不好的關系模式會出現什么問題。

      假定有如下關系SCD:

      SCD(Sno,Sname,Ssex,Sdept,Sdean,Cno,Cname,Grade)

      其中,SCD表示學生關系,對應的各屬性依次為學號、姓名、性別、院系、系主任、課程號、課程名稱和成績。關系的主碼為(Sno,Cno)。

      這個關系模式存在如下問題。

      1.數據冗余

      當一個學生選修多門課程就會出現數據冗余。假如某個學生(“2010050101”,“丁天波”,“男”,“管理學院”,“張勝”)共選了20門課程,則該學生的學號、姓名、性別、院系、系主任信息要重復存儲20次,如果全校有一萬名學生都要選修多門課程,則這樣的冗余就會造成大量的空間上的浪費。同時,同一門課程如果有多名學生選修,課程名稱要重復存儲多次,這樣進一步增加了存儲空間的開銷。

      2.更新異常

      由于存在大量的數據冗余,當更新數據庫中的數據時,系統要付出很大的代價來維護數據庫的完整性。否則會面臨數據不一致性的危險。例如,某院系要換系主任,或某門課程要修改名字,必須要修改每一個相關的元組,如果一部分修改了,而另外一部分未修改,則造成了數據的不一致性。

      3.插入異常

      如果剛開出一門課程,但是這樣的課程還沒有學生選修,則無法把課程信息插入到該數據庫中;如果一個學生剛剛入學,還沒有選修任何課程,則這樣的學生無法插入到該數據庫中;如果一個院系剛剛成立,還沒有招收任何學生,則這個院系信息也無法添加到數據庫中。

      4.刪除異常

      如果選修某門課程的學生都畢業了,在刪除學生信息時,則相關的課程信息業會跟著被刪除。

      鑒于以上種種問題,可以得出結論:設計的該關系模式SCD并不是一個好的關系模式。一個好的關系模式應該不會發生插入異常、刪除異常和更新異常,數據冗余也會降到最小。

      一個關系模式之所以會產生上述問題,是由于關系模式中存在著不良的函數依賴關系引起的。

      知識評論評論內容只代表網友觀點,與本站立場無關!

         評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
      請注意用語文明且合法,不要發布帶有攻擊性、侮辱性的言論,謝謝合作!
      用戶名: 查看更多評論
      分 值:100分 90分 80分 70分 60分 40分 20分
      內 容:
      驗證碼:
      關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖
      本站部分內容來自互聯網,如有侵權,請來信告之,謝謝!
      Copyright © 2007-2020 biye5u.com. All Rights Reserved.
      japanese日本熟妇photo