[數據庫]四種範式

前提知識


  • 什麼是鍵碼?
    如果一個屬性或多個屬性的集合{A,B,C,D….}滿足下面的條件,稱爲關係R的鍵碼。
    1、這些屬性函數決定該關係的所有其它屬性
    2、{A,B,C,D….}的任何真子集都不能函數決定R的其它屬性,也就是說{A,B,C,D….}必須是最小的

  • 什麼是主屬性?
    鍵碼所在的屬性成爲主屬性。

  • 什麼是非主屬性?
    非鍵碼所在的屬性稱爲非主屬性。

    例子:
    這裏寫圖片描述
    比如上圖中,SnoCname就是主屬性,其他的爲非主屬性。{Sno,Cname}爲鍵碼。


關於函數依賴


部分函數依賴:設X,Y是關係R的兩個屬性集合,存在X→Y,若X’是X的真子集,存在X’→Y,則稱Y部分函數依賴於X。
舉個例子:學生基本信息表R中(學號,身份證號,姓名)當然學號屬性取值是唯一的,在R關係中,(學號,身份證號)->(姓名),(學號)->(姓名),(身份證號)->(姓名);所以姓名部分函數依賴與(學號,身份證號);

完全函數依賴:設X,Y是關係R的兩個屬性集合,X’是X的真子集,存在X→Y,但對每一個X’都有X’!→Y,則稱Y完全函數依賴於X。
例子:學生基本信息表R(學號,班級,姓名)假設不同的班級學號有相同的,班級內學號不能相同,在R關係中,(學號,班級)->(姓名),但是(學號)->(姓名)不成立,(班級)->(姓名)不成立,所以姓名完全函數依賴與(學號,班級);

傳遞函數依賴:設X,Y,Z是關係R中互不相同的屬性集合,存在X→Y(Y !→X),Y→Z,則稱Z傳遞函數依賴於X。
例子:在關係R(學號 ,宿舍, 費用)中,(學號)->(宿舍),宿舍!=學號,(宿舍)->(費用),費用!=宿舍,所以符合傳遞函數的要求;

來自 https://blog.csdn.net/rl529014/article/details/48391465





四種範式


  • 第一範式

如果一個關係模式中所有屬性都是不可分割的基本屬性,則這個關係模式屬於第一範式

  • 第二範式

如果一個關係模式屬於第一範式,其中所有非主屬性都完全函數依賴於鍵碼,則屬於第二範式

  • 第三範式

如果一個關係模式屬於第一範式,其中所有非主屬性都不傳遞依賴於鍵碼,則屬於第三範式

  • BC範式

如果一個關係模式屬於第一範式,其中所有屬性都不傳遞依賴於鍵碼,則屬於BC範式

一張圖總結:

這裏寫圖片描述

相關文章
相關標籤/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。