第07章專題-數(shù)據(jù)庫設(shè)計_第1頁
第07章專題-數(shù)據(jù)庫設(shè)計_第2頁
第07章專題-數(shù)據(jù)庫設(shè)計_第3頁
第07章專題-數(shù)據(jù)庫設(shè)計_第4頁
第07章專題-數(shù)據(jù)庫設(shè)計_第5頁
已閱讀5頁,還剩120頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

專題:數(shù)據(jù)庫設(shè)計1數(shù)據(jù)庫設(shè)計21用戶需求分析2概念結(jié)構(gòu)設(shè)計(ER圖)3邏輯結(jié)構(gòu)設(shè)計(關(guān)系模式)4物理結(jié)構(gòu)設(shè)計了解組織機構(gòu)了解各部門業(yè)務(wù)情況確定數(shù)據(jù)庫的信息組成1.用戶需求分析3兩大類數(shù)據(jù)模型2.概念結(jié)構(gòu)設(shè)計(E-R圖)4DBMS支持的數(shù)據(jù)模型概念模型認識抽象信息世界機器世界現(xiàn)實世界中客觀對象的抽象過程現(xiàn)實世界現(xiàn)實世界概念模型數(shù)據(jù)庫設(shè)計人員完成邏輯模型物理模型由DBMS完成概念模型邏輯模型數(shù)據(jù)庫設(shè)計人員完成基本概念

(1)實體(Entity)

客觀存在并可相互區(qū)別的事物稱為實體??梢允蔷唧w的人、事、物或抽象的概念。(2)屬性(Attribute)

實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。

(3)碼(Key)

唯一標(biāo)識實體的屬性集稱為碼。

2.概念結(jié)構(gòu)設(shè)計(E-R圖)5實體名稱屬性(4)域(Domain)

屬性的取值范圍稱為該屬性的域。(5)實體型(EntityType)

用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型(6)實體集(EntitySet)同型實體的集合稱為實體集2.概念結(jié)構(gòu)設(shè)計(E-R圖)6(7)聯(lián)系(Relationship)

現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系實體型間聯(lián)系兩個實體型一對一聯(lián)系(1:1)三個實體型一對多聯(lián)系(1:n)多個實體型多對多聯(lián)系(m:n)

2.概念結(jié)構(gòu)設(shè)計(E-R圖)7聯(lián)系兩個實體型間的聯(lián)系8實體型A聯(lián)系名實體型B111:1聯(lián)系實體型A聯(lián)系名實體型Bmnm:n聯(lián)系實體型A聯(lián)系名實體型B1n1:n聯(lián)系概念模型的表示方法很多實體-聯(lián)系方法(E-R方法)用E-R圖來描述現(xiàn)實世界的概念模型E-R方法也稱為E-R模型2.概念結(jié)構(gòu)設(shè)計(E-R圖)9概念模型的設(shè)計步驟2.概念結(jié)構(gòu)設(shè)計(E-R圖)10邏輯結(jié)構(gòu)設(shè)計需求分析數(shù)據(jù)流圖數(shù)據(jù)字典

數(shù)據(jù)抽象、局部視圖的設(shè)計分E-R圖

視圖集成用戶滿意總E-R圖NoYes實例:教學(xué)管理數(shù)據(jù)庫模型的設(shè)計2.概念結(jié)構(gòu)設(shè)計(E-R圖)11練習(xí)1:

假如要為某基層單位建立一個“基層單位”數(shù)據(jù)庫。通過調(diào)查得出,用戶要求數(shù)據(jù)庫中存儲下列基本信息。部門:部門號,名稱,領(lǐng)導(dǎo)人編號;職工:職工號,姓名,性別,工資,職稱,照片,簡歷;工程:工程號,工程名,參加人數(shù),預(yù)算,負責(zé)人;辦公室:地點,編號,電話。這些信息的關(guān)聯(lián)的語義為:每個部門有多個職工,每個職工只能在一個部門工作;每個部門只有一個領(lǐng)導(dǎo)人,領(lǐng)導(dǎo)人不能兼職;每個部門可以同時承擔(dān)若干工程項目,數(shù)據(jù)庫中應(yīng)記錄每個職工參加項目的日期;一個部門可有多個辦公室;每個辦公室只有一部電話;數(shù)據(jù)庫中還應(yīng)存放每個職工在所參加的工程項目中承擔(dān)的具體職務(wù)。要求:設(shè)計基層單位數(shù)據(jù)庫的概念模型。2.概念結(jié)構(gòu)設(shè)計(E-R圖)12練習(xí)1參考答案:13領(lǐng)導(dǎo)部門職工n工作111辦公辦公室n1n工程承擔(dān)1負責(zé)參加nmn1具體職務(wù)日期實體倉庫:倉庫號、面積、電話號碼零件:零件號、名稱、規(guī)格、單價、描述供應(yīng)商:供應(yīng)商號、姓名、地址、電話號碼、帳號項目:項目號、預(yù)算、開工日期職工:職工號、姓名、年齡、職稱實體之間的聯(lián)系如下:

(1)一個倉庫可以存放多種零件,一種零件可以存放在多個倉庫中。倉庫和零件具有多對多的聯(lián)系。用庫存量來表示某種零件在某個倉庫中的數(shù)量。(2)一個倉庫有多個職工當(dāng)倉庫保管員,一個職工只能在一個倉庫工作,倉庫和職工之間是一對多的聯(lián)系。職工實體型中具有一對多的聯(lián)系(3)職工之間具有領(lǐng)導(dǎo)-被領(lǐng)導(dǎo)關(guān)系。即倉庫主任領(lǐng)導(dǎo)若干保管員。(4)供應(yīng)商、項目和零件三者之間具有多對多的聯(lián)系練習(xí)二:用E-R圖表示某個工廠物資管理的概念模型14練習(xí)二參考答案15邏輯結(jié)構(gòu)設(shè)計(關(guān)系模式)16實體實體集合及實體聯(lián)系相關(guān)屬性集合加工、轉(zhuǎn)換數(shù)文件據(jù)記錄庫相關(guān)數(shù)據(jù)項集合數(shù)據(jù)世界DBMS的數(shù)據(jù)模型信息世界E-R模型關(guān)系模式對關(guān)系的描述,用關(guān)系名(屬性1,屬性2,…屬性n)來表示。eg.

庫存(倉庫號,器件號,數(shù)量)倉庫(倉庫號,城市,面積)邏輯結(jié)構(gòu)設(shè)計(關(guān)系模式)17轉(zhuǎn)換過程示意圖邏輯結(jié)構(gòu)設(shè)計(關(guān)系模式)18E-R圖關(guān)系模型1、實體相應(yīng)轉(zhuǎn)換為一個關(guān)系,實體名稱作為關(guān)系名稱,該關(guān)系包括對應(yīng)實體的全部屬性,并確定出該關(guān)系的關(guān)鍵字。轉(zhuǎn)換方法和原則2、聯(lián)系

a.聯(lián)系具有屬性:聯(lián)系名作為關(guān)系名,發(fā)生聯(lián)系的實體的主關(guān)鍵字作為聯(lián)系的主關(guān)鍵字。

b.聯(lián)系不具有屬性:不帶有屬性的聯(lián)系可以去掉。轉(zhuǎn)換舉例一廠長號*姓名年齡廠長廠號*廠名地點工廠管理11廠長(廠長號,姓名,年齡)工廠(廠號,廠名,地點)管理(廠號,廠長號)轉(zhuǎn)換舉例二倉庫號*地點面積倉庫貨號*品名價格產(chǎn)品存放1n倉庫(倉庫號,地點,面積)產(chǎn)品(貨號,品名,價格)數(shù)量存放(倉庫號,貨號,數(shù)量)轉(zhuǎn)換舉例三學(xué)號*姓名年齡學(xué)生課程號*課程名學(xué)時數(shù)課程學(xué)習(xí)mn學(xué)生(學(xué)號,姓名,年齡)課程(課程號,課程名,學(xué)時數(shù))成績學(xué)習(xí)(學(xué)號,課程號,成績)24nm學(xué)生課程選課學(xué)分課程號*課程名年齡姓名性別學(xué)號*練習(xí):解釋下列E—R模型圖中各圖形和線條代表的含義,并將其轉(zhuǎn)化為關(guān)系模式。數(shù)據(jù)模型的優(yōu)化1、關(guān)系模型基礎(chǔ)及關(guān)系運算3、對數(shù)據(jù)依賴進行極小化處理4、確定關(guān)系模式分別屬于第幾范式5、確定模式是否進行合并或分解2、確定數(shù)據(jù)依賴關(guān)系模型關(guān)系數(shù)據(jù)模型的組成要素:關(guān)系數(shù)據(jù)結(jié)構(gòu):實體及聯(lián)系統(tǒng)一用二維表表示(關(guān)系)。

關(guān)系操作

關(guān)系完整性約束查詢操作學(xué)號姓名年齡1姚明202張靚穎213成龍20關(guān)系模型實體完整性

參照完整性

用戶定義完整性選擇

投影

連接

除并

差積

增加

刪除

修改專門的關(guān)系運算傳統(tǒng)的集合運算更新操作1.屬性和域?qū)傩?-----用來描述事物特征。思考:用來描述學(xué)生特征的詞匯有哪些?關(guān)系數(shù)據(jù)結(jié)構(gòu)域----具有相同數(shù)據(jù)類型的值的集合。例如:姓名的取值范圍是合法姓名的集合。學(xué)號的域是若干位數(shù)字組成的字符串的集合。性別的域是{男},{女}?!⒁猓孩訇P(guān)系數(shù)據(jù)模型中,所有的屬性都應(yīng)是不可再分的原子數(shù)據(jù)的集合。②關(guān)系數(shù)據(jù)模型中,允許某些屬性值為空,即NULL。如:姓名、性別、年齡、籍貫、系別、專業(yè)學(xué)號姓名年齡性別系別專業(yè)01姚明26男體育籃球22王娜22女?dāng)?shù)學(xué)數(shù)教………………元組屬性基本概念及定義2.關(guān)系和元組設(shè)有一名為R的關(guān)系,它有屬性A1,A2,。。。,An,其對應(yīng)的域分別為D1,D2,。。。,Dn,則關(guān)系模式表示為:R(A1,A2,。。。,An)稱為關(guān)系R的模式。N為R的屬性的個數(shù),稱為R的目或度?;靖拍罴岸x在關(guān)系模型中,實體及實體間的聯(lián)系用關(guān)系來表示。

如:學(xué)生、課程、學(xué)生修讀課程的考試三個實體間的關(guān)系在關(guān)系模型中表達如下:

學(xué)生(學(xué)號、姓名、性別、年齡、班級號)課程(課程號、課程名、周學(xué)時、學(xué)分)

考試(學(xué)號、課程號、成績)基本概念及定義例如:關(guān)于學(xué)生的關(guān)系模式:Student(學(xué)號,姓名,性別,出生年月,系別,專業(yè))而其中某一個學(xué)生<06021,王娜,女,1986,數(shù)學(xué)系,信息與計算科學(xué)>就是關(guān)系Student的一個關(guān)系。所有學(xué)生的值構(gòu)成了關(guān)系的元組集合。結(jié)論:關(guān)系模式是型,是對關(guān)系的描述。關(guān)系是值,是關(guān)系模式的具體體現(xiàn);關(guān)系模式是穩(wěn)定的。關(guān)系是變化的,關(guān)系是某一時刻關(guān)系模式的內(nèi)容。

注意:

1]在關(guān)系R中,元組的次序無關(guān),但不能允許有相同的二個元組;屬性的次序無關(guān)。

2]一個關(guān)系可視為一個二維表。組成表的所有數(shù)據(jù)項都應(yīng)是不可再分的最小數(shù)據(jù)項。

3]關(guān)系對應(yīng)表

,

屬性對應(yīng)列

,

元組對應(yīng)行.3.碼/鍵候選碼/候選鍵――如果關(guān)系的某一個屬性或?qū)傩越M的值唯一地標(biāo)識一個元組。而其任何真子集無此性質(zhì),則這個屬性或?qū)傩越M稱為該關(guān)系的候選碼?;靖拍罴岸x主碼/主鍵------一個關(guān)系R可有多個候選碼,若選中一個作為Key,則它就是主碼,每個元組的主鍵值應(yīng)是唯一的。主屬性------主碼的屬性,稱為主屬性。非主屬性-----不包含在候選碼中的屬性,稱為非主屬性。

教師編號姓名年齡學(xué)歷1aaa40本科2bbb26碩士3ccc28博士侯選碼:教師編號,姓名主碼:教師編號主屬性:教師編號非主屬性:年齡,學(xué)歷R例1:例2:①學(xué)生R(學(xué)號,姓名,性別,專業(yè)號)

②專業(yè)S(專業(yè)號,專業(yè)名)

其中:關(guān)系R的“專業(yè)號”屬性與關(guān)系S的主碼“專業(yè)號”相對應(yīng),所以,“專業(yè)號”屬性是學(xué)生關(guān)系R的外碼。

基本概念及定義外碼------若關(guān)系R中的屬性或?qū)傩越MF并非該關(guān)系的碼,但它們與另外一個關(guān)系S的主碼相對應(yīng),則稱其為該關(guān)系的外碼。并稱R為參照關(guān)系,S為被參照關(guān)系。關(guān)系的完整性關(guān)系模型的完整性規(guī)則是對關(guān)系的某種約束條件,有四類完整性約束:域完整性、實體完整性、參照完整性和用戶定義的完整性。2、實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A取值不能為空,即不能為NULL。

如:stu(學(xué)號,姓名,性別,系別)學(xué)號不能取空值。注意:所有主屬性都不能取空值,而不僅是主碼整體不能取空值。如:選修(學(xué)號,課程號,成績)中,學(xué)號和課程號都不能取空值。1、域完整性約束規(guī)則:最簡單、最基本的約束。屬性值應(yīng)是域中的值,屬性的值能否為空,由問題的語義決定的。例:考試分數(shù)(成績)的取值范圍是0~100。

3、參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng),則對于R中每個元組在F上的值必須為:

或者取NULL

或者等于S中某個元組的主碼值。例2:①R(學(xué)號,姓名,性別,專業(yè)號)②S(專業(yè)號,專業(yè)名)4、用戶定義的完整性:某一具體的數(shù)據(jù)庫的屬性及其關(guān)系所應(yīng)滿足的條件。例如:規(guī)定舉重隊員25>年齡>15,100kg>體重>55Kg。小結(jié):

實體完整性和參照完整性是所有關(guān)系數(shù)據(jù)庫都支持的,稱為關(guān)系的兩個不變性。關(guān)系的完整性關(guān)系操作關(guān)系代數(shù)關(guān)系演算結(jié)構(gòu)化查詢語言:SQL元組關(guān)系演算域關(guān)系演算關(guān)系操作關(guān)系操作的能力常用關(guān)系代數(shù)表示

6)選擇(Selection)

7)投影(Projection)

8)連接

(Join)

4)除(Division)5)迪卡爾積1)并(Union)2)交(Intersection)3)差(SetDifference)

關(guān)系操作方式的特點是集合操作(一次一集合)關(guān)系代數(shù)——運算符集合運算并,交,差,迪卡爾積集合運算——并Union(∪)R和S的并,R∪S,是在R或S或兩者中的元素的集合一個元素在并集中只出現(xiàn)一次,即消除重復(fù)元組R和S必須兼容,即必須同屬性、同域R∪SRS集合運算——并Union(∪)自己練42ABC367257723443RABC345723SABC367257723443345R∪S集合運算——交Intersect(∩)R和S的交,R∩S,是在R和S中都存在的元素的集合一個元素在交集中只出現(xiàn)一次,即消除重復(fù)元組R和S必須兼容,即必須同屬性、同域R∩SRS集合運算——交Intersect(∩)45ABC367257723443RABC345723SABC723R∩S集合運算——差Minus(-)R和S的差,R-S,是在R中而不在S中的元素的集合R和S必須兼容,即必須同屬性、同域R-SRSS-RRS集合運算——差Minus(-)S-RABCa1b3c248ABC367257723443RABC345723SABC367257443R-SABC367S-R集合運算——笛卡兒積(×)關(guān)系R、S的笛卡兒積是兩個關(guān)系的元組對的集合所組成的新關(guān)系R×S:屬性是R和S的組合(有重復(fù))元組是R和S所有元組的可能組合是R、S的無條件連接,使任意兩個關(guān)系的信息能組合在一起關(guān)系R和關(guān)系S的目分別為k1、k2,關(guān)系R有m個元組,關(guān)系S有n個元組,則其迪卡爾積的目為k1+k2個,有m×n個元組集合運算——笛卡兒積(×)51AB

12RCD

10102010EaabbSAB

11112222CD

1019201010102010EaabbaabbRx

S關(guān)系代數(shù)——專門的關(guān)系運算選擇、投影、連接、除法關(guān)系運算——選擇(σ)-[限制]表達式:σF(R),

表示從R中選擇滿足條件(使邏輯表達式F為真)的元組行的運算,從關(guān)系R中選擇符合條件的元組構(gòu)成新的關(guān)系邏輯表達式的運算符號有:關(guān)系運算——選擇(σ)-[限制]年齡大于17歲:身高不低于170cm:性別不為女并且體重小于50kg:學(xué)號SNO在20號以下成績GRADE不低于80分:年齡>

17身高≥170cm性別≠‘女’∧體重<50kgSNO<20andGRAGE≥80所在系別為數(shù)學(xué)系或計算機系的男生:系=‘計算機’∨系=‘?dāng)?shù)學(xué)’

∧性別=‘男’關(guān)系運算——選擇(σ)-[限制]ABCabccbddafσB=‘b’

(R)ABCabccbdσ年齡>=18AND性別=‘女’(student)例2:例1:從學(xué)生關(guān)系中選擇年齡大于等于18歲的女生。關(guān)系運算——選擇(σ)例:σssex=‘男’

ANDsdep=‘IS’(Student)

2、σ

Sage

>=20ANDSdept=‘CS’(student)

1、σSage=19(student)思考:運算結(jié)果中,有可能會出現(xiàn)重復(fù)元組嗎?例3:ABC367257723443R

A<5(R)

ABC367257443

A<5

C=7(R)

ABC367257例4:關(guān)系運算——選擇(σ)關(guān)系運算——投影(π)表達式:πA1,A2,…,An(R),表示從R中選擇屬性集A1,A2,…,An組成新的關(guān)系列的運算,從關(guān)系R中選擇若干屬性列組成新的關(guān)系πC,A

(R)ABCabccbdcdadafCAcadcacfd例1:R關(guān)系運算——投影(π)例:πssex,sage(student)例2:查詢學(xué)生的姓名和所在系

πsname,sdept(student)該怎樣表示呢?注意:投影運算的結(jié)果中,要去除可能的重復(fù)元組思考:運算結(jié)果中,有可能會出現(xiàn)重復(fù)元組嗎?關(guān)系運算——投影(π)πC,A

(R)ABCabccbdadcdafCAcadccafd例3:RCAcadcfd關(guān)系運算——條件連接(θ連接)從R×S的結(jié)果集中,選取在指定的屬性集上滿足θ條件的元組,組成新的關(guān)系,也成為θ連接θ是一個關(guān)于屬性集的邏輯表達式RS

iθj=σ(連接條件)(R×S

)關(guān)系運算——條件連接(θ)注意:兩個表的運算屬性在結(jié)果表中都要出現(xiàn)例1:關(guān)系運算——等值連接(θ為‘=‘)RSR.B=S.B注意:兩個表的運算屬性在結(jié)果表中都要出現(xiàn)表達式:RS

i=j即從R與S的迪卡爾積中選取屬性值相同的那些元組。關(guān)系運算——自然連接()要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復(fù)的屬性列去掉。表達式:RS關(guān)系運算——自然連接()RS注意:兩個表的公共屬性在結(jié)果表中只出現(xiàn)一個自然連接是一種特殊的等值連接例1:AB

12412CD

aababrB13123DaaabbE

s

11112

aaaab

ABCDE例2:關(guān)系運算——自然連接()rs關(guān)系運算——除(÷)用一個(m+n)元的關(guān)系R除以一個n元關(guān)系S,結(jié)果產(chǎn)生一個m元的新關(guān)系表達式:R÷SR的屬性必須包含S的全部屬性;R中的某些屬性不出現(xiàn)在S中;結(jié)果新關(guān)系的屬性是由R中那些不出現(xiàn)在S中的屬性組成;新關(guān)系的元組由在S中出現(xiàn)的且在R

中對應(yīng)值相同的那些元組組成。關(guān)系運算——除(÷)例

RSABCDCDabcdcdabefefbcefedcdedefabde計算:R÷SR÷SABabed小結(jié):傳統(tǒng)集合運算中,并、交、差運算(不包括積)的關(guān)系R、S必須有相同的目,并且相應(yīng)的屬性取自同一個域;關(guān)系R和關(guān)系S的目分別為k1、k2,元組分別為m、n個,則其迪卡爾積運算的新關(guān)系的目為k1+k2,元組為mn個;一般連接操作從行的角度運算;自然連接同時從行和列的角度運算;消除重復(fù)列兩個關(guān)系中進行比較的分量必須是相同的屬性組;

除運算同時考慮行和列。

關(guān)系代數(shù)——實例[問1]查詢信息系(IS系)全體學(xué)生

σSdept

='IS'(Student)

或σ5='IS'(Student)結(jié)果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS關(guān)系代數(shù)——實例[問2]查詢年齡小于20歲的學(xué)生

σSage<20(Student)

或σ4<20(Student)

結(jié)果:

SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS

關(guān)系代數(shù)——實例關(guān)系代數(shù)——實例[問3]查詢選修了2號課程的學(xué)生的學(xué)號

課程號、學(xué)號←SC表第①步:2號課程的選課情況σcno=‘2’(SC)關(guān)系代數(shù)——實例1第②步

選修2號課程的學(xué)號πsno(σcno=‘2’(SC))課堂練習(xí)1ABCadcababbcfdfR在關(guān)系R上以下操作的結(jié)果?:

πA,B(

σ

B=b(R))1、ABacbb有兩個關(guān)系S和C。試用關(guān)系代數(shù)表達式表示下列查詢語句:

S#SNAMEAGESEX1李強23男2劉麗22女3張友22男S

C#CNAMETEACHERk1C語言王華k5數(shù)據(jù)庫原理程軍k8編譯原理程軍C(1)檢索“程軍”老師所授課程的課程號和課程名。(2)檢索年齡大于21的男學(xué)生學(xué)號和姓名。課堂練習(xí)2:(1)πC#,CNAME(σ

TEACHER=‘程軍’(C))(2)πS#,CNAME(σAGE﹥21and

SEX=‘男’(S))

課堂練習(xí)2:

C#CNAMEk5數(shù)據(jù)庫原理k8編譯原理

S#SNAME1李強3張友3、設(shè)有如圖所示的關(guān)系R、W計算:(1)R1=

πY,T(R)(2)R2=

σ

P>5andT=e(R)R3=R∞WPQTY292977babaggceedecdffefdRTYBccdddemnnW課堂練習(xí)3:YTdfecedR1PQTY97ageeffR2PQTYB22779bbggaccccdddddemnmnnR3課堂練習(xí)3:關(guān)系數(shù)據(jù)理論數(shù)據(jù)依賴范式數(shù)據(jù)依賴:是現(xiàn)實世界屬性間相互聯(lián)系的抽象,是數(shù)據(jù)的內(nèi)在性質(zhì),是語義的體現(xiàn)。數(shù)據(jù)依賴是造成“不良”關(guān)系模式的根本原因。一、什么是數(shù)據(jù)依賴關(guān)系數(shù)據(jù)理論可以唯一確定!函數(shù)關(guān)系y=f(x)

;

函數(shù)依賴極為普遍存在于現(xiàn)實生活中。一個學(xué)生關(guān)系student(sno,sname,sdept),當(dāng)學(xué)號值確定之后,姓名和該生所在系能唯一確定嗎?我們稱sno函數(shù)決定sname和sdept,或稱sname和sdept函數(shù)依賴于sno,記為:sno→sname,sno→sdept。例:一個學(xué)生關(guān)系。

U=(Sno,Sdept,MN,Cname,G)

由現(xiàn)實世界已知事實知:

①一個學(xué)號只對應(yīng)一個學(xué)生,一個系有若干學(xué)生,但一個學(xué)生只屬于一個系;

②一個系只有一名系主任;③一個學(xué)生可選修多門課程,每門課程有若干名學(xué)生選修,

每個學(xué)生學(xué)習(xí)每一門課程都有一個成績;

我們可以得到屬性組U上的一組函數(shù)依賴關(guān)系,大家寫一下:

CnameSnoSdeptMNGF={Sno→Sdept,Sdept→MN,(Sno,Cname)→G}如果只考慮函數(shù)依賴這一種數(shù)據(jù)依賴,我們可得到以上的函數(shù)依賴關(guān)系,但這種關(guān)系模式存在幾個問題:一個好的關(guān)系模式不會發(fā)生插入異常、刪除異常和更新異常,數(shù)據(jù)冗余盡量要少。[1]數(shù)據(jù)冗余。[2]更新異常。[3]插入異常。[4]刪除異常。每一個系主任的姓名重復(fù)出現(xiàn),重復(fù)次數(shù)與該系所有學(xué)生的課程成績出現(xiàn)次數(shù)相同。這將浪費大量的存儲空間。如某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個元組。如果一個系剛成立,尚無學(xué)生,或者有了學(xué)生尚未安排課程,就無法把這個系及其系主任的信息存入數(shù)據(jù)庫。如果某個系的學(xué)生全部畢業(yè)了,在刪除該系學(xué)生信息同時,也把該系及其系主任的信息也丟掉了。二、關(guān)系規(guī)范化理論:

1、定義:規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具,是衡量關(guān)系模式三大缺點的嚴重程度的度量。1971年E.F.CODD提出了規(guī)范化理論,通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴。按規(guī)范化理論,將一個低一級的范式要求的關(guān)系模式分解為幾個高一級范式的關(guān)系模式的過程叫規(guī)范化.

將上例學(xué)生關(guān)系分解為:

S(Sno,Sdept);SG(Sno,Cname,G)

;

Dept(Sdept,MN);如,

F={Sno→Sdept,Sdept→MN,(Sno,Cname)→G}Sno→Sdept(Sno,Cname)→GSdept→MN

2、

函數(shù)依賴:設(shè)R(U)是一個關(guān)系模式,U是R的屬性集合,X、Y是U上的子集。若對R(U)任意一個可能的關(guān)系r,如果r中不可能存在兩個元組,它們在X上的屬性值相等,而在Y上的屬性值不等,則稱“X函數(shù)確定Y”或稱“Y函數(shù)依賴于X”,記為X→Y注意:

1]函數(shù)依賴是語義范疇的定義,只能根據(jù)語義確定一個函數(shù)依賴。如:姓名→年齡,只能在沒有同名人的條件下成立。

2]函數(shù)依賴是指R的一切關(guān)系都必須滿足的約束條件。

3、對函數(shù)依賴:X→Y①X→Y中,X為決定因素。②如X→Y且Y→X,則記:X←→Y。③若Y不函數(shù)依賴于X,則記作X→Y。

1)如果X→Y,并且Y不是X的子集,則稱X→Y是

非平凡的函數(shù)依賴.2)如果Y是X的子集,則稱X→Y是平凡的函數(shù)依賴.[必然成立]3)如果X→Y是關(guān)系模式R(U)的一個函數(shù)依賴,當(dāng)對X

的每一個真子集X1,都有X1→Y,則Y對X的函數(shù)依賴是完全的,稱Y對X完全函數(shù)依賴,記作XFY.4)如果對X某個真子集X1,有X1→Y,則稱Y對X是部分函數(shù)依賴,記作XpY.

3、函數(shù)依賴的種類(S#,CN)G(S#,CN)SDPF

這里G完全函數(shù)依賴于主碼(S#,CN);p

這里SDP部分函數(shù)依賴于主碼(S#,CN)

例1:為學(xué)校設(shè)計一個關(guān)系模式,其中U為關(guān)系名,S#:描述學(xué)號,CN:描述課程號,G:描述學(xué)習(xí)成績,SDP:描述系名,MN:描述系主任.

關(guān)系模式:U(S#,CN,G,SDP,MN)5)設(shè)X,Y,Z為關(guān)系模式R的互不相同的屬性集合,如果X→Y(Y

X),而Y→X,但Y→Z,則稱Z傳遞函數(shù)依賴于X,記作XtZ.若X→Y,Y→X,則X←→Y,X直接Z稱直接函數(shù)依賴.

例2:U(S#,CN,G,SDP,MN)S#SDP,SDPS#,SDPMN

則有S#tMN練習(xí)1、關(guān)系模式R(A,B,C,D),R上成立的函數(shù)依賴集F={ABD,BD,ABC},則R的主碼是?判斷R是否存在完全函數(shù)依賴關(guān)系?2、關(guān)系模式S(P,Q,T,Y,X),S上成立的函數(shù)依賴集F={PQYT,QYT,TX},則S的主碼是?判斷S存在的函數(shù)依賴的類型?練習(xí)3、建立一個關(guān)于系、學(xué)生、班級、學(xué)會等諸信息的數(shù)據(jù)庫。描述學(xué)生的屬性有:學(xué)號、年齡、系名、班號、宿舍區(qū);描述班級的屬性有:班號、專業(yè)名、系名、人數(shù)、入校年份;描述系的屬性有:系號、系名、系辦公室地點、系人數(shù);描述學(xué)會的屬性有:學(xué)會名、成立年份、學(xué)會地點、學(xué)會人數(shù);有關(guān)語義如下:一個系由若干專業(yè),每個專業(yè)每年只招一個班,每個班由若干學(xué)生。一個系的學(xué)生住在同一個宿舍區(qū)。每個學(xué)生可參加若干學(xué)會,每個學(xué)會由若干學(xué)生。學(xué)生參加某學(xué)會有一個入會年份。

請給出關(guān)系模式,寫出每個關(guān)系模式的函數(shù)依賴關(guān)系并判斷其函數(shù)依賴類型。4、范式

1NF—2NF—3NF—BCNF—4NF4、范式、規(guī)范化的定義:衡量一個關(guān)系模式“好壞”程度的標(biāo)準規(guī)范化:通過分解把屬于低級范式的關(guān)系模式轉(zhuǎn)換為幾個屬于高級范式的關(guān)系模式的集合的過程。

低高學(xué)號家庭住址郵編城市區(qū)街道學(xué)號郵編城市區(qū)街道不滿足1NF滿足1NF1]1NF定義:在關(guān)系模式R中的所有屬性都是不可再分的最小數(shù)據(jù)項,則關(guān)系R屬于第一范式,記作R∈1NF.

例如:4、范式的定義注意:不滿足1NF的數(shù)據(jù)庫不是關(guān)系數(shù)據(jù)庫。1NF,F(xiàn)irstNF元組中每一個分量都必須是不可分割的數(shù)據(jù)項。學(xué)號姓名年齡系別系主任課程成績課程號成績S1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C282S2錢爾18信息王平C384S3劉思佳17信息王平C268不符合規(guī)范約束條件學(xué)號姓名年齡系別系主任課程號成績S1趙亦17計算機劉偉C190S1趙亦17計算機劉偉C282S2錢爾18信息王平C384S3劉思佳17信息王平C268處理后符合規(guī)范約束條件第一范式要求數(shù)據(jù)表不能存在重復(fù)的記錄,即存在一個關(guān)鍵字。1NF的第二個要求是每個字段都不可再分,即已經(jīng)分到最小,關(guān)系數(shù)據(jù)庫的定義就決定了數(shù)據(jù)庫滿足這一條。主關(guān)鍵字需要滿足下面幾個條件:主關(guān)鍵字在表中是惟一的。主關(guān)鍵字段不能存在空值。每條記錄都必須有一個主關(guān)鍵字。4、范式的定義

2]2NF定義:若關(guān)系模式R∈1NF,且每個非主屬性都完全函數(shù)依賴于候選碼(或者說R中不存在非主屬性對候選碼的部分函數(shù)依賴),則關(guān)系模式R屬于第二范式,記作R∈2NF.

例3:關(guān)系模式U(S#,CN,G,SDN,MN)其中U為關(guān)系名,S#:描述學(xué)號,CN:描述課程名,G:描述學(xué)習(xí)成績,SDN:描述系名,MN:描述系主任

S#CNGSDNMNfpp非主屬性對主碼的函數(shù)依賴關(guān)系:

這里(S#,CN)是主碼,G完全函數(shù)依賴于主碼;SDN、MN部分函數(shù)依賴于主碼4、范式的定義學(xué)號姓名年齡系別系主任課程號成績S1趙亦17計算機劉偉C190S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論