SQL-Server-2012數(shù)據(jù)庫技術(shù)及應(yīng)用1.3_第1頁
SQL-Server-2012數(shù)據(jù)庫技術(shù)及應(yīng)用1.3_第2頁
SQL-Server-2012數(shù)據(jù)庫技術(shù)及應(yīng)用1.3_第3頁
SQL-Server-2012數(shù)據(jù)庫技術(shù)及應(yīng)用1.3_第4頁
SQL-Server-2012數(shù)據(jù)庫技術(shù)及應(yīng)用1.3_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、教學(xué)單元1.3第3章 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計SQL Server 2012數(shù)據(jù)庫技術(shù)及應(yīng)用案例1-3 教務(wù)管理數(shù)據(jù)庫邏輯設(shè)計關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計 學(xué)習(xí)導(dǎo)航2關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計 知識框架3單元1.3 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計能力目標(biāo)能夠?qū)?shù)據(jù)庫概念設(shè)計得到的概念模型轉(zhuǎn)換為關(guān)系模型能夠?qū)﹃P(guān)系模型進(jìn)行實體完整性、域完整性、參照完整性和用戶定義完整性的設(shè)計能夠?qū)﹃P(guān)系模型進(jìn)行規(guī)范化和優(yōu)化培養(yǎng)用英文單詞或英文縮寫描述和識別屬性的習(xí)慣4單元1.3 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計知識目標(biāo)關(guān)系模型的構(gòu)成與特點關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的集合運算(并、交、差和笛卡兒積)關(guān)系的專門運算(投影、選擇和連接)與應(yīng)用關(guān)系數(shù)據(jù)

2、實體完整性、域完整性、參照完整性和用戶定義完整性的概念及應(yīng)用概念模型(聯(lián)系方式1:1,1:n,m :n )到關(guān)系模型轉(zhuǎn)換的方法關(guān)系規(guī)范化的基本概念和關(guān)系規(guī)范化的基本方法。數(shù)據(jù)庫邏輯設(shè)計有關(guān)英文術(shù)語素質(zhì)目標(biāo)培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度和工作作風(fēng)培養(yǎng)較強的邏輯思維和抽象思維能力5案例1 教務(wù)管理系統(tǒng)案例1-3 教務(wù)管理數(shù)據(jù)庫邏輯設(shè)計工作任務(wù)6單元1.3 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計 關(guān)系模型概述一E-R概念模型到關(guān)系模型的轉(zhuǎn)換二7單元1.3 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計一、關(guān)系模型概述 關(guān)系模型的構(gòu)成與特點1 關(guān)系數(shù)據(jù)結(jié)構(gòu)2 關(guān)系數(shù)據(jù)操作3關(guān)系數(shù)據(jù)完整性48(一)關(guān)系模型的構(gòu)成和特點關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系(二維表)集合系

3、統(tǒng)靜態(tài)特征DDL實現(xiàn)數(shù)據(jù)定義關(guān)系數(shù)據(jù)操作關(guān)系對象操作集合系統(tǒng)動態(tài)特征DML實現(xiàn)數(shù)據(jù)操作關(guān)系數(shù)據(jù)完整性實體完整性約束域完整性約束參照完整性約束用戶定義完整性約束DDL/DCL實現(xiàn)約束檢查三個組成要素9(一)關(guān)系模型的構(gòu)成和特點實體用關(guān)系表示實體之間的聯(lián)系用關(guān)系表示關(guān)系的定義用關(guān)系表示關(guān)系的運算對象是關(guān)系關(guān)系的運算結(jié)果是關(guān)系概念單一只需告訴系統(tǒng)“做什么”不需告訴系統(tǒng)“怎么做”程序和數(shù)據(jù)各自獨立數(shù)據(jù)獨立關(guān)系是元組的集合關(guān)系的運算是集合運算關(guān)系的運算對象是集合關(guān)系的運算結(jié)果是集合集合運算關(guān)系代數(shù)集合論數(shù)理邏輯嚴(yán)格定義、運算、規(guī)范化理論支持10一、關(guān)系模型概述 關(guān)系模型的構(gòu)成與特點1 關(guān)系數(shù)據(jù)結(jié)構(gòu)2 關(guān)

4、系數(shù)據(jù)操作3關(guān)系數(shù)據(jù)完整性411(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系(Relation)是滿足一定條件的二維表,在關(guān)系模型中,無論概念世界中的實體還是實體之間的聯(lián)系均由關(guān)系(二維表)來表示,并且滿足以下特性:關(guān)系(二維表)的每一元組(行)定義實體集的一個實例,每一列定義實體的一個屬性。每一列表示一個屬性,且列名不能重復(fù)。關(guān)系必須有一個主鍵(關(guān)鍵字),用來唯一標(biāo)識一個元組(行),即實體集的一個實例。列的每個值必須與對應(yīng)屬性的類型相同。列是不可分割的最小數(shù)據(jù)項。行、列的順序無關(guān)緊要。關(guān)系的定義12【例3-1】學(xué)生實體學(xué)生關(guān)系Student13SIDSnameSexBirthdateSpecialty201421

5、6001趙成剛男1995-05-05計算機應(yīng)用技術(shù)2014216002李敬女1995-01-06計算機應(yīng)用技術(shù)2014216003郭洪亮男1995-04-12計算機應(yīng)用技術(shù)2014216004呂珊珊女1996-10-11計算機信息管理2014216005高全英女1996-07-05計算機信息管理2014216006郝莎女1994-08-03計算機信息管理2014216007張峰男1995-09-03軟件技術(shù)2014216111吳秋娟女1995-08-05軟件技術(shù)關(guān)系的定義(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)【例3-1】課程實體課程關(guān)系CourseCIDCnameCredit16020010微機組裝與維護(hù)2.01

6、6020011操作系統(tǒng)安裝與使用2.016020012軟件文檔編輯與制作3.516020013面向過程程序設(shè)計10.016020014數(shù)據(jù)庫開發(fā)與維護(hù)6.516020015面向?qū)ο蟪绦蛟O(shè)計7.5關(guān)系的定義(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)【例3-1】學(xué)生選課學(xué)生選課關(guān)系SC 15SIDCIDScores20142160011602001096.020142160011602001180.020142160021602001067.020142160031602001278.020142160031602001387.020142160031602001485.0關(guān)系的定義(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)16關(guān)系模型的術(shù)語與

7、概念模型的術(shù)語相同或類似是兩個不同設(shè)計層面上的概念注意之間的異同關(guān)系的術(shù)語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系:每個二維表稱為一個關(guān)系,每個關(guān)系有一個關(guān)系名 例如:學(xué)生關(guān)系Student關(guān)系型:表的所有列標(biāo)題,描述實體或聯(lián)系的型 例如:(SID,Sname,Sex,Birthdate,Specialty)關(guān)系值:表的所有列對應(yīng)的數(shù)據(jù),描述實體或聯(lián)系的值 例如:2014216003 ,郭洪亮,男,1995年4月,計算機應(yīng)用技術(shù) 2014216004 ,呂珊珊,女,1996年10月,計算機信息管理元組:表中的一行,描述一個實體或聯(lián)系 例如:201416004,呂珊珊,女,1996年10月,計算機網(wǎng)絡(luò)17關(guān)系的術(shù)

8、語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)屬性:表中各列的標(biāo)題,每一個屬性起一個名字,即屬性名 例如:SID,Sname屬性值:表中各列對應(yīng)的數(shù)據(jù),描述實體或聯(lián)系的特征 例如:2014216003,郭洪亮域:屬性的取值范圍 例如:屬性SID的取值范圍是10個長度的字符 屬性Birthdate的取值是合法的日期18關(guān)系的術(shù)語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)候選鍵(Candidate Key):能夠唯一標(biāo)識關(guān)系中每個元組的屬性或?qū)傩越M被稱為候選鍵,也被稱為候選關(guān)鍵字或候選碼。候選鍵可以有多個。例如:假設(shè)關(guān)系“Student”中沒有同名的學(xué)生,則屬性“SID”和“Sname”均是候選鍵。主鍵(Primary Key,PK) :能夠唯一

9、標(biāo)識關(guān)系中每個元組的屬性或?qū)傩越M被稱為主鍵,也被稱為關(guān)鍵字、主碼或碼。一個關(guān)系中的主鍵只能有一個,可以從多個候選鍵中選擇。例如:關(guān)系“Student”中的屬性“SID”,關(guān)系“Course”中的“CID”,關(guān)系“SC”中的屬性組“SID+CID”均是主鍵。19關(guān)系的術(shù)語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)外鍵(Foreign Key,F(xiàn)K):如果一個關(guān)系中的屬性或?qū)傩越M不是本關(guān)系的主鍵,而是另一個關(guān)系的主鍵,則被稱為是本關(guān)系的外鍵,也被稱為外關(guān)鍵字或外碼。 例如:關(guān)系“SC”中的屬性“SID”和“CID”均不是本關(guān)系的主鍵,而分別是關(guān)系“Student”和“Course”的主鍵,它們均是本關(guān)系“SC”的外鍵。關(guān)

10、系SC中的屬性SID和CID。主屬性:能作為候選鍵的屬性。 例如:關(guān)系“Student”中的屬性“SID”和“Sname”均為主屬性。非主屬性:除了主屬性的其他屬性。 例如:關(guān)系“Student”中的屬性“Sex”、“Birthdate”和“Specialty”均為非主屬性。關(guān)系“SC”中的屬性“Scores”,關(guān)系“Course”中的屬性“Cname”和“Credit”。20關(guān)系的術(shù)語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模式:關(guān)系名(屬性1,屬性2, 屬性n) 例如:教務(wù)管理系統(tǒng)學(xué)生選課部分的三個關(guān)系模式 Student(SID,Sname,Sex,Birthdate,Specialty) PK:SID

11、Course(CID, Cname,Credit) PK:CID SC( SID, CID ,Scores) PK:SID+CID FK:SID和CID 注:PK代表主鍵,F(xiàn)K代表外鍵21關(guān)系的術(shù)語(二)關(guān)系數(shù)據(jù)結(jié)構(gòu)一、關(guān)系模型概述 關(guān)系模型的構(gòu)成與特點1 關(guān)系數(shù)據(jù)結(jié)構(gòu)2 關(guān)系數(shù)據(jù)操作3關(guān)系數(shù)據(jù)完整性422(三)關(guān)系數(shù)據(jù)操作傳統(tǒng)的集合運算(并、差、交、笛卡兒積)1專門的關(guān)系運算(投影、選擇、連接)23綜合運算231.傳統(tǒng)的集合運算假設(shè)有兩個關(guān)系R和S,具有相同的結(jié)構(gòu),t是元組變量,關(guān)系R為喜歡跳舞的學(xué)生,關(guān)系S為喜歡唱歌的學(xué)生。表1 喜歡跳舞的學(xué)生關(guān)系RSnameSex李敬女郭洪亮男呂珊珊女高

12、全英女郝莎女吳秋娟女表2 喜歡唱歌的學(xué)生關(guān)系SSnameSex趙成剛男呂珊珊女郝莎女張峰男吳秋娟女并(Union)公式:RS=ttR t S 語義:t 元組屬于R或者屬于S。 【例3-2】 喜歡跳舞或喜歡唱歌的學(xué)生, RS的關(guān)系如表3所示。表3 RSSnameSex趙成剛男李敬女郭洪亮男呂珊珊女高全英女郝莎女張峰男吳秋娟女251.傳統(tǒng)的集合運算差(Difference)公式:RS=ttR t S 語義:t 元組屬于R,但不屬于S?!纠?-3】喜歡跳舞但是不喜歡唱歌的學(xué)生,RS的關(guān)系如表4所示。表4 R-SSnameSex李敬女郭洪亮男高全英女261.傳統(tǒng)的集合運算交(Intersection)

13、公式:RS=ttRtS 語義:t元組屬于R并且屬于S?!纠?-4】既喜歡跳舞也喜歡唱歌的學(xué)生,RS的關(guān)系如表5所示。 表5 RSSnameSex呂珊珊女郝莎女吳秋娟女271.傳統(tǒng)的集合運算笛卡兒積(Cartesian Product)假設(shè)關(guān)系R為m列( m 個屬性),k1行(k1個元組);關(guān)系S為n列(n個屬性),k2行(k2個元組)。公式:RS=tRtS tRR tSS 語義:笛卡兒積仍是一個關(guān)系,該關(guān)系的結(jié)構(gòu)是R和S結(jié)構(gòu)之連接,即前m 個屬性來自R,后n個屬性來自S,該關(guān)系的值是由R中的每個元組連接S中的每個元組所構(gòu)成元組的集合。注意:新關(guān)系的屬性個數(shù)等于m+n ,元組個數(shù)等于k1*k2。

14、281.傳統(tǒng)的集合運算【例3-5】設(shè)關(guān)系R和S如表6和表7所示,RS如表8所示。綠色區(qū)域沒意義。表6 學(xué)生關(guān)系RSIDSname201416001趙成剛2014216002李敬 表7 選課關(guān)系SSIDCIDScores20142160011602001096.020142160011602001180.020142160021602001067.0表8 笛卡兒積 RSSIDSnameSIDCIDScores2014216001趙成剛20142160011602001096.02014216001趙成剛20142160011602001180.02014216001趙成剛201421600216

15、02001067.02014216002李敬20142160011602001096.02014216002李敬20142160011602001180.02014216002李敬20142160021602001067.01.傳統(tǒng)的集合運算(三)關(guān)系數(shù)據(jù)操作專門的關(guān)系運算(投影、選擇、連接)1傳統(tǒng)的集合運算(并、交、差、笛卡兒積)23綜合運算302.專門的關(guān)系運算投影(Projection)設(shè):A是要從R中投影出的屬性子集,t是關(guān)系R中的一個元組。公式:A(R)= t.At R 語義:從關(guān)系R中按所需順序選取若干個屬性構(gòu)成新關(guān)系。注意:新關(guān)系的元組數(shù)小于等于原關(guān)系的元組數(shù)新關(guān)系的屬性數(shù)不多于

16、原關(guān)系中的屬性數(shù)31表9 關(guān)系RSIDSnameSexBirthdateSpecialty2014216001趙成剛男1995-05-05計算機應(yīng)用技術(shù)2014216002李敬女1995-01-06計算機應(yīng)用技術(shù)2014216003郭洪亮男1995-04-12計算機應(yīng)用技術(shù)2014216004呂珊珊女1996-10-11計算機信息管理2014216005高全英女1996-07-05計算機信息管理2014216006郝莎女1994-08-03計算機信息管理2014216007張峰男1995-09-03軟件技術(shù)2014216111吳秋娟女1995-08-05軟件技術(shù)表10 Sname,Sex (R

17、)SnameSex趙成剛男李敬女郭洪亮男呂珊珊女高全英女郝莎女張峰男吳秋娟女【例3-6】投影學(xué)生關(guān)系R(表9)的學(xué)生姓名和性別的情況,運算結(jié)果如表10所示。322.專門的關(guān)系運算表11 Sex=男(R)SIDSnameSexBirthdateSpecialty2014216001趙成剛男1995-05-05計算機應(yīng)用技術(shù)2014216003郭洪亮男1995-04-12計算機應(yīng)用技術(shù)2014216007張峰男1995-09-03軟件技術(shù)選擇(Selection)設(shè):t是關(guān)系R中的一個元組,F(xiàn)(t)為元組邏輯表達(dá)式。公式:F(t)(R)= ttR F(t)=true語義:從關(guān)系中找出滿足條件的那些

18、元組稱為選擇。注意:運算結(jié)果的元組數(shù)不多于原關(guān)系中的元組數(shù)?!纠?-7】在學(xué)生關(guān)系R中選擇出男生,如表11所示。2.專門的關(guān)系運算2.專門的關(guān)系運算連接(Join)設(shè):A,B分別是關(guān)系R和S中的屬性,分別記作R.A和S.B。公式:語義:兩個關(guān)系R和S按相應(yīng)屬性值的比較條件連接起來,生成一個新關(guān)系,也稱為連接。等值連接 RS選擇(為)按照兩關(guān)系中對應(yīng)屬性值相等的條件所進(jìn)行的連接自然連接 等值連接去重復(fù)屬性記作:R S34【例3-8】設(shè)學(xué)生、選課和課程表如表12、表13、表14所示,學(xué)生選課的情況為S SC C的結(jié)果,如表15所示。 表12SSIDSname2014216001趙成剛2014216

19、002李敬2014216003郭洪亮表13 SCSIDCID201421600116020010201421600116020011201421600216020010201421600316020012201421600316020013201421600316020014表14 CCIDCname16020010微機組裝與維護(hù)16020011操作系統(tǒng)安裝與使用16020012軟件文檔編輯與制作16020013面向過程程序設(shè)計16020014數(shù)據(jù)庫開發(fā)與維護(hù)16020015面向?qū)ο蟪绦蛟O(shè)計16020016數(shù)字媒體采集與處理16020017靜態(tài)網(wǎng)頁設(shè)計與制作16020018Web標(biāo)準(zhǔn)設(shè)計2.專

20、門的關(guān)系運算2.專門的關(guān)系運算自然連接結(jié)果如下:表15 S SC C SIDSnameCIDCname2014216001趙成剛16020010微機組裝與維護(hù)2014216001趙成剛16020011操作系統(tǒng)安裝與使用2014216002李敬16020010微機組裝與維護(hù)2014216003郭洪亮16020012軟件文檔編輯與制作2014216003郭洪亮16020013面向過程程序設(shè)計2014216003郭洪亮16020014數(shù)據(jù)庫開發(fā)與維護(hù)36(三)關(guān)系數(shù)據(jù)操作綜合運算1傳統(tǒng)的集合運算(并、交、差、笛卡兒積)23專門的關(guān)系運算(投影、選擇、連接)373.綜合運算 【例3-9】運算出趙成剛的

21、學(xué)號、姓名、所選課程號和成績。 SID,Sname,CID,Scores(Sname= 趙成剛 (S SC) 運算結(jié)果如下表所示: SIDSnameCIDScores2014216001趙成剛1602001096.02014216001趙成剛1602001180.0注意:按照選擇 投影 連接的運算順序可以減少運算時間,避免增加時間復(fù)雜性。38【例3-10】運算出學(xué)號為2014216003的學(xué)生的學(xué)號、姓名、所選課程名及成績。SID,Sname,Cname,Scores( SID =2014216003 (S SC C)運算結(jié)果如下表所示: SIDSnameCnameScores20142160

22、03郭洪亮軟件文檔編輯與制作78.02014216003郭洪亮面向過程程序設(shè)計87.02014216003郭洪亮數(shù)據(jù)庫開發(fā)與維護(hù)85.0注意:按照選擇 投影 連接的運算順序可以減少運算時間,避免增加時間復(fù)性。393.綜合運算【例3-11】查詢同時選修了16020010和16020011這兩門課程的學(xué)生學(xué)號。 將SC看成是兩個相同的關(guān)系SC1和SC2,分別對SC1和SC2選擇課程號“CID”為16020010和16020011的元組(淺灰色對應(yīng)),再分別對選擇的結(jié)果集進(jìn)行學(xué)號“SID”投影,將得到的集合(深灰色)進(jìn)行自然連接。選課關(guān)系SC1SIDSname20142160011602001020

23、142160011602001120142160021602001020142160031602001220142160031602001320142160031602001440選課關(guān)系SC2SIDSname2014216001160200102014216001160200112014216002160200102014216003160200122014216003160200132014216003160200143.綜合運算【例3-11】查詢同時選修了16020010和16020011這兩門課程的學(xué)生學(xué)號。 運算結(jié)果 SID201421600141運算公式: (SID (CID =

24、16020010 (SC)(SID (CID = 16020011 (SC)運算公式: (SID (CID = 16020010 (SC)(SID (CID = 16020011(SC)3.綜合運算【例3-12】查詢沒有選修任何課程的所有學(xué)生信息。運算公式:運算結(jié)果如下表所示: SIDSnameSexBirthdateSpecialty2014216004呂珊珊女1996-10-11計算機信息管理2014216005高全英女1996-07-05計算機信息管理2014216006郝莎女1994-08-03計算機信息管理2014216007張峰男1995-09-03軟件技術(shù)2014216111吳秋

25、娟女1995-08-05軟件技術(shù)42S(SID(S)SID(SC) 3.綜合運算一、關(guān)系模型概述 關(guān)系模型的構(gòu)成與特點1 關(guān)系數(shù)據(jù)結(jié)構(gòu)2 關(guān)系數(shù)據(jù)操作3關(guān)系數(shù)據(jù)完整性443(四)關(guān)系數(shù)據(jù)完整性實體完整性規(guī)則:PK非空檢查: DBMS域完整性規(guī)則:數(shù)據(jù)類型、默認(rèn)值、是否允許空等檢查:DBMS用戶定義完整性規(guī)則:自定義約束、存儲過程、函數(shù)等檢查: DBMS三個方面+用戶自定義參照完整性規(guī)則:FK檢查:DBMS441.實體完整性約束 (Entity Integrity)規(guī)則:為關(guān)系設(shè)置一個主鍵唯一標(biāo)識一個實體(元組)且不能取空值(NULL) 。說明:空值(NULL)不是0,也不是空格字符串,而是沒有

26、值。檢查:用戶只要定義一個關(guān)系的主鍵,在插入元組或更新數(shù)據(jù)時,DBMS將自動對該關(guān)系中的每個元組的主鍵進(jìn)行檢查,若發(fā)現(xiàn)主鍵值為空或已有相同主鍵值存在,將給出錯誤信息并要求用戶糾正以保證數(shù)據(jù)的完整性。 例如:建立一個表Course (課程關(guān)系) ,屬性CID (課程號)為主鍵,唯一且不能為空值。 CREATE TABLE Course ( CID char(8) NOT NULL PRIMARY KEY, -定義非空值主鍵 Cname nchar(30) NULL, Credit decimal(3,1) NULL ) 452.域完整性約束 ( Domain Integrity)規(guī)則:關(guān)系中列的

27、值域必須滿足某種特定數(shù)據(jù)類型或某種約束,如數(shù)據(jù)類型、格式、值域范圍、默認(rèn)值、是否允許空值等。說明:域完整性約束限制了某些屬性中可能出現(xiàn)的錯誤值,即把屬性的取值限制在一個有限的集合中。如,屬性類型是整數(shù),那么其值就不能是99.9或任何非整數(shù)。檢查:用戶只要定義了一個關(guān)系的各屬性的域完整性約束,在輸入或更新某屬性值時,DBMS將自動對該屬性值的合法值域進(jìn)行檢查。 例如:建立一個表“Student”(學(xué)生關(guān)系)。 CREATE TABLE Student (SID char(10) PRIMARY KEY, -10個長度的字符類型,域完整性約束 Sname char(8) NOT NULL, -8個

28、長度的字符類型和不允許空,域完整性約束 Sex nchar(1) NULL, -1個長度的雙字節(jié)字符類型,域完整性約束 Birthdate date NULL, -日期類型和允許空,域完整性約束 Specialty varchar(26) NULL) -26個長度的字符類型和允許空,域完整性約束463.參照完整性約束(Reference Integrity) 規(guī)則:參照關(guān)系(子關(guān)系)的外鍵取值不能超出被參照關(guān)系(父關(guān)系)的主鍵取值說明:在參照和被參照關(guān)系中,參照關(guān)系中每個元組的外鍵取值或者為空值或者等于被參照關(guān)系中某個元組的主鍵取值。例如,選課關(guān)系“SC”是參照關(guān)系(子關(guān)系),學(xué)生關(guān)系“Stu

29、dent”是被參照關(guān)系(父關(guān)系)?!癝C”中外鍵學(xué)號“SID”的取值不能超出“Student”中各元組的主鍵學(xué)號“SID”的取值,即不能出現(xiàn)學(xué)號不確定的學(xué)生進(jìn)行選課,從而保證了數(shù)據(jù)的一致性和有效性。檢查:用戶只要給出一對參照關(guān)系和被參照關(guān)系,并給出參照關(guān)系中的外鍵,則DBMS會自動進(jìn)行參照完整性規(guī)則的檢查,當(dāng)發(fā)現(xiàn)違反該規(guī)則的外鍵取值時將顯示錯誤信息,要求用戶予以糾正。 473.參照完整性約束對參照關(guān)系的操作約束向參照關(guān)系(子關(guān)系)插入元組對參照關(guān)系(子關(guān)系)進(jìn)行更新數(shù)據(jù)等價:先刪除元組,再按照以上要求完成向參照關(guān)系插入元組的操作約束。向參照關(guān)系(子)插入元組,檢查外鍵屬性上的值是否在被參照關(guān)系

30、(父)的主鍵屬性值中存在。若存在,可以執(zhí)行插入操作,否則不能執(zhí)行插入操作。插入(子)有其父才能有其子!483.參照完整性約束對被參照關(guān)系的操作約束刪除或更新(父)中的元組檢查其主鍵是否被參照關(guān)系(子)的外鍵引用?若沒被引用:刪除或更新若被引用:拒絕刪除或更新空值刪除或更新(參照關(guān)系(子)中的外鍵改為空值)級聯(lián)刪除或更新(參照關(guān)系(子)中的相應(yīng)元組一起刪除或更新)刪父要看有沒有子!49例如:建立一個學(xué)生選課表“SC”。SC是參照關(guān)系,Student和Course是被參照關(guān)系。SC中外鍵“SID”的取值不能超出Student中主鍵“SID”的取值,SC中外鍵“CID”的值不能超出Course中主鍵

31、“CID”的值。 CREATE TABLE SC (SID char(10) NOT NULL, CID char(8) NOT NULL, Scores decimal(4,1) NULL, PRIMARY KEY(SID,CID), FOREIGN KEY(SID) REFERENCES Student(SID), -定義外鍵 FOREIGN KEY(CID) REFERENCES Course(CID) ), -定義外鍵503.參照完整性約束(Reference Integrity) 3.參照完整性約束檢查51關(guān)系Course(課程情況表)CIDCname16020010微機組裝與維護(hù)1

32、6020011操作系統(tǒng)安裝與使用16020012軟件文檔編輯與制作關(guān)系SC(學(xué)生選課表)SIDCID(外鍵)Scores20142160011602001096.020142160011602001180.020142160021602001067.020142160031602001078.020142160031602001187.020142160031602001285.016020010微機組裝與維護(hù)空值刪除:刪除被參照關(guān)系中的行(微機組裝與維護(hù)),檢查其主鍵是否被參照關(guān)系的外鍵引用,若被引用:外鍵(CID)改為空值注意:如果SID+CID為關(guān)系的SC的主鍵,則CID是不能為空的。N

33、ULLNULL3.參照完整性約束檢查52關(guān)系Course(課程情況表)CIDCname16020010微機組裝與維護(hù)16020011操作系統(tǒng)安裝與使用16020012軟件文檔編輯與制作關(guān)系SC(學(xué)生選課表)SIDCID(外鍵)Scores20142160011602001096.020142160011602001180.020142160021602001067.020142160031602001078.020142160031602001187.020142160031602001285.016020010微機組裝與維護(hù)級聯(lián)刪除:刪除被參照關(guān)系中的行(微機組裝與維護(hù)),檢查其主鍵是否被參

34、照關(guān)系的外鍵引用,若被引用:參照關(guān)系中的相應(yīng)行一起刪除關(guān)系SC(學(xué)生選課表)SIDCID(外鍵)Scores20142160011602001096.020142160011602001180.020142160021602001067.020142160031602001078.020142160031602001187.020142160031602001285.04.用戶定義完整性約束規(guī)則:屬性取值滿足某種條件或函數(shù)要求,包括對每個關(guān)系的取值限制(或稱約束)的具體定義。檢查:用戶定義完整性約束的規(guī)則同其他完整性規(guī)則一樣被記錄在DBMS的數(shù)據(jù)字典中。在對數(shù)據(jù)庫操作時,DBMS會自動根據(jù)所定

35、義的完整性規(guī)則進(jìn)行操作監(jiān)控,拒絕不符合要求的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫。例如:建立一個學(xué)生情況表(Student),屬性性別Sex的取值必須滿足為男或女 CREATE TABLE Student (SID char(10) PRIMARY KEY, Sname char(8) NOT NULL, Sex nchar(1) NULL, Birthday date NULL, Specialty varchar(26) NULL, CONSTRAINT CK_Student_1 CHECK(Sex=男 OR Sex=女) -CHECK檢查,用戶定義完整性約束 ) 說明:DBMS通常提供一些工具來幫助用戶自定義

36、數(shù)據(jù)完整性SQL Server 2012中主要提供:用戶自定義約束(CONSTRAINT)、類型(TYPE)、存儲過程(PROCEDURE)、觸發(fā)器(TRIGGER)和函數(shù)(FUNCTION)等。53關(guān)系模型概述一E-R概念模型到關(guān)系模型的轉(zhuǎn)換二54單元1.3 關(guān)系模型與數(shù)據(jù)庫邏輯設(shè)計二、E-R概念模型到關(guān)系模型的轉(zhuǎn)換55 實體(E)轉(zhuǎn)換為關(guān)系模式12聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式信息世界 機器世界(概念模型:E-R模型) (邏輯模型:關(guān)系模型) 56二、E-R概念模型到關(guān)系模型的轉(zhuǎn)換工作任務(wù)57案例1-3 教務(wù)管理數(shù)據(jù)庫邏輯設(shè)計概念模型 關(guān)系模型 1.將概念設(shè)計中所設(shè)計的E-R模型轉(zhuǎn)換為關(guān)系模型2

37、.根據(jù)需求分析的要求進(jìn)行完整性設(shè)計二、E-R概念模型到關(guān)系模型的轉(zhuǎn)換(一)實體(E)轉(zhuǎn)換為關(guān)系模式的方法 一個實體轉(zhuǎn)換為一個關(guān)系模式,實體的屬性就是關(guān)系的屬性,實體的主鍵就是關(guān)系的主鍵。 例如:學(xué)生實體轉(zhuǎn)換為關(guān)系模式 實體學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè))關(guān)系Student(SID,Sname,Sex,Birthdate,Specialty)58(一)實體(E)轉(zhuǎn)換為關(guān)系模式的方法 例:將教務(wù)管理數(shù)據(jù)庫的實體 “課程”、“教材”、“學(xué)生”、“班級”和“教師”轉(zhuǎn)換為關(guān)系。實體(E):課程(課程號,課程名,學(xué)分,)PK:課程號關(guān)系模式:Course(CID,Cname,Credit,)PK:

38、CID實體(E):教材(教材號,教材名,出版社,價格,)PK:教材號關(guān)系模式:Textbook(TID,Tname,Publisher,Price,) PK:TID實體(E):學(xué)生(學(xué)號,姓名,性別,出生日期,專業(yè),)PK:學(xué)號關(guān)系模式:Student(SID,Sname,Sex,Birthdate,Specialty,) PK:SID實體(E):班級(班級號,班級名稱,年級,教室,人數(shù),) PK:班級號關(guān)系模式:Class(ClassID,Classname,Grade,Classroom,Number,) PK:ClassID實體(E):教師(職工號,姓名,性別,出生日期,職稱,)PK:職

39、工號關(guān)系模式:Teacher(EID,Ename,Sex,Birthdate,Title,)PK:EID59將聯(lián)系“選用”并入實體“教材”端的關(guān)系,加入實體“課程”端的主鍵“課程號”和聯(lián)系本身的屬性“數(shù)量”?;蛘?,將聯(lián)系“選用”并入實體“課程”端的關(guān)系,加入實體“教材”端的主鍵“教材號”和聯(lián)系本身的屬性“數(shù)量”。(二)聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法一對一(11)將聯(lián)系與任意端實體所對應(yīng)的關(guān)系模式合并,加入另一端實體的主鍵和聯(lián)系的屬性。例如:實體“課程”與“教材”之間的聯(lián)系“選用”是11的。實體“教材”Textbook(TID,Tname,Publisher,Price,CID,Quantity

40、) PK:TID FK:CID實體“課程”Course(CID,Cname,Credit)PK:CID或?qū)嶓w“教材”Textbook(TID,Tname,Publisher,Price)PK:TID實體“課程”Course(CID,Cname,Credit,TID,Quantity)PK:CIDFK:TID60將聯(lián)系“屬于”與n端實體“學(xué)生”關(guān)系合并,加入1端實體“班級”的主鍵“班級號”和聯(lián)系本身的屬性“職責(zé)”。(二)聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法一對多(1n)將聯(lián)系與n端實體所對應(yīng)的關(guān)系模式合并,加入1端實體的主鍵和聯(lián)系的屬性例如:實體“班級”和實體“學(xué)生”的聯(lián)系“屬于”是1n的。E-R模型(白底部分)。實體“學(xué)生”Student(SID,Sname,Sex,Birthdate,Specialty,ClassID,Duty)PK:SIDFK:ClassID實體“班級”Class(ClassID,Classname,Grade,Classroom,Number) PK:ClassID61(二)聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法多對多(mn)將聯(lián)系轉(zhuǎn)換成一個關(guān)系。該聯(lián)系相連的各實體的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論