第2章-關(guān)系數(shù)據(jù)庫系統(tǒng)分析.ppt_第1頁
第2章-關(guān)系數(shù)據(jù)庫系統(tǒng)分析.ppt_第2頁
第2章-關(guān)系數(shù)據(jù)庫系統(tǒng)分析.ppt_第3頁
第2章-關(guān)系數(shù)據(jù)庫系統(tǒng)分析.ppt_第4頁
第2章-關(guān)系數(shù)據(jù)庫系統(tǒng)分析.ppt_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余44頁可下載查看

下載本文檔

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

文檔簡介

1、,2.1 關(guān)系數(shù)據(jù)庫系統(tǒng)概述 2.2 關(guān)系模型 2.3 關(guān)系代數(shù),第2章關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)系數(shù)據(jù)庫是運(yùn)用數(shù)學(xué)方法來處理數(shù)據(jù)庫中數(shù)據(jù)的。 關(guān)系數(shù)據(jù)庫系統(tǒng)是基于關(guān)系模型的數(shù)據(jù)庫系統(tǒng),它由美國IBM公司的E.F.Codd提出。E.F.Codd從1970年起陸續(xù)發(fā)表多篇論文,奠定了關(guān)系數(shù)據(jù)庫的理論基礎(chǔ)。20世紀(jì)70年代末以來,計(jì)算機(jī)廠商推出的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品,其中90%以上為關(guān)系數(shù)據(jù)庫,并取代了網(wǎng)狀、層次數(shù)據(jù)庫系統(tǒng)而成為主流數(shù)據(jù)庫系統(tǒng)。,2.1關(guān)系數(shù)據(jù)庫系統(tǒng)概述(略),2.1.1關(guān)系數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn) 2.1.2關(guān)系數(shù)據(jù)庫的發(fā)展動(dòng)向,2.1.1關(guān)系數(shù)據(jù)庫系統(tǒng)的優(yōu)點(diǎn),(1) 數(shù)據(jù)高度結(jié)構(gòu)化關(guān)系數(shù)據(jù)庫系統(tǒng)

2、中采用統(tǒng)一的結(jié)構(gòu)類型,即二維表作為數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)高度結(jié)構(gòu)化,而且不存在復(fù)雜的內(nèi)部連接關(guān)系,具有高度的簡潔性。 (2) 易于編制應(yīng)用程序關(guān)系數(shù)據(jù)庫系統(tǒng)的使用不涉及系統(tǒng)內(nèi)部的物理結(jié)構(gòu),而且所用數(shù)據(jù)語言均為非過程語言,因此開發(fā)、使用方便。 (3) 數(shù)據(jù)獨(dú)立性高關(guān)系數(shù)據(jù)庫系統(tǒng)的組織、使用不涉及物理存儲(chǔ)因素和過程性因素,因此數(shù)據(jù)的物理獨(dú)立性和程序獨(dú)立性都很高。 (4) 功能強(qiáng)大關(guān)系數(shù)據(jù)庫系統(tǒng)能直接構(gòu)造復(fù)雜的數(shù)據(jù)模型,特別是多聯(lián)系間的模型。它可以一次獲取多個(gè)記錄,可以修改數(shù)據(jù)間的聯(lián)系,同時(shí)也有一定程度修改數(shù)據(jù)模式的能力。此外,路徑選擇靈活,存儲(chǔ)結(jié)構(gòu)簡單。 (5) 理論基礎(chǔ)深關(guān)系數(shù)據(jù)庫的理論主要有關(guān)系運(yùn)算理

3、論和關(guān)系模式設(shè)計(jì)理論。由于有理論工具的支撐,使得對關(guān)系數(shù)據(jù)庫系統(tǒng)的進(jìn)一步研究與提高有了可靠保證。,2.1.2關(guān)系數(shù)據(jù)庫的發(fā)展動(dòng)向,關(guān)系數(shù)據(jù)庫技術(shù)已成熟,其產(chǎn)品全方位向縱深發(fā)展,主要表現(xiàn)在如下幾個(gè)方面: (1) 可移植性 目前,大量的產(chǎn)品能同時(shí)適應(yīng)多個(gè)機(jī)種與多個(gè)操作系統(tǒng)。如Oracle能適應(yīng)70多種操作系統(tǒng)。 (2) 標(biāo)準(zhǔn)化 目前以SQL為代表的結(jié)構(gòu)化查詢語言已陸續(xù)被美國標(biāo)準(zhǔn)化組織ANSI、國際標(biāo)準(zhǔn)化組織ISO以及我國標(biāo)準(zhǔn)化組織確定為數(shù)據(jù)庫使用的標(biāo)準(zhǔn)化語言,從而完成了關(guān)系數(shù)據(jù)庫使用的統(tǒng)一性??梢哉f這是關(guān)系數(shù)據(jù)庫領(lǐng)域的一次革命。 (3) 開發(fā)工具 由于用戶對數(shù)據(jù)庫直接操作的需要,要求數(shù)據(jù)庫系統(tǒng)不僅

4、有數(shù)據(jù)定義、操縱與控制等功能,還需要有大量的用戶界面生成、開發(fā)工具等以利于用戶的開發(fā)應(yīng)用。因此,自20世紀(jì)80年代以來,大多數(shù)關(guān)系數(shù)據(jù)庫都提供了這類工具。如Oracle Developer-2000、Visual Basic、PowerBuilder、Delphi等,它們大都屬于第4代語言范圍。,(4) 分布式功能 由于數(shù)據(jù)庫在計(jì)算機(jī)網(wǎng)絡(luò)上的大量應(yīng)用以及數(shù)據(jù)共享的要求,目前多數(shù)關(guān)系數(shù)據(jù)庫都提供分布式功能。 (5) 開放性 現(xiàn)代關(guān)系數(shù)據(jù)庫系統(tǒng)大都具有通用的ODBC、JDBC接口以快速的專用接口,能與不同的數(shù)據(jù)庫、不同的應(yīng)用接口相連,并能不斷擴(kuò)充。,(6)其他方面的擴(kuò)展 由于計(jì)算機(jī)應(yīng)用的發(fā)展,目前

5、關(guān)系數(shù)據(jù)庫系統(tǒng)還出現(xiàn)了很多其他功能。 多媒體管理能力 在關(guān)系數(shù)據(jù)庫中擴(kuò)充多媒體的存儲(chǔ)能力與表示手段,以利于它在多媒體中的應(yīng)用。 知識(shí)管理能力 在數(shù)據(jù)庫中增添知識(shí)表示與推理功能,以適應(yīng)它在人工智能中的應(yīng)用。 工程管理能力 在數(shù)據(jù)庫中增添圖形以及CAD/CAM功能,以適應(yīng)它在工程領(lǐng)域中的應(yīng)用。目前Oracle、Ingress都有此方面的功能。,2.2關(guān)系模型,關(guān)系模型由三部分組成 2.2.1關(guān)系數(shù)據(jù)結(jié)構(gòu) 2.2.2關(guān)系操作 2.2.3關(guān)系完整性規(guī)則,2.2.1 關(guān)系數(shù)據(jù)結(jié)構(gòu),1. 關(guān)系 在用戶觀點(diǎn)下,關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)是一張二維表,稱為“關(guān)系”。無論是實(shí)體集還是實(shí)體之間的聯(lián)系均由單一的“關(guān)系

6、”結(jié)構(gòu)類型表示。 關(guān)系模型中的主要術(shù)語(與計(jì)算機(jī)中術(shù)語對照):,關(guān)系一般滿足下面7個(gè)性質(zhì): (1)元組個(gè)數(shù)有限性:關(guān)系中元組個(gè)數(shù)是有限的; (2)元組的唯一性:關(guān)系中各元組均不相同; (3)元組的次序無關(guān)性:關(guān)系中元組的次序可以任意交換; (4)屬性名唯一性:關(guān)系中屬性名各不相同; (5)屬性的次序無關(guān)性:關(guān)系中各屬性次序無關(guān),可任意交換; (6)分量值域的同一性:關(guān)系屬性列中分量具有與該屬性相同的值域(例,學(xué)生情況表中年齡域?yàn)?4-50,成績域?yàn)?-100);,(7)元組分量的原子性:關(guān)系中元組的分量是不可分割的基本數(shù)據(jù)項(xiàng),即,不允許“表中有表”。 例,職工工資表具體如下: 若以“職工工資表

7、(職工號(hào),姓名,職稱,工資,扣除,實(shí)發(fā))”作為該二維表的關(guān)系模式,則出現(xiàn)了還可細(xì)分的數(shù)據(jù)項(xiàng)“工資-基本、工齡、職務(wù)”、“扣除-房租、水電”,不滿足該性質(zhì),不是規(guī)范的“關(guān)系”。,2. 碼(key) 碼是關(guān)系模型中的一個(gè)重要概念,它具有標(biāo)識(shí)元組、建立元組間聯(lián)系等重要作用。 (1)碼(key):關(guān)系中能唯一地標(biāo)識(shí)一個(gè)元組的最小屬性集。 (2)候選碼(candidate key):關(guān)系中的碼可能有多個(gè),統(tǒng)稱為候選碼。 例,學(xué)生信息表中如果同時(shí)有“學(xué)號(hào)、身份證號(hào)”屬性,學(xué)號(hào)可以單獨(dú)作為碼,身份證號(hào)也可以單獨(dú)作為碼, “學(xué)號(hào),身份證號(hào)”均稱為候選碼。 (3)主碼(primary key):若一個(gè)關(guān)系有多個(gè)

8、候選碼,則選定其中一個(gè)為主碼或主關(guān)鍵字,簡稱“碼”。,(4)外碼(foreign key):如果關(guān)系R中的某屬性集是關(guān)系S的主碼,則稱該屬性集為A的“外碼”或外關(guān)鍵字。 有如下兩個(gè)關(guān)系Zgqkb(職工情況表)和Qybmb(企業(yè)部門表): Zgqkb(職工號(hào)Zgh,姓名Xm,性別Xb,年齡Nl,部門編號(hào)Bmbh,) Qybmb(部門編號(hào)Bmbh,部門名稱Bmmc,部門主管Bmzg,) 其中部門編號(hào)Bmbh是關(guān)系Qybmb的主碼,是關(guān)系Zgqkb的外碼。,3. 關(guān)系的分類 按照不同的標(biāo)準(zhǔn),關(guān)系有不同的分類。 (1)按屬性分:具有n個(gè)屬性的關(guān)系稱為n元關(guān)系。n=0時(shí)稱空關(guān)系。 (2)按元組數(shù)目分:如

9、果一個(gè)關(guān)系的元組數(shù)目是無限的,則稱為無限關(guān)系,否則稱為有限關(guān)系。由于計(jì)算機(jī)存儲(chǔ)系統(tǒng)的限制,通常我們只研究有限關(guān)系。,(3)按關(guān)系的存儲(chǔ)狀況分: 基本表:實(shí)際存在的表(實(shí)表),是實(shí)際存儲(chǔ)的數(shù)據(jù)的邏輯表示。 查詢表:是查詢結(jié)果表或查詢中生成的臨時(shí)表。 視圖表:是由基本表或其他視圖表導(dǎo)出的表,是為了數(shù)據(jù)查詢方便、數(shù)據(jù)處理簡便以及數(shù)據(jù)安全要求而設(shè)計(jì)的數(shù)據(jù)虛表,不對應(yīng)實(shí)際存儲(chǔ)的數(shù)據(jù)。,2.2.2 關(guān)系操作,關(guān)系模型常用的操作有查詢、刪除、插入、修改等操作。 1.關(guān)系數(shù)據(jù)庫所使用的關(guān)系語言的特點(diǎn)是:高度非過程化;即用戶只需說明“做什么”,而不必說明“怎么做”,由DBMS完成。 2.早期的關(guān)系操作能力是用兩

10、種方法表示的:代數(shù)方式和邏輯方式,即“關(guān)系代數(shù)”和“關(guān)系演算”,理論上這兩種方式功能是完全等價(jià)的(下節(jié)介紹)。 3.關(guān)系操作方式的特點(diǎn)是“集合操作”,即操作對象和結(jié)果都是集合。這種操作方式也稱為一次一集合(set-at-a-time)的方式。而非關(guān)系型的數(shù)據(jù)操作方式是一次一記錄(record-at-a-time)。,是對主碼、主碼與外碼的關(guān)系以及用戶對數(shù)據(jù)的約束要求。關(guān)系數(shù)據(jù)庫的數(shù)據(jù)與更新操作必須遵循下列三類完整性規(guī)則。 1. 實(shí)體完整性規(guī)則(entity integrity rule) 若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 該規(guī)則規(guī)定基本關(guān)系的所有主屬性不能取空值。 例1,在關(guān)

11、系單位編碼表Dwbmb(單位編碼Dwbm, 單位名稱Dwmc)中,單位編碼為主碼,則單位編碼不能取空值。 例2,在學(xué)生信息表Xsxxb(學(xué)號(hào)No, 姓名Name, 性別Sex,)中,學(xué)號(hào)為主碼,則學(xué)號(hào)不能取空值。 一個(gè)基本關(guān)系通常對應(yīng)現(xiàn)實(shí)世界的一個(gè)實(shí)體集,而各實(shí)體依其“標(biāo)識(shí)屬性”-主碼來唯一標(biāo)識(shí),其主碼取空值則說明存在不可識(shí)別的實(shí)體。,2.2.3 關(guān)系完整性規(guī)則,2. 參照完整性規(guī)則(reference integrity rule) 若屬性(或?qū)傩越M)F是基本關(guān)系R相對另一基本關(guān)系S的外碼,則對于R中每個(gè)元組在F上的取值只允許兩種可能,或者為空值(F的每個(gè)屬性值均為空值),或者等于S中某個(gè)元

12、組主碼Ks的值(即,F(xiàn)與Ks應(yīng)該取自同一個(gè)域,且必須是Ks已取的值)。 例3,Zgqkb(職工情況表)和Qybmb(企業(yè)部門表): Zgqkb(職工號(hào)Zgh,姓名Xm,性別Xb,年齡Nl,部門編號(hào)Bmbh,) Qybmb(部門編號(hào)Bmbh,部門名稱Bmmc,部門主管Bmzg,) 這兩個(gè)關(guān)系之間存在著屬性的引用,職工情況表引用了企業(yè)部門表的主碼“Bmbh”。顯然,職工情況表中的“Bmbh”或者取空值,或者是企業(yè)部門表中已存在的部門編號(hào)。,參照完整性規(guī)則是定義外碼與主碼之間的引用規(guī)則。這條規(guī)則的實(shí)質(zhì)是“不允許引用不存在的實(shí)體”。 在上例中,關(guān)系模式Qybmb的關(guān)系稱為“參照關(guān)系”,關(guān)系模式Zgqk

13、b的關(guān)系稱為“依賴關(guān)系”。 在Visual FoxPro系統(tǒng)中稱為“父表”和“子表”。,3. 用戶定義的完整性規(guī)則(user-defined integrity rule) 實(shí)體完整性規(guī)則和參照完整性規(guī)則適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng)。 除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性規(guī)則就是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。 比如,學(xué)生學(xué)籍管理DB中,可要求:學(xué)生年齡限制在1450之間: CHECK(Age between 14 AND 50),2.3 關(guān)系代數(shù),2.3.1傳統(tǒng)的集合運(yùn)算 2.3.2

14、專門的關(guān)系運(yùn)算,關(guān)系代數(shù)是一種抽象的查詢語言,是通過對“關(guān)系”的運(yùn)算來“表達(dá)查詢”的方式。 它的操作對象、運(yùn)算結(jié)果均為“關(guān)系”。與具體的DBMS中實(shí)現(xiàn)的實(shí)際語言并不完全一樣。 關(guān)系代數(shù)用到的運(yùn)算符包括四類:傳統(tǒng)集合運(yùn)算符、專門的關(guān)系運(yùn)算符、算術(shù)比較運(yùn)算符、邏輯運(yùn)算符,如表2.2所示,見下頁。,關(guān)系代數(shù)的運(yùn)算可以分為兩類: (1)傳統(tǒng)的集合運(yùn)算:并、差、交、廣義笛卡爾積。其運(yùn)算是從關(guān)系的“水平”方向即行的角度來進(jìn)行。 (2)專門的關(guān)系運(yùn)算:投影(對關(guān)系進(jìn)行垂直分割)、選擇(水平分割)、連接(關(guān)系的結(jié)合)、除(笛卡爾積的逆運(yùn)算)。專門的關(guān)系運(yùn)算不僅涉及行而且涉及列。 算術(shù)比較運(yùn)算符和邏輯運(yùn)算符是用

15、來輔助專門的關(guān)系運(yùn)算符進(jìn)行操作的。,2.3.1 傳統(tǒng)的集合運(yùn)算,設(shè)關(guān)系R和關(guān)系S具有相同的關(guān)系模式,均由相同數(shù)目的屬性組成)(屬性數(shù)目稱為“目數(shù)”或“度數(shù)”,設(shè)為m),相應(yīng)的屬性取自同一個(gè)域。 1. 并(union) 結(jié)果仍為m目,由屬于R或?qū)儆赟的元組構(gòu)成,記為RS。 RS = t|tRtS 2. 差(difference) 結(jié)果仍為m目,由屬于R但不屬于S的元組構(gòu)成,記為RS。 RS = t|tRtS ,3. 交(intersection) 結(jié)果仍為m目,由既屬于R又屬于S的元組構(gòu)成,記為RS。 RS = t|tRtS 關(guān)系的交可以用差來表示, 即RS =R(RS) 。,例1,關(guān)系R: 關(guān)

16、系S: RS: R-S : RS :,4. 廣義笛卡爾積(extended cartesian product) 設(shè)關(guān)系R和S分別為m目(屬性數(shù))和n目,R和S的廣義笛卡爾積是一個(gè)(m+n)列的元組的集合。元組的前m列是關(guān)系R的一個(gè)元組,后n列是關(guān)系S的一個(gè)元組。記為RS。形式定義如下: RS = trts| trRtsS 若R有k1個(gè)元組,S有k2個(gè)元組,則RS有k1k2個(gè)元組。,例2,R:,S:,R S:,2.3.2 專門的關(guān)系運(yùn)算,專門的關(guān)系運(yùn)算包括選擇、投影、連接、除等。 1. 選擇(selection) 選擇又稱為限制(restriction),它是在關(guān)系R中選取符合條件F的元組。是

17、從行的角度進(jìn)行的運(yùn)算。 記為:F(R) = t|tRF(t)=True 其中F表示選擇條件, 它是一個(gè)邏輯表達(dá)式,取邏輯值“True”或“False”。,邏輯表達(dá)式F有兩種成分: (1)運(yùn)算對象:有常量(用引號(hào)括起來)和屬性名(或列的序號(hào))兩種表示方式。 (2)運(yùn)算符:有比較運(yùn)算符(也稱為符)和邏輯運(yùn)算符兩種形式。 邏輯表達(dá)式F就是由邏輯運(yùn)算符連接各算術(shù)表達(dá)式組成。而算術(shù)表達(dá)式的基本形式為: X1X2 ,其中為比較運(yùn)算符,X1、X2為運(yùn)算對象。,例3,設(shè)有一“學(xué)生學(xué)籍管理RDB”,包含:學(xué)生信息表(S)、課程信息表(C)、學(xué)生選課表(SC)三個(gè)關(guān)系。 S:,C:,SC:,求: (1)計(jì)算機(jī)科學(xué)

18、系(CS)的學(xué)生信息。 SD=CS(S) (2)年齡大于或等于20的學(xué)生信息。 SA20(S),2. 投影(projection) 是從R中選擇出若干屬性列組成新的關(guān)系。也就是對一個(gè)關(guān)系R進(jìn)行垂直分割,消去某些列,并重新安排列的順序,是從列的角度進(jìn)行的運(yùn)算。 記為:A(R) = tA|tR 其中A是R中的屬性列。 投影后不僅消去了原關(guān)系中的某些列,而且還可能消去某些元組。因?yàn)橄チ四承傩粤泻?,就可能出現(xiàn)重復(fù)行,應(yīng)消去這些完全相同的行。,在上例基礎(chǔ)上求: 所有學(xué)生的姓名及所屬系; SN,SD(S),3. 連接 (join) (1)也稱為連接。它是從兩個(gè)關(guān)系的廣義笛卡爾積中選取屬性間滿足給定條件

19、的元組。記為: R S = trts|trRtsStrAtsB 其中A和B分別為關(guān)系R和S上度數(shù)相等且可比的屬性組。是比較運(yùn)算符。連接運(yùn)算是從R和S的廣義笛卡爾積RS中選取R關(guān)系在A屬性組上的值與S關(guān)系在B屬性組上的值滿足比較關(guān)系的元組。,A B,例4,R:,S:,R S :,C E,具體步驟:先求RS;再從中按條件選取部分元組。,例5,R:,S:,(2)等值連接:當(dāng)為“=”時(shí)的連接。,具體步驟同上例。,(3)自然連接(natural join):是一種特殊的等值連接。它要求兩個(gè)關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且在結(jié)果中須消去重復(fù)的屬性列,它是從行和列的角度進(jìn)行運(yùn)算。即R和S若具有相

20、同的屬性組,則自然連接可記為: R S = trts|trRtsStrBtsB 自然連接的具體計(jì)算過程如下: 計(jì)算RS。 選取滿足自然連接條件的元組。 去掉重復(fù)的屬性列。,補(bǔ)充:關(guān)系代數(shù)中,關(guān)系運(yùn)算經(jīng)有限次集合而成的式子稱為“關(guān)系代數(shù)表達(dá)式”。 例6, S、C、SC表結(jié)構(gòu)及內(nèi)容同本節(jié)例3(課件P31-33)。 求:(1)選修了“C2”課程的學(xué)生學(xué)號(hào)。 S#(C#=C2(SC) (2)至少選修了這樣一門課程-直接先修課程為C2的學(xué)生姓名。 SN(PC#=C2(C) S#,C#(SC) S#,SN(S),4. 除(division) 給定關(guān)系R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域集。R與S的除運(yùn)算得到一個(gè)新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量

溫馨提示

  • 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

提交評論