資料庫正規化

2021-07-03 05:23:18 字數 1459 閱讀 6353

第一正規化:

屬性中沒有多值屬性和組合屬性

boyce-codd正規化 (bcnf正規化)

對所有的函式依賴,至少有乙個成立

1 α-->β是平凡的函式依賴

2.α是模式r的乙個超碼

eg.  bor_loan=(customer,loan_number,amount)    loan_number--->amount 成立 ,乙個貸款號只能對應乙個金額,但是loan_number並不是超碼,因為一筆貸款可以有多個customer。 分解成 borrower=(customer,loan_number)    loan=(loan_number,amount) 滿足bcnf正規化

處理非bcnf正規化的方法:將r分解成下列兩個模式       α∪β 和   r-(β-α)

在我們分解不屬於bcnf正規化的模式時,可能會產生多種不屬於bcnf正規化的值,需要進行多次分解,直至最後產生乙個bcnf模式的集合

第三正規化(3nf):

放鬆了bcnf的要求,允許非平凡函式依賴的左邊不是超碼。

對所有的函式依賴,至少有乙個成立

1 α-->β是平凡的函式依賴

2.α是模式r的乙個超碼

3.β-α中的每個屬性a都包含在r的乙個候選碼中

1.假設我們將模式r=分解為(a,b,c,)  (a,d,e) 證明該分解是無損分解,如果如下函式依賴集f成立:

a->bc

cd->e

b->e

e->a

如果r1∪r2-->r1  or  r1∪r2-->r2  則是無損分解      r1∪r2=a ,a是候選碼,所以成立。是無損分解

2.解釋如何用函式依賴表明

實體集account和customer 間存在的一對一聯絡集

實體集account和customer間存在的多對一聯絡集

pk(r) 表示關係r的主鍵

pk(account)-->pk(customer) pk(customer)-->pk(account) 說明存在一對一的聯絡集

pk(account)-->pk(customer) 說明存在多對一的聯絡集

3.用armstrong公理證明合併律的正確有效性

若α-->β   則 α-->αβ     (增補律)

若α-->γ   則αβ-->βγ  (增補律)

α-->βγ (傳遞律)

4 計算關於關係傳遞模式r=(a,b,c,d,e)的如下函式依賴集f的閉包

a-->bc     得到    a-->b ;a-->c;a-->d;a-->e ;a-->abcde

cd-->e    得到 cd-->abcde

b-->d       得到 bc-->cd-->abcde

e-->a    得到 e-->abcde

列出r的候選碼   (a,bc,cd,e)

找出上述f的正則覆蓋fc,左邊都是沒有重複的,也沒有無關屬性,因此fc=f,不用修改



資料庫 資料庫正規化

關聯式資料庫的設計規範。不同的規範要求被稱為不同的正規化,越高的正規化資料庫冗餘越小。減少資料庫中資料冗餘的過程 1 第一正規化 1nf 在關係模式r中,當且僅當所有屬性只包含原子值,即每個分量都是不可再分的資料項,則稱r滿足1nf。例如表所示的教師職稱情況關係就不滿足1nf。原因在於,該關係模式中...

資料庫正規化 三正規化

所謂第一正規化 1nf 是指在關係模型中,對域新增的乙個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化 1nf 表中的每個域值只能是實體的乙個屬性或乙個屬性的...

資料庫正規化

注 表在定義中被稱為關係,記作r 欄位在定義中被稱作屬性 模式 資料庫中有三種模式,外模式,內模式,模式 粗體是關鍵字的意思 斜體為外來鍵 以前寫下來的,但是用了多年的帳號已經忘了,唯有把文章轉到這裡來了 真暈哦 http blog.csdn.net fantasylu archive 2004 0...