




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 關(guān)系模型1上一章介紹了三種主要的數(shù)據(jù)模型:層次模型網(wǎng)狀模型關(guān)系模型其中關(guān)系模型簡(jiǎn)單靈活,并有著堅(jiān)實(shí)的理論基礎(chǔ),已成為當(dāng)前最流行的數(shù)據(jù)模型。本章主要講述:關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)關(guān)系的定義和性質(zhì)關(guān)系數(shù)據(jù)庫的基本概念關(guān)系運(yùn)算22.1 關(guān)系模型 關(guān)系模型就是用二維表格結(jié)構(gòu)來表示實(shí)體及實(shí)體之間聯(lián)系的模型。關(guān)系模型是各個(gè)關(guān)系的框架的集合,即關(guān)系模型是一些表格的格式,其中包括關(guān)系名、屬性名、關(guān)鍵字等。教師關(guān)系課程關(guān)系C 授課關(guān)系SC教師課程數(shù)據(jù)庫的關(guān)系模型TNO教師號(hào)TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別CNO課程號(hào)CN課程名CT課時(shí)TNO教師號(hào)CNO課程號(hào)3從各
2、個(gè)關(guān)系的框架中,我們可以很容易看出哪兩個(gè)關(guān)系之間有聯(lián)系。例如:教師關(guān)系和授課關(guān)系有公共的屬性“教師號(hào)”,則表明這兩個(gè)關(guān)系有聯(lián)系。而課程關(guān)系和授課關(guān)系有公共的屬性“課程號(hào)”,則表明這兩個(gè)關(guān)系也有聯(lián)系。至于元組之間的聯(lián)系,則與具體的數(shù)據(jù)有關(guān)。只有在公共屬性上具有相同屬性值的元組之間才有聯(lián)系。 4由上例可以看出,在一個(gè)關(guān)系中可以存放兩類信息:一類是描述實(shí)體本身的信息一類是描述實(shí)體(關(guān)系)之間的聯(lián)系的信息在層次模型和網(wǎng)狀模型中,把有聯(lián)系的實(shí)體(元組)用指針鏈接起來,實(shí)體之間的聯(lián)系是通過指針來實(shí)現(xiàn)的。而關(guān)系模型則采用不同的思想,即用二維表來表示實(shí)體與實(shí)體之間的聯(lián)系,這就是關(guān)系模型的本質(zhì)所在。所以,在建立
3、關(guān)系模型時(shí),只要把的所有的實(shí)體及其屬性用關(guān)系框架來表示,同時(shí)把實(shí)體之間的關(guān)系也用關(guān)系框架來表示,就可以得到一個(gè)關(guān)系模型。如上例中的教師課程數(shù)據(jù)庫的關(guān)系模型就是這樣建立的。52.2.1 域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域。(用D表示)例如整數(shù)、實(shí)數(shù)、字符串的集合。域中所包含的值的個(gè)數(shù)稱為域的基數(shù)(用m表示)。關(guān)系中用域表示屬性的取值范圍。例如:D1=李力,王平,劉偉 m1=3D2=男,女 m2=2D3=47,28,30 m3=3其中,D1,D2,D3為域名,分別表示教師關(guān)系中姓名、性別、年齡的集合。域名無排列次序,如D2=男,女=女,男7笛卡爾積(Cartesian
4、 Product )給定一組域D1,D2,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡爾積為D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n。由定義可以看出,笛卡爾積也是一個(gè)集合。例如:上述表示教師關(guān)系中姓名、性別兩個(gè)域的笛卡爾積為:D1=李力,王平,劉偉D2=男,女D1D2=(李力,男),(李力,女),(王平,男), (王平,女),(劉偉,男),(劉偉,女)83. 若Di(i=1,2,n)為有限集,Di中的集合元素個(gè)數(shù)稱為Di的基數(shù),用mi(i=1,2,n)表示,則笛卡爾積D1D2Dn的基數(shù)M(即元素(d1,d2,dn)的個(gè)數(shù))為所
5、有域的基數(shù)的累積,即 M= 例如:上述表示教師關(guān)系中姓名、性別兩個(gè)域的笛卡爾積為:D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)其中:其基數(shù)M=m1m2=3*2=6元組的個(gè)數(shù)為6104. 笛卡爾積可用二維表的形式表示。例如,上述的6個(gè)元組可表示成表2.1。D1和D2的笛卡爾積由上例可以看出,笛卡爾積實(shí)際是一個(gè)二維表,表的框架由域構(gòu)成,表的任意一行就是一個(gè)元組,表中的每一列來自同一域,如第一個(gè)分量來自D1,第二個(gè)分量來自D2。姓名性別李力男李力女王平男王平女劉偉男劉偉女112.2.3 關(guān)系(Relation)笛卡爾積D1D2Dn的任一子集稱為定義在域
6、D1,D2,Dn上的n元關(guān)系(Relation),可用R(D1,D2Dn)表示如上例D1D2笛卡爾積的子集可以構(gòu)成教師關(guān)系T1,姓名性別李力男王平女劉偉男幾點(diǎn)說明:1. R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當(dāng)n=1時(shí),稱為單元關(guān)系。當(dāng)n=2時(shí),稱為二元關(guān)系。當(dāng)n=n時(shí),稱為n元關(guān)系。如上例為二元關(guān)系,關(guān)系名為T。124. 數(shù)學(xué)上關(guān)系是笛卡爾積的任意子集,但在實(shí)際應(yīng)用中關(guān)系是笛卡爾積中所取的有意義的子集。例如在表2.1中選取一個(gè)子集構(gòu)成如下關(guān)系,顯然不符合實(shí)際情況姓名性別李力男李力女142.3 關(guān)系的性質(zhì) 盡管關(guān)系與二維表格、傳統(tǒng)的數(shù)據(jù)文件是非常類似的,但它們之間又有重要的區(qū)別。 嚴(yán)
7、格地說,關(guān)系是種規(guī)范化了的二維表中行的集合,為了使相應(yīng)的數(shù)據(jù)操作簡(jiǎn)化,在關(guān)系模型中,對(duì)關(guān)系作了種種限制,關(guān)系具有如下特性:1. 關(guān)系中不允許出現(xiàn)相同的元組。2. 關(guān)系中元組的順序(即行序)是無關(guān)緊要的,在一個(gè)關(guān)系中可以任意交換兩行的次序。根據(jù)關(guān)系的這個(gè)性質(zhì),可以改變?cè)M的順序使其具有某種排序,然后按照順序查詢數(shù)據(jù),可以提高查詢速度。15而作如下交換時(shí),不交換屬性名,只交換屬性列中的值,則得到不同的關(guān)系,如下表: 姓名性別男李力女王平男劉偉174. 同一屬性名下的各個(gè)屬性值必須來自同一個(gè)域:是同一類型的數(shù)據(jù)。5. 關(guān)系中各個(gè)屬性必須有不同的名字:不同的屬性可來自同一個(gè)域,即它們的分量可以取自同一
8、個(gè)域。例如,有如下表中關(guān)系,職業(yè)與兼職是兩個(gè)不同的屬性,但它們?nèi)∽酝粋€(gè)域職業(yè)教師,工人,輔導(dǎo)員。 姓名職業(yè)兼職張強(qiáng)教師輔導(dǎo)員王麗工人教師劉寧教師輔導(dǎo)員186. 關(guān)系中每一分量必須是不可分的數(shù)據(jù)項(xiàng),或者說所有屬性值都是原子的,即是一個(gè)確定的值,而不是值的集合。屬性值可以為空值,表示“未知”或“不可使用”,即不可“表中有表”。滿足此條件的關(guān)系稱為規(guī)范化關(guān)系,否則稱為非規(guī)范化關(guān)系。例如,在表1中,籍貫含有省、市縣兩項(xiàng),出現(xiàn)了“表中有表”的現(xiàn)象,則為非規(guī)范化關(guān)系,而把籍貫分成省、市縣兩列,將其規(guī)范化,如表2所示。 表1 表2姓名籍貫姓名省市縣省市縣張強(qiáng)吉林長(zhǎng)春張強(qiáng)吉林長(zhǎng)春王麗山西大同王麗山西大同19
9、2.4 關(guān)系的碼 2.4.1 候選碼與主碼能唯一標(biāo)識(shí)關(guān)系中元組的屬性或?qū)傩约?,則稱該屬性或?qū)傩约癁楹蜻x碼(Candidate Key),也稱候選鍵。如“學(xué)生關(guān)系”中的學(xué)號(hào)能唯一標(biāo)識(shí)每一個(gè)學(xué)生,則屬性學(xué)號(hào)是學(xué)生關(guān)系的候選碼。在“選課關(guān)系”中,只有屬性的組合“學(xué)號(hào)+課程號(hào)”才能唯一地區(qū)分每一條選課記錄,則屬性集“學(xué)號(hào)+課程號(hào)”是選課關(guān)系的候選鍵。20下面給出候選碼的形式化定義:設(shè)關(guān)系R有屬性A1,A2,An,其屬性集K=(Ai,Aj,Ak),當(dāng)且僅當(dāng)滿足下列條件時(shí),K被稱為候選碼:1. 唯一性(Uniqueness):關(guān)系R的任意兩個(gè)不同元組,其屬性集K的值是不同的。2.最小性(Minimally
10、):組成關(guān)系鍵的屬性集(Ai,Aj,Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質(zhì)例如:“學(xué)生關(guān)系”中的每個(gè)學(xué)生的學(xué)號(hào)是唯一的,“選課關(guān)系”中“學(xué)號(hào)+課程號(hào)” 的組合也是唯一的。對(duì)于屬性集“學(xué)號(hào)+課程號(hào)” 去掉任一屬性,都無法唯一標(biāo)識(shí)選課記錄。 21如果一個(gè)關(guān)系中有多個(gè)候選碼,可以從中選擇一個(gè)作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主碼(Primary Key),或稱為主鍵、關(guān)鍵字。例如,假設(shè)在學(xué)生關(guān)系中沒有重名的學(xué)生,則“學(xué)號(hào)”和“姓名”都可作為學(xué)生關(guān)系的候選鍵。如果選定“學(xué)號(hào)”作為數(shù)據(jù)操作的依據(jù),則“學(xué)號(hào)”為主關(guān)系鍵。主碼是關(guān)系模型中的一個(gè)重要概念。每個(gè)關(guān)系
11、必需選擇一個(gè)主碼,選定以后,不能隨意改變。每個(gè)關(guān)系必定有且僅有一個(gè)主碼,因?yàn)殛P(guān)系的元組無重復(fù),至少關(guān)系的所有屬性的組合可作為主碼。22下面是一個(gè)全碼的例子:假設(shè)圖書館有借書關(guān)系TCS,分別有三個(gè)屬性讀者編號(hào)(T)、圖書編號(hào)(C)和借閱時(shí)間(S)。在這種情況下,T,C,S三者之間是多對(duì)多關(guān)系,(T,C,S)三個(gè)屬性的組合是關(guān)系TCS的候選碼,稱為全碼,T,C,S都是主屬性。TCST1C12005-4-1242.4.3 外碼(Foreign key) 如果關(guān)系R2的一個(gè)或一組屬性X不是R2的主碼,而是另一關(guān)系R1的主碼,則該屬性或?qū)傩越MX稱為關(guān)系R2的外碼或外部關(guān)系鍵。并稱關(guān)系R2為參照關(guān)系(re
12、ferencing relation),關(guān)系R1為被參照關(guān)系(referenced relation)。因此,“學(xué)號(hào)” 屬性是選課關(guān)系的外碼。學(xué)生關(guān)系為被參照關(guān)系,選課關(guān)系為參照關(guān)系。25關(guān)系模型及其定義5)關(guān)系模式(Relation Schema):關(guān)系的描述稱作關(guān)系模式,包括關(guān)系名、關(guān)系中的屬性名、屬性向域的映象、屬性間的數(shù)據(jù)依賴關(guān)系等,其形式化描述為R(U,D,dom,F),簡(jiǎn)記作R(U)或R(A1 , A2 , An ) 。R(U, D, DOM, F)關(guān)系名屬性名集合域的集合屬性向域的映象屬性間數(shù)據(jù)的依賴關(guān)系27屬性向域的映象一般直接說明為屬性的類型、長(zhǎng)度等。某一時(shí)刻對(duì)應(yīng)某個(gè)關(guān)系模式
13、的內(nèi)容(元組的集合)稱作關(guān)系。關(guān)系模式是型,是穩(wěn)定的,靜態(tài)的。關(guān)系是某一時(shí)刻的值,是隨時(shí)間不斷變化的,是動(dòng)態(tài)的。R(U, D, DOM, F)關(guān)系名屬性名集合域的集合屬性向域的映象屬性間數(shù)據(jù)的依賴關(guān)系28關(guān)系數(shù)據(jù)庫(Relation Database)其型是關(guān)系模式的集合,即數(shù)據(jù)庫描述其值是某一時(shí)刻關(guān)系的集合例如教學(xué)數(shù)據(jù)庫中,共有五個(gè)關(guān)系,其關(guān)系模式分別學(xué)生(學(xué)號(hào),姓名,性別,年齡,系別)教師(教師號(hào),姓名,性別,年齡,系別)課程(課程號(hào),課程名,課時(shí))選課(學(xué)號(hào),課程號(hào),成績(jī))授課(教師號(hào),課程號(hào))29在每個(gè)關(guān)系中,又有其相應(yīng)的數(shù)據(jù)庫的實(shí)例例如:與學(xué)生關(guān)系模式對(duì)應(yīng)的數(shù)據(jù)庫中的實(shí)例有如下6個(gè)元
14、組: S1趙亦女17計(jì)算機(jī)S2錢爾男18信息S3孫珊女20信息S4李思男21自動(dòng)化S5周武男19計(jì)算機(jī)S6吳麗女20自動(dòng)化302.4.4 關(guān)系模型的完整性為了維護(hù)數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實(shí)世界的一致性,對(duì)關(guān)系數(shù)據(jù)庫的插入、刪除和修改操作必須有一定的約束條件,這就是關(guān)系模型的三類完整性:實(shí)體完整性參照完整性用戶定義的完整性1. 實(shí)體完整性(Entity Integrity)實(shí)體完整性是指主碼的值不能為空或部分為空。關(guān)系模型中的一個(gè)元組對(duì)應(yīng)一個(gè)實(shí)體,一個(gè)關(guān)系則對(duì)應(yīng)一個(gè)實(shí)體集。例如,一條學(xué)生記錄對(duì)應(yīng)著一個(gè)學(xué)生,學(xué)生關(guān)系對(duì)應(yīng)著學(xué)生的集合。31現(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有某種唯一性標(biāo)識(shí)。與此相對(duì)應(yīng),關(guān)
15、系模型中以主碼來唯一標(biāo)識(shí)元組。例如,學(xué)生關(guān)系中的屬性“學(xué)號(hào)”可以唯一標(biāo)識(shí)一個(gè)元組,也可以唯一標(biāo)識(shí)學(xué)生實(shí)體。如果主碼的值為空或部分為空,即主屬性為空,則不符合主碼的定義條件,不能唯一標(biāo)識(shí)元組及與其相對(duì)應(yīng)的實(shí)體。這就說明存在不可區(qū)分的實(shí)體,從而與現(xiàn)實(shí)世界中的實(shí)體是可以區(qū)分的事實(shí)相矛盾。因此主關(guān)系鍵的值不能為空或部分為空。例如,學(xué)生關(guān)系中的主關(guān)系鍵“學(xué)號(hào)”不能為空;選課關(guān)系中的主關(guān)系鍵“學(xué)號(hào)+課程號(hào)”不能部分為空,即“學(xué)號(hào)”和“課程號(hào)”兩個(gè)屬性都不能為空。322. 參照完整性(Referential integrity)如果關(guān)系R2的外碼X與關(guān)系R1的主碼相符,則X的每個(gè)值或者等于R1中主碼的某一個(gè)
16、值,或者取空值。SNO學(xué)號(hào)SN姓名SEX性別AGE年齡DEPT所在系S1趙亦女17計(jì)算機(jī)S2錢爾男18信息S11王威男19DEPT所在系A(chǔ)DDR地址計(jì)算機(jī)1號(hào)樓信息1號(hào)樓自動(dòng)化2號(hào)樓S(學(xué)生關(guān)系) D(系別關(guān)系)33在例中,如果按照參照完整性規(guī)則,選課關(guān)系中的外碼“學(xué)號(hào)” 可以取空值或者取被參照關(guān)系中已經(jīng)存在的值。但由于“學(xué)號(hào)” 是選課關(guān)系中主屬性,根據(jù)實(shí)體完整性規(guī)則,兩個(gè)屬性都不能為空。所以選課關(guān)系中的外碼“學(xué)號(hào)” 中只能取被參照關(guān)系中已經(jīng)存在的值。34實(shí)體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,系統(tǒng)都應(yīng)該支持這兩類完整性。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)由于應(yīng)用環(huán)境的不同,往往
17、還需要一些特殊的約束條件,這就是用戶定義完整性。353. 用戶定義完整性(User-defined Integrity)用戶定義完整性是針對(duì)某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。例如,屬性值根據(jù)實(shí)際需要,要具備一些約束條件,如選課關(guān)系中成績(jī)不能為負(fù)數(shù);某些數(shù)據(jù)的輸入格式要有一些限制等。關(guān)系模型應(yīng)該提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的、系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能。36關(guān)系模型及其定義關(guān)系操作關(guān)系操作是集合操作,操作的對(duì)象及結(jié)果都是集合,是一次一集合(Set-at-a-time)的方式。而非關(guān)系型的數(shù)據(jù)操作方式是一次一記錄(R
18、ecord-at-a-time)。關(guān)系操作語言的種類關(guān)系數(shù)據(jù)語言關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言元組關(guān)系演算語言域關(guān)系演算語言ISBL(Information System Base Language)APLHAQBESQL37關(guān)系模型與其他模型相比,最有特色的是它的數(shù)據(jù)庫語言。這種語言靈活方便、表達(dá)能力和功能都很強(qiáng)。目前關(guān)系數(shù)據(jù)庫所使用的語言一般都具有定義、查詢、更新和控制一體化的特點(diǎn),而查詢是最主要的部分。所以說,關(guān)系數(shù)據(jù)庫的核心部分是查詢,故又稱為查詢語言,而查詢的條件要使用關(guān)系運(yùn)算表達(dá)式來表示。因此,關(guān)系運(yùn)算是設(shè)計(jì)關(guān)系數(shù)據(jù)語言的基礎(chǔ)。按表達(dá)查詢的方法不同,關(guān)
19、系運(yùn)算可分為關(guān)系代數(shù)和關(guān)系演算兩大類。 2.6 關(guān)系代數(shù)382.6.1 關(guān)系代數(shù)的分類及其運(yùn)算符關(guān)系代數(shù)是對(duì)關(guān)系進(jìn)行集合代數(shù)運(yùn)算,是基于關(guān)系代數(shù)的操作語言,稱為關(guān)系代數(shù)語言,簡(jiǎn)稱關(guān)系代數(shù)。它是由IBM在一個(gè)實(shí)驗(yàn)性的系統(tǒng)上實(shí)現(xiàn)的,稱為ISBL(Information System Base Language)語言。ISBL的每個(gè)語句都類似于一個(gè)關(guān)系代數(shù)表達(dá)式。關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系,關(guān)系代數(shù)用到的運(yùn)算符主要包括四類:集合運(yùn)算符:(并),-(差),(交),X(廣義笛卡爾積);專門的關(guān)系運(yùn)算符:(選擇),(投影),(連接),*(自然連接),(除);算術(shù)比較運(yùn)算符:(大于),(大于
20、等于), ,=,)和邏輯運(yùn)算符( )連接起來的邏輯表達(dá)式,結(jié)果為邏輯值“真”或“假”。選取運(yùn)算實(shí)際上是從關(guān)系R中選取使邏輯表達(dá)式為真的元組,是從行的角度進(jìn)行的運(yùn)算。51 設(shè)學(xué)生課程數(shù)據(jù)庫,其關(guān)系模式為: 學(xué)生(學(xué)生,姓名,年齡,所在系); 課程(課程號(hào),課程名,學(xué)分); 選課(學(xué)號(hào),課程號(hào),成績(jī)).【例4-1】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢計(jì)算機(jī)系的全體學(xué)生的操作。 所在系= 計(jì)算機(jī)系 (學(xué)生)【例4-2】用關(guān)系代數(shù)表示在學(xué)生課程數(shù)據(jù)庫中查詢年齡小于20歲的學(xué)生的操作。 年齡20(學(xué)生)52532. 投影(Projection)投影運(yùn)算也是單目運(yùn)算,關(guān)系R上的投影是從R中選擇出若干屬性列
21、,組成新的關(guān)系,即對(duì)關(guān)系在垂直方向進(jìn)行的運(yùn)算,從左到右按照指定的若干屬性及順序取出相應(yīng)列,刪去重復(fù)元組。記作:A(R)=tA|tR其中A為R中的屬性列,為投影運(yùn)算符。從其定義可看出,投影運(yùn)算是從列的角度進(jìn)行的運(yùn)算,這正是選取運(yùn)算和投影運(yùn)算的區(qū)別所在。選取運(yùn)算是從關(guān)系的水平方向上進(jìn)行運(yùn)算的,而投影運(yùn)算則是從關(guān)系的垂直方向上進(jìn)行的。 54投影運(yùn)算可以改變關(guān)系的屬性次序 55例4 查詢教師關(guān)系中有哪些系。SNO(SC)結(jié)果如右圖所示 由例4可以看出,投影后取消了某些屬性列后,就可能出現(xiàn)重復(fù)行,應(yīng)該取消這些完全相同的行。所以投影之后,不但減少了屬性,元組也可能減少,新關(guān)系與原關(guān)系不相容。 SNO950
22、01950019500156例2.8 查詢選項(xiàng)了1課程的學(xué)生號(hào)。SNO(CNO=1(SC)結(jié)果如右圖所示。 本例中選取運(yùn)算和投影運(yùn)算相結(jié)合,先在選課表中選取滿足條件的元組,再于SNO屬性上進(jìn)行投影。 SNO95001573. 連接(Join)連接運(yùn)算是二目運(yùn)算,是從兩個(gè)關(guān)系的笛卡爾積中選取滿足連接條件的元組,組成新的關(guān)系。設(shè)關(guān)系R(A1,A2,An)及S(B1,B2,Bm),連接屬性集X包含于A1,A2,An,及Y包含于B1,B2,Bm,X與Y中屬性列數(shù)目相等,且相對(duì)應(yīng)屬性有共同的域。若Z=A1,A2An/X (/X:去掉X之外的屬性) 及W=B1,B2Bm/Y,則 R及S可表示為R(Z,X)
23、,S(W,Y) 關(guān)系R和S在連接屬性X和Y上的連接,就是以RS笛卡爾積中,選取X屬性列上的分量與Y屬性列上的分量滿足給定比較條件的那些元組,也就是在RS上選取在連接屬性X,Y上滿足條件的子集,組成新的關(guān)系。新關(guān)系的度為n+m。 58記作: RS=t rts |trRtsStrXtsY為真 XY其中,是連接運(yùn)算符,為算術(shù)比較運(yùn)算符,也稱連接;XY為連接條件;為“=”時(shí),稱為等值連接;為“”時(shí),稱為大于連接。 連接運(yùn)算為非基本運(yùn)算,可以用選取運(yùn)算和廣義笛卡爾積運(yùn)算來表示:RS=xy(RS)59在連接運(yùn)算中,一種最常用的連接是自然連接。所謂自然連接就是在等值連接的情況下,當(dāng)連接屬性X與Y具有相同屬性
24、組時(shí),把在連接結(jié)果中重復(fù)的屬性列去掉。即如果R與S具有相同的屬性組Y,則自然連接可記作:R*S=t rts |trRtsStrY=tsY自然連接是在廣義笛卡爾積RS中選出同名屬性上符合相等條件元組,再進(jìn)行投影,去掉重復(fù)的同名屬性,組成新的關(guān)系。 60例2.9 如圖2.9(a)、(b)所示的兩個(gè)關(guān)系R與S,(c)為R和S的大于連接(CD),(d)為R和S的等值連接(C=D),(e)為R和S的等值連接(R.B=S.B),(f)為R和S的自然連接。 R S (a) (b) ABCBDa1b12b15a1b24b26a2b36b37a2b48b3861大于連接(CD) 等值連接(C=D) (c) (d
25、) AR.BCS.BDAR.BCS.BDa2b36b15a2b36b26a2b48b15a2b48b38a2b48b26a2b48b3762等值連接(R.B=S.B) 自然連接 (e) (f) 圖2.9 連接運(yùn)算舉例 AR.BCS.BDABCDa1b12b15a1b125a1b24b26a1b246a2b36b37a2b367a2b36b38a2b36863【例4-4】設(shè)學(xué)生和選課關(guān)系中的數(shù)據(jù)如下,學(xué)生與選課之間的笛卡兒積、等值連接和自然連接的結(jié)果如表所示。 學(xué)號(hào)姓名年齡所在系學(xué)號(hào)課程名成績(jī)98001張三20計(jì)算機(jī)系98001數(shù)據(jù)庫6298005李四21數(shù)學(xué)系98001數(shù)據(jù)結(jié)構(gòu)7398005微
26、積分80學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課名成績(jī)980019800198001980059800598005張三張三張三李四李四李四202020212121計(jì)算機(jī)系計(jì)算機(jī)系計(jì)算機(jī)系數(shù)學(xué)系數(shù)學(xué)系數(shù)學(xué)系980019800198005980019800198005數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分?jǐn)?shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380627380學(xué)生 選課 學(xué)生選課 64學(xué)生.學(xué)號(hào)姓名年齡所在系選課.學(xué)號(hào)課名成績(jī)980019800198005張三張三李四202021計(jì)算機(jī)系計(jì)算機(jī)系數(shù)學(xué)系980019800198005數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380學(xué)生.學(xué)號(hào)姓名年齡所在系課名成績(jī)980019800198005張三張三
27、李四202021計(jì)算機(jī)系計(jì)算機(jī)系數(shù)學(xué)系數(shù)據(jù)庫數(shù)據(jù)結(jié)構(gòu)微積分627380學(xué)生 選課 學(xué)生.學(xué)號(hào)=選課.學(xué)號(hào) 學(xué)生 選課 65結(jié)合上例,我們可以看出等值連接與自然連接的區(qū)別:1. 等值連接中不要求相等屬性值的屬性名相同,而自然連接要求相等屬性值的屬性名必須相同,即兩關(guān)系只有在同名屬性才能進(jìn)行自然連接。如上例R中的C列和S中的D列可進(jìn)行等值連接,但因?yàn)閷傩悦煌?,不能進(jìn)行自然連接。2. 等值連接不將重復(fù)屬性去掉,而自然連接去掉重復(fù)屬性,也可以說,自然連接是去掉重復(fù)列的等值連接。如上例R中的B列和S中的B列進(jìn)行等值連接時(shí),結(jié)果有兩個(gè)重復(fù)的屬性列B,而進(jìn)行自然連接時(shí),結(jié)果只有一個(gè)屬性列B。 66例2.1
28、0 查詢講授數(shù)據(jù)庫課程的教師姓名。TN(CN=數(shù)據(jù)庫(C)*TNO,CNO(TC)*TNO,TN(T)或TN(TNO(CN=數(shù)據(jù)庫(C)*TC)*TNO,TN(T)結(jié)果如右圖所示。 TN王平劉偉張?zhí)m674. 除法(Division)除法運(yùn)算是二目運(yùn)算,設(shè)有關(guān)系R(X,Y)與關(guān)系S(Y,Z),其中X,Y,Z為屬性集合,R中的Y與S中的Y可以有不同的屬性名,但對(duì)應(yīng)屬性必須出自相同的域。關(guān)系R除以關(guān)系S所得的商是一個(gè)新關(guān)系P(X),P是R中滿足下列條件的元組在X上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:RS=trX|trRy(S)Yx其中,Yx為x在R中的象集,x= trX
29、。除法運(yùn)算為非基本運(yùn)算,可以表示為:RS=x(R)x(x(R)SR) 68關(guān)系代數(shù)除(Division)象集:給定一個(gè)關(guān)系R(X, Y),X和Y為屬性組。當(dāng)tX=x時(shí),x在R中的象集為: Yx=tY| tR, tX=x除:給定關(guān)系R(X, Y)和S(Y,Z),其中X,Y,Z 為屬性組。R中的Y和S中的Y可以有不同的名字,但必須取自同一個(gè)域,R與S除得到一個(gè)新關(guān)系P(X), P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作: R S=trX| trRy(S) Yx69【例4-5】給出選課、選修課和必修課3個(gè)關(guān)系,它們的關(guān)系模式為: 選課(學(xué)號(hào)
30、,課號(hào),成績(jī));選修課(課號(hào),課名);必修課(課號(hào),課名). 學(xué)號(hào)課號(hào)成績(jī)課號(hào)課名S1C1AC2計(jì)算機(jī)圖形學(xué)S1C2B必修課S1C3BS2C1A課號(hào)科名S2C3BC1數(shù)據(jù)結(jié)構(gòu)S3C1BC3操作系統(tǒng)S3C3B選課選修課S4C1AS4C2A學(xué)號(hào)成績(jī)S5C2BS1BS5C3BS4AS5C1AS5B70學(xué)號(hào)成績(jī)學(xué)號(hào)S3BS1S2S3S5選課必修課 學(xué)號(hào),課號(hào)(選課)必修課 71象集ABCDEa1b15d13a1b15d27a1b25d310a2b35d32a4b56d27a4b56d310a4b56d32a6b66d52(a1,b1)的象CDE5d135d27(a1,b2)的象CDE5d310(a4,
31、b5)的象CDE6d276d3106d32XY72除ABCDEa1b15d13a1b15d27a1b25d310a2b35d32a2b15d52a3b26d13a4b56d27a4b56d310a4b56d32a6b66d52XY(a4,b5)=CDEF6d27fa6d310fb6d32fcYR上分量值X 的象集Yx包含S在Y上的投影734.2.3 用關(guān)系代數(shù)表示檢索的例子學(xué)生選課庫的關(guān)系模式為: 學(xué)生(學(xué)號(hào),姓名,性別,年齡,所在系); 課程(課程號(hào),課程名,先行課); 選課(學(xué)號(hào),課程號(hào),成績(jī)).【例4-6】求選修了課程號(hào)為“C2”課程的學(xué)生學(xué)號(hào)。 學(xué)號(hào)(課程號(hào)= C2(選課)【例4-7】
32、求選修了課程號(hào)為“C2”課的學(xué)生學(xué)號(hào)和姓名。 學(xué)號(hào),姓名(課程號(hào)= C2(選課學(xué)生)【例4-8】求沒有選修課程號(hào)為“C2”課程的學(xué)生學(xué)號(hào)。 學(xué)號(hào)(學(xué)生)-學(xué)號(hào)(課程號(hào)= C2(選課)本題不能寫為: 學(xué)號(hào)(課程號(hào) C2(選課)74用關(guān)系代數(shù)表示檢索的例子【例4-9】求既選修“C2”課程,又選修“C3”課程的學(xué)生學(xué)號(hào)。學(xué)號(hào)(課程號(hào)= C2 選課)學(xué)號(hào)(課程號(hào)= C3(選課)該題不能寫為:學(xué)號(hào)(課程號(hào)=C2 課程號(hào)=C3(選課)【例4-10】求選修課程號(hào)為“C2”或“C3”課程的學(xué)生學(xué)號(hào)。學(xué)號(hào)(課程號(hào)=C2(選課)學(xué)號(hào)(課程號(hào)=C3(選課)或 學(xué)號(hào)(課程號(hào)=C2 課程號(hào)=C3(選課)【例4-11】求
33、選修了全部課程的學(xué)生學(xué)號(hào)。學(xué)號(hào),課程號(hào)(選課課程)【例4-12】一個(gè)學(xué)號(hào)為“98002”的學(xué)生所學(xué)過的所有課程可能也被其他學(xué)生選修,求這些學(xué)生的學(xué)號(hào)和姓名。學(xué)號(hào),姓名(學(xué)號(hào),課程號(hào)(選課)課程號(hào)(學(xué)號(hào)= 98002(選課) (學(xué)生) 754.2關(guān)系代數(shù)關(guān)系除法運(yùn)算的步驟:將被除關(guān)系屬性分為象集屬性和結(jié)果屬性對(duì)象集屬性進(jìn)行投影目標(biāo)數(shù)據(jù)集將被除關(guān)系分組:結(jié)果屬性值一樣的元組分為一組找出結(jié)果集76除運(yùn)算實(shí)例學(xué)號(hào)課號(hào)成績(jī)S1C1AS1C2BS1C3BS2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1A課號(hào)課名C1數(shù)據(jù)結(jié)構(gòu)C3操作系統(tǒng)S1C1AS1C2BS1C3BS
34、2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1AC1數(shù)據(jù)結(jié)構(gòu)C3操作系統(tǒng)S1C1AS1C2BS1C3BS2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1A=S3B選課必修課選擇了所有必修課表 中的課程的學(xué)生的學(xué)號(hào)和成績(jī)77小 結(jié)關(guān)系數(shù)據(jù)庫系統(tǒng)是目前使用最廣泛的數(shù)據(jù)庫系統(tǒng),本書的重點(diǎn)也是討論關(guān)系數(shù)據(jù)庫系統(tǒng)。本章系統(tǒng)地介紹了關(guān)系數(shù)據(jù)庫的一些基本概念,其中包括關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)、關(guān)系的完整性及其關(guān)系操作。78關(guān)系演算是以數(shù)理邏輯中的謂詞演算為基礎(chǔ)的,通過謂詞形式來表示查詢表達(dá)式。根據(jù)謂詞變?cè)牟煌?,可將關(guān)系演算分為元組關(guān)系
35、演算和域關(guān)系演算。2.7.1 元組關(guān)系演算語言元組關(guān)系演算是以元組變量作為謂詞變?cè)幕緦?duì)象。元組關(guān)系演算語言的典型代表是E.F.Codd提出的ALPHA語言,這種語言雖然沒有實(shí)際實(shí)現(xiàn),但較有名氣,INGRES關(guān)系數(shù)據(jù)庫上使用的QUEL語言,就是在ALPHA語言的基礎(chǔ)上研制的。這里主要介紹ALPHA語言和QUEL語言 2.7 關(guān)系演算 7 ALPHA語言ALPHA語言是以謂詞公式來定義查詢要求的。在謂詞公式中存在客體變?cè)@里稱為元組變量。元組變量是一個(gè)變量,其變化范圍為某一個(gè)命名的關(guān)系。ALPHA語言的基本格式是: ():操作符有GET,PUT,HOLD,UPDATE,DEL
36、ETE,DROP等到種。工作空間是指內(nèi)存空間,可以用一個(gè)字母表示,通常用W表示,也可以用別的字母表示。工作空間是用戶與系統(tǒng)的通信區(qū)。目標(biāo)表用于指定操作(如查詢、更新等)出來的結(jié)果,它可以是關(guān)系名或?qū)傩悦淮鸩僮髡Z句可以同時(shí)對(duì)多個(gè)關(guān)系或多個(gè)屬性進(jìn)行操作。80操作條件是用謂詞公式表示的邏輯表達(dá)式,只有滿足此條件的元組才能進(jìn)行操作,這是一個(gè)可選項(xiàng),缺省時(shí)表示無條件執(zhí)行操作符規(guī)定的操作。除此之外,還可以在基本格式上加上排序要求,定額要求等。 下面以教學(xué)數(shù)據(jù)庫(圖1.12)為例,說明ALPHA語言的使用。 1. 數(shù)據(jù)查詢(1)簡(jiǎn)單查詢例 查詢所有學(xué)生的數(shù)據(jù)。GET W (S)GET語句的作用是把數(shù)據(jù)庫
37、中的數(shù)據(jù)讀入內(nèi)存空間W,目標(biāo)表為學(xué)生關(guān)系S,代表查詢出來的結(jié)果,即所有的學(xué)生。冒號(hào)后面的操作條件缺省,表示無條件查詢。81例2.13 查詢所有被選修的課程號(hào)碼。GET W (SC.CNO)目標(biāo)表為選課關(guān)系SC中的屬性CNO,代表所有被選修的課程號(hào)碼,查詢結(jié)果自動(dòng)消去重復(fù)行。(2)條件查詢由冒號(hào)后面的邏輯表達(dá)式給出查詢條件,在表達(dá)式中可以使用如下三類運(yùn)算符: 比較運(yùn)算符:,1000目標(biāo)表為教師關(guān)系T中的兩個(gè)屬性SN和SAL組成的屬性列表。 (3)排序查詢例2.15 查詢S3同學(xué)所選課程號(hào)及成績(jī),并按成績(jī)降序排列。GET W (SC.CNO,SC.SCORE):SC.SNO=S3DOWN SC.S
38、COREDOWN表示降序,后面緊跟排序的屬性名。升序排列時(shí)使用UP。 83(4)定額查詢例2.15 查詢一名男教師的教師號(hào)和姓名。GET W (1) (T.TNO,T.TN):T.SEX=男所謂的定額查詢就是通過在W后面的括號(hào)中加上定額數(shù)量,限定查詢出元組的個(gè)數(shù)。這里(1)表示查詢結(jié)果中男教師的個(gè)數(shù),取出教師表中第一個(gè)男教師的教師號(hào)和姓名。排序和定額查詢可以一起使用。例2.16 查詢一名男教師的教師號(hào)和姓名,并使他的年齡最小。GET W (1) (T.TNO,T.TN):T.SEX=男 UP T.AGE此語句的執(zhí)行過程為:先查詢所有男教師的教師號(hào)和姓名,再按照年齡由小到大排序,然后找出第一位,
39、也就是年齡最小的男教師。 84(5)帶元組變量的查詢所謂的元組關(guān)系演算就是以元組變量作為謂詞變?cè)幕緦?duì)象,在關(guān)系演算的查詢操作時(shí),可以在相應(yīng)的關(guān)系上定義元組變量。元組變量代表關(guān)系中的元組,其取值是在所定義的關(guān)系范圍內(nèi)變化,所以也稱作范圍變量Range Variable,一個(gè)關(guān)系可以設(shè)多個(gè)元組變量。例2.17 查詢S3同學(xué)所選課程號(hào)。RANGE SC XGET W (X.CNO):X.SNO=S3使用RANGE來說明元組變量,X為關(guān)系SC上的元組變量。如果關(guān)系的名字很長(zhǎng),使用起來不方便,這時(shí)可以設(shè)一個(gè)名字較短的元組變量來代替關(guān)系名,簡(jiǎn)化關(guān)系名,使操作更加方便。85(6)帶存在量詞的查詢例2.1
40、8 查詢S3同學(xué)所選課程名。RANGE SC XGET W (C.CN):X(C.CNO=X.CNOX.SNO=S3)注意:操作條件中使用量詞時(shí)必須用元組變量。例2.19 查詢至少選修一門其課時(shí)數(shù)為80的課程的學(xué)生的姓名。RANGE C CX SC SCXGETW (S.SN):SCX(SCX.SNO=S.SNOCX(CX.CNO=SCX.CNOCX.CT=80)86此查詢涉及三個(gè)關(guān)系,需要對(duì)兩個(gè)關(guān)系(C和SC)作用存在量詞,所以用了兩個(gè)元組變量。此語句的執(zhí)行過程為:先查詢課時(shí)數(shù)為80的課程號(hào),再根據(jù)找到的課程號(hào)在關(guān)系SC中查詢其對(duì)應(yīng)的學(xué)號(hào),然后根據(jù)為些學(xué)號(hào)在關(guān)系S中找到對(duì)應(yīng)的學(xué)生姓名。例2.
41、20 查詢選修全部課程的學(xué)生姓名。RANGE C CX SC SCXGETW (S.SN):CXSCX(XSC.SNO=S.SNOCX.CNO=SCX.CNO)87(7)庫函數(shù)查詢庫函數(shù)也稱集函數(shù)。用戶在使用查詢語言時(shí),經(jīng)常要作一些簡(jiǎn)單的運(yùn)算。例如要統(tǒng)計(jì)某個(gè)關(guān)系中符合某一條件的元組數(shù),或某些元組在某個(gè)屬性上分量的和、平均值等等。在關(guān)系數(shù)據(jù)庫語言中提供了有關(guān)這類運(yùn)算的標(biāo)準(zhǔn)函數(shù),增強(qiáng)了基本檢索能力。常用的庫函數(shù)下表所示函數(shù)名稱功能AVG按列計(jì)算平均值TOTAL按列計(jì)算值的總和MAX求一列中的最大值MIN求一列中的最小值COUNT按列值計(jì)算元組個(gè)數(shù)88例2.21 求學(xué)號(hào)為S1學(xué)生的平均分。GET W
42、 (AVG(SC.SCORE):S.SNO=S1例2.22 求學(xué)校共有多少個(gè)系GET W (COUNT(S.DEPT)COUNT函數(shù)自動(dòng)消去重復(fù)行,可計(jì)算字段“DEPT“不同值的數(shù)目。2. 數(shù)據(jù)更新更新操作包括修改、插入和刪除。(1)修改修改操作使用UPDATE語句實(shí)現(xiàn),具體操作分為以下三步:89讀數(shù)據(jù):使用HOLD語句將要修改的元組從數(shù)據(jù)庫中讀到工作空間中;修改:利用宿主語言修改工作空間中元組的屬性;送回:使用UPDATE語句將修改后的元組送回?cái)?shù)據(jù)庫中。這里HOLD語句是帶上并發(fā)控制的GET語句。例2.23 把劉偉教師轉(zhuǎn)到信息系。HOLD W(T.DEPT):T.TN=劉偉MOVE 信息 T
43、O W.DEPTUPDATE W在ALPHA語言中,不允許修改關(guān)系的主碼,例如不能使用UPDATE語句修改教師表T中的教師號(hào)。如果要修改主碼,應(yīng)該先使用刪除操作刪除該元組,再插入一條具有新主碼值的元組。90(2)插入插入操作使用PUT語句實(shí)現(xiàn),具體操作分為以下兩步:建立新元組:利用宿主語言在工作空間中建立新元組;寫數(shù)據(jù):使用PUT語句將元組寫入到指定的關(guān)系中。例2.24 在SC表中插入一條選課記錄(S6,C1,85)。MOVE S6 TO W.SNOMOVE C1 TO W.CNOMOVE 85 TO W.SCOREPUT W(SC)91PUT語句的作用是把工作空間W中的數(shù)據(jù)寫到數(shù)據(jù)庫中,此例
44、即把已經(jīng)在工作空間建立的一條選課記錄寫入到選課關(guān)系SC中。注意:PUT語句只能對(duì)一個(gè)關(guān)系進(jìn)行操作,在插入操作時(shí),拒絕接受主碼相同的元組。(3)刪除ALPHA語言中的刪除操作不但可以刪除關(guān)系中的一些元組,還可以刪除一個(gè)關(guān)系。刪除操作使用DELETE語句實(shí)現(xiàn),具體操作分為以下兩步: 讀數(shù)據(jù):使用HOLD語句將要?jiǎng)h除的元組從數(shù)據(jù)庫中讀到工作空間中; 刪除:使用DELETE語句刪除該元組。92例2.25 刪除學(xué)號(hào)為S6的學(xué)生的信息。HOLD W(S):S.SNO=S6DELETE W例2.26 刪除全部學(xué)生的信息。HOLD W(S)DELETE W QUEL語言INGRES是加利福尼亞大
45、學(xué)研制的關(guān)系數(shù)據(jù)庫管理系統(tǒng),QUEL語言是INGRES系統(tǒng)的查詢語言,它以ALHPA語言為基礎(chǔ),具有較為完善的數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)更新、數(shù)據(jù)控制等功能。QUEL語言既可以作為獨(dú)立的語言進(jìn)行交互式操作,也可以作為子語言嵌入到主語言中去。931數(shù)據(jù)定義QUEL語言可以使用CREATE語句定義一個(gè)新關(guān)系,CREATE語句的一般格式為:CREATE (,)例2.27 定義學(xué)生關(guān)系SCREATE S (SNO=C8,SN=C20,AGE=I3,SEX=C2,DEPT=C20)關(guān)系定義后可以由定義者撤消,撤消關(guān)系使用語句DESTROY例如,撤消學(xué)生關(guān)系S可以寫成:DESTROY S。942數(shù)據(jù)查詢查詢
46、語句的一般格式為:RANGE OF t1 IS R1RANGE OF t2 IS R2RANGE OF tk IS RkRETRIEVE(目標(biāo)表)WHERE 95其中t1、t2、tk分別是定義在關(guān)系R1、R2、Rk上的元組變量。目標(biāo)表為查詢的目標(biāo)屬性。查詢條件是一個(gè)邏輯表達(dá)式,在表達(dá)式中可以使用如下三類運(yùn)算符: 比較運(yùn)算符:(大于),(大于等于),1000例2.29 查詢講授C5課程的教師的姓名。RANGE OF TX IS TRANGE OF TCX IS TCRETRIEVE (TX.TN)WHERE TX.TNO=TCX.TNO AND TCX.CNO=C5973數(shù)據(jù)更新(1)修改修改操
47、作使用REPLACE語句實(shí)現(xiàn)。例2.30 把劉偉教師轉(zhuǎn)到信息系。RANGE OF TX IS TREPLACE(TX.DEPT= 信息)WHERE TX.TN=劉偉(2)插入插入操作使用APPEND語句實(shí)現(xiàn)。例2.31 在SC表中插入一條選課記錄(S6,C2,80)。APPEND TO SC(SNO=S6,CNO=C2,SCORE=80) 98(3)刪除刪除操作使用DELETE語句實(shí)現(xiàn)。例2.32 刪除學(xué)號(hào)為S6的學(xué)生的信息。RANGE OF SX IS SDELETE SXWHERE SX.SNO=S62.7.2 域關(guān)系演算語言QBE域關(guān)系演算是關(guān)系演算的另一種形式。域關(guān)系演算是以元組變量的
48、分量即域變量作為謂詞變?cè)幕緦?duì)象。域關(guān)系演算語言的典型代表是1975年由IBM公司約克城高級(jí)研究試驗(yàn)室的M.M.Zloof提出的QBE語言,該語言于1978年在IBM370上實(shí)現(xiàn)。99QBE是Query By Example的縮寫,也稱為示例查詢,它是一種很有特色的屏幕編輯語言,其特點(diǎn)如下:(1)以表格形式進(jìn)行操作每一個(gè)操作都由一個(gè)或幾個(gè)表格組成,每一個(gè)表格都顯示在終端的屏幕上,用戶通過終端屏幕編輯程序以填寫表格的方式構(gòu)造查詢要求,查詢結(jié)果也以表格的形式顯示出來,所以它具有直觀和可對(duì)話的特點(diǎn)。(2)通過例子進(jìn)行查詢通過使用一些實(shí)例,使該語言更易于為用戶接受和掌握。(3)查詢順序自由當(dāng)有多個(gè)查
49、詢條件時(shí),不要求使用者按照固定的思路和方式進(jìn)行查詢,使用更加方便。 100使用QBE語言的步驟:(1)用戶根據(jù)要求向系統(tǒng)申請(qǐng)一張或幾張表格,顯示在終端上;(2)用戶在空白表格的左上角的一欄內(nèi)輸入關(guān)系名;(3)系統(tǒng)根據(jù)用戶輸入的關(guān)系名,將在第一行從左至右自動(dòng)填寫各個(gè)屬性名;(4)用戶在關(guān)系名或?qū)傩悦路降囊桓駜?nèi)填寫相應(yīng)的操作命令,操作命令包括:P.(打印或顯示)、U.(修改)、I.(插入)、D.(刪除)。如果要打印或顯示整個(gè)元組時(shí),應(yīng)將“P”填在關(guān)系名的下方,如果只需打印或顯示某一屬性,應(yīng)將“P”填在相應(yīng)屬性名的下方。 101表格形式如表2.2所示 表2.2 QBE操作框架表關(guān)系名屬性1屬性2屬性n操作命令屬性值或查詢條件屬性值或查詢條件屬性值或查詢條件10 數(shù)據(jù)查詢1. 簡(jiǎn)單查詢例2.33
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 古裝穿越體驗(yàn)行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書
- 交通運(yùn)輸管理培訓(xùn)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力項(xiàng)目商業(yè)計(jì)劃書
- 幼兒園體育活動(dòng)工作計(jì)劃
- 幼兒園2025年春季安全保障計(jì)劃
- 新能源汽車合伙投資合同
- 機(jī)場(chǎng)候機(jī)樓場(chǎng)地租賃及商業(yè)服務(wù)合同
- 2025至2030年中國雕刻對(duì)椅市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國蠶絲服裝市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國硬質(zhì)合金拋物線形齒市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國實(shí)心釘市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 二年級(jí)下冊(cè)語文試題 河南省商丘市永城市 第二學(xué)期二年級(jí)語文期末試題(圖片版無答案)部編版
- 工業(yè)機(jī)器人技術(shù)與智能制造
- 建筑工程聯(lián)營合作協(xié)議(合同)
- 利樂灌裝保養(yǎng)執(zhí)行
- 法人委托書范本
- 最新版焊接工藝評(píng)定格式標(biāo)準(zhǔn)
- 【圖文】泵用密封沖洗方案演示圖
- 基于MATLAB牛頭刨床仿真分析畢業(yè)設(shè)計(jì)
- 新世紀(jì)大學(xué)英語綜合教程4 Unit1
- 振型中的節(jié)點(diǎn),節(jié)線,節(jié)徑和節(jié)圓
- 虹鱒魚養(yǎng)殖項(xiàng)目可行性研究報(bào)告寫作范文
評(píng)論
0/150
提交評(píng)論