日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 函数依赖关系_MySQL关系规范化

發(fā)布時間:2025/3/21 数据库 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 函数依赖关系_MySQL关系规范化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MySQL關(guān)系規(guī)范化

做者:就叫易易好了

時間:2020/10/21

指導(dǎo)老師:桃群老師

1、關(guān)系規(guī)范化

一、函數(shù)依賴

什么是函數(shù)依賴?好比學生管理系統(tǒng)數(shù)據(jù)庫,有學生姓名(Sname)、學生系名(Sdept)、學生學號(Sno)等等。一個學號只能惟一肯定一個學生,一個學生只在一個系學習。因此,當“學號”肯定后,學生姓名和該學生所在系也被惟一肯定了。web

這時咱們能夠說數(shù)據(jù)庫

Sno函數(shù)決定Sname和Sdept,或者說Sname,Sdept函數(shù)依賴于Sno數(shù)據(jù)庫設(shè)計

可記做:Sno->Sname,Sno->Sdeptsvg

1.1 徹底函數(shù)依賴

在R(U)中,若X->Y,而且對于X的任意一個真子集X’,都有Y不依賴于X’,那么稱Y對X徹底函數(shù)依賴函數(shù)

好比一個學生的學號和課程號才能共同決定一個學生該門課的成績,即(Sno,Cno)->Grade,但X的真子集為Sno或者Cno,他們沒法單獨決定該門課的成績,因此學號和課程號徹底函數(shù)依賴成績學習

2.2 部分函數(shù)依賴

在R(U)中,若X->Y,對于X的任意一個真子集X’,有Y依賴于X’ ,那么稱Y對X部分函數(shù)依賴。設(shè)計

好比(Sno,Cno)->Sname,X的真子集Sno和Cn都能單獨決定學生姓名,因此學號和課程號部分函數(shù)依賴學生姓名。code

2.3 傳遞函數(shù)依賴

在R(U)中,若是Y依賴于X,X不依賴于Y,Z依賴于Y,則稱Z對X傳遞函數(shù)依賴;xml

好比:Sno->Sdept,Sdept不依賴于Sno,Sdept->Manager,則Sno傳遞函數(shù)依賴于Managerit

2.4 直接函數(shù)依賴

在R(U)中,若是Y依賴于X,X依賴于Y,Z依賴于Y,則稱Z對X直接函數(shù)依賴

好比:Sno->Sdept,Sdept->Sno,Sdept->Manager,則Sno直接函數(shù)依賴于Manager

2、范式

范式是衡量關(guān)系的規(guī)范化程度。

知足最低要求的是第一范式,簡稱1NF。在第一范式中知足進一步要求為第二范式,簡稱2NF,以此類推。

1NF<2NF <3NF

一個低一級的范式關(guān)系模式,經(jīng)過模式分解可轉(zhuǎn)換為更高一級的范式關(guān)系模式集合,這個過程就叫規(guī)范化。

一、第一范式 (1NF)

若一個關(guān)系模式R的全部屬性都是不可再分項,則該關(guān)系屬于第一范式

學號

姓名

班級

正班長

副班長

2018029

成小白

5班

龍龍

豫豫

2018030

晨小美

5班

龍龍

豫豫

在上面這個表格中,全部屬性都是不可再分項,因此該關(guān)系為1NF。

二、第二范式(2NF)

1NF是關(guān)系數(shù)據(jù)庫中對關(guān)系最基本的要求,但不是理想的結(jié)構(gòu)形式,仍然有大量的數(shù)據(jù)冗余和操做異常。因此為了解決這些問題,就要消除模式中屬性之間存在的部分函數(shù)依賴,將其轉(zhuǎn)化成更高一級的第二范式。

若關(guān)系模式R屬于1NF,且R中每一個非主屬性都徹底函數(shù)依賴于主關(guān)鍵字,則稱R是第二范式(2NF)

也就是說當1NF消除了非主屬性對關(guān)鍵字的部分函數(shù)依賴,則稱為2NF

案例:

學生關(guān)系S(Sno,Sname,Sdept,Manager,Cno,Grade)

·關(guān)系S屬于第一范式

·關(guān)系S不屬于第二范式,存在非主屬性對(Sno,Cno)的部分函數(shù)依賴

·若是將該學生關(guān)系S分解成如下兩個關(guān)系S1和S2,

-S1(Sno,Cno,Grade),這時Grade徹底依賴于主碼

沒有部分函數(shù)依賴,因此屬于第二范式

-S2(Sno,Sname,Sdept,Manager)

主碼是Sno,其余非主關(guān)鍵字都是徹底函數(shù)依賴于主碼

屬于第二范式

三、第三范式(3NF)

當?shù)诙妒较朔侵鲗傩詫Υa的傳遞函數(shù)依賴,則稱為第三范式

舉例:

關(guān)系S1(Sno,Cno,Grade),不存在非主屬性對主屬性的部分函數(shù)依賴個傳遞函數(shù)依賴,因此S1屬于第三范式。

關(guān)系S2(Sno,Sname,Sdept,Manager),存在非主屬性Manager對碼Sno的傳遞函數(shù)依賴,即Sno->Sdept,Sdept不依賴于Sno,Sdept->Manager,Sno傳遞函數(shù)依賴于Manager。因此S2不屬于第三范式。

若將S2分解成下述兩個關(guān)系S3和S4,即:

S3(Sno,Sname,Sdept),消除了非主屬性對主屬性的部分函數(shù)依賴和傳遞函數(shù)依賴,屬于第三范式。

S4(Sdept,Manager),消除了非主屬性對主屬性的部分函數(shù)依賴和傳遞函數(shù)依賴,屬于第三范式。

解決了刪除異常、更新異常和冗余度大等問題

四、BC范式(BCNF)

當?shù)谌妒较酥鲗傩詫Υa的部分和傳遞函數(shù)依賴,稱為BCNF

若是關(guān)系R是BCNF,那么R必定是3NF

若是R是第三范式,而且R只有一個候選碼,則R必屬于BCNF

二元關(guān)系模式R一定是BCNF

都是主屬性的關(guān)系并不是必定屬于BCNF

從數(shù)據(jù)庫設(shè)計的角度看,在函數(shù)依賴的基礎(chǔ)上,分解最高范式BCNF的模式中仍然勛在數(shù)據(jù)冗余問題,這時就須要更高的范式來解決這個問題,本篇文章先到這里,后面再更新多值依賴,鏈接依賴和更高范式喔~

總結(jié)

以上是生活随笔為你收集整理的mysql 函数依赖关系_MySQL关系规范化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。