1. 程式人生 > >Oracle_高級功能(1) 數據庫設計

Oracle_高級功能(1) 數據庫設計

它的 作業 -- 1nf 性別 傳遞 rac 部門 power

1、三範式
規範化關系模式稱為範式。
第一範式:在一個關系模型R中,如果R的每一個屬性的值域中的值都是不可再分的最小數據單位,
則稱R為第一範式(1NF)。
第二範式:如果一個關系模型R屬於1NF,並且R的每一個非主屬性都完全依賴於它的每一個候選鍵,
則稱R為第二範式(2NF)。
第三範式:如果一個關系模型R屬於2NF,並且R的任何一個非主屬性都不傳遞依賴於
它的任何一個候選鍵,則稱R為第三範式(3NF)。

舉例:
關系模型:{職員、部門}
1NF:{職員編號、職員名、職位、工資、入職日期、部門名、辦公地點}
2NF:{職員編號、職員名、職位、工資、入職日期、部門名}、{部門編號、部門名、部門辦公地點}

3NF:{職員編號、職員名、職位、工資、入職日期、部門編號}、{部門編號、部門名、部門辦公地點}
關系模型:學生、課程、成績
1NF:{學號、學生名、課程號、課程名、成績}
2NF:{學號、學生名}、{課程號、課程名}、{學生名、課程名、成績}
3NF:{學號、學生名}、{課程號、課程名}、{學號、課程號、成績}

白話3NF:
1NF:每個列要分到不能再分(最細一層)。
2NF:非主鍵列必須完全依賴於主鍵列(把不能完全依賴的列剔除,組成新的表)。
3NF:每個表除外鍵列以外,不能再有其它表的任何列。

2.實體關系模型
實體(Entity):現實中存在的抽象的事物。
屬性(Attribute):實體的特征。
關系(Relationship):實體間(包括:實體和屬性間)的相互作用,

分為:1對1,1對多,多對多三種。

舉例:
1對1:一個職員/學生只能有一個名字。
1對多:一個職員只能屬於一個部門,一個部門可以有多個職員。
多對多:一個學生可以學多門課程,一門課程可以有多個學員來學;
可以將一個多對多轉化成2個1對多。

對應到數據庫:
實體--》表
屬性--》列
1對1關系--》主鍵
1對多關系--》外鍵
多對多關系--》關系表+2外鍵

3.Powerdesigner實操

4.練習
關系模型:{專業、班級、學生、課程、教師}
專業(專業代碼、專業名)
班級(專業代碼、班級號、班級)
學生(學號、姓名、性別、出生日期)
成績(學號、課程號、成績)
課程(課程號、課程名、學時)
講授(課程號、教師編號)

教師(教師編號、姓名、職稱、電話)
設置(專業代碼、課程號)
MAJOR

5.作業
浦發銀行數據庫需求分析

Oracle_高級功能(1) 數據庫設計