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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論