1、關系模式的表示?
R:表示關系的名字比如:sc選課表,student學生表。
U:表示一個關系模式的所有屬性,比如student表:U(sno,sname,sage,ssex)。
D:表示屬性的取值范圍比如:性別的取值范圍為“男”或“女”。
DOM:表示屬性到取值范圍的依賴。
F:為屬性U上的一組數據依賴。
比如:知道學號sno可以推測出sname,sage,ssex。
?2、數據依賴
比如:學號sno可以推測出sname,sage,ssex。
這就是一種數據依賴。
sname函數依賴于sno。
sage函數依賴與sno。
ssex函數依賴于sno。
3、函數依賴在現實生活中的體現
【例】描述一個學生關系,可以有學號、姓名、系名等屬性。
一個學號只對應一個學生,一個學生只在一個系中學習,學號確定之后學生所在的系的值就被唯一確定。
Sno函數決定Sname,Sno函數決定Sdept。
sno -> Sname,Sno -> Sdept。
4、數據依賴存在的問題
比如一個選課表:
U(sno,cno,sdept,mname,grade)?
sno:學號,cno:課號,sdept:系名,mname:系主任名,grade:學生成績
(1)數據冗余
????????浪費大量儲存空間,每一個系主任的姓名重復出現,重復次數與該系所有學生的所有課程成績出現次數相同。
(2)更新異常
? ? ? ? 數據冗余,更新的時候。維護數據完整性代價太大。如果某系更換系主任后,必須更改與該系學生有關的每一個元組,否則會出現數據不一致的異常。
(3)插入異常
? ? ? ? 如果一個系剛成立,尚無學生,則無法把這個系及其系主任的信息存入數據庫。
(4)刪除異常
? ? ? ? 如果某個系的學生畢業了,則刪除該系學生信息的同時,把這個系及其主任信息也丟掉了。
5、函數依賴的解決方式
????????把單一的模式分為多個關系模式,使得每個模式只存在一個函數依賴。