資料庫作業15 關係資料理論

2021-10-05 05:38:19 字數 3990 閱讀 9156

本章總結–鏈結

(1)【學生】student(sno,sname,sbirth,deptname,cno,rno)

【班級】class(cno,pname,deptname,cnum,cyear)

【系】dept(deptname,deptno,deptadd,dnum)

【學會】m(mname,myear,madd,mnum)

【學會人員資訊】sm(sno,mname,smyear)

(2)【學生】不存在:不存在就是找不到,我感覺這裡因為所有屬性對學號都是直接依賴。(主要是有很多互相依賴,就不存在傳遞了)

【班級】不存在:函式傳遞如下:

班號→ 專業名→系名

班號→系名

班號→ 人數

班號→入學年份

(專業名,入校年份)→班號

班號→(專業名,入校年份)

【系】不存在

【學會】不存在

【學會人員資訊】不存在

如圖:emm怎麼傳上來這麼大

(3)(專業名,入校年份)→班號

(學號,學會名)→入會年份

這兩個都是完全函式依賴

其他的、是部分函式依賴,有點多,因為跟語義無關,就不都寫出來了(主要是確實麻煩)

(4)【學生】sno(學號)是候選碼,cno(班號)和deptname(系名)是外碼。

【班級】cno(班號)和(專業名,入校年份)是候選碼,deptname(系名)是外碼。

【系】deptname(系名)和deptno(系號)是候選碼。

【學會】mname(學會名)是候選碼。

【學會人員資訊】(sno,mname)(學號,學會名)是候選碼。sno,mname是外碼。

全碼不存在,因為不存在u對u的完全函式依賴。

(1)設r是bcnf

bcnf每乙個決定屬性集都包含候選碼,所以bc也是候選碼。

答:bc是候選碼的時候r是bcnf

(2)解:

l=ce

r=∅lr=abd

l肯定是碼,把lr和r依次帶入l判斷可得r的所有碼:ace,bce,dce

如何求關係模式的碼

(3)函式依賴的決定屬性集並不含有碼,所以r屬於3nf。

(1)正確

(2)正確

(3)正確

(4)錯誤,當函式依賴b→a在r上成立時,關係r(a,b,c)也等於其投影r1(a,b)和r2(a,c)的連線。

(5)正確

(6)正確

(7)正確

(8)錯誤,比如(學號,科目)→成績,單獨的任何乙個都不能確定具體成績

(1)證明:

設r是bcnf,不是3nf。

則r中必然存在這樣的碼x、屬性組y及非主屬性z(z ⊇ y),使得x→y,y→z成立,y ↛ x不成立,

y →z且z ⊆ y,y不含有碼

r若是bcnf,則若x →y且y ⊆ x時x必含有碼定義衝突,所以證得:r若是bdnf則必是3nf

若r是3nf,存在非主屬性對碼的傳遞依賴,則不是bcnf.

(2)證明:

定義1:r中若不存在這樣的碼x、屬性組y及非主屬性z(z ⊇ y),使得x→y,y→z成立,y ↛ x不成立,則r是3nf。

定義2:2nf的每乙個非主屬性都完全函式依賴於任何乙個候選碼

設r不屬於2nf

因為2nf的每乙個非主屬性都完全函式依賴於任何乙個候選碼

所以r必然有乙個非主屬性z是部分依賴於乙個候選碼,我們設這個候選碼是(x,y)

設y→z,則x ↛ z,(x,y)→y,y↛(x,y)

(x,y)是碼,y是屬性組,z是非主屬性

所以得到(x,y)→y,y↛(x,y),y→z,

與3nf定義衝突,則「r屬於3nf不屬於2nf」是錯的

證得:如果r屬於3nf,則必屬於2nf

y(x1,x2,x3,x4)

(x1,x2)→x3

x2→x4

(1)侯選碼?

(2)屬於第幾正規化?

解:候選碼(x1,x2)

第一正規化滿足

(x1,x2)→x3, x2→x4,存在非主屬性x4對碼(x1,x2)的部分函式依賴

第二正規化不滿足

y最高屬於第一正規化

r(a,b,c,d)

f=(1)侯選碼?

(2) 最高屬於第幾正規化? 解:

l=ar=d

lr=abcd

候選碼為:(a,b),(a,c),非主屬性d

第一正規化滿足

第二正規化滿足

第三正規化滿足(無傳遞依賴)

b→c,決定屬性b不包含候選碼,非bcnf

r最高屬於第三正規化

r(x,y,z,w),f=

(1)侯選碼?

(2)最高屬於第幾正規化?

解:候選碼為(x,y),(x,w)

第一正規化滿足

第二正規化滿足

第三正規化滿足(無傳遞依賴)

y←→w,決定因素ym都不包含碼,不是bcnf.

r最高屬於第三正規化

r(a,b,c,d,e) f=

(1)求候選碼。

(2)最高屬於第幾正規化,為什麼?

1nf。非主屬性b、d並不完全依賴於碼,非2nf。

(3)分解到3nf。

解:候選碼:(c,e)

第一正規化滿足

e→d,存在非主屬性d對主碼的部分函式依賴,不滿足2nf

r最高屬於第一正規化

分解到2nf

r1(e,d)

r2(a,b,c,e)

分解到3nf

r1(e,d)

r2(b,c,e)

r3(a,b)

r(商店編號,商品編號,數量,部門編號,負責人)

每個商店的每種商品只在乙個部門銷售,

每個商店的每個部門只有乙個負責人,

每個商店的每種商品只有乙個庫存數量。

(1)求候選碼。

(2)r已達第幾正規化?為什麼?

(3)若不屬於3nf,分解成3nf。

r1(a,b,c,d),r2(a,d,e)

解:r(a,b,c,d,e),f(ab→cd,ad→e)

候選碼:(a,b)

第一正規化滿足

第二正規化滿足(。。。感覺可能有點問題,但是說不出來

非主屬性e完全依賴於ad,ad依賴於碼,存在非主屬性對碼的傳遞依賴

r最高屬於第二正規化

分解成3nf

r1(a,b,c,d)

r2(a,d,e)

r(a,b,c,d,e,f) f=

(1)寫出關鍵字。

(2)分解到2nf。

r1(a,b,d,f),r2(a,c,e)

(3)分解到3nf。

r1(a,b),r2(c,d,f,e)

(4)分解到4nf。

r1(a,b),r2(c,e),r3(d,f) 解:

l=ar=ef

候選碼:(a,b),(a,d)

分解到2nf,非主屬性完全函式依賴於任何乙個候選碼

r1(a,b,d)

r2(a,c,e)

r3(b,d,f)

分解到3nf,消除非主屬性對碼的傳遞依賴

r1(a,b,d)

r2(c,e)

r3(b,d,f)

分解到4nf,消除非凡且非函式依賴的多值依賴

r1(a,b,d)

r2(c,e)

r3(d,f)

the end

大概用時:5.5h,有的地方還是弄得不是很清楚。。

資料庫 四 關係資料理論

關係內部屬性與屬性之間的一種約束關係,通過屬性間值的相等與否體現。好的模式應 避免插入 刪除 更新異常,資料冗餘盡量少。r u 是屬性集u上的關係模式,x y是u的子集,在r中任意乙個可能的關係r中,不可能存在兩個元組,其在x上的屬性值相等,而在y上的屬性值不等,則稱函式x確定y 或y函式依賴於x記...

資料庫之關係資料理論

常用正規化 關聯式資料庫知道了,再來理解正規化。正規化是關聯式資料庫關係模式規範化的標準,從規範化的寬鬆到嚴格,分為不同的正規化,通常使用的有第一正規化。第二正規化 第三正規化及bc正規化。正規化是建立在函式依賴基礎上的。函式依賴 如果乙個表中某乙個欄位y的值是由另外乙個欄位或一組欄位x的值來確定的...

資料庫六(關係資料理論)

一 資料依賴 乙個關係內部屬性與屬性之間的約束關係 型別 函式依賴 fd 和多值依賴 mvd 資料依賴對關係模式的影響 資料冗餘太大 更新異常 插入異常 刪除異常 二 規範化 乙個低一級正規化的關係模式可以通過模式分解轉為若干高階正規化的模式集合。函式依賴 乙個關係表中屬性之間的聯絡 設有乙個關係模...