




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章緒論
1.1資料庫系統概述
資料庫技術自從20世紀60年代中期產生以來,無論是理論還是應用方面都以變得相當的重要和成熟,成為電腦科學的重要分支。資料庫技術是電腦領域發展最快的學科之一,也是應用很廣、實用性很強的一門技術。目前,資料庫技術已從第一代的網狀、層次資料庫系統,第二代的關係資料庫系統,發展到以面向對象模型為主要特徵的第三代數據庫系統。1.1.1數據、資料庫、資料庫管理系統、資料庫系統
數據,資料庫,資料庫管理系統,資料庫系統是與資料庫技術密切相關的四個基本概念。是我們首先要認識的。一、數據(Data)
1.數據的定義
數據是用來記錄資訊的可識別的符號,是資訊的具體表現形式。
2.數據的表現形式
數據是資料庫中存儲的基本對象
1.1.1數據、資料庫、資料庫管理系統、資料庫系統
數據是資料庫中存儲的基本對象。數據在大多數人的第一印象中就是數字。其實數字只是其中一種最簡單的表現形式,是數據的一種傳統和狹義的理解。按廣義的理解來說,數據的種類有很多,如文字、圖形、圖像、聲音、視頻、語言以及學校學生的檔案管理等等情況,這些都是數據,都可以轉化為電腦可以識別的標識,並以數位化後的二進位形式存入電腦。1.1.1數據、資料庫、資料庫管理系統、資料庫系統
其實數字只是其中一種最簡單的表現形式,是數據的一種傳統和狹義的理解。按廣義的理解來說,數據的種類有很多,如文字、圖形、圖像、聲音、視頻、語言以及學校學生的檔案管理等等情況,這些都是數據,都可以轉化為電腦可以識別的標識,並以數位化後的二進位形式存入電腦。為了瞭解世界,交流資訊,人們需要描述各種事物。在日常生活中直接用自然語言描述。在電腦中,為了存儲和處理這些事物,就要抽出對這些事物感興趣的特徵組成一個記錄來描述。1.1.1數據、資料庫、資料庫管理系統、資料庫系統
3.數據與資訊的聯繫
數據解釋的含義稱為數據的語義(即資訊),數據與其語義是不可分的。可以這樣認為:數據是資訊的符號表示或載體,資訊則是數據的內涵,是對數據的語義解釋。二、資料庫(DataBase,簡稱DB)資料庫,從字面意思來說就是存放數據的倉庫。具體而言就是長期存放在電腦內的有組織的可共用的數據集合,可供多用戶共用,資料庫中的數據按一定的數據模型組織、描述和儲存,具有盡可能小的冗餘度和較高的數據獨立性和易擴張性。
1.1.1數據、資料庫、資料庫管理系統、資料庫系統資料庫具有兩個比較突出的特點:①把在特定的環境中與某應用程式相關的數據及其聯繫集中在一塊並按照一定的結構形式進行存儲,即集成性。②資料庫中的數據能被多個應用程式的用戶所使用,即共用性。三、資料庫管理系統(DataBaseManagementSystem,簡稱DBMS)資料庫管理系統是資料庫系統的核心組成部分,是對數據進行管理的大型系統軟體,用戶在資料庫系統中的一些操作,例如:數據定義、數據操縱、數據查詢和數據控制,這些操作都是由資料庫管理系統來實現的。
1.1.1數據、資料庫、資料庫管理系統、資料庫系統
資料庫管理系統主要包括以下幾個功能:
(1)數據定義
(2)數據操縱
(3)資料庫的運行管理
(4)資料庫的建立和維護功能四、資料庫系統(DataBaseSystem,簡稱DBS)資料庫系統是指在電腦系統中引入資料庫後的系統構成,主要有數據庫(及相關硬體)、資料庫管理系統(及開發工具)(及相關軟體)、應用系統、資料庫管理員和用戶這幾部分1.1.2數據管理技術的產生和發展
談數據管理技術,先要講到數據處理,所謂數據處理是指對各種數據進行收集、存儲、加工和傳播的一系列活動的總和。數據管理則是數據處理的中心問題,為此,數據管理是指對數據進行分類、組織、編碼、存儲、檢索和維護的管理活動總稱。就用電腦來管理數據而言,數據管理是指數據在電腦內的一系列活動的總和。
人們借助電腦來進行數據管理雖是近五十多年的事,然而數據管理技術已經曆了人工管理、檔系統及資料庫系統三個發展階段1.1.2數據管理技術的產生和發展
一、人工管理階段
20世紀50年代中期以前,電腦主要用於科學計算。硬體設施方面:外存只有紙帶、卡片、磁帶,沒有磁片等直接存取設備;軟體方面:沒有操作系統和管理數據的軟體;數據處理方式是批處理。人工管理數據具有以下幾個特點:(1)數據不保存(2)應用程式管理數據
1)數據不共用
2)數據不具有獨立性
1.1.2數據管理技術的產生和發展
二、檔系統階段
20世紀50年代後期到60年代中期,這時電腦已大量用於數據的管理。硬體方面:有了磁片、磁鼓等直接存取存儲設備;軟體方面:操作系統中已經有了專門的管理軟體,一般稱為檔系統;處理方式有批處理、聯機即時處理。特點如下:(1)數據長期保存(2)檔系統管理數據(3)數據共用性差,冗餘度大(4)數據獨立性差1.1.2數據管理技術的產生和發展
三、資料庫系統階段
20世紀60年代後期以來,電腦用於管理的規模更為龐大,數據量急劇增長,硬體已有大容量磁片,硬體價格下降;軟體則價格上升,使得編制、維護軟體及應用程式成本相對增加;處理方式上,聯機即時處理要求更多,分佈處理也在考慮之中。介於這種情況,檔系統的數據管理滿足不了應用的需求,為解決共用數據的需求,隨之從檔系統中分離出了專門軟體系統——資料庫管理系統,用來統一管理數據。1.1.3資料庫系統的特點
與以上兩個數據管理階段相比,資料庫系統階段數據管理有其自己的特點,主要體現在以下幾個方面:一、數據結構化二、數據的共用性高,冗餘度低,易擴充三、數據獨立性高
數據獨立性包括了數據的物理獨立性和數據的邏輯獨立性兩方面。
1.1.3資料庫系統的特點
物理獨立性是指用戶的應用程式與存儲在磁片上的資料庫中數據是相互獨立的。也就是說,數據在磁片上的資料庫中怎樣存儲是由DBMS管理的,用戶程式不需要瞭解,應用程式要處理的只是數據的邏輯結構,這樣當數據的物理存儲改變時,應用程式不用改變。
邏輯獨立性是指用戶的應用程式與資料庫的整體邏輯結構是相互獨立的,也就是說,數據的邏輯結構改變了,用戶程式也可以不需修改的。1.1.3資料庫系統的特點
四、數據由DBMS統一管理和控制資料庫的共用是併發的共用,即多個用戶可以同時存取資料庫中的數據甚至可以同時存取資料庫中的同一塊數據。為此,DBMS還必須提供以下幾方面的數據控制功能(1)數據的安全性控制
(2)數據的完整性約束
(3)併發控制
(4)資料庫恢復
1.2數據模型
數據模型也是一種模型,它能實現對現實世界數據特徵的抽象。數據模型應滿足三方面的要求:一、是能比較真實地模擬現實世界;二、是容易為人所理解;三、是便於在電腦上實現。不同的數據模型實際上是提供給我們模型化數據和資訊的不同工具。根據模型應用的不同目的,可以將這些模型分為兩類,他們分屬於兩個不同的層次。1.2數據模型
第一類模型是概念模型,也稱資訊模型,它是按用戶的觀點來對數據和資訊建模的,主要用於資料庫設計。概念模型一般應具有以下能力:(1)具有對現實世界的抽象與表達能力:能對現實世界本質的、實際的內容進行抽象。而忽略現實世界中非本質的和與研究主題無關的內容。(2)完整、精確的語義表達力,能夠模擬現實世界中本質的、與研究主題有關的各種情況。(3)易於理解和修改。(4)易於向DBMS所支持的數據模型轉換,現實世界抽象成資訊世界的目的,是為了用電腦處理現實世界中的資訊。1.2數據模型
另一類模型是數據模型,主要包括層次模型、網狀模型、關係模型等,它是按電腦系統對數據建模,主要用於DBMS的實現。數據模型是資料庫系統的核心和基礎,各種機器上實現的DBMS軟體都是基於某種數據模型的。本書後續內容將主要圍繞數據模型而展開。1.2.1數據模型的組成要素
數據模型是模型中的一種,是現實世界數據特徵的抽象,它描述了系統的三個方面:靜態特性、動態特性和完整性約束條件。因此數據模型一般由數據結構、數據操作和完整性約束三部分組成,是嚴格定義的一組概念的集合。一、數據結構數據結構用於描述系統的靜態特性,是所研究的對象類型的集合。數據模型按其數據結構分為層次模型、網狀模型、關係模型和麵向對象模型。其所研究的對象是資料庫的組成部分,它們包括兩類,一類是與數據類型、內容、性質有關的對象,例如網狀模型中的資料項目、記錄,關係模型中的域、屬性、實體關係等;一類是與數據之間聯繫有關的對象,例如網狀模型中的系型、關係模型中反映聯繫的關係等。
1.2.1數據模型的組成要素
二、數據操作數據操作用於描述系統的動態特性,是指對數據庫中各種對象及對象的實例允許執行的操作的集合,包括對象的創建、修改和刪除,對對象實例的檢索和更新(例如插入、刪除和修改)兩大類操作及有關的操作集合。數據模型必須定義這些操作的確切含義、操作符號、操作規則(如優先順序)以及實現操作的語言等。三、數據的約束條件數據的約束條件是一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯繫所具有的制約和依存規則,用以限定符合數據模型的資料庫狀態以及狀態的變化,以保證數據的正確、有效、相容。
1.2.2概念模型
一、資訊世界中的基本概念資訊世界是現實世界在人們頭腦中的反映。資訊世界中涉及的概念主要有:(1)實體是指客觀存在並可以相互區別的事物。(2)屬性是指實體所具有的某一特性。(3)碼是指唯一標識實體的屬性集。(4)域是指屬性的取值範圍,具有相同的數據類型的數據集合。(5)具有相同屬性的實體必然具有共同的特徵和性質。用實體名及其屬性名集合組成的形式,稱為實體型。1.2.2概念模型
(6)實體集是指同型實體的集合。(7)聯繫是指實體型與實體型之間、實體集內實體與實體之間以及組成實體的各屬性間的關係。兩個實體型之間的聯繫有以下三種:
1)一對一聯繫
2)一對多聯繫
3)多對多聯繫二、概念模型的表示概念模型的表示方法很多,最常用的是實體—聯繫方法。該方法用E-R圖來描述現實世界的概念模型。E-R圖提供了表示實體型、屬性和聯繫的方法。1.2.3層次模型概述
一、層次模型的數據結構在資料庫中,對滿足以下兩個條件的數據模型稱為層次模型。(1)有且僅有一個節點無雙親,這個節點稱為“根節點”。(2)其他節點有且僅有一個雙親。層次模型對具有一對多的層次關係的描述非常自然、直觀、容易理解,這是層次資料庫的突出優點。層次模型的一個基本的特點是,任何一個給定的記錄值只有按其路徑查看時,才能顯出它的全部意義,沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在。1.2.3層次模型概述
二、多對多聯繫在層次模型中的表示必須首先將其分解為多個一對多聯繫。分解的方法有兩種:冗餘結點法和虛擬結點法(具體略)。三、層次模型的數據操縱與約束條件層次模型的數據操作有查詢、插入、刪除和修改。進行插入、修改、刪除操作時要滿足層次模型的完整性約束條件。四、層次模型的存儲結構層次資料庫中不僅要存儲數據本身,還要存儲數據之間的層次聯繫,層次模型數據的存儲常常是和數據之間聯繫的存儲結合在一起的,常用的實現方法有兩種:(1)鄰接法(2)鏈接法1.2.3層次模型概述五、層次模型的優缺點層次模型的優點:(1)層次模型本身比較簡單。(2)對於實體間聯繫是固定的,且預先定義好的應用系統,採用層次模型來實現,其性能較優。(3)層次模型提供了良好的完整性支持。1.2.3層次模型概述層次模型的缺點主要有:
(1)現實世界中很多聯繫是非層次性的,如多對多聯繫,一個結點具有多個雙親等,層次模型表示這類聯繫的方法很笨拙,只能通過引入冗餘數據或創建非自然的數據組織來解決。
(2)對插入和刪除操作的限制太多,影響太大。
(3)查詢子女結點必須通過雙親結點,缺乏快速定位機制。
(4)由於結構嚴密,層次命令趨於程式化。
1.2.4網狀模型
網狀數據模型的典型代表是DBTG系統,也稱CODASYL系統,它是20世紀70年代數據系統語言研究會CODASYL(ConferenceOnDataSystemsLanguage)下屬的資料庫任務組(DataBaseTaskGroup,簡稱DBTG)提出的一個系統方案。若用圖表示,網狀模型是一個網路。一、網狀模型的數據結構在資料庫中,把滿足以下兩個條件的基本層次聯繫集合稱為網狀模型:(1)允許一個以上的結點無雙親;(2)一個結點可以有多於一個的雙親。1.2.4網狀模型
二、網狀模型的數據操作與完整性約束網狀模型一般來說沒有層次模型那樣嚴格的完整性的約束條件,但具體的網狀資料庫系統對數據操縱都加了一些限制,提供了一定的完整性約束。
DBTG在模式DDL中提供了定義DBTG資料庫完整性的若干概念和語句,主要有:
(1)支持記錄碼的概念,碼即唯一標識記錄的資料項目的集合。例如,學生記錄的學號就是碼,因此資料庫中不允許學生記錄中學號出現重複值。
(2)保證一個聯繫中雙親記錄和子女記錄之間是一對多的聯繫。
(3)可以支持雙親記錄和子女記錄之間某些約束條件。例如,有些子女記錄要求雙親記錄存在才能插入、雙親記錄刪除時也連同刪除。
1.2.4網狀模型
三、網狀模型的存儲結構網狀模型的存儲結構中關鍵是如何實現記錄之間的聯繫。常用的方法是鏈接法,包括單向鏈接、雙向鏈接、環狀鏈接、向首鏈接等,此外還有其他實現方法,如指引元陣列法、二進位陣列法、索引法等,依具體系統不同而不同。1.2.4網狀模型四、網狀模型的優缺點網狀模型的優點主要有:(1)能夠更為直接地描述現實世界,如一個結點可以有多個雙親。(2)具有良好的性能,存取效率較高。網狀模型的缺點主要有:(1)結構比較複雜,而且隨著應用環境的擴大,資料庫的結構就變得越來越複雜,不利於最終用戶掌握。(2)其DDL、DML語言複雜,用戶不容易使用。由於記錄之間聯繫是通過存取路徑實現的,應用程式在訪問數據時必須選擇適當的存取路徑,因此,用戶必須瞭解系統結構的細節,加重了編寫程式的負擔。1.2.5關係模型
作為數據模型中最重要的一種模型,也有數據模型的三個組成要素,主要體現如下:一、關係模型的數據結構關係模型與層次模型和網狀模型不同,關係模型中數據的邏輯結構是一張二維表,它由行和列組成。介紹關係模型中的相關的術語:(1)關係:一個關係對應一張二維表,(2)屬性:二維表中的一列稱為一個屬性,對應每一個屬性的名字稱為屬性名。(3)主碼:如果二維表中的某個屬性或是屬性組可以唯一確定一個元組,則稱為主碼,也稱為關係鍵1.2.5關係模型
(4)域:屬性的取值範圍稱為域(5)分量:元組中的一個屬性值(6)關係模式:表現為關係名和屬性集的集合,是對關係的具體描述。一般表示為:關係名(屬性1,屬性2,…,屬性N)二、關係模型的數據操縱與約束條件關係模型的操作主要包括查詢、插入、刪除和修改數據。這些操作必須滿足關係的完整性約束條件,即實體完整性、參照完整性和用戶定義完整性。1.2.5關係模型
三、關係模型的存儲結構在關係數據模型中,實體及實體間的聯繫都用表來表示。在資料庫的物理組織中,表以檔形式存儲,每一個表通常對應一種檔結構,也有多個表對應一種檔結構。四、關係模型的優缺點關係模型具有下列優點:(1)關係模型與非關係模型不同,它有較強的數學理論根據。(2)數據結構簡單、清晰,用戶易懂易用,不僅用關係描述實體,而且用關係描述實體間的聯繫。
1.2.5關係模型
3)關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程式員的工作和數據庫開發和建立的工作。關係模型具有查詢效率不如非關係模型效率高的缺點。因此,為了提高性能,必須對用戶的查詢進行優化,增加了開發資料庫管理系統的負擔。1.3資料庫系統結構
可以有多種不同的層次或不同的角度來考查資料庫系統的結構。從資料庫管理系統內部系統結構看,資料庫系統通常採用三級模式結構。從資料庫外部的體系結構看,資料庫系統的結構分為集中式結構、分佈式結構、客戶/伺服器和並行結構等。1.3.1資料庫系統的三級模式結構
一、外模式(ExternalSchema)外模式也稱子模式(SubSchema)或用戶模式,是三級模式的最外層,它是資料庫用戶能夠看到和使用的局部數據的邏輯結構和特徵的描述。二、模式(Schema)模式又稱概念模式,也稱邏輯模式,是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖,是數據視圖的全部。它是資料庫系統模式結構的中間層,既不涉及數據的物理存儲細節和硬體環境,也與具體的應用程式,與所使用的應用開發工具及高級程式設計語言等無關。1.3.1資料庫系統的三級模式結構
三、內模式(InternalSchema)內模式也稱為存儲模式,一個資料庫只有一個內模式。它是數據物理結構和存儲方式的描述,是數據在資料庫內部的表示方式。例如,記錄的存儲方式是順序存儲、按照B樹結構存儲還是按hash方法存儲;索引按照什麼方式組織;數據是否壓縮存儲,是否加密;數據的存儲記錄結構有何規定等。1.3.2資料庫的二級映象功能與數據獨立性
為了能夠在內部實現這三個抽象層次的聯繫和轉換,資料庫管理系統在這三級模式之間提供了兩層映象:外模式/模式映象,模式/內模式映象。這兩層映象保證了資料庫系統的數據能夠具有較高的邏輯獨立性和物理獨立性。一、外模式/模式映象模式描述的是數據的全局邏輯結構,外模式描述的是數據的局部邏輯結構。對應於同一個模式可以有任意多個外模式,資料庫系統都有一個外模式/模式映象,它定義了該外模式與模式之間的對應關係。這些映象定義通常包含在各自外模式的描述中。1.3.2資料庫的二級映象功能與數據獨立性
當模式改變時,由資料庫管理員對各個外模式/模式映象作相應改變,可以使外模式保持不變。應用程式是依據數據的外模式編寫的,從而應用程式不必修改,保證了數據與程式的邏輯獨立性,簡稱為數據邏輯獨立性。二、模式/內模式映象資料庫中只有一個模式,也只有一個內模式,所以模式/內模式映象是唯一的,它定義了資料庫全局邏輯結構與存儲結構之間的對應關係。例如,說明邏輯記錄和字段在內部是如何表示的。該映象定義通常包含在模式描述中。當資料庫的存儲結構改變了,由資料庫管理員對模式/內模式映象作相應改變,可以使模式保持不變,從而應用程式也不必改變。保證了數據與程式的物理獨立性,簡稱為數據物理獨立性。1.3.3資料庫管理系統的工作過程
當資料庫建立後,用戶就可以通過終端操作命令或應用程式在DBMS的支持下使用資料庫。資料庫管理系統控制的數據操作過程基於資料庫系統的三級模式結構與二級映象功能,總體操作過程能從其讀或寫一個用戶記錄的過程大體反映出來。下麵就以應用程式從資料庫中讀取一個用戶記錄的過程來說明,按照步驟解釋運行過程如下:(1)應用程式A向DBMS發出從資料庫中讀用戶數據記錄的命令;(2)DBMS對該命令進行語法檢查、語義檢查,並調用應用程式A對應的子模式,檢查A的存取許可權,決定是否執行該命令。如果拒絕執行,則轉(10)向用戶返回錯誤資訊;
1.3.3資料庫管理系統的工作過程
(3)在決定執行該命令後,DBMS調用模式,依據子模式/模式映象的定義,確定應讀入模式中的哪些記錄;(4)DBMS調用內模式,依據模式/內模式映象的定義,決定應從哪個檔、用什麼存取方式、讀入哪個或哪些物理記錄;(5)DBMS向操作系統發出執行讀取所需物理記錄的命令;(6)操作系統執行從物理檔中讀數據的有關操作;(7)操作系統將數據從資料庫的存儲區送至系統緩衝區;(8)DBMS依據內模式/模式(模式/內模式映象的反方向看待,並不是另一種新映象,模式/子模式映象也是類似情況)、模式/子模式映象的定義,導出應用程式A所要讀取的記錄格式;(9)DBMS將數據記錄從系統緩衝區傳送到應用程式A的用戶工作區;(10)DBMS向應用程式A返回命令執行情況的狀態資訊。1.4資料庫系統的組成
資料庫系統是指電腦系統中引入資料庫後的整個人機系統。為此,資料庫系統應由電腦硬體、資料庫、電腦軟體及各類人員組成。一、硬體平臺資料庫系統對硬體資源提出了較高的要求:要有足夠大的記憶體存放操作系統、DBMS的核心模組、數據緩衝區和應用程式。有足夠大而快速的磁片等直接存取設備存放資料庫,有足夠的磁片做數據備份。要求系統有較高的通道能力,以提高數據傳送率。1.4資料庫系統的組成
二、資料庫資料庫是存放數據的地方,是存儲在電腦內有組織的大量可共用的數據集合,可以供多用戶同時使用,具有盡可能少的冗餘和較高的數據獨立性,從而其數據存儲的結構形式最優,並且數據操作起來容易,有完整的自我保護能力和數據恢復能力。資料庫這裏主要是指物理存儲設備中有效組織的數據集合。三、軟體資料庫系統的軟體主要包括:(1)支持DBMS運行的操作系統;1.4資料庫系統的組成
(2)DBMS:DBMS可以通過操作系統對數據庫的數據進行存取、管理和維護;(3)具有與資料庫介面的高級語言及其編譯系統;(4)以DBMS為核心的應用開發工具,為特定應用環境開發的資料庫應用系統。四、用戶用戶主要有這麼幾種,用於進行管理和維護資料庫系統的人員——資料庫管理員;用於資料庫應用系統分析設計的人員——系統分析員和數據庫設計人員;用於具體開發資料庫系統的人員——資料庫應用程式員;用於使用資料庫系統的人員——最終用戶。1.4資料庫系統的組成
其各自的職責分別是:(1)資料庫管理員(DBA)(2)系統分析員和數據庫設計人員(3)應用程式員(4)用戶1.5.1資料庫技術的研究領域
資料庫技術的研究領域十分廣泛,概括地而言包括以下三方面:
1、DBMS系統軟體的研製
2、資料庫應用系統設計與開發的研製
3、資料庫理論的研究
1.5.2資料庫技術的發展
資料庫技術產生於20世紀60年代中期,由於其在商業領域的成功應用,在20世紀80年代後,得到迅速推廣,新的應用對數據庫技術在數據存儲和管理方面提出了更高的要求,從而進一步推動了資料庫技術的發展。
1、數據模型的發展和三代數據庫系統數據模型是資料庫系統的核心和基礎,數據模型的發展帶動著數據庫系統不斷更新換代。數據模型的發展可以分為三個階段,第一階段為格式化數據模型,包括層次數據模型和網狀數據模型,第二階段為關係數據模型,第三階段則是以面向對象數據模型為代表的非傳統數據模型。1.5.2資料庫技術的發展2、資料庫技術與其他相關技術的結合將資料庫技術與其他相關技術相結合,是當代資料庫技術發展的主要特徵之一,並由此產生了許多新型的資料庫系統。
(1)面向對象資料庫系統
(2)分佈式資料庫系統
(3)並行資料庫系統
(4)多媒體資料庫系統
(5)主動資料庫系統
(6)模糊資料庫系統1.5.2資料庫技術的發展3、資料庫技術的新應用資料庫技術在不同領域中的應用,也導致了一些新型資料庫系統的出現,這些應用領域往往無法直接使用傳統資料庫系統來管理和處理其中的數據對象。
(1)數據倉庫系統
(2)工程資料庫系統
1.6小結
本章概述了資料庫的基本概念,介紹了數據管理技術發展的三個階段及各自的優缺點,說明了資料庫系統的優點。數據模型是資料庫系統的核心和基礎。本章介紹了組成數據模型的三要素及其內涵、概念模型和三種主要的資料庫模型。概念模型也稱資訊模型,用於資訊世界的建模,E-R模型是這類模型的典型代表,E-R方法簡單、清晰,應用十分廣泛。數據模型包括非關係模型(層次模型和網狀模型)和關係模型。本章簡要地講解了層次模型、網狀模型和關係模型,而關係模型將在後續章節中作更詳細的介紹。1.6小結
資料庫系統的結構包括三級模式和兩層映象。資料庫系統三級模式和兩層映象的系統結構保證了資料庫系統中能夠具有較高的邏輯獨立性和物理獨立性。資料庫系統不僅是一個電腦系統,而且是一個人-機系統,人的作用特別是DBA的作用最為重要。本章新概念較多,要深入而透徹地掌握這些基本概念和基本知識還需有個循序漸進的過程。可以在後續章節的學習中,不斷對照加深這些知識的理解與掌握。
習題一、選擇題1、()是位於用戶與操作系統之間的一層數據管理軟體。資料庫在建立、使用和維護時由其統一管理、統一控制。A.DBMSB.DBC.DBSD.DBA2、文字、圖形、圖像、聲音、學生的檔案記錄、貨物的運輸情況等,這些都是()A.DATAB.DBSC.DBD.其他3、目前()資料庫系統已逐漸淘汰了網狀資料庫和層次資料庫,成為當今最為流行的商用資料庫系統。A.關係B.面向對象C.分佈D.對象-關係4、()是刻畫一個數據模型性質最重要的方面。因此在資料庫系統中,人們通常按它的類型來命名數據模型。A.數據結構B.數據操縱C.完整性約束D.數據聯繫5、()屬於資訊世界的模型,實際上是現實世界到機器世界的一個中間層次。A.數據模型B.概念模型C.非關係模型D.關係模型習題6、當資料庫的()改變了,由資料庫管理員對()映象作相應改變,可以使()保持不變,從而保證了數據的物理獨立性。(1)模式(2)存儲結構(3)外模式/模式(4)用戶模式(5)模式/內模式A.(1)和(3)和(4)B.(1)和(5)和(3)C.(2)和(5)和(1)D.(1)和(2)和(4)7、資料庫的三級體系結構即子模式、模式與內模式是對()的三個抽象級別。A.資訊世界B.資料庫系統C.數據D.資料庫管理系統8、英文縮寫DBA代表()A.資料庫管理員B.資料庫管理系統C.數據定義語言D.數據操縱語言9、模式和內模式()。A.只能各有一個B.最多只能有一個C.至少兩個D.可以有多個10、在資料庫中存儲的是()。A.數據B.資訊C.數據和數據之間的聯繫D.數據模型的定義二、填空題1、資料庫就是長期儲存在電腦內_________、_________的數據集合。2、數據管理技術已經曆了人工管理階段、___________和___________三個發展階段。3、數據模型通常都是由_________、_________和__________三個要素組成。4、資料庫系統的主要特點:___________________、數據冗餘度小、具有較高的數據程式獨立性、具有統一的數據控制功能等。5、用二維表結構表示實體以及實體間聯繫的數據模型稱為_____________數據模型。6、在資料庫的三級模式體系結構中,外模式與模式之間的映象,實現了資料庫的____________獨立性。7、資料庫系統是以____為中心的系統。8、E-R圖表示的概念模型比________更一般、更抽象、更接近現實世界。習題9、外模式,亦稱為子模式或用戶模式,是__________能夠看到和使用的局部數據的邏輯結構和特徵的描述。10、資料庫系統的軟體主要包括支持__________運行的操作系統以及_________本身。三、簡答題1、簡述電腦數據管理技術發展的三個階段。2、常用的三種數據模型的數據結構各有什麼特點?3、試述資料庫系統的特點。4、試述數據模型的概念、數據模型的作用和數據模型的三要素。5、試述概念模型的作用。6、定義並理解概念模型中的以下術語:實體、實體型、實體集、屬性、碼、實體聯繫圖(E-R圖)、三種聯繫類型7、學校有若干個系,每個系有若干班級和教研室,每個教研室有若干教師,每個教師只教一門課,每門課可由多個教師教;每個班有若干學生,每個學生選修若干課程,每門課程可由若干學生選修。請用E-R圖畫出該學校的概念模型,注明聯繫類型。習題2.1關係模型
關係模型由關係數據結構、關係操作集合和關係完整性約束三部分組成。1、關係模型的數據結構——關係關係模型的數據結構:非常單一,在用戶看來,關係模型中數據的邏輯結構是一張二維表。但關係模型的這種簡單的數據結構能夠表達豐富的語義,描述出現實世界的實體以及實體間的各種聯繫。2、關係操作關係模型給出了關係操作的能力,它利用基於數學的方法來表達關係操作,關係模型給出的關係操作往往不針對具體的RDBMS語言來表述。2.1關係模型關係模型中常用的關係操作包括:選擇(select)、投影(project)、連接(join)、除(divide)、並(union)、交(intersection)、差(difference)等查詢(query)操作和增加(insert)、刪除(delete)、修改(update)等更新操作兩大部分。關係操作的特點是採用集合操作方式,即操作的對象和結果都是集合。這種操作方式也稱為一次一集合方式。關係數據語言可以分成三類:
(1)關係代數(2)關係演算(3)關係數據語言2.1關係模型3、關係的三類完整性約束關係模型提供了豐富的完整性控制機制,允許定義三類完整性:實體完整性、參照完整性和用戶自定義的完整性。其中實體完整性和參照完整性是關係模型必須滿足的完整性約束條件,應該由關係系統自動支持。用戶自定義的完整性是應用領域特殊要求而需要遵循的約束條件,體現了具體領域中的語義約束。2.2.1關係
⒈域(Domain)定義2.1
域是一組具有相同數據類型的值的集合。又稱為值域(用D表示)。域中所包含的值的個數稱為域的基數(用m表示)。在關係中就是用域來表示屬性的取值範圍的。
例如,自然數、整數、實數、長度小於10位元組的字串集合、1-16之間的整數都是域。又如,D1={張三,李四}D1的基數m1為2D2={男,女}D2的基數m2為2D3={19,20,21}D3的基數m3為32.2.1關係⒉笛卡爾積(CartesianProduct)定義2.2
給定一組域D1、D2、…、Dn(這些域中可以包含相同的元素,即可以完全不同(也可以部分或全部相同),D1、D2、…、Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}由定義可以看出,笛卡爾積也是一個集合。其中:
(1)其中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple),或簡稱為元組(Tuple)。但元組不是di的集合,元組由di按序排列而成。
(2)元素中的每一個值di叫作一個分量(Component)。分量來自相應的域(di∈Di)。2.2.1關係(3)若Di(i=1,2,…,n)為有限集,其基數(Cardinalnumber)為mi(i=1,2,…,n),則D1×D2×…×Dn的基數為n個域的基數累乘之積(4)笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。如上面例子中D1與D2的笛卡爾積:
D1×D2={(張三,男),(張三,女),(李四,男)(李四,女)}
可以表示成二維表,如下表2.1所示:2.2.1關係
表2.1笛卡爾積姓名性別張三男張三女李四男李四女2.2.1關係
⒊關係(Relation)定義2.3D1×D2×…×Dn的任一子集叫作在域D1,D2,…Dn上的關係,用R(D1,D2,…Dn)表示。如上例中D1×D2笛卡爾積的子集可以構成關係T1,如下表2.3所示:姓名性別張三男李四女2.2.1關係
(1)R表示關係的名字,n是關係的目或度(Degree)。當n=1時,稱為單元關係。當n=2時,稱為二元關係。
……
當n=m時,稱為m元關係。(2)關係中的每個元素是關係中的元組,通常用t表示。(3)關係是笛卡爾積的子集,所以關係也是一個二維表,表的每行對應一個元組,表的每列對應一個域。由於域可以相同,為了加以區分,必須對每列起一個唯一的名字,稱為屬性(Attribute)。n目關係必有n個屬性。2.2.1關係對關係作如下限定和擴充:
⑴無限關係在資料庫系統中是無意義的。因此限定關係數據模型中的關係必須是有限集合。
⑵通過為關係的每個列附加一個屬性名的方法取消關係元組的有序性,即(d1,d2,…,dj,di…,dn)=(d1,d2,…,di,dj,…,dn)(i,j=1,2…,n)基本關係具有以下六條性質:
①列是同質的(Homogeneous),即每一列中的分量是同一類型的數據,來自同一個域。
②不同的列可出自同一個域,稱其中的每一列為一個屬性,不同的屬性要給予不同的屬性名。2.2.1關係③列的順序無所謂,即列的次序可以任意交換。
④任意兩個元組不能完全相同。
⑤行的順序無所謂,即行的次序可以任意交換。
⑥分量必須取原子值,即每一個分量都必須是不可分的資料項目。如下兩圖:課程關係C(不規範的關係)課程關係C
(規範的關係)課程名學時理論實驗資料庫5220C語言4520數據結構5530課程名理論學時實驗學時資料庫5220C語言4520數據結構55302.2.2關係模式在資料庫中要區分型和值兩方面。關係資料庫中,關係模式是型,關係是值。關係模式是對關係的描述,那麼一個關係需要描述哪些方面?首先,應該知道,關係實際上是一張二維表,表的每一行為一個元組,每一列為一個屬性。其次,一個關係通常是由賦予它的元組語義來確定的。元組語義實質上是一個n目謂詞(n是屬性集中屬性的個數)。現實世界隨著時間在不斷地變化,因而在不同的時刻,關係模式的關係也會有所變化。但是,現實世界的許多已有事實限定了關係模式所有可能的關係必須滿足一定的完整性約束條件。。因此一個關係模式應當是一個5元組。2.2.2關係模式定義2.4
關係的描述稱為關係模式(RelationSchema)。一個關係模式應當是一個五元組。它可以形式化地表示為:R(U,D,dom,F)。其中R為關係名,U為組成該關係的屬性名集合,D為屬性組U中屬性所來自的域的集合,dom為屬性向域的映象集合,F為屬性間數據的依賴關係集合。關係模式通常可以簡記為:R(A1,A2,…,An)或R(U)。其中R為關係名,A1,A2,…,An為屬性名。而功能變數名稱及屬性向域的映象常常直接說明為屬性的類型、長度。關係實際上就是關係模式在某一時刻的狀態或內容。也就是說,關係模式是型,關係是它的值。關係模式是靜態的、穩定的,而關係是動態的、隨時間不斷變化的,因為關係操作在不斷地更新著數據庫中的數據。但在實際當中,常常把關系模式和關係統稱為關係,讀者可以從上下文中加以區別。2.2.3關係資料庫在關係模型中,實體以及實體間的聯繫都是用關係來表示。例如學生實體、課程實體、學生與課程之間的多對多選課聯繫都可以分別用一個關係(或二維表)來表示。在一個給定的現實世界領域中,所有實體及實體之間的聯繫的關係的集合構成一個關係資料庫。關係資料庫也有型和值之分。關係資料庫的型也稱為關係資料庫模式,是對關係資料庫的描述,是關係模式的集合。關係資料庫的值也稱為關係資料庫,是關係的集合。關係資料庫模式與關係資料庫通常統稱為關係資料庫。2.3關係的完整性一、實體完整性(EntityIntegrity)規則2.1
實體完整性規則:若屬性組(或屬性)K是基本關係R的主碼(或稱主關鍵字),則所有元組K的取值唯一,並且K中屬性不能全部或部分取空值。二、參照完整性(Referentialintegrity)定義2.5
設F是基本關係R的一個或一組屬性,但不是關係R的碼,如果F與基本關係S的主碼Ks相對應,則稱F是基本關係R的外碼(Foreignkey),並稱基本關係R為參照關係(Referencingrelation),基本關係S為被參照關係(Referencedrelation)或目標關係(Targetrelation)。關係R和S可能是相同的關係,即自身參照。2.3關係的完整性規則2.2參照完整性規則:若屬性(或屬性組)F是基本關係R的外碼,它與基本關係S的主碼Ks相對應(基本關係R和S可能是相同的關係),則對於R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值);或者等於S中某個元組的主碼值。三、用戶定義的完整性(User-definedintegrity)用戶定義的完整性就是針對某一具體應用的關係資料庫所制定約束條件,它反映某一具體應用所涉及的數據必須滿足的語義要求。
2.4關係代數
關係代數是一種抽象的查詢語言,用對關係的運算來表達關係操作,關係代數是研究關係數據操作語言的一種較好的數學工具。關係代數是E.F.Codd1970年首次提出的,後面一節的關係演算是E.F.Codd1972年首次提出的,1979年E.F.Codd對關係模型作了擴展,討論了關係代數中加入空值和外連接的問題。關係代數以一個或兩個關係為輸入(或稱為操作對象),產生一個新的關係作為其操作結果。即其運算對象是關係,運算結果亦為關係。關係代數用到的運算符包括四類:集合運算符、專門的關係運算符、算術比較符和邏輯運算符,如表2.6所示。2.4關係代數關係代數的運算符運算符含義運算符含義集合運算符∪∩-並交差比較運算符>≥<≤=≠大於大於等於小於小於等於等於不等於專門的關係運算符×σ∏÷∞廣義笛卡爾積選取投影除連接邏輯運算符∧∨?與或非2.4關係代數比較運算符和邏輯運算符是用來輔助專門的關係運算符進行操作的,所以關係代數的運算按運算符的不同主要分為傳統的集合運算和專門的關係運算兩類。1.傳統的集合運算:包括並、交、差、廣義笛卡爾積四種運算。2.專門的關係運算:包括選擇、投影、連接、除等。其中傳統的集合運算將關係看成元組的集合,其運算是從關係的“水準”方向即行的角度來進行。而專門的關係運算不僅涉及到行而且涉及到列。2.4.1傳統的集合運算傳統的集合運算是二目運算,包括並、交、差、廣義笛卡爾積四種運算。設關係R和關係S具有相同的目n(即兩個關係都有n個屬性),且相應的屬性取自同一個域,則可定義並、差、交運算如下:⒈並(Union)設關係R和關係S具有相同的目n(即兩個關係都有n個屬性),且相應的屬性取自同一個域,則關係R與關係S的並由屬於R或屬於S的所有元組組成。記作:
R∪S={t|t∈R∨t∈S}其結果關係仍為n目關係,由屬於R或屬於S的元組組成。關係的並操作對應於關係的插入或添加記錄的操作,俗稱“+”操作,是關係代數的基本操作。2.4.1傳統的集合運算⒉差(Difference)設關係R和關係S具有相同的目n,且相應的屬性取自同一個域,則關係R與關係S的差由屬於R而不屬於S的所有元組組成。記作:
R-S={t|t∈R∧t∈S}其結果關係仍為n目關係,由屬於R而不屬於S的所有元組組成。關係的差操作對應於關係的刪除記錄的操作,俗稱“-”操作,是關係代數的基本操作。⒊交(Intersection)設關係R和關係S具有相同的目n,且相應的屬性取自同一個域,則關係R與關係S的交由既屬於R又屬於S的所有元組組成。記作:R∩S={t|t∈R∧t∈S}2.4.1傳統的集合運算其結果關係仍為n目關係,由既屬於R又屬於S的元組組成。關係的交可以用差來表示,即R∩S=R-(R-S)。關係的交操作對應於尋找兩關係共有記錄的操作,是一種關係查詢操作。關係的交操作能用差操作來代替,為此不是關係代數的基本操作。⒋廣義笛卡爾積(ExtendedCartesianProduct)廣義笛卡爾積不要求參加運算的兩個關係具有相同的目(自然也就不要求來自同樣的域)。設R為n目關係,S為m目關係,則R和S的廣義笛卡爾積為:R×S={trts|tr∈R∧ts∈S}
trts表示由兩個元組tr和ts前後有序連接而成的一個元組。2.4.1傳統的集合運算任取元組tr和ts,當且僅當tr屬於R且ts屬於S時,tr和ts的有序連接即為R×S的一個元組。R和S的廣義笛卡爾積是一個(n+m)目的關係。其中任何一個元組的前n列是關係R的一個元組,後m列是關係S的一個元組。若R有K1個元組,S有K2個元組,則R×S有K1×K2個元組。實際操作時,可從R的第一個元組開始,依次與S的每一個元組組合,然後,對R的下一個元組進行同樣的操作,直至R的最後一個元組也進行完同樣的操作為止,即可得到R×S的全部元組。2.4.1傳統的集合運算列:給出了兩個關係R和S,以及它們進行並、差、交和笛卡爾積後的結果關係。2.4.1傳統的集合運算2.4.2專門的關係運算上節中所講的傳統集合運算,只是從行的角度進行,而要靈活地實現關係資料庫的多樣查詢操作,則須引入專門的關係運算。專門的關係運算包括選擇、投影、連接、除等。為了敘述方便,我們先引入幾個記號。⒈分量:設關係模式為R(A1,A2,…,An)。它的一個關係設為R。t∈R表示t是R的一個元組。t[Ai]則表示元組t中相應於屬性Ai的一個分量。2.4.2專門的關係運算⒉屬性列或域列:若A={Ai1,Ai2,…,Aik},其中Ai1,Ai2,…,Aik是A1,A2,…,An中的一部分,則A稱為屬性列或域列。t[A]=(t[Ai1],t[Ai2],…,t[Aik])表示元組t在屬性列A上諸分量的集合。A則表示{A1,A2,…,An}中去掉{Ai1,Ai2,…,Aik}後剩餘的屬性組。⒊元組的連接:R為n目關係,S為m目關係。tr∈R,ts∈S,trts稱為元組的連接(Concatenation)。它是一個(n+m)列的元組,前n個分量為R中的一個n元組,後m個分量為S中的一個m元組。
2.4.2專門的關係運算⒋象集:給定一個關係R(X,Z),X和Z為屬性組。我們定義,當t[X]=x時,x在R中的象集(ImagesSet)為:Zx={t[Z]|t∈R,t[X]=x}一、選擇(Selection)選擇又稱為限制(Restriction)。它是在關係R中選擇滿足給定條件的諸元組,記作:
σF(R)={t|t∈R∧F(t)=“真”}其中F表示選擇條件,它是一個邏輯運算式,取邏輯值“真”或“假”。邏輯運算式F的基本形式為:X1θY1[φX2θY2…]2.4.2專門的關係運算
其中θ表示比較運算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是屬性名或常量或簡單函數。屬性名也可以用它的序號來代替(如1,2,…)。φ表示邏輯運算符,它可以是?、∧或∨。[]表示任選項,即[]中的部分可以要也可以不要,…表示上述格式可以重複下去。
設有一個學生-課程關係資料庫如圖2.2包括學生關係Student(說明:CS表示電腦系、IS表示資訊系、MA表示數學系)、課程關係Course和選修關係SC。下麵通過一些例子將對這三個關係進行運算。
2.4.2專門的關係運算[例1]
查詢資訊系(CS系)全體學生。
σ(Student)或(Student)[例2]
查詢年齡大於19歲的學生。
σ(Student)二投影(Projection)關係R上的投影是從R中選擇出若干屬性列組成新的關係。記作:
∏(R)={t[A]|t∈R}
其中A為R中的屬性列。關係的投影操作對應於關係列的角度進行的選取操作(縱向選取),也是關係查詢操作的重要成員之一,是關係代數的基本操作。2.4.2專門的關係運算[例3]
查詢選修關係SC在學號和課程號兩個屬性上的投影。
∏(SC)或∏(SC)[例4]
查詢學生關係Student中都有哪些系,即是學生關係Student在所系屬性上的投影操作。
∏(Student)三連接(Join)連接也稱θ連接,是從兩個關係的廣義笛卡爾積中選取滿足某規定條件的全體元組,形成一個新的關係,記為2.4.2專門的關係運算其中,A是R的屬性組(A1,A2,…,Ak),B是S的屬性組(B1,B2,…,BK)。AθB的實際形式為Ai和Bi(i=1,2,…,k)不一定同名,但必須可比。θi(i=1,2,…,k)∈{>,<,≤,≥,=,≠}。連接運算中有兩種最為重要也是最為常用的連接,一種是等值連接(equijoin),另一種是自然連接(Naturaljoin)。2.4.2專門的關係運算等值連接屬於連接,當一個連接運算式中,所有的θi都是“=”符時,則稱此連接為等值連接。等值連接是較常用的連接。自然連接(Naturaljoin)是一種特殊的等值連接,它要求兩個關係中進行比較的分量必須是相同的屬性組,並且要在結果中把重複的屬性去掉。即若R和S具有相同的屬性組B,關係的各種連接,實際上是在關係的廣義笛卡爾積的基礎上再組合選擇或投影操作複合而成的一種查詢操作
2.4.2專門的關係運算四、除(Division)給定關係R(X,Y)和S(Y,Z),其中X,Y,Z為屬性組。R中的Y與S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除運算得到一個新的關係P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:
R÷S={tr[X]|tr∈R∧Yx?∏Y(S)}
其中Yx為x在R中的象集,x=tz[X]。除操作是同時從行和列角度進行運算。除操作適合於包含“對於所有的/全部的”語句的查詢操作。2.4.2專門的關係運算五.關係代數操作表達舉例關係代數中,關係代數運算經有限次複合後形成的式子稱為關係代數運算式。對關係資料庫中數據的查詢可以寫成一個關係代數運算式。或者說你寫成一個關係代數運算式就表示你已經完成了該查詢操作。以下是表達舉例:設教學資料庫中有三個關係,學生關係:S(SNO,SN,AGE,SEX)、學習關係:SC(SNO,CNO,GRADE)、課程關係:C(CNO,CN,TEACHER)2.4.2專門的關係運算(1)檢索學習課程號為C3的學生學號和成績
∏SNO,GRADE(σCNO=’C3’(S∞SC)(2)檢索學習課程號為C4的學生學號和姓名
∏SNO,SN(σCNO=’C4’(S∞SC)(3)檢索學習課程名為MATHS的學生學號和姓名
∏SNO,SN(σCN=’MATHS’(S∞SC∞C)(4)檢索學習課程號為C1或C3的學生學號
∏SNO(σCNO=’C1’V’CNO=’C3’(SC)(5)檢索不學習課程號為C2的學生的姓名和年齡
∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC)2.4.2專門的關係運算
(6)檢索學習全部課程的學生姓名
∏SN(S∞(∏SNO,CNO(SC)÷∏CNO(C))(7)檢索所學課程包括200401所學課程的學生學號
∏SNO,CNO(SC)÷∏CNO(σSNO=’200401’(SC)2.5關係演算
關係演算是以數理邏輯中的謂詞演算為基礎的。按謂詞變元的不同,關係演算可分為元組關係演算和域關係演算。本節我們通過兩個實際的關係演算語言來介紹關係演算的操作思想。2.5.1元組關係演算語言ALPHA
元組關係演算是以元組變數作為謂詞變元的基本關係演算表達形式。
ALPHA語言主要有GET、PUT、HOLD、UPDATE、DELETE、DROP六條語句,語句的基本格式是:操作語句工作空間名(運算式):操作條件其中運算式用於指定語句的操作對象,它可以是關係名或屬性名,一條語句可以同時操作多個關係或多個屬性。操作條件是一個邏輯運算式,用於將操作對象限定在滿足條件的元組中,操作條件可以為空。除此之外,還可以在基本格式的基礎上加上排序要求,定額要求等
2.5.1元組關係演算語言ALPHA一、檢索操作檢索操作用GET語句實現。(1)簡單檢索(即不帶條件的檢索)
[例1]
查詢所有被選修課程的課程號碼
GETW(SC.CNO)[例2]查詢所有學生的資訊
GETW(Student)2.5.1元組關係演算語言ALPHA(2)限定的檢索(即帶條件的檢索)由冒號後面的邏輯運算式給出查詢條件。
[例3]查詢電腦系(CS)中年齡小於22歲的學生的學號和姓名
GETW(Student.SNO,Student.SN):Student.DEPT=’CS’∧Student.AGE<22(3)帶排序的檢索
[例4]查詢資訊系(IS)學生的學號、年齡,並按年齡降序排序
GETW(Student.SNO,Student.AGE):Student.DEPT='IS'DOWNStudent.AGEDOWN代表降序排序,後面緊跟排序的屬性名。當昇冪排列時使用UP。2.5.1元組關係演算語言ALPHA(4)帶定額的檢索
[例5]
取出一個資訊系學生的姓名
GETW(1)(Student.SN):Student.DEPT='IS'
所謂帶定額的檢索是指規定了檢索出的元組的個數,方法是在W後的括弧中加上定額數量。排序和定額可以一起使用。[例6]查詢資訊系年齡最大的三個學生的學號及其年齡,並按年齡降序排列。
GETW(3)(Student.SNO,Student.AGE):Student.DEPT='IS'DOWNStudent.AGE2.5.1元組關係演算語言ALPHA(5)用元組變數的檢索因為元組變數是在某一關係範圍內變化的,所以元組變數又稱為範圍變數(RangeVariable)。元組變數主要有兩方面的用途:
①簡化關係名。在處理實際問題時,如果關係的名字很長,使用起來就會感到不方便,這時我們可以設一個較短名字的元組變數來簡化關係名。
②操作條件中使用量詞時必須用元組變數。元組變數是動態或邏輯的概念,一個關係可以設多個元組變數,每個元組變數獨立地代表該關係中的任一元組。2.5.1元組關係演算語言ALPHA(6)用存在量詞的檢索
[例8]查詢選修C2號課程的學生名字。
RANGESCXGETW(Student.SN):X(X.SNO=Student.SNO∧X.CNO='C2')[例9]查詢選修了直接先行課為C2號課程的課程的學生學號。
RANGECourseCXGETW(SC.SNO):CX(CX.CNO=SC.CNO∧CX.CPNO='C2')2.5.1元組關係演算語言ALPHA(7)帶有多個關係的運算式的檢索上面所舉的各個例子中,雖然查詢時可能會涉及多個關係,即公式中可能涉及多個關係,但查詢結果都在一個關係中,即查詢結果運算式中只有一個關係。實際上運算式中是可以有多個關係的。
[例11]查詢成績為90分以上的學生名字與課程名字。
RANGESCSCXGETW(Student.SNO,Course.CN):SCX(SCX.SCORE≥90∧SCX.SNO=Student.SNO∧Course.CNO=SCX.CNO)
本查詢所要求的結果學生名字和課程名字分別在Student和Course兩個關係中。2.5.1元組關係演算語言ALPHA(8)用全稱量詞的檢索
[例12]查詢不選C1號課程的學生名字。
RANGESCSCXGETW(Student.SN):SCX(SCX.SNO≠Student.SNO∨SCX.CNO≠'C1')
本例實際上也可以用存在量詞來表示:
RANGESCSCXGETW(Student.SN):?SCX(SCX.SNO=Student.SNO∧SCX.CNO='C1')2.5.1元組關係演算語言ALPHA(9)用兩種量詞的檢索
[例13]查詢選修了全部課程的學生姓名。
RANGECourseCXSCSCXGETW(Student.SN):CXSCX(SCX.SNO=Student.SNO∧SCX.CNO=CX.CNO)(10)用蘊函(Implication)的檢索
[例14]查詢最少選修了學號為200402的學生所選課程的學生學號。2.5.1元組關係演算語言ALPHA
RANGECouseCXSCSCXSCSCYGETW(Student.SNO):CX(SCX(SCX.SNO='200402'∧SCX.CNO=CX.CNO)→SCY(SCY.SNO=Student.SNO∧SCY.CNO=CX.CNO))(11)集函數用戶在使用查詢語言時,經常要作一些簡單的計算,例如要求符合某一查詢要求的元組數,求某個關係中所有元組在某屬性上的值的總和或平均值等。為了方便用戶,關係數據語言中建立了有關這類運算的標準函數庫供用戶選用。這類函數通常稱為集函數(Aggregationfunction)或內部函數(Build-infunction)。關係演算中提供了COUNT,TOTAL,MAX,MIN,AVG等集函數2.5.1元組關係演算語言ALPHA二、更新操作
1.修改操作修改操作用UPDATE語句實現。其步驟是:首先用HOLD語句將要修改的元組從資料庫中讀到工作空間中;然後用宿主語言修改工作空間中元組的屬性;最後用UPDATE語句將修改後的元組送回資料庫中。需要注意的是,單純檢索數據使用GET語句即可,但為修改數據而讀元組時必須使用HOLD語句,HOLD語句是帶上併發控制的GET語句。有關併發控制的概念我們將在第5章中詳細介紹。2.5.1元組關係演算語言ALPHA
插入操作用PUT語句實現。其步驟是:首先用宿主語言在工作空間中建立新元組;然後用PUT語句把該元組存入指定的關係中。3.刪除操作刪除操作用DELETE語句實現。其步驟為:用HOLD語句把要刪除的元組從資料庫中讀到工作空間中;再用DELETE語句刪除該元組。2.5.2域關係演算語言QBE*
關係演算的另一種方式是域關係演算。域關係演算以元組變數的分量即域變數作為謂詞變元的基本關係演算表達形式本節內容為選學內容2.6小結
關係資料庫系統是本書的重點。這是因為關係資料庫系統是目前使用最廣泛的資料庫系統。20世紀70年代以後開發的資料庫管理系統產品幾乎都是基於關係的。更進一步,資料庫領域近40年來的研究工作也主要是關係的。在資料庫發展的歷史上,最重要的成就是創立了關係模型,並廣泛應用關係資料庫系統。關係資料庫系統與非關係資料庫系統的區別是,關係系統只有“表”這一種數據結構;而非關係資料庫系統還有其他數據結構,對這些數據結構有其他複雜而不規則的操作。2.6小結
本章系統講解了關係資料庫的重要概念,包括關係模型的數據結構、關係的完整性以及關係操作。介紹了用代數方式來表達的關係語言即關係代數、基於元組關係演算的ALPHA語言和基於域關係演算的QBE。本章抽象的關係操作表達,為進一步學習下一章關係資料庫國際標準語言SQL打好了堅實的基礎。習題一、單項選擇題1、設關係R和S的屬性個數分別為r和s,則(R×S)操作結果的屬性個數為()A.r+sB.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CNIDA 010-2023核電廠建(構)筑物變形監測系統技術規程
- T/CNCA 015-2022改性鎂-煤基固廢充填材料
- T/CIE 152-2022微電子器件假冒翻新物理特征識別方法與程序
- T/CHTS 10075-2022自動駕駛車輛事故責任數據采集及分析技術要求
- T/CHC 2002-2020生殖健康咨詢服務機構建設與管理規范
- T/CGCC 77-2023基于區塊鏈的預付交易平臺建設和運行規范
- T/CGA 38-2023投資鉑金條
- T/CEMIA 017-2018多模光纖預制棒用石英襯管和套管
- T/CECS 10214-2022鋼面鎂質復合風管
- T/CECS 10081-2020餐廚廢棄物智能處理設備
- 2025-2030年中國煤電行業市場深度發展趨勢與前景展望戰略研究報告
- 2025年醫院感染控制試題及答案
- 浙江省溫州市環大羅山聯盟2024-2025學年高一下學期期中考試 英語 PDF版含答案
- 環境保護項目進度安排與保障措施
- 馬工程西方經濟學(精要本第三版)教案
- 考研項目合同協議模板
- 砼攪拌站安裝、拆卸工程安全技術交底
- 重慶財經學院專職輔導員招聘真題2024
- DBJ04-T 312-2024 濕陷性黃土場地勘察及地基處理技術標準
- 公路工程標準施工招標文件(2018年版)
- DL∕T 5776-2018 水平定向鉆敷設電力管線技術規定
評論
0/150
提交評論