數(shù)據(jù)庫第二單元_第1頁
數(shù)據(jù)庫第二單元_第2頁
數(shù)據(jù)庫第二單元_第3頁
數(shù)據(jù)庫第二單元_第4頁
數(shù)據(jù)庫第二單元_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理數(shù)據(jù)庫原理SQL Server 2005SQL Server 2005第第2章章 關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫學(xué)習(xí)目標(biāo):學(xué)習(xí)目標(biāo):了解關(guān)系數(shù)據(jù)庫和關(guān)系數(shù)據(jù)模型的基本概念和相互關(guān)系掌握關(guān)系數(shù)據(jù)模型的數(shù)據(jù)結(jié)構(gòu)了解關(guān)系的集合運(yùn)算(并,交,差,笛卡爾積)熟練掌握關(guān)系的專門運(yùn)算專門運(yùn)算(投影,選擇,連接)掌握關(guān)系模型完整性規(guī)則完整性規(guī)則(實(shí)體完整性,用戶定義完整性,參照完整性)掌握概念模型到關(guān)系模型轉(zhuǎn)換的基本方法和原則了解關(guān)系規(guī)范化的基本概念和關(guān)系的規(guī)范化方法和要求目標(biāo)SQL Server 2005SQL Server 20052.1 2.1 關(guān)系數(shù)據(jù)庫與關(guān)系模型概述關(guān)系數(shù)據(jù)庫與關(guān)系模型概述 關(guān)系數(shù)據(jù)

2、庫概述關(guān)系數(shù)據(jù)庫概述1關(guān)系模型概述關(guān)系模型概述2關(guān)系模型的特點(diǎn)關(guān)系模型的特點(diǎn)3SQL Server 2005SQL Server 20052.1.1 關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫概述關(guān)系數(shù)據(jù)庫是目前應(yīng)用最廣泛的數(shù)據(jù)庫用關(guān)系數(shù)據(jù)模型來組織數(shù)據(jù)以關(guān)系代數(shù)為基礎(chǔ)處理數(shù)據(jù)庫中的數(shù)據(jù)擁有許多性能良好的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)SQL Server 2005SQL Server 20052.1.2 關(guān)系模型概述關(guān)系數(shù)據(jù)模型(關(guān)系數(shù)據(jù)模型(Relational Data Model),簡稱關(guān)),簡稱關(guān)系模型,是數(shù)據(jù)庫產(chǎn)品的主導(dǎo)數(shù)據(jù)模型系模型,是數(shù)據(jù)庫產(chǎn)品的主導(dǎo)數(shù)據(jù)模型關(guān)系模型的組成要素關(guān)系模型的組成要素關(guān)

3、系數(shù)據(jù)結(jié)構(gòu)關(guān)系操作集合關(guān)系完整性約束SQL Server 2005SQL Server 20052.1.3 關(guān)系模型的特點(diǎn)數(shù)據(jù)結(jié)構(gòu)單一或模型概念單一化數(shù)據(jù)結(jié)構(gòu)單一或模型概念單一化實(shí)體和實(shí)體之間的聯(lián)系用關(guān)系表示關(guān)系的定義也是關(guān)系(元關(guān)系)關(guān)系的運(yùn)算對象和運(yùn)算結(jié)果還是關(guān)系采用集合運(yùn)算采用集合運(yùn)算關(guān)系是元組的集合,所以對關(guān)系的運(yùn)算就是集合運(yùn)算運(yùn)算對象和結(jié)果都是集合,可采用數(shù)學(xué)上的集合運(yùn)算數(shù)據(jù)完全獨(dú)立數(shù)據(jù)完全獨(dú)立只需告訴系統(tǒng)“做什么”,不需要給出“怎么做”程序和數(shù)據(jù)各自獨(dú)立數(shù)學(xué)理論支持?jǐn)?shù)學(xué)理論支持有集合論、數(shù)理邏輯做基礎(chǔ)以數(shù)學(xué)理論為依據(jù)對數(shù)據(jù)進(jìn)行嚴(yán)格定義、運(yùn)算和規(guī)范化SQL Server 2005SQ

4、L Server 20052.2 關(guān)系模型關(guān)系模型 關(guān)系數(shù)據(jù)結(jié)構(gòu)1 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)2 關(guān)系運(yùn)算(專門的集合運(yùn)算)3 關(guān)系完整性4SQL Server 2005SQL Server 20052.2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系的基本定義關(guān)系的基本定義關(guān)系是滿足一定條件的二維表,稱為關(guān)系(relation),在關(guān)系模型中,無論概念世界中的實(shí)體還是實(shí)體之間的聯(lián)系均由關(guān)系(表)來表示。 例如:學(xué)生情況表 Student,表2-1 。SIDSnameSexBirthdaySpecialtyt2005216001趙成剛男1986年5月計(jì)算機(jī)應(yīng)用2005216002李敬女1986

5、年1月軟件技術(shù)2005216003郭洪亮男1986年4月電子商務(wù)2005216004呂珊珊女1987年10月計(jì)算機(jī)網(wǎng)絡(luò)2005216005高全英女1987年7月電子商務(wù)2005216006郝莎女1985年8月電子商務(wù)2005216007張峰男1986年9月軟件技術(shù)2005216111吳秋娟女1986年8月電子商務(wù)SQL Server 2005SQL Server 20052.2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系術(shù)語關(guān)系術(shù)語關(guān)系:每個二維表稱為一個關(guān)系例如:學(xué)生情況表Student關(guān)系名:二維表的名字例如:Student關(guān)系型:表的所有列標(biāo)題,描述實(shí)體或聯(lián)系的型例如:(SID,Sna

6、me,Sex,Birthday,Specialty)關(guān)系值:表的列對應(yīng)的數(shù)據(jù),描述實(shí)體或聯(lián)系的值例如:2005216003 ,郭洪亮,男,1986年4月, 電子商務(wù) 2005216004 ,呂珊珊,女,1987年10月,計(jì)算機(jī)網(wǎng)絡(luò)SQL Server 2005SQL Server 20052.2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系術(shù)語關(guān)系術(shù)語元組:表中的一行,描述一個實(shí)體或聯(lián)系例如:2005216004,呂珊珊,女,1987年10月,計(jì)算機(jī)網(wǎng)絡(luò)屬性:表中的一列的標(biāo)題例如:SID,Sname屬性值:表中的一列對應(yīng)的數(shù)據(jù),描述實(shí)體或聯(lián)系的特征例如:2005216003,郭洪亮主碼:表中的

7、某個屬性或?qū)傩越M,能惟一確定一個元組,即確定一個實(shí)體例如:SID關(guān)系模式:對關(guān)系的描述,表示為關(guān)系名(屬性1,屬性2, ,屬性n)例如:Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade) SQL Server 2005SQL Server 20052.2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系術(shù)語與其他術(shù)語的對照關(guān)系術(shù)語與其他術(shù)語的對照 表表2-2 概念模型中關(guān)系理論中關(guān)系數(shù)據(jù)庫中某些軟件中實(shí)體集Entity set關(guān)系Relation表Table表或數(shù)據(jù)庫文件實(shí)體E

8、ntity元組Tuple行Row記錄Record屬性Attribute屬性Attribute列Column字段Field主碼Primary key主碼Primary key關(guān)鍵字Primary key關(guān)鍵字Primary keySQL Server 2005SQL Server 20052.2.1 關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系的特點(diǎn)關(guān)系的特點(diǎn) 關(guān)系(表)的每一元組(行)定義實(shí)體集的一個實(shí)體,每一列定義實(shí)體的一個屬性。每一列表示一個屬性,且列名不能重復(fù)。關(guān)系必須有一個主碼,唯一標(biāo)識一個元組(實(shí)體)。列的每個值必須與對應(yīng)屬性的類型相同。列有取值范圍,稱為域。列是不可分割的最小數(shù)據(jù)項(xiàng)。行

9、、列的順序?qū)τ脩魺o關(guān)緊要。SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)設(shè):有兩個關(guān)系R和S,具有相同的結(jié)構(gòu),t是元組變量,關(guān)系R為喜歡跳舞的學(xué)生,S為喜歡唱歌的學(xué)生。表2-3 喜歡跳舞的學(xué)生關(guān)系R Sname Sex 李敬 女 高全英 女 吳秋娟 女 穆金華 男 張欣欣 女 王婷 女表2-4 喜歡唱歌的學(xué)生關(guān)系S Sname Sex 趙成剛 男 張峰 男 吳秋娟 女 穆金華 男 孫政先 男 王婷 女 呂文昆 男 孫煒 女SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算

10、)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)并并(Union)公式:RS=ttR t S 語義:t 元組屬于R或者屬于S。例2-1:喜歡跳舞或喜歡唱歌的學(xué)生, RS的關(guān)系如表2-5所示。表2-5 RSSnameSex李敬女高全英女吳秋娟女穆金華男張欣欣女王婷女趙成剛男張峰男孫政先男呂文昆男孫煒女SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)差(差(Difference)公式:RS=ttR tS 語義:t 元組屬于R,但不屬于S。例2-2:喜歡跳舞但是不喜歡唱歌的學(xué)生,RS的關(guān)系如表2-6所示。 表2-6 R-SSnameSex李敬女

11、高全英女張欣欣女SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)交(交(Intersection)公式:RS=ttR t S 語義:t 元組屬于R并且屬于S。例2-3:既喜歡跳舞也喜歡唱歌的學(xué)生,RS的關(guān)系如表2-7所示。 表2-7 RSSnameSex吳秋娟女穆金華男王婷女SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)笛卡爾積笛卡爾積(Cartesian Product)設(shè):關(guān)系R為n列(n個屬性),k1行(k1個元組);關(guān)系S為m列(m個

12、屬性),k2行(k2個元組)。公式:RS=tRtS tR R tS S 語義:笛卡爾積仍是一個關(guān)系,該關(guān)系的結(jié)構(gòu)是R和S結(jié)構(gòu)之連接,即前n個屬性來自R,后m個屬性來自S,該關(guān)系的值是由R中的每個元組連接S中的每個元組所構(gòu)成元組的集合。注意:新關(guān)系的屬性個數(shù)等于n+m,元組個數(shù)等于k1*k2。SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)關(guān)系運(yùn)算(傳統(tǒng)的集合運(yùn)算)例2-4 :設(shè)關(guān)系R和S如表2-8和表2-9所示,RS如表2-10所示。 表2-8 學(xué)生關(guān)系RSIDSname2005216001趙成剛2005216002李敬表2-9 課程關(guān)系SCI

13、DCname16020010C語言程序設(shè)計(jì)16020011圖像處理16020012網(wǎng)頁設(shè)計(jì)表2-10 學(xué)生選課新關(guān)系 RSSIDSnameCIDCname2005216001趙成剛16020010C語言程序設(shè)計(jì)2005216001趙成剛16020011圖像處理2005216001趙成剛16020012網(wǎng)頁設(shè)計(jì)2005216002李敬16020010C語言程序設(shè)計(jì)2005216002李敬16020011圖像處理2005216002李敬16020012網(wǎng)頁設(shè)計(jì)SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(專門的集合運(yùn)算)關(guān)系運(yùn)算(專門的集合運(yùn)算)投影(投影(Pr

14、ojection)設(shè):t是關(guān)系R中的一個元組,A是要從R中投影出的屬性子集。公式:A(R)= t.At R 語義:從關(guān)系R中按所需順序選取若干個屬性構(gòu)成新關(guān)系。注意:新關(guān)系的元組數(shù)小于等于原關(guān)系的元組數(shù),新關(guān)系的屬性數(shù)不多于原關(guān)系中的。SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(專門的集合運(yùn)算)關(guān)系運(yùn)算(專門的集合運(yùn)算)表2-11 關(guān)系RSIDSnameSexBirthdaySpecialty2005216001趙成剛男1986年5月計(jì)算機(jī)應(yīng)用2005216002李敬女1986年1月軟件技術(shù)2005216003郭洪亮男1986年4月電子商務(wù)20052160

15、04呂珊珊女1987年10月計(jì)算機(jī)網(wǎng)絡(luò)2005216005高全英女1987年7月電子商務(wù)2005216006郝莎女1985年8月電子商務(wù)2005216007張峰男1986年9月軟件技術(shù)2005216111吳秋娟女1986年8月電子商務(wù)表2-12 Sname,Sex (R)SnameSex趙成剛男李敬女郭洪亮男呂珊珊女高全英女郝莎女張峰男吳秋娟女例例2-5:列出學(xué)生情況表:列出學(xué)生情況表R(表(表2-11)的學(xué)生姓名和性別的)的學(xué)生姓名和性別的情況,投影運(yùn)算結(jié)果如表情況,投影運(yùn)算結(jié)果如表2-12所示。所示。SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(專門的集

16、合運(yùn)算)關(guān)系運(yùn)算(專門的集合運(yùn)算)選擇(Selection)設(shè):設(shè):t t是關(guān)系是關(guān)系R R中的一個元組,中的一個元組,F(xiàn)(t)F(t)為元組邏輯表達(dá)式。為元組邏輯表達(dá)式。公式公式:F(t)(R)= ttR F(t)=true語義:從關(guān)系中找出滿足條件的那些元組稱為選擇。語義:從關(guān)系中找出滿足條件的那些元組稱為選擇。注意:運(yùn)算結(jié)果的元組數(shù)不多于原關(guān)系中的元組數(shù)。注意:運(yùn)算結(jié)果的元組數(shù)不多于原關(guān)系中的元組數(shù)。例例2-62-6:在學(xué)生情況表:在學(xué)生情況表2.10 R2.10 R中選擇出男生,如表中選擇出男生,如表2-132-13所示。所示。表2-13 Sex=男(R)SIDSnameSexBirt

17、hdaySpecialty2005216001趙成剛男1986年5月計(jì)算機(jī)應(yīng)用2005216003郭洪亮男1986年4月電子商務(wù)2005216007張峰男1986年9月軟件技術(shù)SQL Server 2005SQL Server 2005連接(Join)設(shè):A,B分別是關(guān)系R和S中的屬性,t是連接關(guān)系中的一個元組。公式:R S=R.AS.B ( RS) AS 語義:兩個關(guān)系R和S按相應(yīng)屬性值的比較條件連接起來,生成一個新關(guān)系,也稱為連接。等值連接 RS選擇(為)按照兩關(guān)系中對應(yīng)屬性值相等的條件所進(jìn)行的連接自然連接 等值連接去重復(fù)屬性記作:R S2.2.2 關(guān)系運(yùn)算(專門的集合運(yùn)算)關(guān)系運(yùn)算(專門

18、的集合運(yùn)算)SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(專門的集合運(yùn)算)關(guān)系運(yùn)算(專門的集合運(yùn)算)例2-7:設(shè)學(xué)生、選課和課程表如表2-14、表2-15、表2-16所示,學(xué)生選課的情況為S SC C的結(jié)果,如表2-17所示。 表2-14SSIDSname2005216111吳秋娟2005216112穆金華2005216115張欣欣表2-15 SCSIDCID20052161111602001020052161111602001320052161121602001420052161121602001020052161151602001120052161151

19、6020014表2-16 CCIDCname16020010C語言程序設(shè)計(jì)16020011圖像處理16020012網(wǎng)頁設(shè)計(jì)16020013數(shù)據(jù)結(jié)構(gòu)16020014數(shù)據(jù)庫原理與應(yīng)用16020015專業(yè)英語16020016軟件文檔的編寫16020017美工基礎(chǔ)16020018面向?qū)ο蟪绦蛟O(shè)計(jì)SQL Server 2005SQL Server 20052.2.2 關(guān)系運(yùn)算(專門的集合運(yùn)算)關(guān)系運(yùn)算(專門的集合運(yùn)算)自然連接結(jié)果如下:表2-17 S SC C SIDSnameCIDCname2005216111吳秋娟16020010C語言程序設(shè)計(jì)2005216111吳秋娟16020013數(shù)據(jù)結(jié)構(gòu)200

20、5216112穆金華16020014數(shù)據(jù)庫原理與應(yīng)用2005216112穆金華16020010C語言程序設(shè)計(jì)2005216115張欣欣16020011圖像處理2005216115張欣欣16020014數(shù)據(jù)庫原理與應(yīng)用SQL Server 2005SQL Server 20052.2.3 關(guān)系完整性關(guān)系完整性實(shí)體完整性實(shí)體完整性(Entity Integrity) 規(guī)則:若屬性A是基本關(guān)系R的主碼,則屬性A不能取空值。 例如:建立一個課程情況表(Course),屬性學(xué)號CID為主碼,惟一且不能為空值。CREATE TABLE Course ( CID char(8) NOT NULL PRIMA

21、RY KEY, -實(shí)體完整性控制 Cname nchar(30) NULL, Credit decimal(3,1) NULL, ) SQL Server 2005SQL Server 20052.2.3 關(guān)系完整性關(guān)系完整性參照完整性(參照完整性(Reference Integrity) 規(guī)則:參照關(guān)系(子表)的外碼取值不能超出被參照關(guān)系(父表)的主碼取值。例如:建立一個學(xué)生選課表(SC)。SC是參照關(guān)系,Student是被參照關(guān)系,SC中外碼SID的值或者為空或者等于Student中主碼SID的值。 CREATE TABLE SC ( SID char(10) NOT NULL, CID

22、char(8) NOT NULL, Grade numeric(5,1) NULL, PRIMARY KEY(SID,CID), FOREIGN KEY(SID) REFERENCES Student(SID) -參照完整性控制 ) SQL Server 2005SQL Server 20052.2.3 關(guān)系完整性關(guān)系完整性域(用戶)定義完整性域(用戶)定義完整性 約束:屬性取值滿足某種條件或函數(shù)要求例如:建立一個學(xué)生情況表(Student),屬性性別Sex的取值必須滿足為男或女。CREATE TABLE Student (SID char(10) PRIMARY KEY, -實(shí)體完整性控制S

23、name char(8) NOT NULL,Sex char(2) NULL CHECK(Sex=男男 OR Sex=女女), -域完整性控制Birthday datetime NULL,Specialty varchar(26) NULL, ) SQL Server 2005SQL Server 20052.2.3 關(guān)系完整性關(guān)系完整性完整性規(guī)則檢查完整性規(guī)則檢查為了維護(hù)數(shù)據(jù)庫中數(shù)據(jù)的完整性,在對關(guān)系數(shù)據(jù)庫執(zhí)行插入、刪除和修改操作時,要檢查是否滿足完整性規(guī)則。 實(shí)體完整性規(guī)則:檢查主碼屬性上的值是否已經(jīng)存在。若不存在,可以執(zhí)行插入操作,否則不能執(zhí)行插入操作。參照完整性規(guī)則:向參照關(guān)系插入,檢

24、查外碼屬性上的值是否在被參照關(guān)系的主碼屬性值中存在。若存在,可以執(zhí)行插入操作,否則不能執(zhí)行插入操作。戶定義完整性規(guī)則:檢查輸入數(shù)據(jù)是否符合用戶定義的完整性規(guī)則。若符合,可以執(zhí)行插入操作,否則不能執(zhí)行插入操作。 SQL Server 2005SQL Server 20052.2.3 關(guān)系完整性關(guān)系完整性刪除參照完整性規(guī)則:刪除被參照關(guān)系中的行,檢查其主碼是否被參照關(guān)系的外碼引用,若沒被引用:刪除若被引用:拒絕刪除 空值刪除(外碼改為空值) 級聯(lián)刪除(參照關(guān)系中的相應(yīng)行一起刪除)修改等價:先刪除,后插入(以上兩種情況的綜合) SQL Server 2005SQL Server 20052.3 E-

25、R模型到關(guān)系模型的轉(zhuǎn)換模型到關(guān)系模型的轉(zhuǎn)換 實(shí)體(實(shí)體(E)轉(zhuǎn)換為關(guān)系模式)轉(zhuǎn)換為關(guān)系模式12聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式)轉(zhuǎn)換為關(guān)系模式SQL Server 2005SQL Server 20052.3.1 實(shí)體(實(shí)體(E)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法 一個實(shí)體轉(zhuǎn)換為一個關(guān)系模式,實(shí)體的屬性就是關(guān)系的一個實(shí)體轉(zhuǎn)換為一個關(guān)系模式,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的碼就是關(guān)系的碼。屬性,實(shí)體的碼就是關(guān)系的碼。 例如:學(xué)生實(shí)體轉(zhuǎn)換為關(guān)系模式例如:學(xué)生實(shí)體轉(zhuǎn)換為關(guān)系模式 學(xué)生(學(xué)號,姓名,性別,出生日期)Student(SID,Sname,Sex,Birthday,Specialty)

26、Student(SID,Sname,Sex,Birthday,Specialty)SQL Server 2005SQL Server 20052.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法一對一一對一 將聯(lián)系與任意端實(shí)體所對應(yīng)的關(guān)系模式合并,加入另一端實(shí)體的碼和聯(lián)系的屬性。例如:實(shí)體學(xué)校(學(xué)校編號,名稱)與校長(編號,姓名)之間的任職聯(lián)系是1:1的聯(lián)系。學(xué)校編號名稱任職日期學(xué)校任職校長編號姓名11SQL Server 2005SQL Server 20052.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法校長(E)編號(PK)姓名學(xué)校(E)學(xué)校編號(

27、PK)名稱 任職(任職(R)任職日期任職日期1 : 1學(xué)校(學(xué)校編號,名稱) 校長(編號,姓名,學(xué)校編號,任職日期學(xué)校編號,任職日期) SQL Server 2005SQL Server 2005 2.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法一對多一對多將聯(lián)系與n端實(shí)體所對應(yīng)的關(guān)系模式合并,加入1端實(shí)體的碼和聯(lián)系的屬性。例如:圖書實(shí)體和讀者類型實(shí)體的聯(lián)系是1:n的。 讀者編號姓名限借數(shù)量讀者屬于類型讀者類型類型編號類型名稱n1借閱期限SQL Server 2005SQL Server 20052.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法類型(

28、類型(E)類型編號(PK)類型名稱限借數(shù)量借閱期限讀者(讀者(E)讀者編號(PK)姓名屬于類型(屬于類型(R) 借閱數(shù)量n:1 Reader(RID,Rname, TypeID, Lendnum ) ReaderType(TypeID, Typename,LimitNum, LimitDays)SQL Server 2005SQL Server 20052.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法多對多多對多將聯(lián)系轉(zhuǎn)換成一個關(guān)系模式。該聯(lián)系相連的各實(shí)體的碼和聯(lián)系本身的屬性轉(zhuǎn)換為關(guān)系的屬性。例如:教務(wù)管理中選課的E-R模型如圖所示,學(xué)生和課程的聯(lián)系是多對多的。課程學(xué)生選

29、課成績nmSQL Server 2005SQL Server 20052.3.2 聯(lián)系(聯(lián)系(R)轉(zhuǎn)換為關(guān)系模式的方法)轉(zhuǎn)換為關(guān)系模式的方法課程(課程(E)課程編號(PK)課程名稱學(xué)分學(xué)生(學(xué)生(E)學(xué)生編號(PK)姓名性別出生日期專業(yè) 選課(選課(R) 成績成績n:m Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)SQL Server 2005SQL Server 20052.4 關(guān)系規(guī)范化基礎(chǔ)關(guān)系規(guī)范化基礎(chǔ)不規(guī)范:產(chǎn)生數(shù)據(jù)冗余,帶來很多問題。不規(guī)范:產(chǎn)生數(shù)據(jù)冗余,帶

30、來很多問題。規(guī)范:提高數(shù)據(jù)的結(jié)構(gòu)化、共享性、一致性和可操作性。規(guī)范:提高數(shù)據(jù)的結(jié)構(gòu)化、共享性、一致性和可操作性。范式:規(guī)范化的程度,級別。范式:規(guī)范化的程度,級別。規(guī)范化:在關(guān)系數(shù)據(jù)庫中的每個關(guān)系都需要進(jìn)行規(guī)范化,規(guī)范化:在關(guān)系數(shù)據(jù)庫中的每個關(guān)系都需要進(jìn)行規(guī)范化,使之達(dá)到一定的規(guī)范化程度。使之達(dá)到一定的規(guī)范化程度。 SQL Server 2005SQL Server 2005 2.4.2第一范式第一范式1NF(First Normal Form) 定義:所有屬性不可再分,即原子屬性。記作:定義:所有屬性不可再分,即原子屬性。記作:R1 1NF例如:設(shè)一個通信錄,電話屬性需要再分,達(dá)不到1NF。

31、 學(xué)號姓名性別電話手機(jī)家庭宿舍2005216111吳秋娟女13105242389612796361254632005216112穆金華男13105543364623115962351592005216115張欣欣女13105326757389035657903562005216117孟霞女1310524233678435677900453SQL Server 2005SQL Server 2005 2.4.2 第一范式第一范式1NF(First Normal Form) 問題:不是二維表,不夠問題:不是二維表,不夠1 1NF解決方法解決方法1 1:在屬性上展開:在屬性上展開學(xué)號姓名性別手機(jī)家庭

32、電話宿舍電話2005216111吳秋娟女13105242389612796361254632005216112穆金華男13105543364623115962351592005216115張欣欣女13105326757389035657903562005216117孟霞女1310524233678435677900453SQL Server 2005SQL Server 2005 2.4.2 第一范式第一范式1NF(First Normal Form) 解決方法解決方法2 2:分解為二個關(guān)系分解為二個關(guān)系學(xué)號姓名性別2005216111吳秋娟女2005216112穆金華男2005216115張

33、欣欣女2005216117孟霞女學(xué)號手機(jī)家庭電話宿舍電話20052161111310524238961279636125463200521611213105543364623115962351592005216115131053267573890356579035620052161171310524233678435677900453SQL Server 2005SQL Server 20052.4.2第二范式第二范式2NF(Second Normal Form)定義定義所有非主屬性完全依賴每個候選關(guān)鍵字。記作R2NF或:取消部分依賴。假設(shè):有一個教師授課的關(guān)系模式。假設(shè):有一個教師授課的關(guān)系

34、模式。TC(TNO,Tname,Title,ADDR,CNO,Cname,Level,Credit)PK:(TNO, CNO) SQL Server 2005SQL Server 20052.4.2第二范式第二范式2NF(Second Normal Form)問題問題數(shù)據(jù)冗余(不同課程同一任教的教師名等)更新異常(冗余帶來的不一致)插入異常(沒課的教師關(guān)鍵字無值不允許插入)刪除異常(沒課的教師要刪除,致使刪除有關(guān)記錄) SQL Server 2005SQL Server 20052.4.2 第二范式第二范式2NF(Second Normal Form)原因原因關(guān)系屬性之間存在部分函數(shù)依賴,不夠

35、2NF。主碼(TNO, CNO)決定Cname,Level,Credit,但是存在主碼的一部分CNO就可以決定Cname,Credit。 (TNO, CNO)Cname,Credit (CNO) Cname, Credit SQL Server 2005SQL Server 20052.4.2第二范式第二范式2NF(Second Normal Form)解決辦法解決辦法拆分:原則是概念單一,完整(無損)上述達(dá)不到2NF的關(guān)系分解如下:多 T (TNO,Tname,Title,ADDR)對 TC(TNO,CNO,Level)多 C( CNO,Cname,Credit)SQL Server 200

36、5SQL Server 20052.4.3第三范式第三范式3NF(Third Normal Form)定義定義所有非主屬性都不傳遞函數(shù)依賴每個候選關(guān)鍵字。記作:R3NF 或:取消傳遞依賴假設(shè):為圖書管理系統(tǒng)的數(shù)據(jù)模式Book增加一個屬性ISBN。Books (BID,ISBN,Bname,Author, PubComp, PubDate,Price) PK:BID SQL Server 2005SQL Server 20052.4.3 第三范式第三范式3FN(Third Normal Form)定義定義所有非主屬性都不傳遞函數(shù)依賴每個候選關(guān)鍵字。記作:R3NF 或:取消傳遞依賴假設(shè):為圖書管理

37、系統(tǒng)的數(shù)據(jù)模式Book增加一個屬性ISBN。Books (BID,ISBN,Bname,Author, PubComp, PubDate,Price) PK:BID SQL Server 2005SQL Server 20052.4.3第三范式第三范式3NF(Third Normal Form)問題問題數(shù)據(jù)冗余(圖書館多本書同一出版社,書名等)更新異常(冗余帶來的不一致)插入異常(圖書館沒有購進(jìn)的書的出版情況不允許插入)刪除異常(圖書館丟失刪除的書,致使刪除該書的有關(guān)出版情況) SQL Server 2005SQL Server 20052.4.3 第三范式第三范式3NF(Third Norm

38、al Form)原因原因關(guān)系屬性之間存在傳遞函數(shù)依賴,不夠3FN。存在:BIDISBN, ISBNBname,Author, PubComp, PubDate,Price X Y , Y Z,YX X傳遞決定Z或Z函數(shù)依賴于X SQL Server 2005SQL Server 20052.4.3 第三范式第三范式3NF(Third Normal Form)解決辦法解決辦法拆分:原則是概念單一,完整(無損)。上述達(dá)不到3NF的關(guān)系分解如下:m Books(BID,ISBN) FK:ISBN對 BooksType (BID,ISBN) 聯(lián)系可以通過加外碼省略1Type (ISBN,Bname,Author,PubComp,PubDate,Price) SQL Server 2005SQL Server 20052.5 關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言SQL簡介簡介SQL(Structured Query Language)被稱為結(jié)構(gòu))被稱為結(jié)構(gòu)化查詢語言,是目前最為廣泛使用的關(guān)系數(shù)據(jù)庫查詢化查詢語言,是目前最為廣泛使用的關(guān)系數(shù)據(jù)庫查詢語言。語言。IBM公司:公司:SQL/DS(7181)Sybase與與Microsoft公司:公司:Transact-SQLOracle公司:公司:PL/SQLANSI(Institute)/ ISO(19861999):):SQL-92

溫馨提示

  • 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

提交評論