規範化理論1

2021-05-13 13:03:10 字數 4912 閱讀 1719

教學目標:讓學生掌握函式依賴;

教學重難點:完全依賴、部分依賴、傳遞依賴

教學工具:多**教室

課時安排:2課時

教學方法:講授法、練習法

教學過程:

匯入語:面對乙個現實問題,如何選擇乙個比較好的關係模式的集合,每個關係又應該由哪些屬性組成。這屬於資料庫設計的問題,確切地講是資料庫邏輯設計的問題。

那麼關聯式資料庫規範化理論,這是資料庫邏輯設計的理論依據。所以今天我們開始全面進入資料庫設計學習階段。

面對乙個現實問題,如何選擇乙個比較好的關係模式的集合,每個關係又應該由哪些屬性組成。這屬於資料庫設計的問題,確切地講是資料庫邏輯設計的問題。那麼關聯式資料庫規範化理論,這是資料庫邏輯設計的理論依據。

所以今天我們開始全面進入資料庫設計學習階段。

4.1 規範化問題的提出

4.1.1 規範化理論的主要內容

關聯式資料庫的規範化理論最早是由關聯式資料庫的創始人提出的。

在關係資料庫系統中,關係模型包括一組關係模式,各個關係不是完全孤立的。

如何設計乙個適合的關係資料庫系統,關鍵是關聯式資料庫模式的設計,乙個好的關聯式資料庫模式應該包括多少關係模式,而每乙個關係模式又應該包括哪些屬性,又如何將這些相互關聯的關係模式組建乙個適合的關係模型,這些工作決定了到整個系統執行的效率,也是系統成敗的關鍵所在,所以必須在關聯式資料庫的規範化理論的指導下逐步完成。

關聯式資料庫的規範化理論主要包括三個方面的內容:

函式依賴

正規化(normal form)

模式設計

其中,函式依賴起著核心的作用,是模式分解和模式設計的基礎,正規化是模式分解的標準。

4.1.2 關係模式的儲存異常問題

資料庫的邏輯設計為什麼要遵循一定的規範化理論?

什麼是好的關係模式?

某些不好的關係模式可能導致哪些問題?

下面通過例子進行分析:

例如,要求設計教學管理資料庫,其關係模式scd如下:

scd(sno,sn,age,dept,mn,**o,score)

其中,sno表示學生學號,sn表示學生姓名,age表示學生年齡,dept表示學生所在的系別,mn表示系主任姓名,**o表示課程號,score表示成績。

根據實際情況,這些資料有如下語義規定:

1. 乙個系有若干個學生,但乙個學生只屬於乙個系;

2. 乙個系只有一名系主任,但乙個系主任可以同時兼幾個系的系主任;

3. 乙個學生可以選修多門功課,每門課程可有若干學生選修;

4. 每個學生學習課程有乙個成績。

在此關係模式中填入一部分具體的資料,則可得到scd關係模式的例項,即乙個教學管理資料庫,如圖4.1所示。

根據上述的語義規定,並分析以上關係中的資料,我們可以看出: (sno,**o)是該關係模式的主關係鍵。但在進行資料庫的操作時,會出現以下幾方面的問題。

1. 資料冗餘。每個系名和系主任的名字儲存的次數等於該系的學生人數乘以每個學生選修的課程門數,同時學生的姓名、年齡也都要重複儲存多次,資料的冗餘度很大,浪費了儲存空間。

2. 插入異常。如果某個新系沒有招生,尚無學生時,則系名和系主任的資訊無法插入到資料庫中。

因為在這個關係模式中,(sno,**o)是主關係鍵。根據關係的實體完整性約束,主關係鍵的值不能為空,而這時沒有學生,sno和**o均無值,因此不能進行插入操作。

另外,當某個學生尚未選課,即**o未知,實體完整性約束還規定,主關係鍵的值不能部分為空,同樣不能進行插入操作。

3. 刪除異常。

某系學生全部畢業而沒有招生時,刪除全部學生的記錄則系名、系主任也隨之刪除,而這個系依然存在,在資料庫中卻無法找到該系的資訊。

4. 更新異常。

如果學生改名,則該學生的所有記錄都要逐一修改sn;

又如某系更換系主任,則屬於該系的學生記錄都要修改mn的內容,稍有不慎,就有可能漏改某些記錄,這就會造成資料的不一致性,破壞了資料的完整性。

由於存在以上問題,我們說,scd是乙個不好的關係模式,那麼,怎樣才能得到乙個好的關係模式呢?

我們把關係模式scd分解為下面三個結構簡單的關係模式。

學生關係s(sno,sn,age,dept)

選課關係sc(sno,**o,score)

系關係d(dept,mn)

在以上三個關係模式中,實現了資訊的某種程度的分離:

s中儲存學生基本資訊,與所選課程及系主任無關;

d中儲存系的有關資訊,與學生無關;

sc中儲存學生選課的資訊,而與所學生及系的有關資訊無關。

與scd相比,分解為三個關係模式後,資料的冗餘度明顯降低。

避免了插入異常。

避免了刪除異常。

避免了更新異常。

經過上述分析,我們說分解後的關係模式是乙個好的關聯式資料庫模式。

從而得出結論,乙個好的關係模式應該具備以下四個條件:

1. 盡可能少的資料冗餘。

2. 沒有插入異常。

3. 沒有刪除異常。

4. 沒有更新異常。

但要注意,乙個好的關係模式並不是在任何情況下都是最優的,

比如查詢某個學生選修課程名及所在系的系主任時,要通過連線,而連線所需要的系統開銷非常大,因此要以實際設計的目標出發進行設計

如何按照一定的規範設計關係模式,將結構複雜的關係分解成結構簡單的關係,從而把不好的關聯式資料庫模式轉變為好的關聯式資料庫模式,這就是關係的規範化。

4.2 函式依賴

4.2.1 函式依賴的定義及性質

關係模式中的各屬性之間相互依賴、相互制約的聯絡稱為資料依賴。

資料依賴一般分為函式依賴、多值依賴和連線依賴。

函式依賴是最重要的資料依賴,是關係模式中屬性之間的一種邏輯依賴關係。

例如在上一節介紹的關係模式scd中,sno與sn、age、dept之間都有一種依賴關係。

由於乙個sno只對應乙個學生,而乙個學生只能屬於乙個系,所以當sno的值確定之後,sn,age,dept的值也隨之被唯一的確定了。

這類似於變數之間的單值函式關係。設單值函式y=f(x),自變數x的值可以決定乙個唯一的函式值y。

在這裡,我們說sno決定函式(sn,age,dept),或者說(sn,age,dept)函式依賴於sno。

4.2.1.1 函式依賴的定義

定義4.1 設關係模式r(u,f),u是屬性全集,f是u上的函式依賴集,x和y是u的子集,如果對於r(u)的任意乙個可能的關係r,對於x的每乙個具體值,y都有唯一的具體值與之對應,則稱x決定函式y,或y函式依賴於x,記作x→y。我們稱x為決定因素,y為依賴因素。

當y不函式依賴於x時,記作:x y。當x→y且y→x時,則記作:

x y。

對於關係模式scd

u= f=

乙個sno有多個score的值與其對應,因此score不能唯一地確定,即score不能函式依賴於sno,所以有: sno score。

但是score可以被(sno,**o)唯一地確定。所以可表示為:(sno,**o)→score。

有關函式依賴的幾點說明:

1.平凡的函式依賴與非平凡的函式依賴。

當屬性集y是屬性集x的子集時,則必然存在著函式依賴x→y,這種型別的函式依賴稱為平凡的函式依賴。

如果y不是x的子集,則稱x→y為非平凡的函式依賴。

若不特別宣告,我們討論的都是非平凡的函式依賴。

2.函式依賴是語義範疇的概念。

我們只能根據語義來確定乙個函式依賴,而不能按照其形式化定義來證明乙個函式依賴是否成立。

例如,對於關係模式s,當學生不存在重名的情況下,可以得到:

sn→age

sn→dept

這種函式依賴關係,必須是在沒有重名的學生條件下才成立的,否則就不存在函式依賴了。

所以函式依賴反映了一種語義完整性約束。

3.函式依賴與屬性之間的聯絡型別有關。

(1)在乙個關係模式中,如果屬性x與y有1:1聯絡時,則存在函式依賴x→y,y→x,即x y。

例如,當學生無重名時,sno sn。

(2)如果屬性x與y有1:m的聯絡時,則只存在函式依賴x→y。

例如,sno與age,dept之間均為1:m聯絡,所以有sno→age,sno→dept。

(3)如果屬性x與y有m: n的聯絡時,則x與y之間不存在任何函式依賴關係。

例如,乙個學生可以選修多門課程,一門課程又可以為多個學生選修,所以sno與**o之間不存在函式依賴關係。

由於函式依賴與屬性之間的聯絡型別有關,所以在確定屬性間的函式依賴關係時,可以從分析屬性間的聯絡型別入手,便可確定屬性間的函式依賴

4.函式依賴關係的存在與時間無關。

因為函式依賴是指關係中的所有元組應該滿足的約束條件,而不是指關係中某個或某些元組所滿足的約束條件。

當關係中的元組增加、刪除或更新後都不能破壞這種函式依賴。

因此,必須根據語義來確定屬性之間的函式依賴,而不能單憑某一時刻關係中的實際資料值來判斷。

例如,對於關係模式s,假設沒有給出無重名的學生這種語義規定,則即使當前關係中沒有重名的記錄,也只能存在函式依賴sno→sn,而不能存在函式依賴sn→sno,因為如果新增加乙個重名的學生,函式依賴sn→sno必然不成立。

所以函式依賴關係的存在與時間無關,而只與資料之間的語義規定有關。

5.函式依賴可以保證關係分解的無損連線性。

設r(x,y,z),x,y,z為不相交的屬性集合,如果x→y或x→z,則有r(x,y,z)=r[x,y]*r[x,z],

其中,r[x,y]表示關係r在屬性(x,y)上的投影,即r等於其投影在x上的自然連線,這樣便保證了關係r分解後不會丟失原有的資訊,稱作關係分解的無損連線性。

例如,對於關係模式scd,有sno→(sn,age,dept,mn),scd(sno,sn,age,dept,mn,**o,score)=scd[sno,sn,age,dept,mn]*scd[sno,**o,score],也就是說,用其投影在sno上的自然連線可復原關係模式scd。

這一性質非常重要,在後一節的關係規範化中要用到。

4.2.1.2 函式依賴的基本性質

1.投影性。

根據平凡的函式依賴的定義可知,一組屬性函式決定它的所有子集。

公司規範化管理實施大綱 1

第一條規範化管理概念 我們所稱的規範化管理,是指根據本公司的章程的業務發展需要,合理地制定公司的組織規程和基本制度以及各類管理事務的作業流程 包括各類報表 圖表 公司的ci規範等等 以形成統 一 規範和相對穩定的管理體系,通過對該體系的實施和不斷完善,達成公司管理動作的井然有序 協調高效之目的。第二...

規範化管理

規範分監區定置管理的思考 分監區定置管理規範化建設是對分監區空間的格局布置,在科學 合理 規範 符合內在規律的基礎上,建立統一的準則。規範和推進分監區定置管理,是規範監獄執法行為的基礎,是提高分監區管理效率的現實需要,是確保監管安全的環境保障,它對於監獄貫徹落實 首要標準 強化教育和矯治功能,降低刑...

監理規範化

監理資料 監理日誌 一 監理日誌是現場監理人員的工作日記,是工程施工過程中重要的工作證據之一。為今後追溯問題 分清責任提供資料依據 並為撰寫監理月報 監理工作總結積累素材 同時,也是考核監理機構和監理人員的重要材料。二 填寫要求 1 監理日誌由專業監理工程師填寫,由專案總監理工程師簽閱。總監理可以逐...