<strike id="rrvnz"></strike>

    <noframes id="rrvnz">
    <noframes id="rrvnz"><span id="rrvnz"><pre id="rrvnz"></pre></span><address id="rrvnz"></address>
    <address id="rrvnz"><nobr id="rrvnz"></nobr></address><noframes id="rrvnz">
      <em id="rrvnz"></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.
        特黄特色三级在线观看 - 视频 - 在线观看 - 影视资讯 -心晴网