數(shù)據(jù)庫及其應(yīng)用課件:關(guān)系數(shù)據(jù)模型_第1頁
數(shù)據(jù)庫及其應(yīng)用課件:關(guān)系數(shù)據(jù)模型_第2頁
數(shù)據(jù)庫及其應(yīng)用課件:關(guān)系數(shù)據(jù)模型_第3頁
數(shù)據(jù)庫及其應(yīng)用課件:關(guān)系數(shù)據(jù)模型_第4頁
數(shù)據(jù)庫及其應(yīng)用課件:關(guān)系數(shù)據(jù)模型_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1關(guān)系數(shù)據(jù)模型關(guān)系模型的基本概念

關(guān)系完整性規(guī)則關(guān)系數(shù)據(jù)庫的聯(lián)系關(guān)系代數(shù)關(guān)系規(guī)范化2第一節(jié)關(guān)系模型的基本概念

關(guān)系模型用二維表表示實(shí)體集,利用公共屬性實(shí)現(xiàn)實(shí)體之間的聯(lián)系。3一

、關(guān)系(relation)

關(guān)系是行與列交叉的二維表。表中的一行稱為關(guān)系的一個(gè)元組,表中的一個(gè)列稱為關(guān)系的一個(gè)屬性,每一個(gè)屬性有一個(gè)取值范圍,稱為屬性域。元組的集合稱為關(guān)系實(shí)例,通常關(guān)系實(shí)例又簡稱為關(guān)系。2.1職工關(guān)系職工號(hào)姓名性別職務(wù)部門編號(hào)1李春平男工程師D12張明利男經(jīng)理D13姜芝明女經(jīng)濟(jì)師D24葛純壯男經(jīng)理D25何康建男經(jīng)理D3

關(guān)系的實(shí)例關(guān)系元組45

表2.1在關(guān)系數(shù)據(jù)模型術(shù)語之間的對照表

關(guān)系數(shù)據(jù)模型術(shù)語

之間的對照表關(guān)系理論E-R模型關(guān)系數(shù)據(jù)庫某些數(shù)據(jù)庫關(guān)系實(shí)體集表表元組實(shí)體行記錄屬性屬性列字段6

二.關(guān)系的性質(zhì)每一列中所有數(shù)據(jù)類型相同,來自同一個(gè)域;每一列都有惟一的列名;列在表中的順序無關(guān)緊要;表中任意兩行不能完全相同;行在表中的順序也無關(guān)緊要;行與列交叉點(diǎn)上必須是單值的(不能是一組值)。7

三.基本的數(shù)據(jù)類型

字符:由任何字符或符號(hào)組成的文字串。日期:按照特定格式存儲(chǔ)的日期數(shù)據(jù),可以對日期型數(shù)據(jù)進(jìn)行特殊的數(shù)學(xué)運(yùn)算(+、-)。

數(shù)值:可以進(jìn)行算術(shù)運(yùn)算的數(shù)據(jù)。MySQL的數(shù)據(jù)類型在MySQL中有整型(int)、位類型(bit)、浮點(diǎn)(float和double,real)、定點(diǎn)數(shù)(decimal,numeric)、字符串(char,varchar,text)、日期時(shí)間(date,time,

datetime,year)、二進(jìn)制數(shù)據(jù)(Blob、binary)、枚舉(enum)、集合(set)等十種常用的數(shù)據(jù)類型。每一種數(shù)據(jù)類型又有多種格式。89

四、鍵(Key)超鍵能夠唯一標(biāo)識(shí)一個(gè)元組的屬性或?qū)傩越M。侯選鍵是最小超鍵,它的任意真子集都不能成為超鍵。在一個(gè)關(guān)系中可能有多個(gè)侯選鍵,可以選取一個(gè)侯選鍵作為主鍵來唯一地標(biāo)識(shí)每一個(gè)元組。如果關(guān)系R中包含另一個(gè)關(guān)系S的主鍵K,則稱K為關(guān)系R的外鍵,并稱關(guān)系S是被參照關(guān)系(或稱父表),R是參照關(guān)系(也稱依賴關(guān)系或子表)。

主鍵、外鍵和聯(lián)系1011第二節(jié)

數(shù)據(jù)完整性規(guī)則一.實(shí)體完整性(Entityintegrity)關(guān)系的主鍵不能取空值(NULL)。二.參照完整性(Referentialintegrity)外鍵必須是被參照關(guān)系主鍵的有效值,

或者是“空值”。

導(dǎo)師研究生允許為空值不允許是非法值。教工號(hào)姓名性別職稱101康平男教授104李林女副教授105田澤男教授學(xué)號(hào)姓名性別教工號(hào)99103田玉兵男10199210姚立立女

99213曲海男1001允許為空值不允許是非法值。1、參照完整性約束2、刪除和更新約束(1)刪除父表元組的約束

刪除約束(RESTRICT):拒絕刪除父表中任何有后代的元組(指子表中包含相應(yīng)的外鍵值);

級(jí)聯(lián)刪除(CASCADE):刪除父表中的元組時(shí),

其子表中相應(yīng)的元組也將自動(dòng)被刪除;

刪除置空(SETNULL):刪除父表中的元組時(shí),其子表中相應(yīng)元組的外鍵值自動(dòng)設(shè)置為空值(NULL)。刪除置缺省值(SETDEFAULT):刪除父表中的元組時(shí),其子表的相應(yīng)元組的外鍵值自動(dòng)設(shè)置為缺省值。1314(2)更新父表主鍵的約束更新約束(RESTRICT):拒絕更新父表中在子表含有外鍵值的主鍵。級(jí)聯(lián)更新(CASCADE):父表中更新主鍵時(shí),其子表中相應(yīng)的外鍵值也將自動(dòng)被更新;更新置空(SETNULL):在父表中更新主鍵時(shí),子表相應(yīng)的外鍵值自動(dòng)設(shè)置為空值(NULL);更新置缺省值(SETDEFAULT):在父表中更新主鍵時(shí),其子表的相應(yīng)元組的外鍵值自動(dòng)設(shè)置為缺省值。(3)對子表操作的約束在子表中插入的外鍵值必須是父表主鍵的有效值或者空值(在允許情況下)。在子表中更新外鍵的值必須是父表主鍵的有效值或者空值(在允許情況下)。在子表中刪除元組將不受限制。1516用戶定義完整性是針對某一特定數(shù)據(jù)庫的約束條件。通常是用戶業(yè)務(wù)處理時(shí)數(shù)據(jù)必須滿足的約束條件。

例如,域完整性約束是對屬性值有效性的約束,包括屬性類型、寬度、小數(shù)位,是否可以取NULL值、缺省值(DEFAULT)、唯一值(UNIQUE)、基于屬性的域檢查子句(CHECK、用數(shù)據(jù)庫觸發(fā)器實(shí)現(xiàn)更為復(fù)雜的完整性約束條件。3.用戶定義完整性

17第三節(jié)關(guān)系模型實(shí)現(xiàn)

數(shù)據(jù)聯(lián)系的方法

關(guān)系模型的基本結(jié)構(gòu)是表(Table),表又稱為關(guān)系。表是由行/列組成的矩陣,表與表之間的聯(lián)系是通過公共屬性(外鍵)實(shí)現(xiàn)的。

一個(gè)關(guān)系數(shù)據(jù)庫中包括多個(gè)表,利用“在一個(gè)表中包含另一個(gè)表的主鍵”的方法實(shí)現(xiàn)表與表之間的數(shù)據(jù)聯(lián)系,構(gòu)成一個(gè)整體的邏輯結(jié)構(gòu)。1819

第四節(jié)關(guān)系代數(shù)主要包括:選擇、投影、并、差、笛卡兒乘積、交、連接、

左外連接、右外連接。20關(guān)系代數(shù)有五種基本運(yùn)算:選擇、投影、并、差和笛卡爾積。一、關(guān)系代數(shù)的基本運(yùn)算211.選擇(SELECT)

選擇運(yùn)算是從關(guān)系中選擇某些滿足條件的元組構(gòu)成一個(gè)新的關(guān)系。通常選擇運(yùn)算表達(dá)式記成:б<條件表達(dá)式>(R)。

22選擇運(yùn)算的示例

職務(wù)=”經(jīng)理”(R)232.投影(PROJECT)

投影運(yùn)算是從關(guān)系中選擇某些屬性列構(gòu)成一個(gè)新的關(guān)系。投影的結(jié)果將消除重復(fù)元組。通常投影運(yùn)算表達(dá)式記作:∏A,B(R),其中A和B是屬性名,R是一個(gè)關(guān)系。投影運(yùn)算的示例∏姓名,性別(R)24253.并(UNION)

設(shè)關(guān)系R和S的屬性數(shù)目(n列)相同,且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的并是由屬于R或?qū)儆赟的元組組成的新關(guān)系。其結(jié)果是具有n個(gè)屬性的關(guān)系,且消除重復(fù)元組。通常并運(yùn)算表達(dá)式記作:R∪S。26274.差(DIFFERENCE)

設(shè)關(guān)系R和S具有相同數(shù)目的屬性(n列),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的差是由屬于R而不屬于S的元組構(gòu)成的新關(guān)系。記作:R-S。差運(yùn)算的示例28295.笛卡兒積(PRODUCT)

關(guān)系R與關(guān)系S的笛卡兒積記成:R×S,若R有m個(gè)屬性,S有n個(gè)屬性,則R×S是一個(gè)具有(m+n)個(gè)屬性的關(guān)系,且R×S元組的前m列是R的一個(gè)元組,后n列是S的一個(gè)元組。如果R有i個(gè)元組,S有j個(gè)元組,則R×S有(i×j)個(gè)元組。3031

交、連接和除三種關(guān)系代數(shù)運(yùn)算可以用基本運(yùn)算來定義,故稱為擴(kuò)展的關(guān)系運(yùn)算。二、擴(kuò)展的關(guān)系代數(shù)運(yùn)算321.交(INTERSECT)

設(shè)關(guān)系R和S具有相同數(shù)目的屬性(n列),且相應(yīng)的屬性取自同一個(gè)域,則關(guān)系R與S的交是由既屬于R又屬于S的元組構(gòu)成的新關(guān)系。記作:R∩S。

交運(yùn)算的示例3334

連接運(yùn)算是從兩個(gè)關(guān)系笛卡兒積中選擇屬性之間滿足一定條件的元組。2.連接(JOIN)運(yùn)算連接運(yùn)算的關(guān)系代數(shù)表達(dá)式35361)自然連接

自然連接運(yùn)算是從兩個(gè)關(guān)系的笛卡兒積中,選擇公共屬性值相等的元組,并消除重復(fù)屬性構(gòu)成的新關(guān)系。37

左外連接(leftouterjoin)

關(guān)系R與S進(jìn)行連接操作,連接的結(jié)果中除了滿足連接條件的元組之外,還包含左關(guān)系R中不滿足連接條件的元組,而其對應(yīng)于S的屬性上填空值(NULL),這種連接稱為左外連接,記為

R*?S。R與S的連接運(yùn)算示例3839402.右外聯(lián)接(rightouterjoin)

關(guān)系R與S進(jìn)行連接操作,連接的結(jié)果中除了滿足連接條件的元組之外,還包含右關(guān)系S中不滿足連接條件的元組,而其對應(yīng)于R的屬性上填空值(NULL),這種連接稱為右外連接,用符號(hào)R?*S表示。?*

除運(yùn)算的示例41第五節(jié)關(guān)系的規(guī)范化

關(guān)系規(guī)范化是從關(guān)系模式中屬性與屬性之間的函數(shù)依賴性,判斷關(guān)系模式的合理性,解決數(shù)據(jù)庫設(shè)計(jì)的優(yōu)化問題。42一、函數(shù)依賴

如果屬性X的值能夠決定屬性Y的值,則稱屬性X函數(shù)決定屬性Y,記成X

Y,或者屬性Y函數(shù)依賴于屬性X。一個(gè)關(guān)系上的函數(shù)依賴集簡寫為FD。431、函數(shù)依賴的示例學(xué)號(hào)

姓名,性別,出生年月,班級(jí)名稱課程號(hào)

課程名,學(xué)時(shí)學(xué)號(hào),課程號(hào)

分?jǐn)?shù)442、函數(shù)依賴圖45學(xué)號(hào)

姓名

課程號(hào)

課程名稱

學(xué)時(shí)

分?jǐn)?shù)3、完全函數(shù)依賴

學(xué)號(hào)與課程號(hào)的組合能夠唯一地決定分?jǐn)?shù),即分?jǐn)?shù)函數(shù)依賴于主鍵<學(xué)號(hào)+課程號(hào)>,這種函數(shù)依賴稱為完全函數(shù)依賴。46部分函數(shù)依賴

學(xué)號(hào)就可以決定姓名,即姓名只函數(shù)依賴于主鍵的一部分,這種函數(shù)依賴稱為部分函數(shù)依賴。474.傳遞函數(shù)依賴學(xué)號(hào)決定系名稱和系地址,系名稱決定系地址,系地址通過系名稱間接依賴于學(xué)號(hào),則稱系地址傳遞函數(shù)依賴于學(xué)號(hào)。48二、關(guān)系的規(guī)范化關(guān)系規(guī)范化是判斷表結(jié)構(gòu)是否合理的有效方法,利用一組不同級(jí)別的范式判定關(guān)系規(guī)范化程度,確認(rèn)表中存在數(shù)據(jù)異常,并通過關(guān)系模式分解的方法,消除數(shù)據(jù)異常。4950

由于表2.3中行與列的交叉點(diǎn)上存在一組值,該表不符合關(guān)系的定義,稱之為非規(guī)范化的關(guān)系。1、非規(guī)范化的關(guān)系2、第一范式

如果關(guān)系R中沒有重復(fù)組(即行與列的交叉點(diǎn)上只有一個(gè)值,而不是一組值),且定義了主鍵、所有非主屬性都依賴于主鍵,則R屬于第一范式,常記為R

1NF。簡言之,若關(guān)系R滿足關(guān)系定義,則R

1NF。51第一范式的示例52第一范式關(guān)系實(shí)例R(工程號(hào),職工號(hào),工程名稱,姓名,職務(wù),小時(shí)工資率,工時(shí))第一范式關(guān)系存在大量數(shù)據(jù)冗余,導(dǎo)致數(shù)據(jù)異常。53數(shù)據(jù)異常問題更新異常

插入異常刪除異常原因是存在部分依賴,通過分解消除部份依賴,使關(guān)系滿足第二范式。54第二范式

如果關(guān)系R

1NF,且每一個(gè)非主屬性都完全函數(shù)依賴于R的主鍵,則R屬于第二范式,記作R

2NF。

第二范式的關(guān)系不允許存在任何非主屬性部分依賴于主鍵。以單個(gè)屬性為主鍵的關(guān)系自動(dòng)進(jìn)入2NF,因?yàn)椴豢赡艽嬖诓糠趾瘮?shù)依賴。55第二范式的關(guān)系實(shí)例將R分解為三個(gè)2NF的關(guān)系:工程(工程號(hào),工程名稱)

職工(職工號(hào),姓名,職稱,小時(shí)工資率)酬金(工程號(hào),職工號(hào),工時(shí))56分析圖2.16中的職工關(guān)系,仍然存在某些數(shù)據(jù)冗余,因?yàn)槎嗝毠ぞ哂型环N職務(wù),且職務(wù)決定小時(shí)工資率,所以同樣職務(wù)的小時(shí)工資率重復(fù)出現(xiàn)多次,重復(fù)次數(shù)與具有這種職稱的人數(shù)相同。57數(shù)據(jù)冗余數(shù)據(jù)異常58更新異常

修改技術(shù)員的工資率,就必須修改所有技術(shù)員的工資率。添加異常

無法添加沒有的新職稱,因?yàn)槁毠ぬ?hào)不能為空

。刪除異常

如果要?jiǎng)h除職工號(hào)為1004的元組,就會(huì)丟失律師職務(wù)的信息。

第三范式59

滿足3NF的表中不存在傳遞依賴,即沒有一個(gè)非主屬性依賴于另一個(gè)非主屬性,或者說沒有一個(gè)非主屬性決定另一個(gè)非主屬性。

如果關(guān)系R

2NF,且R中不存在傳遞依賴性,則關(guān)系R屬于第三范式,記作R

3NF。分解成4個(gè)第三范式關(guān)系職工

溫馨提示

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

評論

0/150

提交評論