版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
資料庫(kù)原理與技術(shù)
第一章
數(shù)據(jù)庫(kù)系統(tǒng)概述資訊資訊是指現(xiàn)實(shí)世界事物的存在方式或運(yùn)動(dòng)狀態(tài)的反映。具體地說(shuō),資訊是一種已經(jīng)被加工為特定形式的數(shù)據(jù),這種數(shù)據(jù)形式對(duì)接收者來(lái)說(shuō)是有意義的,而且對(duì)當(dāng)前和將來(lái)的決策具有明顯的或?qū)嶋H的價(jià)值。在資訊社會(huì)中,資訊是一種資源,其重要性可以與物質(zhì)和能量相提並論,是企業(yè)賴以生存和發(fā)展所必須的。數(shù)據(jù)數(shù)據(jù)是將現(xiàn)實(shí)世界中的各種資訊記錄下的、可以識(shí)別的符號(hào),是資訊的載體,資訊的具體表示形式。數(shù)據(jù)可用多種不同的形式來(lái)表示一種同樣的資訊,資訊不隨它的數(shù)據(jù)形式不同而改變。數(shù)據(jù)的表現(xiàn)形式多種多樣,不僅有我們熟知的數(shù)字和文字,還可以有圖形、圖像、聲音等形式。資訊與數(shù)據(jù)資訊與數(shù)據(jù)的聯(lián)繫數(shù)據(jù)是資訊的符號(hào)表示,或稱載體;資訊是數(shù)據(jù)的內(nèi)涵,是數(shù)據(jù)的語(yǔ)義解釋。數(shù)據(jù)是符號(hào)化的資訊。資訊是語(yǔ)義化的數(shù)據(jù)。例,一幅圖像數(shù)據(jù)——彩色位圖點(diǎn)陣資訊——微軟產(chǎn)品數(shù)據(jù)處理數(shù)據(jù)處理實(shí)際上就是利用電腦進(jìn)行數(shù)據(jù)處理的過(guò)程。該過(guò)程包括:數(shù)據(jù)的採(cǎi)集、整理、編碼和輸入,有效地把數(shù)據(jù)組織到電腦中,由電腦系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行一系列的加工、儲(chǔ)存、合併、分類(lèi)、計(jì)算、檢索、傳輸、輸出等操作過(guò)程。其目的是從大量原始數(shù)據(jù)中抽取和推導(dǎo)出對(duì)人們有價(jià)值的資訊,以作為行動(dòng)和決策的依據(jù)。資料庫(kù)所謂資料庫(kù)是長(zhǎng)期儲(chǔ)存在電腦內(nèi)的、有組織的、可共用的數(shù)據(jù)集合。資料庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、存儲(chǔ)和描述,由DBMS統(tǒng)一管理,多用戶共用。資料庫(kù)系統(tǒng)資料庫(kù)系統(tǒng)是指一個(gè)電腦存儲(chǔ)記錄的系統(tǒng)。即,它是一個(gè)電腦系統(tǒng),該系統(tǒng)的目標(biāo)是存儲(chǔ)資訊並支持用戶檢索和更新所需要的資訊。它通常由資料庫(kù),軟體,硬體,用戶幾個(gè)部分組成。資料庫(kù)管理系統(tǒng)是一個(gè)通用的軟體系統(tǒng),由一組電腦程式構(gòu)成。它能夠?qū)?shù)據(jù)庫(kù)進(jìn)行有效的管理,並為用戶提供了一個(gè)軟體環(huán)境,方便用戶使用資料庫(kù)中的資訊。數(shù)據(jù)定義功能數(shù)據(jù)操縱功能資料庫(kù)的運(yùn)行管理功能資料庫(kù)的建立和維護(hù)功能數(shù)據(jù)處理的三個(gè)階段人工處理階段(50年代中期以前)檔系統(tǒng)階段(50年代後期---60年代中期)資料庫(kù)系統(tǒng)階段(60年代後期開(kāi)始)人工處理階段背景:電腦主要用於科學(xué)計(jì)算。外存只有磁帶、卡片、紙帶等,沒(méi)有磁片等直接存取設(shè)備。沒(méi)有操作系統(tǒng),沒(méi)有數(shù)據(jù)管理軟體。人工處理階段(續(xù)I)特點(diǎn):數(shù)據(jù)不保存應(yīng)用程式管理數(shù)據(jù)數(shù)據(jù)不共用數(shù)據(jù)不具有獨(dú)立性人工處理階段(續(xù)II)應(yīng)用程式1應(yīng)用程式2應(yīng)用程式n數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n……檔系統(tǒng)階段背景:電腦不但用於科學(xué)計(jì)算,還用於管理。外存有了磁片、磁鼓等直接存取設(shè)備。有了專(zhuān)門(mén)管理數(shù)據(jù)的軟體,一般稱為檔系統(tǒng)。檔系統(tǒng)階段(續(xù)I)特點(diǎn):數(shù)據(jù)以檔的形式長(zhǎng)期保存。檔形式多樣化(索引檔、鏈接檔、直接存取檔、倒排檔等)。一個(gè)數(shù)據(jù)檔對(duì)應(yīng)一個(gè)或幾個(gè)用戶程式,還是面向應(yīng)用的,具有一定的共用性。由檔系統(tǒng)管理數(shù)據(jù)。通過(guò)檔系統(tǒng)提供存取方法,支持對(duì)檔的基本操作(增、刪、改、查等),用戶程式不必考慮物理細(xì)節(jié)。數(shù)據(jù)的存取基本上以記錄為單位。數(shù)據(jù)與程式有一定的獨(dú)立性,因?yàn)闄n的邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)由系統(tǒng)進(jìn)行轉(zhuǎn)換,數(shù)據(jù)在存儲(chǔ)上的改變不一定反映在程式上。檔系統(tǒng)階段(續(xù)II)檔系統(tǒng)應(yīng)用程式1應(yīng)用程式2應(yīng)用程式n數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n檔系統(tǒng)階段的缺點(diǎn)數(shù)據(jù)冗餘和不一致數(shù)據(jù)訪問(wèn)困難數(shù)據(jù)孤立數(shù)據(jù)獨(dú)立性差檔系統(tǒng)階段的缺點(diǎn)(續(xù)I)完整性問(wèn)題原子性問(wèn)題併發(fā)訪問(wèn)異常安全性問(wèn)題資料庫(kù)系統(tǒng)階段背景:大規(guī)模數(shù)據(jù)管理。電腦管理的數(shù)據(jù)量大,關(guān)係複雜,共用性要求強(qiáng)(多種應(yīng)用、不同語(yǔ)言共用數(shù)據(jù))。外存有了大容量磁片,光碟。軟體價(jià)格上升,硬體價(jià)格下降,編制和維護(hù)軟體及應(yīng)用程式成本相對(duì)增加,其中維護(hù)的成本更高。資料庫(kù)系統(tǒng)階段(續(xù)I)資料庫(kù)觀點(diǎn):數(shù)據(jù)不是依賴於處理過(guò)程的附屬品,而是現(xiàn)實(shí)世界中獨(dú)立存在的對(duì)象。資料庫(kù)系統(tǒng)階段(續(xù)II)…應(yīng)用程式1應(yīng)用程式2應(yīng)用程式nDBMS資料庫(kù)資料庫(kù)系統(tǒng)的特點(diǎn)面向全組織的結(jié)構(gòu)化。支持全企業(yè)的應(yīng)用而不是某一個(gè)應(yīng)用。通過(guò)統(tǒng)一的結(jié)構(gòu)來(lái)描述數(shù)據(jù)及數(shù)據(jù)之間客觀存在的本質(zhì)聯(lián)繫,這是資料庫(kù)系統(tǒng)的主要特徵之一,是與檔系統(tǒng)的根本差別。資料庫(kù)系統(tǒng)的特點(diǎn)(續(xù)I)數(shù)據(jù)集成與共享,可控冗餘度數(shù)據(jù)面向整個(gè)系統(tǒng),而不是面向某一應(yīng)用,數(shù)據(jù)集中管理,並可以被多個(gè)用戶和多個(gè)應(yīng)用程式所共用。數(shù)據(jù)共用可以減少數(shù)據(jù)冗餘,節(jié)省存儲(chǔ)空間,減少存取時(shí)間,並避免數(shù)據(jù)之間的不相容性和不一致性。每個(gè)應(yīng)用選用資料庫(kù)的一個(gè)子集,只要重新選取不同子集或者加上一小部分?jǐn)?shù)據(jù),就可以滿足新的應(yīng)用要求,這就是易擴(kuò)充性。根據(jù)應(yīng)用的需要,可以控制數(shù)據(jù)的冗餘度。資料庫(kù)系統(tǒng)的特點(diǎn)(續(xù)II)數(shù)據(jù)獨(dú)立性好數(shù)據(jù)與程式相對(duì)獨(dú)立,把資料庫(kù)的定義和描述從應(yīng)用程式中分離出去。描述又是分級(jí)的(全局邏輯、局部邏輯、存儲(chǔ)),數(shù)據(jù)的存取由系統(tǒng)管理,用戶不必考慮存取路徑等細(xì)節(jié),從而簡(jiǎn)化了應(yīng)用程式。數(shù)據(jù)獨(dú)立性:當(dāng)數(shù)據(jù)的結(jié)構(gòu)發(fā)生變化時(shí),通過(guò)系統(tǒng)提供的映象(轉(zhuǎn)換)功能,使應(yīng)用程式不必改變。它包括數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性。資料庫(kù)系統(tǒng)的特點(diǎn)(續(xù)III)統(tǒng)一的控制機(jī)制。數(shù)據(jù)的安全性控制(Security)保護(hù)數(shù)據(jù)以防止不合法的使用所造成的數(shù)據(jù)洩露和破壞。措施:用戶標(biāo)識(shí)與鑒定,存取控制。數(shù)據(jù)的完整性控制(Integrity)數(shù)據(jù)的正確性、有效性、相容性。措施:完整性約束條件定義和檢查。資料庫(kù)系統(tǒng)的特點(diǎn)(續(xù)IV)併發(fā)控制(Concurrency)對(duì)多用戶的併發(fā)操作加以控制、協(xié)調(diào),防止其互相干擾而得到錯(cuò)誤的結(jié)果並使資料庫(kù)完整性遭到破壞。措施:封鎖。資料庫(kù)恢復(fù)(Recovery)將資料庫(kù)從錯(cuò)誤狀態(tài)恢復(fù)到某一已知的正確狀態(tài),防止數(shù)據(jù)丟失和損害,保證數(shù)據(jù)的正確性。數(shù)據(jù)模型模型是現(xiàn)實(shí)世界特徵的模擬和抽象。數(shù)據(jù)模型則是現(xiàn)實(shí)世界數(shù)據(jù)特徵的抽象。數(shù)據(jù)模型應(yīng)滿足三個(gè)方面的要求:能比較真實(shí)地模擬現(xiàn)實(shí)世界;容易為人理解;便於在電腦上實(shí)現(xiàn)。數(shù)據(jù)模型的分類(lèi)概念數(shù)據(jù)模型按用戶的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)和資訊建模。用於組織資訊世界的概念,表現(xiàn)從現(xiàn)實(shí)世界中抽象出來(lái)的事物以及它們之間的聯(lián)繫。這類(lèi)模型強(qiáng)調(diào)其語(yǔ)義表達(dá)能力,概念簡(jiǎn)單、清晰,易於用戶理解。它是現(xiàn)實(shí)世界到資訊世界的抽象,是用戶與資料庫(kù)設(shè)計(jì)人員之間進(jìn)行交流的語(yǔ)言。如E-R模型。數(shù)據(jù)模型的分類(lèi)(續(xù)I)邏輯數(shù)據(jù)模型從電腦實(shí)現(xiàn)的觀點(diǎn)來(lái)對(duì)數(shù)據(jù)建模。是資訊世界中的概念和聯(lián)繫在電腦世界中的表示方法。一般有嚴(yán)格的形式化定義,以便於在電腦上實(shí)現(xiàn)。如層次模型、網(wǎng)狀模型、關(guān)係模型、面向?qū)ο竽P?。物理?shù)據(jù)模型從電腦的物理存儲(chǔ)角度對(duì)數(shù)據(jù)建模。是數(shù)據(jù)在物理設(shè)備上的存放方法和表現(xiàn)形式的描述,以實(shí)現(xiàn)數(shù)據(jù)的高效存取。如索引,HASH檔等等。數(shù)據(jù)抽象數(shù)據(jù)模型的組成要素?cái)?shù)據(jù)模型是實(shí)現(xiàn)數(shù)據(jù)抽象的主要工具。它包括以下組成部分:數(shù)據(jù)結(jié)構(gòu)描述系統(tǒng)的靜態(tài)特性,是所研究的對(duì)象類(lèi)型的集合。包括:數(shù)據(jù)本身:類(lèi)型、內(nèi)容、性質(zhì)。如網(wǎng)狀模型中的資料項(xiàng)目、記錄,關(guān)係模型中的域、屬性,關(guān)係等。數(shù)據(jù)之間的聯(lián)繫:例如網(wǎng)狀模型中的系型(SetType)在資料庫(kù)系統(tǒng)中一般按數(shù)據(jù)結(jié)構(gòu)的類(lèi)型來(lái)命名數(shù)據(jù)模型。數(shù)據(jù)模型的組成要素(續(xù)I)數(shù)據(jù)操作是對(duì)系統(tǒng)動(dòng)態(tài)特性的描述,用於描述施加於數(shù)據(jù)之上的各種操作,即對(duì)數(shù)據(jù)庫(kù)中對(duì)象的實(shí)例允許執(zhí)行的操作的集合,包括操作及操作規(guī)則。一般有檢索、更新(插入、刪除、修改)操作。數(shù)據(jù)模型要定義操作含義、操作符號(hào)、操作規(guī)則,以及實(shí)現(xiàn)操作的語(yǔ)言。數(shù)據(jù)的約束條件數(shù)據(jù)的約束條件是完整性規(guī)則的集合,規(guī)定資料庫(kù)狀態(tài)及狀態(tài)變化所應(yīng)滿足的條件,以保證數(shù)據(jù)的正確、有效、相容。概念數(shù)據(jù)模型的主要概念實(shí)體(Entity):客觀存在並可相互區(qū)分的事物叫實(shí)體。實(shí)體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)繫。如一個(gè)學(xué)生、一次選課、老師與系的工作關(guān)係。屬性(Attribute):實(shí)體所具有的某一特性。一個(gè)實(shí)體可以由若干個(gè)屬性來(lái)刻畫(huà)。例如,學(xué)生實(shí)體可由學(xué)號(hào)、姓名、性別,出生年份、系、年級(jí)等組成。域(Domain):屬性的取值範(fàn)圍。例如,性別的域?yàn)椋?、女),月份的域?yàn)椋钡剑保驳恼麛?shù)。概念數(shù)據(jù)模型的主要概念(續(xù)I)實(shí)體型(EntityType):具有相同屬性的實(shí)體必然具有共同的特徵和性質(zhì),因此用實(shí)體名與其屬性名集合來(lái)抽象和刻畫(huà)同類(lèi)實(shí)體,稱為實(shí)體型。例,學(xué)生(學(xué)號(hào)、姓名、年齡、性別、系、年級(jí))就是一個(gè)實(shí)體型。注意實(shí)體型與實(shí)體(值)之間的區(qū)別,後者是前者的一個(gè)特例。如(9808100,王平,21,男,電腦系,2)是一個(gè)實(shí)體。實(shí)體集(EntitySet):同型實(shí)體的集合稱為實(shí)體集。如全體學(xué)生。概念數(shù)據(jù)模型的主要概念(續(xù)II)碼(Key):能唯一標(biāo)識(shí)實(shí)體的屬性集稱為碼。如學(xué)號(hào)是學(xué)生實(shí)體的碼。聯(lián)繫(Relationship):在現(xiàn)實(shí)世界中,事物內(nèi)部以及事物之間存在著聯(lián)繫,這些聯(lián)繫在資訊世界中反映為實(shí)體(型)內(nèi)部的聯(lián)繫和實(shí)體(型)之間的聯(lián)繫。實(shí)體內(nèi)部的聯(lián)繫通常是指組成實(shí)體的各屬性之間的聯(lián)繫,實(shí)體之間的聯(lián)繫通常是指不同實(shí)體集之間的聯(lián)繫。如學(xué)生與老師間的授課關(guān)係,學(xué)生與學(xué)生間有班長(zhǎng)關(guān)係。概念數(shù)據(jù)模型的主要概念(續(xù)III)聯(lián)繫也可以有屬性,如學(xué)生與課程之間有選課聯(lián)繫,每個(gè)選課聯(lián)繫都有一個(gè)成績(jī)作為其屬性。同類(lèi)聯(lián)繫的集合稱為聯(lián)繫集。聯(lián)繫的種類(lèi)可以有一對(duì)一的(1:1),一對(duì)多的(1:m),多對(duì)多的(m:n)幾種情況。一對(duì)一:如果對(duì)於實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)(也可以沒(méi)有)實(shí)體與之聯(lián)繫,反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)繫。即為1:1。如一個(gè)班級(jí)只有一個(gè)正班長(zhǎng),一個(gè)正班長(zhǎng)只在一個(gè)班中任職,則班級(jí)和班長(zhǎng)之間存在一對(duì)一聯(lián)繫。概念數(shù)據(jù)模型的主要概念(續(xù)IV)一對(duì)多:如果對(duì)於實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)繫,反之,對(duì)於實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多只有一個(gè)實(shí)體與之聯(lián)繫,則稱實(shí)體集A與實(shí)體集B有一對(duì)多聯(lián)繫,記為1:n。如一個(gè)班級(jí)有若干學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí),則班級(jí)和學(xué)生是一對(duì)多聯(lián)繫。多對(duì)多:如果對(duì)於實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n≥0)與之聯(lián)繫,反之,對(duì)於實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(m≥0)與之聯(lián)繫,則稱實(shí)體集A與實(shí)體集B有多對(duì)多聯(lián)繫,記為m:n。如一門(mén)課由若干學(xué)生選修,一個(gè)學(xué)生可以選修多門(mén)課,則課程和學(xué)生是多對(duì)多聯(lián)繫。實(shí)際上,一對(duì)一是一對(duì)多的特例,而一對(duì)多又是多對(duì)多的特例。概念數(shù)據(jù)模型的主要概念(續(xù)V)一般地,兩個(gè)以上的實(shí)體型之間也存在著一對(duì)一、一對(duì)多、多對(duì)多聯(lián)繫。同一個(gè)實(shí)體集內(nèi)的各實(shí)體間也可以存在著一對(duì)一、一對(duì)多、多對(duì)多聯(lián)繫。概念數(shù)據(jù)模型(E/R)學(xué)生課程選修學(xué)號(hào)姓名系別課程名先修課主講老師成績(jī)用矩形表示實(shí)體型,在框內(nèi)寫(xiě)上其名稱用橢圓表示實(shí)體的屬性用無(wú)向邊把實(shí)體與其屬性連接起來(lái)用菱形表示實(shí)體間的聯(lián)繫將參與聯(lián)繫的實(shí)體用線段連接例:學(xué)生選修課程mn聯(lián)繫的數(shù)量最常用的數(shù)據(jù)模型層次模型網(wǎng)狀模型關(guān)係模型面向?qū)ο竽P蛯哟文P陀脴?shù)結(jié)構(gòu)表示實(shí)體之間聯(lián)繫的模型叫層次模型。樹(shù)由節(jié)點(diǎn)和連線組成,結(jié)點(diǎn)代表實(shí)體型,連線表示兩實(shí)體型間的一對(duì)多聯(lián)繫。樹(shù)有以下特性:每棵樹(shù)有且僅有一個(gè)結(jié)點(diǎn)無(wú)雙親結(jié)點(diǎn),此結(jié)點(diǎn)稱為樹(shù)的根(Root)。樹(shù)中的其他結(jié)點(diǎn)都有且僅有一個(gè)雙親結(jié)點(diǎn)。代表產(chǎn)品:IBM的IMS資料庫(kù),1968年研製成功。層次模型(續(xù)I)層次模型(續(xù)II)優(yōu)點(diǎn):結(jié)構(gòu)簡(jiǎn)單,易於實(shí)現(xiàn)。較好的性能。良好的完整性支持。缺點(diǎn):難以描述現(xiàn)實(shí)世界中非層次性的聯(lián)繫。子結(jié)點(diǎn)的存取只能通過(guò)雙親結(jié)點(diǎn)來(lái)進(jìn)行。對(duì)插入和刪除操作的限制比較多。層次命令趨向程式化。網(wǎng)狀模型是一個(gè)滿足下列條件的有向圖:可以有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親結(jié)點(diǎn)。至少有一個(gè)結(jié)點(diǎn)有多於一個(gè)的雙親結(jié)點(diǎn)。DBTG報(bào)告:1969年,由美國(guó)CODASYC(ConferenceOnDataSystemLanguage,數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)商會(huì))下屬的DBTG(DataBaseTaskGroup)組提出,確立了網(wǎng)狀資料庫(kù)系統(tǒng)的概念、方法、技術(shù)。網(wǎng)狀模型(續(xù)I)科室醫(yī)生病房病人網(wǎng)狀模型(續(xù)II)特點(diǎn):能夠更為直接地描述現(xiàn)實(shí)世界。具有良好的性能。缺點(diǎn):結(jié)構(gòu)複雜,不利最終用戶掌握其DDL,DML語(yǔ)言複雜,用戶不易使用。關(guān)係模型用二維表來(lái)表示實(shí)體及其相互聯(lián)繫關(guān)係模型(續(xù)I)優(yōu)點(diǎn):建立在嚴(yán)格的數(shù)學(xué)概念基礎(chǔ)上。簡(jiǎn)單,表的概念直觀,用戶易理解。概念單一,實(shí)體和實(shí)體之間的聯(lián)繫都用關(guān)係表示。存取路徑對(duì)用戶透明,具有更高的數(shù)據(jù)獨(dú)立性和更好的安全保密性,也簡(jiǎn)化了程式員的工作和數(shù)據(jù)庫(kù)開(kāi)發(fā)建立的工作。缺點(diǎn):性能往往不如非關(guān)係數(shù)據(jù)模型資料庫(kù)系統(tǒng)的模式型與值型是指對(duì)某一類(lèi)數(shù)據(jù)的結(jié)構(gòu)和屬性的說(shuō)明,值是型的一個(gè)具體賦值。模式:是對(duì)數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特徵的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的一個(gè)具體值稱為模式的一個(gè)實(shí)例。同一個(gè)模式可以有很多實(shí)例。模式是相對(duì)穩(wěn)定的,而實(shí)例是相對(duì)變動(dòng)的,因?yàn)橘Y料庫(kù)的數(shù)據(jù)是在不斷更新的。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)繫,而實(shí)例反映的是資料庫(kù)某一時(shí)刻的狀態(tài)。資料庫(kù)系統(tǒng)的模式(續(xù)I)模式的分級(jí):為了提高數(shù)據(jù)的物理獨(dú)立性和邏輯獨(dú)立性,使資料庫(kù)的用戶觀點(diǎn),即用戶看到的資料庫(kù),與資料庫(kù)的物理方面,即實(shí)際存儲(chǔ)的資料庫(kù)區(qū)分開(kāi)來(lái),資料庫(kù)系統(tǒng)的模式是分級(jí)的。資料庫(kù)系統(tǒng)三級(jí)模式結(jié)構(gòu):CODASYL(ConferenceOnDataSystemLanguage,美國(guó)數(shù)據(jù)系統(tǒng)語(yǔ)言協(xié)商會(huì))提出概念模式、外模式、存儲(chǔ)模式三級(jí)模式的概念。三級(jí)模式之間有兩級(jí)映象。資料庫(kù)系統(tǒng)的模式(續(xù)II)資料庫(kù)內(nèi)模式概念模式外模式2外模式1外模式3應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E外模式/概念模式映象
概念模式/內(nèi)模式映象資料庫(kù)系統(tǒng)的模式(續(xù)III)外模式(Sub-Schema):用戶的數(shù)據(jù)視圖。是數(shù)據(jù)的局部邏輯結(jié)構(gòu),模式的子集。概念模式(Schema):所有用戶的公共數(shù)據(jù)視圖。是資料庫(kù)中全體數(shù)據(jù)的全局邏輯結(jié)構(gòu)和特性的描述。內(nèi)模式(StorageSchema):又稱存儲(chǔ)模式。數(shù)據(jù)的物理結(jié)構(gòu)及存儲(chǔ)方式。資料庫(kù)系統(tǒng)的模式(續(xù)IV)外模式/概念模式映象:定義某一個(gè)外模式和概念模式之間的對(duì)應(yīng)關(guān)係,映象定義通常包含在各外模式中。當(dāng)概念模式改變時(shí),修改此映象,使外模式保持不變,從而應(yīng)用程式可以保持不變,稱為邏輯獨(dú)立性。概念模式/內(nèi)模式映象:定義數(shù)據(jù)邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)係。存儲(chǔ)結(jié)構(gòu)改變時(shí),修改此映象,使概念模式保持不變,從而應(yīng)用程式可以保持不變,稱為物理獨(dú)立性。資料庫(kù)系統(tǒng)的組成部分資料庫(kù)全組織的日常運(yùn)營(yíng)所需要的各種數(shù)據(jù),包括目標(biāo)數(shù)據(jù)(數(shù)據(jù)本身)及描述數(shù)據(jù)(對(duì)數(shù)據(jù)的說(shuō)明資訊)軟體資料庫(kù)管理系統(tǒng)(DBMS)支持DBMS運(yùn)行的操作系統(tǒng)具有與資料庫(kù)介面的高級(jí)語(yǔ)言及其編譯系統(tǒng)應(yīng)用開(kāi)發(fā)工具為特定應(yīng)用環(huán)境開(kāi)發(fā)的資料庫(kù)應(yīng)用系統(tǒng)資料庫(kù)系統(tǒng)的組成部分(續(xù)I)硬體足夠的記憶體,以運(yùn)行OS,DBMS,以及應(yīng)用程式和提供數(shù)據(jù)緩存。足夠的存取設(shè)備如磁片,提供數(shù)據(jù)存儲(chǔ)和備份足夠的I/O能力和運(yùn)算速度,保證較高的性能。其他設(shè)備資料庫(kù)系統(tǒng)的組成部分(續(xù)II)用戶資料庫(kù)管理員系統(tǒng)分析員和數(shù)據(jù)庫(kù)設(shè)計(jì)者應(yīng)用程式員最終用戶偶然用戶簡(jiǎn)單用戶複雜用戶資料庫(kù)系統(tǒng)的組成部分(續(xù)III)DBA職責(zé):決定資料庫(kù)中的資訊內(nèi)容和結(jié)構(gòu)決定資料庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取策略定義數(shù)據(jù)的安全性要求和完整性約束條件監(jiān)控資料庫(kù)的使用和運(yùn)行資料庫(kù)的改進(jìn)和重組重構(gòu)資料庫(kù)系統(tǒng)的軟硬體層次硬體操作系統(tǒng)DBMS,編譯系統(tǒng)應(yīng)用開(kāi)發(fā)工具軟體應(yīng)用系統(tǒng)PB,VB,VCDELPHIOracle,Db2,Sybase,SQLServer,InformixDBMS的管理層次操作系統(tǒng)數(shù)據(jù)存儲(chǔ)層數(shù)據(jù)存取層語(yǔ)言翻譯處理層資料庫(kù)應(yīng)用層數(shù)據(jù)檔,數(shù)據(jù)字典,索引,統(tǒng)計(jì)數(shù)據(jù)緩衝區(qū)
DDL,DML,查詢計(jì)算引擎
事務(wù),日誌,封鎖,存取路徑DBMS的主要功能資料庫(kù)定義功能提供DDL語(yǔ)言(DataDescriptionLanguage)描述外模式、模式、內(nèi)模式(源模式)。模式翻譯程式把源模式翻譯成目標(biāo)模式,存入數(shù)據(jù)字典中。源模式模式翻譯程式數(shù)據(jù)字典目標(biāo)模式DBMS的主要功能(續(xù)I)數(shù)據(jù)存取功能提供DML語(yǔ)言(Datamanipulationlanguage)對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索、插入、修改、刪除。DML類(lèi)型宿主型:DML不獨(dú)立使用,嵌入到高級(jí)語(yǔ)言(主語(yǔ)言)程式中使用。自含型:獨(dú)立使用,互動(dòng)式命令方式。DBMS控制並執(zhí)行DML語(yǔ)句宿主型:有預(yù)編譯和增強(qiáng)編譯兩種方式。自含型:解釋執(zhí)行。DBMS的主要功能(續(xù)II)資料庫(kù)運(yùn)行管理併發(fā)控制、存取控制、完整性約束條件檢查和執(zhí)行,日誌組織和管理,事務(wù)管理和自動(dòng)恢復(fù)。數(shù)據(jù)組織、存儲(chǔ)和管理用戶數(shù)據(jù)、索引、數(shù)據(jù)字典的組織、存儲(chǔ)和管理,包括檔結(jié)構(gòu)、存取方式、數(shù)據(jù)之間的聯(lián)繫的實(shí)現(xiàn)等。資料庫(kù)的建立和維護(hù)功能數(shù)據(jù)的裝入、轉(zhuǎn)換、卸出,資料庫(kù)的轉(zhuǎn)儲(chǔ)、恢復(fù)、性能監(jiān)視和分析等。資料庫(kù)技術(shù)的發(fā)展 第一代數(shù)據(jù)庫(kù)系統(tǒng)70年代的層次和網(wǎng)狀資料庫(kù)系統(tǒng)。代表:1969年IBM研製的IMS。60年代末,70年代初CODASYL給出的DBTG報(bào)告。第二代數(shù)據(jù)庫(kù)系統(tǒng)1970年IBMSanJose實(shí)驗(yàn)室研究員E.F.Codd提出關(guān)係模型代表:IBM開(kāi)發(fā)的SystemR和加州大學(xué)Berkley分校開(kāi)發(fā)的INGRES。資料庫(kù)技術(shù)的發(fā)展 (續(xù)I)第三代數(shù)據(jù)庫(kù)系統(tǒng)面向?qū)ο筚Y料庫(kù)資料庫(kù)技術(shù)與其他學(xué)科的內(nèi)容相互結(jié)合面向應(yīng)用領(lǐng)域的資料庫(kù)技術(shù)研究簡(jiǎn)介E.F.Codd於70年代初提出關(guān)係數(shù)據(jù)理論,他因此獲得1981年的ACM圖靈獎(jiǎng)。關(guān)係理論是建立在集合代數(shù)理論基礎(chǔ)上的,有著堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)。早期代表系統(tǒng)SystemR:由IBM研製。INGRES:由加州Berkeley分校研製。目前主流的商業(yè)資料庫(kù)系統(tǒng)Oracle,Informix,Sybase,SQLServer,DB2。Access,F(xiàn)oxPro,F(xiàn)oxbase。關(guān)係數(shù)據(jù)模型關(guān)係模型是關(guān)係資料庫(kù)系統(tǒng)的基礎(chǔ),它由以下部分組成:數(shù)據(jù)結(jié)構(gòu):關(guān)係(二維表)。關(guān)係模型的數(shù)據(jù)結(jié)構(gòu)非常單一,無(wú)論是實(shí)體還是實(shí)體間的聯(lián)繫均由關(guān)係表示。完整性約束:包括關(guān)係模型所要求的完整性約束(實(shí)體完整性約束,參照完整性約束),以及應(yīng)用領(lǐng)域需要遵循的用戶定義完整性約束。關(guān)係數(shù)據(jù)模型(續(xù)I)DEPT(D#,DN,DEAN)S(S#,SN,SEX,AGE,D#)C(C#,CN,PC#,CREDIT)SC(S#,C#,SCORE)PROF(P#,PN,D#,SAL)TEACH(P#,C#)學(xué)生課程選修屬於系教師教授工作關(guān)係數(shù)據(jù)模型(續(xù)II)關(guān)係操作:包括:選擇、投影、連接、除、並、交、差等查詢操作和增加、刪除、修改操作兩大部分。其特點(diǎn)是集合操作方式,操作的對(duì)象及結(jié)果都是集合。關(guān)係數(shù)據(jù)語(yǔ)言:關(guān)係代數(shù):用對(duì)關(guān)係的運(yùn)算來(lái)表達(dá)查詢,需要指明所用操作。關(guān)係演算:用謂詞來(lái)表達(dá)查詢,只需描述所需資訊的特性。元組關(guān)係演算:謂詞變?cè)幕緦?duì)象是元組變數(shù)。域關(guān)係演算:謂詞變?cè)幕緦?duì)象是域變數(shù)。SQL語(yǔ)言關(guān)係數(shù)據(jù)模型(續(xù)III)特點(diǎn):面向集合的存取方式。關(guān)係操作是集合操作,操作的對(duì)象及結(jié)果都是集合,是一次一集合(Set-at-a-time)的方式。而非關(guān)係型的數(shù)據(jù)操作方式是一次一記錄(Record-at-a-time)。非過(guò)程化。關(guān)係操作不要求用戶提供存取路徑,存取路徑的選擇由DBMS完成。用戶只需提出“做什麼”,無(wú)須說(shuō)明“怎麼做”,存取路徑的選擇和操作過(guò)程由系統(tǒng)自動(dòng)完成。數(shù)據(jù)結(jié)構(gòu)域(Domain)一組具有相同的數(shù)據(jù)類(lèi)型的值的集合。如整數(shù)的集合、字串的集合、全體學(xué)生的集合。笛卡爾積(CartesianProduct)給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,…,n}笛卡爾積的每個(gè)元素(d1,d2,…,dn)稱作一個(gè)n-元組(n-tuple)或簡(jiǎn)稱元組。元組的每一個(gè)值di叫做一個(gè)分量(component)。若Di(i=1,…,n)為有限集,其基數(shù)(Cardinalnumber)為mi,則笛卡爾積的基數(shù)為數(shù)據(jù)結(jié)構(gòu)(續(xù)I)例:設(shè)D1為教師集合(Teacher)={T1,T2}D2為專(zhuān)業(yè)集合(Speciality)={CS,MATH}D3為學(xué)生集合(Student)={S1,S2,S3}
則D1×D2×D3是個(gè)三元組集合,元組個(gè)數(shù)為2×2×3是所有可能的(教師,專(zhuān)業(yè),學(xué)生)元組集合。笛卡爾積可表為二維表的形式:數(shù)據(jù)結(jié)構(gòu)(續(xù)II)TeacherSpecialityStudentT1CSS1T1CSS2T1CSS3T1MATHS1T1MATHS2T1MATHS3T2CSS1T2CSS2T2CSS3T2MATHS1T2MATHS2T2MATHS3數(shù)據(jù)結(jié)構(gòu)(續(xù)III)關(guān)係笛卡爾積D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的關(guān)係,用R(D1,D2,…,Dn)表示。R是關(guān)係的名字,n是關(guān)係的度或目(Degree)。當(dāng)n=1時(shí)稱為單元關(guān)係,當(dāng)n=2時(shí)稱為二元關(guān)係,依此類(lèi)推。關(guān)係可以表示為二維表,表的每一行對(duì)應(yīng)一個(gè)元組,每列對(duì)應(yīng)一個(gè)域。由於域有可能相同,為了加以區(qū)分,必須對(duì)每個(gè)列起一個(gè)名稱,稱為屬性。n元關(guān)係必有n個(gè)屬性。關(guān)係TEACH(Teacher,Speciality,Student)TeacherSpecialityStudentT1CSS1T1CSS2T2MATHS3屬性元組數(shù)據(jù)結(jié)構(gòu)(續(xù)IV)關(guān)係模型對(duì)關(guān)係的限定和擴(kuò)充無(wú)限關(guān)係在資料庫(kù)系統(tǒng)中是無(wú)意義的。因此,限定關(guān)係數(shù)據(jù)模型中的關(guān)係必須是有限集合。通過(guò)為關(guān)係的每一個(gè)列附加一個(gè)屬性名取消關(guān)係的有序性,即(d1,d2,…,di,dj,…,dn,)=(d1,d2,…,dj,di,…,dn,)(i,j=1,2,…,n)數(shù)據(jù)結(jié)構(gòu)(續(xù)V)關(guān)係的性質(zhì)列是同質(zhì)的(Homogeneous)即每一列中的分量來(lái)自同一域,是同一類(lèi)型的數(shù)據(jù)。如TEACH(Teacher,Speciality,Student)={(t1,CS
,s1),(t1,t2,s1)}是錯(cuò)誤的。不同的列可出自同一域,每列必須有不同的屬性名。如Person={t1,t2,
s1,s2,s3},Speciality={c1,c2},則TEACH不能寫(xiě)成TEACH(Person,Speciality,Person),還應(yīng)寫(xiě)成TEACH(Teacher,Speciality,Student)。數(shù)據(jù)結(jié)構(gòu)(續(xù)VI)列的順序無(wú)關(guān)緊要,即列次序可以互換。任意兩個(gè)元組不能完全相同(集合內(nèi)不能有相同的兩個(gè)元素)。行的順序無(wú)關(guān)緊要,即行次序可以互換。每一分量必須是不可再分的數(shù)據(jù)。滿足這一條件的關(guān)係稱作滿足第一範(fàn)式(1NF)的。數(shù)據(jù)結(jié)構(gòu)(續(xù)VII)關(guān)係模式關(guān)係的描述稱作關(guān)係模式,它可以形式化地表示為:R(U,D,dom,F(xiàn),I),其中,R為關(guān)係名,U為組成該關(guān)係的屬性名集合,D為屬性集U所來(lái)自的域,dom為屬性向域的映象集合、F為屬性間的數(shù)據(jù)依賴關(guān)係集合,I為完整性約束集合。關(guān)係模式通??梢院?jiǎn)記作R(A1,A2,…,An)。關(guān)係是關(guān)係模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)係模式是相對(duì)穩(wěn)定的。而關(guān)係是動(dòng)態(tài)的,是隨時(shí)間不斷變化的。數(shù)據(jù)結(jié)構(gòu)(續(xù)VIII)關(guān)係資料庫(kù)在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間的聯(lián)繫的關(guān)係的集合構(gòu)成一個(gè)關(guān)係資料庫(kù)。關(guān)係資料庫(kù)也有型和值之分:其型是關(guān)係模式的集合,即資料庫(kù)描述,稱為關(guān)係資料庫(kù)模式。其值是這些關(guān)係模式在某一時(shí)刻對(duì)應(yīng)的關(guān)係的集合,通常稱為關(guān)係資料庫(kù)。完整性約束候選碼關(guān)係模式R(U)的屬性集合k
U是候選碼,如果(1)R(U)的任何一個(gè)關(guān)係實(shí)例的任意兩個(gè)元組在屬性集合k上的值都不同。即唯一性,候選碼的屬性值必須能夠唯一地標(biāo)識(shí)關(guān)係中的所有元組。(2)k的任何真子集都不滿足條件(1)。即最小性,候選碼不能包含多餘屬性。完整性約束(續(xù)I)主碼若一個(gè)關(guān)係具有多個(gè)候選碼時(shí),選擇其中一個(gè)作為該關(guān)係的主碼。主屬性與非主屬性候選碼中的諸屬性稱為主屬性,不包含在任何候選碼中的屬性稱為非主屬性。在最簡(jiǎn)單的情況下,候選碼只包括一個(gè)屬性。在最極端的情況下,關(guān)係模式的所有屬性是這個(gè)關(guān)係模式的候選碼,稱為全碼。完整性約束(續(xù)II)外部碼設(shè)F是基本關(guān)係R的一個(gè)或一組屬性,但不是R的碼。如果F與基本關(guān)係S的主碼Ks相對(duì)應(yīng),則稱F是關(guān)係R的外部碼(ForeignKey),並稱R為參照關(guān)係(ReferencingRelation),S為被參照關(guān)係(ReferencedRelation)或目標(biāo)關(guān)係(TargetRelation)。R和S不一定是不同的關(guān)係。顯然,目標(biāo)關(guān)係S的主碼Ks和參照關(guān)係的外部碼F必須定義在一個(gè)域上。完整性約束(續(xù)III)實(shí)體完整性定義:關(guān)係R主碼中所包含的任意屬性都不能取空值??罩担翰恢阑驘o(wú)意義。意義:關(guān)係對(duì)應(yīng)到現(xiàn)實(shí)世界中的實(shí)體集,元組對(duì)應(yīng)到實(shí)體,實(shí)體是相互可區(qū)分的,通過(guò)主碼來(lái)唯一標(biāo)識(shí),若主碼為空,則出現(xiàn)不可標(biāo)識(shí)的實(shí)體,這是不容許的。參照完整性如果關(guān)係R2的外部碼Fk與關(guān)係R1的主碼Pk相對(duì)應(yīng),則R2中的每一個(gè)元組的Fk值或者等於R1中某個(gè)元組的Pk值,或者為空值。意義:如果關(guān)係R2的某個(gè)元組t2參照了關(guān)係R1的某個(gè)元組t1,則t1必須存在。完整性約束(續(xù)IV)例如關(guān)係Student在Sdept上的取值有兩種可能:空值,表示該學(xué)生尚未分到任何系中。若非空值,則必須是DEPT關(guān)係中某個(gè)元組的Sdept值,表示該學(xué)生不可能分到一個(gè)不存在的系中。用戶定義的完整性用戶針對(duì)具體的應(yīng)用環(huán)境定義的完整性約束條件。如Sno要求是8位字元,Ssex要求取值為“男”或“女”。系統(tǒng)支持實(shí)體完整性和參照完整性由系統(tǒng)自動(dòng)支持。系統(tǒng)應(yīng)提供定義和檢驗(yàn)用戶定義的完整性的機(jī)制。關(guān)係代數(shù)傳統(tǒng)的集合運(yùn)算集合並、集合交、集合差、廣義笛卡兒積專(zhuān)門(mén)的關(guān)係運(yùn)算選擇、投影、連接、商基本運(yùn)算集合並、集合差、廣義笛卡兒積、選擇、投影關(guān)係代數(shù)運(yùn)算符運(yùn)算符含義運(yùn)算符含義集合運(yùn)算符∪
並比較運(yùn)算符>大於∩
交≥大於等於-
差<
小於×
廣義笛卡爾積≤小於等於=等於≠不等於專(zhuān)門(mén)的關(guān)系運(yùn)算符
選擇邏輯運(yùn)算符
非∏投影∧與連接∨或÷除並運(yùn)算定義設(shè)R和S是n元關(guān)係,並且兩者各對(duì)應(yīng)屬性的數(shù)據(jù)類(lèi)型也相同。則R和S的並運(yùn)算定義為:R
S={t|t
RtS}其結(jié)果仍為n元關(guān)係,由屬於R或?qū)凫禨的元組構(gòu)成。R
S並運(yùn)算(續(xù)I)ABCabcdafcbdbgaR∪SABCabcdafcbdABCbgadafRS差運(yùn)算定義設(shè)R和S是n元關(guān)係,並且兩者各對(duì)應(yīng)屬性的數(shù)據(jù)類(lèi)型也相同。則R和S的差運(yùn)算定義為:R
S={t|t
RtS}其結(jié)果仍為n元關(guān)係,由屬於R而不屬於S的元組構(gòu)成。R
S差運(yùn)算(續(xù)I)ABCabccbdR-SABCabcdafcbdABCbgadafRS交運(yùn)算定義設(shè)R和S是n元關(guān)係,並且兩者各對(duì)應(yīng)屬性的數(shù)據(jù)類(lèi)型也相同。則R和S的交運(yùn)算定義為:R
S={t|t
RtS}其結(jié)果仍為n元關(guān)係,由既屬於R又屬於S的元組構(gòu)成。交運(yùn)算可以通過(guò)差運(yùn)算來(lái)重寫(xiě):R
S=R
(R
S)R
S交運(yùn)算(續(xù)I)ABCdafR∩SABCabcdafcbdABCbgadafRS廣義笛卡爾積定義兩個(gè)關(guān)係R,S,其度分別為n,m,則它們的笛卡爾積是所有這樣的元組集合:元組的前n個(gè)分量是R中的一個(gè)元組,後m個(gè)分量是S中的一個(gè)元組。R
S={t|t=<r,s>
r
R
s
S}R
S的度為R與S的度之和,R
S的元組個(gè)數(shù)為R和S的元組個(gè)數(shù)的乘積。廣義笛卡爾積(續(xù)I)R×SR.AR.BR.CS.AS.BS.CabcbgaabcdafdafbgadafdafcbdbgacbddafABCabcdafcbdABCbgadafRS選擇運(yùn)算基本定義在關(guān)係R中選擇滿足給定條件的元組。
F(R)={t|tRF(t)=‘真’}F是選擇的條件,取邏輯值“真”或“假”。F的形式:由邏輯運(yùn)算符連接算術(shù)運(yùn)算式而成。邏輯運(yùn)算式:
,
,
算術(shù)運(yùn)算式:XY X,Y是屬性名、常量、或簡(jiǎn)單函數(shù)。
是比較算符,{,,,,,≠}選取運(yùn)算(續(xù)I)
B=b(R)
ABCabccbd
B=b
C=c(R)
ABCabcABCabcdafcbdR投影運(yùn)算定義從關(guān)係R中取若干屬性列組成新的關(guān)係。
A(R)={t[A]|tR},AR投影的結(jié)果中要去掉重複的行。cbcfedcbaCBABCbcef
R
B,C(R)連接運(yùn)算定義從兩個(gè)關(guān)係的廣義笛卡兒積中選取給定屬性間滿足
操作的元組。RS={t|t=<r,s>
r
R
s
S
r[A]s[B]}
為算術(shù)比較符,當(dāng)
為等號(hào)時(shí)稱為等值連接,其他依此類(lèi)推。連接運(yùn)算可以用笛卡爾積和選擇運(yùn)算重寫(xiě)為RS=
AB(
R×S)A
BA
B連接運(yùn)算(續(xù)I)987654321CBADE3162ABCDE123311236245662
RSB<D
R
S自然連接定義從兩個(gè)關(guān)係的廣義笛卡兒積中選取在相同屬性列上取值相等的元組,並去掉重複的屬性列。RS={(Z,X,W)|(Z,X)
R
(X,W)
S
r[X]=s[X]}計(jì)算R×S設(shè)R與S的公共屬性列為A1,…Ak,從R×S中選取滿足R.A1=S.A1,…,R.Ak=S.Ak的那些元組去掉S.A1,…,S.Ak自然連接(續(xù)I)ABCabcdbcbdfcadBDEbcdbceadbSRABCDEabccdabccedbccddbccecaddbRS複合連接與半連接複合連接類(lèi)似於自然連接,是連接運(yùn)算結(jié)果不包含連接屬性的自然連接。半連接在R與S的連接運(yùn)算結(jié)果中只保留R的屬性列所得到的元組集合。外連接例:列出老師的有關(guān)資訊,包括姓名、工資、所教授的課程。
∏P#,PN,SAL,C#,CN((PROF)PCC)化學(xué)C03數(shù)學(xué)C02物理C01CNC#P04C02P02C02P01C01P#C#數(shù)學(xué)C02500李三P04數(shù)學(xué)C02700錢(qián)廣P02物理C01800趙明P01CNC#SALPNP#問(wèn)題:有關(guān)P03號(hào)職工的姓名和工資資訊沒(méi)有顯示出來(lái)。P#PNSALP01趙明800P02錢(qián)廣700P03孫立600P04李三500外連接(續(xù)I)外連接為避免自然連接時(shí)因失配而發(fā)生的資訊丟失,可以假定往參與連接的一方表中附加一個(gè)取值全為空值的行,它和參與連接的另一方表中的任何一個(gè)未匹配上的元組都能匹配,稱之為外連接。外連接=自然連接+失配的元組。外連接的形式:左外連接、右外連接、全外連接。左外連接=自然連接+左側(cè)表中失配的元組。右外連接=自然連接+右側(cè)表中失配的元組。全外連接=自然連接+兩側(cè)表中失配的元組。外連接(續(xù)II)ABCabcbbfcadBCDbcdbceadbefgABCDabcdabcecadbABCDabcdabcecadbbbfnullnullefgABCDabcdabcecadbbbfnullABCDabcdabcecadbnullefgRSRSRSRSRS除運(yùn)算象集(ImageSet)關(guān)係R(X,Y),X,Y是屬性組,x是X上的取值,定義x在R中的象集為Yx={r[Y]|r
Rr[X]=x}
從R中選出在X上取值為x的元組,去掉X上的分量,只留Y上的分量。XY張軍同學(xué)所選修的全部課程如何得到選修了全部課程的學(xué)生?x=張軍Yx姓名課程張軍物理王紅數(shù)學(xué)張軍數(shù)學(xué)課程數(shù)學(xué)物理除運(yùn)算(續(xù)I)除運(yùn)算給定關(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上分量值x的象集Yx包含S在Y上投影的集合。記作:R÷S={r[X]|r
R
∏y(S)
Yx}除運(yùn)算(續(xù)II)ABCDabcdabefabdebcefedcdedefCDcdefABabed
=
RSR
S例子表SnoSnameSexSageSdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19ISSTUDENTSnoCnoGrade9500119295001285950013889500229095002380SCCnoCnameCpnoCcredit1資料庫(kù)542數(shù)學(xué)23資訊系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27Pascal語(yǔ)言64COURSE練習(xí)查詢資訊系(IS)的全體學(xué)生
Sdept=‘IS’(STUDENT)查詢年齡小於20歲的學(xué)生
Age<20(STUDENT)查詢學(xué)生的姓名和所在系
Sname,Sdept(STUDENT)求選修了2號(hào)課程的學(xué)生的學(xué)號(hào)?!荢no(Cno=‘2’(SC))練習(xí)(續(xù)II)查找學(xué)號(hào)為95001的學(xué)生姓名和年齡
Sname,Sage(Sno=‘95001’(STUDENT))查找資訊系的男學(xué)生的學(xué)號(hào)和姓名
Sno,Sname(Sdept=‘IS’∧Ssex=‘男’(STUDENT))查找選修了1號(hào)課程或3號(hào)課程的學(xué)生的學(xué)號(hào)
Sno(Cno=1∨Cno=3(SC))或:
Sno(Cno=1(SC))
∪Sno(Cno=3(SC))練習(xí)(續(xù)III)求選修了1號(hào)而沒(méi)有選2號(hào)課程的學(xué)生號(hào)。∏Sno(Cno=1(SC))-∏Sno(Cno=2(SC))求選修了1號(hào)和2號(hào)課程的學(xué)生號(hào)?!荢no(Cno=1(SC))∩∏Sno(Cno=2(SC))求選修了1號(hào)課程的學(xué)生號(hào)和姓名?!荢no,Sname(Cno=1(StudentSC))練習(xí)(續(xù)IV)查詢至少選修了一門(mén)其直接先行課為5號(hào)課程的學(xué)生姓名?!荢name(Cpno=5(Course)SC∏Sno,Sname(STUDENT))查詢選修了全部課程的學(xué)生號(hào)和姓名∏Sno,Cno(SC)∏Cno(Course)∏Sno,sname(STUDENT)關(guān)係運(yùn)算元組關(guān)係演算域關(guān)係演算關(guān)係運(yùn)算的安全性元組關(guān)係演算在元組關(guān)係演算系統(tǒng)中,稱{t|
(t)}為元組演算運(yùn)算式,表示所有使謂詞
為真的元組集合。t為元組變數(shù)。如果元組變數(shù)前有“全稱”(
)或“存在”(
)量詞,則稱其為約束元組變數(shù),否則稱為自由元組變數(shù)。
(t)是元組關(guān)係演算公式,由原子公式和運(yùn)算符組成,簡(jiǎn)稱公式。原子公式:R(t)。t是關(guān)係R中的一個(gè)元組。t[i]
u[j]。t[i]與u[j]分別為t的第i個(gè)分量和u的第j個(gè)分量,它們之間滿足比較關(guān)係
。t[i]
c或c
t[i]
。分量t[i]與常量c之間滿足比較關(guān)係
。公式的遞歸定義:每個(gè)原子公式是公式。如果
1,
2是公式,則
1
2,
1
2,┑
也是公式。如果
是公式,則
t(
)和
t(
)
也是公式。元組關(guān)係演算(續(xù)I)元組關(guān)係演算(續(xù)II)在元組演算公式中,各種運(yùn)算符的優(yōu)先次序?yàn)椋核阈g(shù)比較運(yùn)算符最高。量詞次之,且
的優(yōu)先順序高於
,多個(gè)相同量詞的優(yōu)先順序從左向右遞增。邏輯運(yùn)算符最低,且┑優(yōu)先順序高於
,
高於
,多個(gè)相同的邏輯運(yùn)算符優(yōu)先順序從左向右遞增。加括弧時(shí),括弧內(nèi)運(yùn)算符優(yōu)先,同一括弧內(nèi)的運(yùn)算符之優(yōu)先順序遵循I,II,III。有限次地使用上述五條規(guī)則得到的公式是元組關(guān)係演算公式,其他公式不是元組關(guān)係演算公式。元組關(guān)係演算(續(xù)III)查詢資訊系(IS)的全體學(xué)生{t|STUDENT(t)t[5]=‘IS’}查詢年齡小於20歲的學(xué)生{t|STUDENT(t)t[5]<20}查詢學(xué)生的姓名和所在的系{t(2)|(
u)(STUDENT(u)t[1]=u[2]t[2]=u[5])}元組關(guān)係演算(續(xù)IV)查找學(xué)號(hào)為95001的學(xué)生姓名和年齡{t|(
u)(STUDENT(u)u[1]=‘95001’t[1]=u[2]
t[2]=u[4])}查找選修了1號(hào)課程或3號(hào)課程的學(xué)生的學(xué)號(hào){t|(
u)(SC(u)(u[2]=1
u[2]=3)t[1]=u[1])}元組關(guān)係演算(續(xù)V)求選修了1號(hào)而沒(méi)有選2號(hào)課程的學(xué)生號(hào)。{t|(
u)(SC(u)u[2]=1
(v)(SC(v)u[1]=v[1]v[2]=2)
t[1]=u[1])}求選修了1號(hào)課程的學(xué)生號(hào)和姓名。{t|(
u)(v)(Student(u)
SC(v)
v[2]=1
u[1]=v[1]
t[1]=u[1]
t[2]=u[2])}元組關(guān)係演算(續(xù)VI)元組關(guān)係演算與關(guān)係代數(shù)的等價(jià)性∏i1,i2,…,ik(R)={tk|(u)(R(u)
t[1]=u[i1])
…
t[k]=u[ik])}
F(R)={t|R(t)
F}R
S={t(n+m)|(u(n))(v(m))(R(u)S(v)t[1]=u[1]
…
t[n]=u[n]t[n+1]=v[1]
…
t[n+m]=v[m])}R
S={t|R(t)
S(t)}R
S={t|R(t)
┑S(t)}元組關(guān)係演算(續(xù)VII)設(shè)R和S都是二元關(guān)係,試把關(guān)系代數(shù)運(yùn)算式∏1,4(2=3(R×S))轉(zhuǎn)換為元組運(yùn)算式
R×S={t|(u)(v)(R(u)
S(v)
t[1]=u[1]
t[2]=u[2]
t[3]=v[1]
t[4]=v[2])}
2=3(R×S)={t|(u)(v)(R(u)
S(v)
t[1]=u[1]
t[2]=u[2]
t[3]=v[1]
t[4]=v[2]u[2]=v[1])}
∏1,4(2=3(R×S))={t|(u)(v)(R(u)
S(v)
t[1]=u[1]
t[2]=v[2]u[2]=v[1])}
域關(guān)係演算在域關(guān)係演算系統(tǒng)中,稱{t1t2…tk|
(t1,t2,…,tk
)}
為域演算運(yùn)算式。表示所有使謂詞
為真的元組集合。ti代表域變數(shù),如果域變數(shù)前有“全稱”(
)或“存在”(
)量詞,則稱其為約束域變數(shù),否則稱為自由域變數(shù)。
為由域關(guān)係演算公式,由原子公式和運(yùn)算符組成。原子公式:R(t1,
t2,…,tk)
。ti是域變數(shù)或域常量。ti
uj。域變數(shù)ti與uj之間滿足比較關(guān)係
。ti
c或c
ti
。域變數(shù)ti與常量c之間滿足比較關(guān)係
。域關(guān)係演算(續(xù)I)公式的遞歸定義:每個(gè)原子公式是公式。如果
1,
2是公式,則
1
2,
1
2,┑
也是公式。如果
是公式,則
ti(
)和
ti(
)
也是公式。域關(guān)係演算公式中運(yùn)算符優(yōu)先順序與元組演算公式中運(yùn)算符優(yōu)先順序的規(guī)定相同。域關(guān)係演算公式是有限次運(yùn)用上述規(guī)則得到的公式,其他公式不是域關(guān)係演算公式。域關(guān)係演算(續(xù)II)查找學(xué)號(hào)為95001的學(xué)生姓名和年齡{t1t2|(
u1)(
u3)(
u5)(Student(u1t1u3t2u5)
u1=‘95001’)}查找選修了1號(hào)課程或3號(hào)課程的學(xué)生的學(xué)號(hào){t1|(
u2)(
u3)(SC(t1u2u3)(u2=1
u2=3))}關(guān)係演算的安全性關(guān)係演算有可能會(huì)產(chǎn)生無(wú)限關(guān)係或?qū)е聼o(wú)窮驗(yàn)證,這樣的運(yùn)算式是不安全的。如{t|┑R(t)}會(huì)導(dǎo)致無(wú)限關(guān)係。而當(dāng)t的定義域無(wú)窮時(shí),要想判斷(t)(F(t))為假或判斷(t)(F(t))為真時(shí)會(huì)發(fā)生無(wú)窮驗(yàn)證。為此,需對(duì)兩種關(guān)係演算進(jìn)行限制,使之具有安全性。設(shè)
是一個(gè)元組關(guān)係演算公式,
的符號(hào)集合(簡(jiǎn)記為dom(
))是由如下兩類(lèi)符號(hào)構(gòu)成的集合:
中的所有常量
中出現(xiàn)的關(guān)係的所有元組的所有分量值關(guān)係運(yùn)算的安全性(續(xù)I)當(dāng)滿足下列條件時(shí),一個(gè)元組關(guān)係演算運(yùn)算式{t|
(t)}是安全的:如果
(t)為真,則元組t的每個(gè)分量都屬於dom(
)。對(duì)於
中的每個(gè)形如(t)(F(t))的子運(yùn)算式,如果F(t)為真,則元組t的每個(gè)分量都屬於dom(
)。對(duì)於
中的每個(gè)形如(t)(F(t))的子運(yùn)算式,如果F(t)為假,則元組t的每個(gè)分量都屬於dom(
)。域關(guān)係演算運(yùn)算式也必須滿足類(lèi)似的條件才是安全的。SQL語(yǔ)言SQL概述SQL數(shù)據(jù)查詢功能SQL數(shù)據(jù)定義功能SQL數(shù)據(jù)更新功能嵌入式SQLSQL概述歷史1974年,由Boyce和Chamberlin提出,稱為SEQUEL(StructuredEnglishQueryLanguage)。1975-1979年,在IBM的SanJose研究室研製的SystemR上實(shí)現(xiàn)。1981年,IBM在推出SQL/DS關(guān)係資料庫(kù)時(shí),將其命名為SQL(StructuredQueryLanguage)?,F(xiàn)在,不僅關(guān)係型資料庫(kù)系統(tǒng),甚至非關(guān)係型資料庫(kù)系統(tǒng)都將SQL作為其資料庫(kù)語(yǔ)言。SQL語(yǔ)言已成為當(dāng)今最為成功和應(yīng)用最廣的資料庫(kù)語(yǔ)言。SQL概述(I)有關(guān)標(biāo)準(zhǔn)
隨著SQL語(yǔ)言應(yīng)用的日益廣泛,ANSI和ISO先後制定了多個(gè)SQL標(biāo)準(zhǔn):SQL-86:較為簡(jiǎn)單,主要包括數(shù)據(jù)定義語(yǔ)言、數(shù)據(jù)操縱語(yǔ)言、嵌入式語(yǔ)法等幾個(gè)部分。SQL-89:增加了對(duì)完整性約束的支持。SQL-92:也稱SQL2,是SQL-89的超集,增加了許多新特性,如新的數(shù)據(jù)類(lèi)型,更豐富的數(shù)據(jù)操作,更強(qiáng)的完整性、安全性支持等。SQL-3:正在討論中的新的標(biāo)準(zhǔn),將增加對(duì)面向?qū)ο竽P偷闹С?。SQL概述(II)特點(diǎn)綜合統(tǒng)一集數(shù)據(jù)定義,數(shù)據(jù)操縱,數(shù)據(jù)查詢和數(shù)據(jù)控制於一體。單一的結(jié)構(gòu)----關(guān)係,帶來(lái)了數(shù)據(jù)操作符的統(tǒng)一。高度非過(guò)程化用戶只需提出“做什麼”,無(wú)須告訴“怎麼做”,不必瞭解存取路徑。面向集合的操作方式操作的對(duì)象和操作的結(jié)果均為集合。以同一種語(yǔ)法結(jié)構(gòu)提供兩種使用方式
SQL既是自含式語(yǔ)言,又是嵌入式語(yǔ)言SQL概述(III)語(yǔ)言簡(jiǎn)捷,易學(xué)易用類(lèi)似於英語(yǔ)自然語(yǔ)言SQL功能操作符數(shù)據(jù)查詢SELECT數(shù)據(jù)定義CREATE,DROP,ALTER數(shù)據(jù)操縱INSERT,UPDATE,DELETE數(shù)據(jù)控制GRANT,REVOKESQL對(duì)關(guān)係資料庫(kù)模式的支持用戶視圖1視圖2SQL基本表1基本表2基本表3基本表4存儲(chǔ)檔1存儲(chǔ)檔2外模式內(nèi)模式概念模式SQL對(duì)關(guān)係資料庫(kù)模式的支持基本表是本身獨(dú)立存在的表,一個(gè)(或多個(gè))基本表對(duì)應(yīng)一個(gè)存儲(chǔ)檔存儲(chǔ)檔由數(shù)據(jù)塊構(gòu)成的存儲(chǔ)空間,用於存儲(chǔ)基本表、索引等。其邏輯結(jié)構(gòu)組成了關(guān)係資料庫(kù)的內(nèi)模式視圖是從一個(gè)或幾個(gè)基本表中導(dǎo)出的表,其本身不獨(dú)立存儲(chǔ)於資料庫(kù)中例子表SnoSnameSexSageSdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19ISSTUDENTSnoCnoGrade9500119295001285950013889500229095002380SCCnoCnameCpnoCcredit1資料庫(kù)542數(shù)學(xué)23資訊系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27Pascal語(yǔ)言64COURSESQL數(shù)據(jù)查詢功能查詢語(yǔ)句SELECT的語(yǔ)法:Select[ALL|DISTINCT]<目標(biāo)運(yùn)算式>[{,<目標(biāo)運(yùn)算式>}]From<表名或視圖名>[{,<表名或視圖名>}][Where<條件運(yùn)算式>][GroupBy<分組列>[{,<分組列>}][HAVING<條件運(yùn)算式>]][OrderBy<排序列><排序方式>[{,<排序列><排序方式>}]SQL數(shù)據(jù)查詢功能其語(yǔ)義是:從FROM子句給定的表中,檢索出滿足WHERE子句給定檢索條件的記錄,並根據(jù)SELECT子句從這些記錄中選出指定的列(屬性)所構(gòu)成的結(jié)果集合。SELECT和FROM兩個(gè)子句定義了投影操作。WHERE子句給出了選取操作的定義(當(dāng)涉及多表操作時(shí),WHERE子句要同時(shí)給出連接操作條件)??梢?jiàn),查詢語(yǔ)句作為整體代表著關(guān)係代數(shù)中的投影、選取、連接等操作的組合。但是,由於在查詢語(yǔ)句中並不規(guī)定投影、選取、連接等操作的執(zhí)行順序。因此,它比關(guān)係代數(shù)更一般,更少過(guò)程化。SQL數(shù)據(jù)查詢功能單表查詢連接查詢嵌套查詢集合查詢單表查詢查詢?nèi)w學(xué)生的姓名與學(xué)號(hào)SelectSname,SnoFromStudent;查詢?nèi)w學(xué)生的全部屬性Select*FromStudent;查看全體學(xué)生的姓名及其出生年份SelectSname,2001-SageFromStudent;單表查詢(續(xù)I)查詢?nèi)w學(xué)生所在學(xué)校、姓名、出生年份和所在系(用小寫(xiě)字母顯示系名)。Select“北航”,Sname,2001-Sage,ISLOWER(Sdept)FromStudent;Select“北航”School,Sname,2001-SageBirth,ISLOWER(Sdept)FromStudent;單表查詢(續(xù)II)查詢條件謂詞比較>,>=,<,<=,=,!=,<>,!>,!<;NOT+上述比較運(yùn)算符確定範(fàn)圍BETWEENAND,NOTBETWEENAND確定集合IN,NOTIN字元匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重條件AND,OR單表查詢(續(xù)III)查詢選修了課程的學(xué)生學(xué)號(hào)SelectDistinctSnoFromSTUDENT;查詢電腦系全體學(xué)生的姓名SelectSnameFromStudentwhereSdept=‘CS’;查詢所有年齡在20歲以下的學(xué)生姓名及其年齡SelectSnameFromStudentwhereSage<20;單表查詢(續(xù)IV)查詢年齡在20~23(含20和23歲)之間的學(xué)生姓名、性別和年齡。SelectSname,Ssex,SageFromStudentWhereSageBETWEEN20AND23;查詢數(shù)學(xué)系和電腦系的學(xué)生的姓名和性別。SelectSname,SsexFromStudentWhereSdeptIN(‘MA’,‘CS’);單表查詢(續(xù)V)查詢所有姓劉的學(xué)生的學(xué)號(hào)、姓名SelectSno,SnameFromStudentWhereSnameLike‘劉%’查詢所有姓劉,並且名字為兩個(gè)漢字的學(xué)生的學(xué)號(hào)、姓名SelectSno,SnameFromStudentWhereSnameLike‘劉__’單表查詢(續(xù)VI)查詢所選課程沒(méi)有成績(jī)的學(xué)生的學(xué)號(hào),所選課程號(hào)。SelectSno,CnoFromSCWhereGradeISNULL單表查詢(續(xù)VII)ORDERBY子句可以將查詢結(jié)果按照一個(gè)或多個(gè)屬性列的昇冪(ASC)或降序(DESC)排序。查詢?nèi)w學(xué)生的情況,並按所在系的昇冪和年齡的降序排列Select*FromStudentOrderBySdeptAsc,SageDesc單表查詢(續(xù)VIII)聚集函數(shù)Count()求元組個(gè)數(shù)Sum()對(duì)數(shù)值列求總和Avg()求數(shù)值列的平均值Max()求最大值Min()求最小值單表查詢(續(xù)IX)查詢學(xué)生總數(shù)SelectCount(*)FromStudent;查詢選修了課程的學(xué)生人數(shù)SelectCount(DistinctSno)FromSC;計(jì)算1號(hào)課程的學(xué)生平均成績(jī)SelectAVG(Grade)FromSCWhereCno=‘1’;查詢選修1號(hào)課程的學(xué)生最高分?jǐn)?shù)SelectMAX(Grade)FromSCWhereCno=‘1’;單表查詢(續(xù)X)查詢各門(mén)課及其相應(yīng)選課人數(shù)。SelectCno,Count(Sno)FromSCGroupByCno;查詢選課至少為三門(mén)的學(xué)生的學(xué)號(hào)及其選課門(mén)數(shù)。SelectSno,Count(Sno)FromSCGroupBySnoHavingCount(Sno)>=3;連接查詢連接條件連接查詢中用來(lái)連接兩個(gè)表的條件稱為連接條件或連接謂詞,其一般格式為:
[<表名>.]<列名><比較運(yùn)算符>[<表名>.]<列名>其中的<列名>稱為連接字段,連接條件的各個(gè)連接字段類(lèi)型必須是可比的,但不必是相同的。<比較運(yùn)算符>主要有:=,>,<,>=,<=,!=。當(dāng)連接運(yùn)算符為等號(hào)時(shí),稱為等值連接,否則稱非等值連接。連接查詢(續(xù)I)查詢每個(gè)學(xué)生及其所選課程的情況SelectStudent.*,SC.*FromStudent,SCWhereStudent.Sno=SC.Sno;查詢每一門(mén)課的間接先修課(即先修課的先修課)SelectFIRST.Cno,SECOND.CpnoFromCourseFIRST,CourseSECONDWhereFIRST.Cpno=SECOND.Cno查詢所有學(xué)生的學(xué)號(hào)、姓名、所選修課程的課程號(hào)和成績(jī)SelectStudent.Sno,Sname,Cno,GradeFromStudent,SCWhereStudent.Sno=SC.Sno(*)嵌套查詢?cè)赟QL語(yǔ)言中,一個(gè)SELECT-FROM-WHERE稱為一個(gè)查詢塊,將一個(gè)查詢塊嵌套在另一個(gè)查詢塊的WHERE子句或HAVING短語(yǔ)的條件中的查詢稱為嵌套查詢。上層的查詢塊稱為外層查詢或父查詢,下層查詢稱為內(nèi)層查詢或子查詢。外層查詢利用子查詢來(lái)獲取檢索條件的條件值,並根據(jù)這個(gè)條件值確定外層查詢的結(jié)果集合。通過(guò)子查詢,可以利用一系列簡(jiǎn)單查詢來(lái)構(gòu)造一個(gè)複雜查詢。子查詢中的SELECT語(yǔ)句中不能使用ORDERBY子句,ORDERBY子句只能對(duì)最終查詢結(jié)果排序。嵌套查詢(續(xù)I)不相關(guān)子查詢不相關(guān)子查詢的執(zhí)行順序是由內(nèi)向外,即每個(gè)子查詢?cè)谏弦患?jí)查詢處理前求解,子查詢的結(jié)果集合作為其外部查詢的檢索條件的條件值。相關(guān)子查詢相關(guān)子查詢的查詢條件引用了其外部查詢的某個(gè)屬性值,從而其執(zhí)行依賴於其外部查詢。其執(zhí)行順序是:首先取外部查詢選取一行記錄(稱為候選行),然後子查詢利用候選行中相關(guān)列的值查詢結(jié)果數(shù)據(jù)。接著外部查詢利用子查詢返回的結(jié)果集合判斷候選行是否滿足檢索條件,若滿足,則把它放入外部查詢的結(jié)果集合。重複上述步驟直到處理完外部查詢的每一行候選行。嵌套查詢(續(xù)II)查詢與劉晨在同一個(gè)系學(xué)習(xí)的學(xué)生。SelectSno,Sname,SdeptFromStudentWhereSdept=(SelectSdeptFromStudentWhereSname=‘劉晨’);嵌套查詢(續(xù)III)查詢選修了課程名為‘資訊系統(tǒng)’的學(xué)生的學(xué)號(hào)和姓名。SelectSno,SnameFromStudentWhereSnoIN(SelectSnoFromSCWhereCnoIN(SelectCnoFromCourseWhereCname=‘資訊系統(tǒng)’));嵌套查詢(續(xù)IV)查詢其他系中比資訊系中某一學(xué)生年齡小的學(xué)生姓名和年齡。SelectSname,SageFromStudentWhereSdept<>‘IS’AndSage<Any(SelectSageFromStudentWhereSdept=‘IS’)嵌套查詢(續(xù)V)查詢其他系中比資訊系中所有學(xué)生年齡都小的學(xué)生姓名和年齡。SelectSname,SageFromStudentWhereSdept<>‘IS’AndSage<All(SelectSageFromStudentWhereSdept=‘IS’)嵌套查詢(續(xù)VI)查詢選擇了1號(hào)課程的學(xué)生姓名。SelectSnameFromStudentWhereExists(Select*fromSCWhereSno=Student.SnoAndCno=‘1’)查詢沒(méi)有選擇1號(hào)課程的學(xué)生姓名。SelectSnameFromStudentWhereNotExists(Select*fromSCWhereSno=Student.SnoAndCno=‘1’)嵌套查詢(續(xù)VII)查詢選修了全部課程的學(xué)生姓名SelectSnameFromStudentWhereNotExists(Select*fromCourseWhereNotExists(Select*fromSCWhereSno=Student.SnoAndCno=Course.Cno));集合查詢查詢選修了1號(hào)或2號(hào)課程的學(xué)生SelectSnoFromSCWhereCno=‘1’UnionSelectSnoFromSCWhereCno=‘2’集合查詢(續(xù)I)查詢選修了1號(hào)課程的學(xué)生和選修了2號(hào)課程的學(xué)生的交集SelectSnoFromSCWhereCno=‘1’AndSnoIn(SelectSnoFromSCWhereCno=‘2’)集合查詢(續(xù)II)查詢電腦系的學(xué)生與年齡不大於19歲的學(xué)生的差集Select*fromStudentWhereSdept=‘CS’AndSage>19;SQL數(shù)據(jù)更新功能Insert語(yǔ)句Update語(yǔ)句Delete語(yǔ)句Insert語(yǔ)句插入數(shù)據(jù)InsertInto<表名>[(<屬性列>[{,<屬性列>}])]Values(<值>[{,<值>}])插入子查詢結(jié)果InsertInto<表名>[(<屬性列>[{,<屬性列>}])]<子查詢>Insert語(yǔ)句(續(xù)I)InsertIntoStudentValues(‘95020’,‘陳冬’,‘IS’,18);InsertInto
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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è)資格測(cè)試題模擬測(cè)試題及答案
- 2025年河北省安全員B證考試題庫(kù)附答案
- 永修縣保安考試題及答案
- SAP(中國(guó))校招面試題及答案
- 大專(zhuān)財(cái)經(jīng)考試題目及答案
- 未來(lái)五年輸入設(shè)備背光模組企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略分析研究報(bào)告
- 未來(lái)五年新形勢(shì)下少兒讀物類(lèi)雜志出版服務(wù)行業(yè)順勢(shì)崛起戰(zhàn)略制定與實(shí)施分析研究報(bào)告
- 2026黑龍江哈爾濱市香坊第二小學(xué)校招聘體育教師1人參考題庫(kù)必考題
- 關(guān)于公開(kāi)考調(diào)政協(xié)青川縣委員會(huì)宣教中心工作人員的考試備考題庫(kù)必考題
- 四川農(nóng)業(yè)大學(xué)合同制聘用人員招聘參考題庫(kù)附答案
- 2024年四川省成都市青羊區(qū)中考數(shù)學(xué)二診試卷(含答案)
- 肥胖患者麻醉管理
- 小鯉魚(yú)跳龍門(mén)電子版
- 2019年急性腦梗死出血轉(zhuǎn)化專(zhuān)家共識(shí)解讀
- 左心導(dǎo)管檢查及造影操作技術(shù)規(guī)范
- 《混凝土結(jié)構(gòu)工程施工規(guī)范》
- 社會(huì)實(shí)踐登記表
- 土地證延期申請(qǐng)書(shū)
- 硫乙醇酸鹽流體培養(yǎng)基適用性檢查記錄
- 進(jìn)階切分技法advanced funk studies rick latham-藍(lán)色加粗字
- GB 19079.12-2013體育場(chǎng)所開(kāi)放條件與技術(shù)要求第12部分:傘翼滑翔場(chǎng)所
評(píng)論
0/150
提交評(píng)論