首先要理解幾個鍵值。
超鍵:在關係模式中,能唯一標識元組的屬性集稱為 super key。
候選鍵:關係模式中,能唯一標識元組並且不含多餘屬性的屬性集稱為候選鍵。值得注意的是,超鍵與候選鍵的區別,超鍵可能含有多餘屬性,而候選鍵不能。
主鍵:在乙個關係的若干個候選鍵中隨意指定乙個作為關鍵字,此關鍵字就是主鍵。
外來鍵:關係r1中的屬性或屬性組非r1的碼,但它是其他關係的碼,那麼該屬性集對於關係模式r1而言是外來鍵。
主屬性:候選碼的所有屬性稱為主屬性。
如何區分超鍵,候選鍵,主鍵?
相同點:功能方面,用於唯一標識乙個元組。
不同點:超鍵有多餘的屬性,主鍵和候選鍵沒有,它們中的屬性是必要的。主鍵是候選鍵的乙個,只是被資料庫設計者選中而已。
聯想理解:候選人和候選鍵,主席與主鍵。(也就是說,候選鍵中的任何乙個鍵都可以作為主鍵,只是設計者之選擇了其中的乙個。)
(例子是檢驗概念的唯一標準),大家看例子吧。
例1:學生(學號,姓名,性別,專業號,年齡)
(學號,姓名)是超鍵,而不是候選鍵,學號是候選鍵,同時也是主鍵。
例2:學生(學號,姓名,性別,專業號,年齡)主鍵:學號,外來鍵:專業名
專業(專業號,專業名)主鍵:專業號,外來鍵:無
例3:成績(學號,姓名,課程號,成績)學生無同名。
(學號)等價於(姓名)
(學號,課程號)候選鍵
(姓名,課程號)候選鍵
所以主屬性:學號,姓名,課程號
正規化1nf:通俗的說,就是所有的屬性都是不可再分的,復合屬性是不允許的。(這一點容易理解)
2fn:
先了解部分函式依賴的概念。
部分函式依賴:主碼的部分只要有一部分就可以確定屬性的值。
在第一正規化的前提下,保證函式依賴關係是全部函式依賴,而非部分函式依賴。
第三正規化:
在第二正規化的前提下,且沒有函式傳遞依賴於碼。
定理:如果某個關係模式,它的關鍵字是單個關鍵字,沒有部分的函式依賴問題,那麼它的肯定是2nf。(仔細理解這句話)
我有點笨,還是初學者,所以有什麼不對的地方,還請大家多多指點。
sqlserver 三大正規化
分析 資料庫設計應遵循三大正規化分別為 第一正規化 確保表中每列的原子性 不可拆分 第三正規化 非主鍵列之間沒有傳遞函式依賴關係 消除傳遞依賴 詳述 第一正規化 例子 資訊如下 針對以上需求,下面分別設計兩種型別 第一種表設計 不滿足第一正規化 第二種表設計 滿足第一正規化 第二正規化 需求描述 設...
SQL server 分頁方法小結
這裡面介紹一下常用的分頁方法 1.使用top來分頁 sql select top pagesize from table where id not in select top pagesize pageindex 1 id from table 2.使用 row number over sql se...
SQLSERVER 儲存過程 事務 小結
sqlserver 事務 在儲存過程中使用事務的時候也遇到些概念性的錯誤和操作性的錯誤,特記錄下來。提到事務,一般都知道其是乙個單個的工作單元,也就是使用者定義的乙個操作序列,要麼都成功,要麼都失敗。事務有乙個 隱藏的 xact abort 設定開關,一般在啟用事務 transaction 的時候,...