資料庫知識點④

来源:http://www.cnblogs.com/zpfbuaa/archive/2016/05/24/5522527.html
-Advertisement-
Play Games

1.函數依賴的定義 (a)平凡的函數依賴與非平凡的函數依賴 (b)函數依賴是語義範疇的概念 (c)函數依賴關係的存在與時間無關 (d)函數依賴可以保證關係分解的無損連接性 2.函數依賴的基本性質 SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE) (a)投影性:一組屬性函數決定它的子 ...


 1.函數依賴的定義

  (a)平凡的函數依賴與非平凡的函數依賴

  (b)函數依賴是語義範疇的概念

  (c)函數依賴關係的存在與時間無關

  (d)函數依賴可以保證關係分解的無損連接性

2.函數依賴的基本性質 SCD(SNO,SN,AGE,DEPT,MN,CNO,SCORE)

  (a)投影性:一組屬性函數決定它的子集

  舉例:(SNO,CNO)->SNO 和(SNO,CNO)->CNO

  (b)擴張性: 若x->y且w->z 則有(x,w)->(y,z)

  舉例:SNO->(SN,AGE) DEPT->MN 則有(SNO,DEPT)->(SN,AGE,MN)

  (c)合併性:若x->y 且x->z則有x->(y,z)

  舉例:SNO->(SN,AGE) SNO->(DEPT,MN) 則有SNO->(SN,AGE,DEPT,MN)

  (d)分解性:若x->(y,z)則有x->y, x->z

3.完全函數依賴與部分函數依賴

  1.如果X→Y,並且對於X的任何一個真子集X′,都有X′→ Y,則稱Y對X完全函數依賴(Full Functional Dependency),記作 X -(f)->Y

  2.如果對X的某個真子集X′,有X′→Y,則稱Y對X部分函數依賴(Partial Functional Dependency) 記作X -(p)-> Y。

  舉例:

  在關係模式SCD中

  因為SNO -\->SCORE,且CNO -\-> SCORE,所以有:(SNO,CNO)-(f)->SCORE 。

  而SNO→AGE,所以(SNO,CNO)-(p)->AGE

  3.只有當決定因素是組合屬性時,討論部分函數依賴才有意義

  4.當決定因素是單屬性時,只能是完全函數依賴。

  舉例:在關係模式S(SNO,SN,AGE,DEPT),決定因素為單屬性SNO,有SNO→(SN,AGE,DEPT),不存在部分函數依賴。

4.傳遞函數依賴

  1.定義:

  設有關係模式R(U),U是屬性全集,X,Y,Z是U的子集,

  若X→Y,但Y -\->X,而Y→Z(Y 不屬於X,Z 不屬於Y),則稱Z對X傳遞函數依賴(Transitive Functional Dependency),記作:X-(t)-> Z。

  如果Y→X,則X <->Y,這時稱Z對X直接函數依賴,而不是傳遞函數依賴。

  舉例:

  例如,在關係模式SCD中,SNO→DEPTN,但DEPTN -\->SNO,而DEPTN→MN,則有SNO-(t)->MN。系主任是對學號的傳遞依賴

  當學生不存在重名的情況下,有SNO→SN,SN→SNO,SNO <->SN,SN→DEPTN,這時DEPTN對SNO是直接函依賴,而不是傳遞函數依賴。

5.總結函數依賴

  綜上所述,函數依賴分為完全函數依賴、部分函數依賴傳遞函數依賴三類,它們是規範化理論的依據和規範化程度的準則,下麵我們將以介紹的這些概念為基礎,進行資料庫的規範設計。

6.範式

  規範化的基本思想是消除關係模式中的數據冗餘,消除數據依賴中的不合適的部分,解決數據插入、刪除時發生異常現象。

  這就要求關係資料庫設計出來的關係模式要滿足一定的條件。關係資料庫的規範化過程中:不同程度的規範化要求設立的不同標準稱為範式(Normal Form)。規範化的程度不同,產生不同的範式。滿足最基本規範化要求的關係模式叫第一範式,在第一範式中進一步滿足一些要求為第二範式,以此類推就產生了第三範式等概念。

  每種範式都規定了一些限制約束條件。

7.範式發展過程

  範式的概念最早由E.F.Codd提出。

  從1971年起,Codd相繼提出了關係的三級規範化形式,即第一範式(1NF)、第二範式(2NF)、第三範式(3NF)。

  1974年,Codd和Boyce以共同提出了一個新的範式的概念,即Boyce-Codd範式,簡稱BC範式。

  1976年Fagin提出了第四範式,

  後來又有人定義了第五範式。

  至此在關係資料庫規範中建立了一個範式系列:1NF,2NF,3NF,BCNF,4NF,5NF,一級比一級有更嚴格的要求。

clip_image002

8.第一範式(First Normal Form

  第一範式是最基本的規範形式,即關係中每個屬性都是不可再分的簡單項。

  定義:

  如果關係模式R,其所有的屬性均為簡單屬性,即每個屬性域都是不可再分的,則稱R屬於第一範式,簡稱1NF,記作R屬於1NF。

  然而,一個關係模式僅僅屬於第一範式是不適用的。給出的關係模式SCD屬於第一範式,但其具有大量的數據冗餘,具有插入異常、刪除異常、更新異常等弊端。

  為什麼會存在這種問題呢?

  讓我們分析一下SCD中的函數依賴關係,它的關係鍵是(SNO,CNO)的屬性組合,所以有:

  (SNO,CNO) -(f)->SCORE

  SNO→SN,(SNO,CNO)-(p)-> SN

  SNO→AGE,(SNO,CNO)-(p)-> AGE

  SNO→DEPT,(SNO,CNO)-(p)-> DEPT

  SNO -(t)-> MN,(SNO,CNO)-(p)-> MN

  我們可以用函數信賴圖表示以上函數依賴關係,如下圖所示。

clip_image004

9.第二範式

  定義 如果關係模式RÎ1NF,且每個非主屬性都完全函數依賴於R的每個關係鍵,則稱R屬於第二範式(Second Normal Form),簡稱2NF,記作R屬於2NF。

  分析:在關係模式SCD中,SNO,CNO為主屬性,AGE,DEPT,MN,SCORE均為非主屬性,經上述分析,存在非主屬性對關係鍵的部分函數依賴,所以SCD不是2NF。

  拆分:而將SCD分解成三個關係模式S(SNO,SN,AGE,DEPT),D(DEPT,MN),SC(SNO,CNO,SCORE),其中S的關係鍵為SNO,D的關係鍵為DEPT,都是單屬性,不可能存在部分函數依賴。

  結果:而對於SC,(SNO,CNO)-(f)->SCORE。所以SCD分解後,消除了非主屬性對關係鍵的部分函數依賴,S,D,SC均屬於2NF。

  經以上分析,可以得到兩個結論:

  1.從1NF關係中消除非主屬性關係鍵部分函數依賴,則可得到2NF關係。

  2.如果R的關係鍵為單屬性,或R的全體屬性均為主屬性,則R屬於2NF。

10.1NF分解為2NF規則

  2NF規範化是指把1NF關係模式通過投影分解轉換成2NF關係模式的集合。

  分解時遵循的基本原則就是“一事一表”,讓一個關係只描述一個實體或者實體間的聯繫。如果多於一個實體或聯繫,則進行投影分解。

11.舉例分析

clip_image005

clip_image006

clip_image007

  改善之處:關係模式SD和SC在性能上比SCD有了顯著提高。

  (a)1NF的關係模式經過投影分解轉換成2NF後,消除了一些數據冗餘

  (b)分析圖中SD和SC中的數據,可以看出,它們存儲的冗餘度比關係模式SCD有了較大輻度的降低。

  (c)學生的姓名、年齡不需要重覆存儲多次。

  (d)這樣便可在一定程度上避免數據更新所造成的數據不一致性的問題

  (e)由於把學生的基本信息與選課信息分開存儲,則學生基本信息因沒選課而不能插入的問題得到瞭解決,插入異常現象得到了部分改善。

  (f)同樣,如果某個學生不再選修C1課程,只在選課關係SC中刪去該該學生選修C1的記錄即可,而SD中有關該學生的其它信息不會受到任何影響,也解決了部分刪除異常問題。

 

上一篇資料庫知識點③:http://www.cnblogs.com/zpfbuaa/p/5503200.html

下一篇資料庫知識點⑤:http://www.cnblogs.com/zpfbuaa/p/5523163.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在PL/SQL塊中可以定義變數和數據類型,這使得PL/SQL塊對數據的處理更加靈活。 變數和類型的定義放在PL/SQL塊的變數聲明部分。 變數的定義與使用 變數的定義有兩種格式,分別為:變數名 類型 [約束][DEFAULT 預設值]變數名 類型[約束][:=初始值]其中用方括弧限定的部分是可選的。 ...
  • 關於PL/SQL的內容,主要包括匿名塊、存儲過程和存儲函數三種形式的PL/SQL塊,以及在PL/SQL 中如何使用變數、類型、流控制語句、游標、觸發器、異常等內容,以及如何利用PL/SQL塊訪問資料庫中的數據。 PL/SQL概述 如果說SQL是一種標準的資料庫訪問語言,那麼PL/SQL則是Oracl ...
  • 20 分區 20 分區... 1 20.1 MySQL的分區概述... 2 20.2 分區類型... 3 20.2.1 RANGE分區... 3 20.2.2 LIST分區... 5 20.2.3 COLUMNS分區... 7 20.2.3.1 RANGE COLUMNS分區... 7 20.2.3 ...
  • 下載MongoDB 下載地址:https://www.mongodb.com/download-center?jmp=nav#community 這裡是在windows平臺下安裝MongoDB, 下載後,在本機,按提示進行安裝。 註: 這個安裝只是為了得到MongoDB的文件,安裝的機器並不是伺服器... ...
  • 第四章作業 1. 什麼是資料庫安全性? 答:資料庫的安全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。 2. 試述實現資料庫安全性控制的常用方法和技術。 答:實現資料庫安全性控制的常用方法和技術有: (1)用戶標識和鑒別:該方法由系統提供一定的方式讓用戶標識自己的名字或身份。每次用 ...
  • 1.第三範式 定義 如果關係模式R屬於2NF,且每個非主屬性都不傳遞依賴於R的每個關係鍵,則稱R屬於第三範式(Third Normal Form),簡稱3NF,記作R屬於3NF。 基本性質: 1.如果R屬於3NF,則R也是2NF。 2.如果R屬於2NF,則R不一定是3NF。 例如,我們前面由關係模式 ...
  • 一:安裝sql server 2005過程中出現 如下問題:“選擇的功能中沒有任何功能可以安裝或升級”: 解決方案:Microsoft SQL Server 2005→配置工具→SQL配置管理器→SQL Server 2005服務→右邊的兩個服務啟動SQL Server FullTest Searc ...
  • 資料庫的恢復模型是否影響故障恢復,在簡單恢復模式里,你是否會丟失事務?在今天的文章里我想談下這點,詳細討論下。 恢復模式(Recovery Models) 對於這個問題的最簡單的答案是不會:恢復模型不會影響故障恢復,只用簡單恢復模式你不會丟失事務。那資料庫恢復模型的目的是什麼? 你用恢復模型你只告訴 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...