日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

二、数据库原理-设计理论

發布時間:2024/9/5 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二、数据库原理-设计理论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一章 關系數據庫設計理論

?

第一節 ?完整性

?

關系完整性是為保證數據庫中數據的正確性和相容性,對關系模型提出的某種約束條件或規則。完整性通常包括實體完整性,參照完整性和用戶定義完整性。

?

一、實體完整性

實體完整性是指關系的主關鍵字不能取空值。例如:學生表(學號,姓名,姓別,年齡)其中學號屬性不以為空。

二、參照完整性

參照完整性定義是建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。例如:

專業表(專業號,專業名)

學生表(學號,專業號,姓別,年齡)

學生表中的“學號”設為主鍵,“專業號”設為外鍵,也就是說學生表中的“專業號”取值要參照專業表的“專業號”值。

三、用戶自定義完整性

實體完整性和參照完整性適用于任何關系型數據庫系統,它主要是針對關系的主關鍵字和外部關鍵字取值必須有效而做出的約束。用戶定義完整性則是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。例如:學生表(學號,姓名,姓別,年齡)中的“學號”取值必須為數字且為8位數,這就是用戶定義完整性。

?

第二節 ?范?

?

關系數據庫是利用關系描述現實世界。關系必須遵循一定的規則,這種規則就是范式。規范化目的是使結構更合理,消除存儲異常,使數據冗余盡量小,便于插入、刪除和更新。

?

一、第一范式(1NF

在任何一個關系數據庫中,第一范式(1NF)是對關系模式的基本要求,不滿足第一范式(1NF)的數據庫就不是關系數據庫。

所謂第一范式(1NF)是指數據庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。(即字段不可再分)

例如:職工號,姓名,電話號碼組成一個表(一個人可能有一個辦公室電話 和一個家里電話號碼)規范成為1NF有三種方法:

1.重復存儲職工號和姓名。這樣,關鍵字只能是電話號碼。

2.二是職工號為關鍵字,電話號碼分為單位電話和住宅電話兩個屬性

3.三是職工號為關鍵字,但強制每條記錄只能有一個電話號碼。

以上三個方法,第一種方法最不可取,按實際情況選取后兩種情況

?

二、第二范式(2NF

第二范式(2NF)是在第一范式(1NF)的基礎上建立起來的,即滿足第二范式(2NF)必須先滿足第一范式(1NF)。第二范式(2NF)要求數據庫表中的非主屬性完全依賴主屬性(即非主鍵字段依賴主鍵)

例如:選課關系 SCISNOCNOGRADECREDIT)其中SNO為學號, CNO為課程號,GRADEGE 為成績,CREDIT 為學分。 由以上條件,關鍵字為組合關鍵字(SNOCNO

?

在應用中使用以上關系模式有以下問題:

1.數據冗余:假設同一門課由40個學生選修,學分就重復40次。

2.更新異常:若調整了某課程的學分,相應的元組CREDIT值都要更新,有可能會出現同一門課學分不同。

3.插入異常:如計劃開新課,由于沒人選修,沒有學號關鍵字,只能等有人選修才能把課程和學分存入。

4.刪除異常:若學生已經結業,從當前數據庫刪除選修記錄。某些門課程新生尚未選修,則此門課程及學分記錄無法保存。

?

原因:非主鍵字段CREDIT依賴于CNO,也就是CREDIT部分依賴組合關鍵字SNOCNO)而不是完全依賴。

解決方法:分成兩個關系模式 SC1SNOCNOGRADE),C2CNOCREDIT)。新關系包括兩個關系模式,它們之間通過SC1中的外關鍵字CNO相聯系,需要時再進行自然聯接,恢復了原來的關系。

?

三、第三范式(3NF

滿足第三范式(3NF)必須先滿足第二范式(2NF)。簡而言之,第三范式(3NF)要求非主屬性之間不存在傳遞信賴(非主鍵字段不能相互依賴)

例如:S1SNOSNAMEDNAMELOCATION) 各屬性分別代表學號,姓名,所在系,系地址。

  關鍵字SNO決定各個屬性。由于是單個關鍵字,沒有部分依賴的問題,肯定是2NF。但這關系肯定有大量的冗余,有關學生所在的幾個屬性DNAMELOCATION將重復存儲,插入,刪除和修改時也將產生類似以上例的情況。

原因:關系中存在傳遞依賴造成的。即SNO -> DNAMEDNAME -> LOCATION, 因此關鍵字DNAME LOCATION 函數決定是通過傳遞依賴 DNAME -> LOCATION 實現的。也就是說,DNAME不直接決定非主屬性LOCATION

解決方法:分為兩個關系 SSNOSNAMEDNO);DDNODNAMELOCATION

?

  ?目地:規范化目的是使結構更合理,消除存儲異常,使數據冗余盡量小,便于插入、刪除和更新

  原則:遵從概念單一化 "一事一地"原則,即一個關系模式描述一個實體或實體間的一種聯系。規范的實質就是概念的單一化。

  方法:將關系模式投影分解成兩個或兩個以上的關系模式。

  要求:分解后的關系模式集合應當與原關系模式"等價",即經過自然聯接可以恢復原關系而不丟失信息,并保持屬性間合理的聯系。

  注意:一個關系模式結這分解可以得到不同關系模式集合,也就是說分解方法不是唯一的。最小冗余的要求必須以分解后的數據庫能夠表達原來數據庫所有信息為前提來實現。其根本目標是節省存儲空間,避免數據不一致性,提高對關系的操作效率,同時滿足應用需求。實際上,并不一定要求全部模式都達到BCNF不可。有時故意保留部分冗余可能更方便數據查詢。尤其對于那些更新頻度不高,查詢頻度極高的數據庫系統更是如此。

以上是基礎理論的東西,請大家想想,你在做數據庫設計的時候有沒有考慮過遵過以上幾個范式呢,有沒有在數據庫設計做得不好之時,想一想,對比以上所講,到底是違反了第幾個范式呢?我見過的數據庫設計,很少有人做到很符合以上幾個范式的,一般說來,第一范式大家都可以遵守,完全遵守第二第三范式的人很少了,遵守的人一定就是設計數據庫的高手了,BCNF的范式出現機會較少,而且會破壞完整性,你可以在做設計之時不考慮它。

參考資料:http://baike.baidu.com/view/2131801.htm

????????? http://zhidao.baidu.com/question/278790.html

轉載于:https://www.cnblogs.com/Ewin/archive/2010/04/18/1714811.html

總結

以上是生活随笔為你收集整理的二、数据库原理-设计理论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。