数据库系统概论课件_第1页
数据库系统概论课件_第2页
数据库系统概论课件_第3页
数据库系统概论课件_第4页
数据库系统概论课件_第5页
已阅读5页,还剩1617页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

資料庫系統概論AnIntroductiontoDatabaseSystem

第一章緒論第一章緒論1.1資料庫系統概述1.2數據模型1.3資料庫系統結構1.4資料庫系統的組成1.5資料庫技術的研究領域1.6小結1.1

資料庫系統概述

1.1.1資料庫的地位

1.1.2四個基本概念

1.1.3數據管理技術的產生與發展資料庫的地位資料庫技術產生於六十年代末,是數據管理的最新技術,是電腦科學的重要分支資料庫系統與操作系統一樣是電腦系統的基礎軟體,也稱為系統軟體、平臺軟體。它的出現極大地促進了電腦技術在各行各業的應用資料庫技術是資訊系統的核心和基礎,是資訊化建設的基礎設施資料庫的建設規模、資料庫資訊量的大小和使用頻度已成為衡量一個國家資訊化程度的重要標誌以往對於軟體開發人員的技術要求資料庫面向對象技術PatternsModeling技術程式語言數據結構Algorithm開發人員核心技術未來對於軟體開發人員的技術要求IntegrationArchitectureTestingConfiguration開發人員核心技術程式語言數據結構AlgorithmDB建模模式OO1.1資料庫系統概述1.1.1資料庫的地位

1.1.2四個基本概念

1.1.3數據管理技術的產生與發展1.1.2四個基本概念數據(Data)資料庫(Database)資料庫管理系統(DBMS)資料庫系統(DBS)一、數據數據(Data)是資料庫中存儲的基本對象數據的定義描述事物的符號記錄數據的種類文字、圖形、圖象、聲音數據的特點數據與其語義是不可分的數據舉例學生檔案中的學生記錄(李明,男,1972,江蘇,電腦系,1990)數據的形式不能完全表達其內容數據的解釋語義:學生姓名、性別、出生年月、籍貫、所在系別、入學時間解釋:李明是個大學生,1972年出生,江蘇人,1990年考入電腦系請給出另一個解釋和語義二、資料庫(舉例)二、資料庫(續)人們收集並抽取出一個應用所需要的大量數據之後,應將其保存起來以供進一步加工處理,進一步抽取有用資訊資料庫的定義資料庫(Database,簡稱DB)是長期儲存在電腦內、有組織的、可共用的大量數據集合二、資料庫(續)資料庫的特徵數據按一定的數據模型組織、描述和儲存可為各種用戶共用冗餘度較小數據獨立性較高易擴展三、資料庫管理系統什麼是DBMS資料庫管理系統(DatabaseManagementSystem,簡稱DBMS)是位於用戶與操作系統之間的一層數據管理軟體。DBMS的用途科學地組織和存儲數據、高效地獲取和維護數據DBMS的主要功能數據定義功能

提供數據定義語言(DDL)

定義資料庫中的數據對象數據操縱功能:提供數據操縱語言(DML)

操縱數據實現對數據庫的基本操作

(查詢、插入、刪除和修改)DBMS的主要功能資料庫的運行管理

保證數據的安全性、完整性、 多用戶對數據的併發使用 發生故障後的系統恢復資料庫的建立和維護功能(實用程式)

資料庫數據批量裝載資料庫轉儲介質故障恢復資料庫的重組織性能監視等四、資料庫系統什麼是資料庫系統資料庫系統(DatabaseSystem,簡稱DBS)是指在電腦系統中引入資料庫後的系統構成。在不引起混淆的情況下常常把資料庫系統簡稱為數據庫。資料庫系統的構成由資料庫、資料庫管理系統(及其開發工具)、應用系統、資料庫管理員(和用戶)構成。資料庫系統(續)資料庫系統構成圖示參看教材page_5圖1.1資料庫系統在電腦系統中的位置圖示參看教材page_5圖1.21.1資料庫系統概述1.1.1資料庫的地位

1.1.2四個基本概念

1.1.3數據管理技術的產生與發展1.1.3數據管理技術的產生和發展什麼是數據管理對數據進行分類、組織、編碼、存儲、檢索和維護,是數據處理的中心問題數據管理技術的發展過程人工管理階段(40年代中--50年代中)檔系統階段(50年代末--60年代中)資料庫系統階段(60年代末--現在)數據管理技術的產生和發展(續)數據管理技術的發展動力應用需求的推動電腦硬體的發展電腦軟體的發展一、人工管理時期40年代中--50年代中產生的背景應用需求 科學計算 硬體水準 無直接存取存儲設備 軟體水準 沒有操作系統 處理方式 批處理 人工管理(續)特點數據的管理者:應用程式,數據不保存。數據面向的對象:某一應用程式數據的共用程度:無共用、冗餘度極大數據的獨立性:不獨立,完全依賴於程式數據的結構化:無結構數據控制能力:應用程式自己控制應用程式與數據的對應關係(人工管理)

應用程式1數據集1應用程式2數據集2應用程式n數據集n...…...…二、檔系統時期50年代末--60年代中產生的背景應用需求 科學計算、管理 硬體水準 磁片、磁鼓 軟體水準 有檔系統 處理方式 聯機即時處理、批處理

檔系統(續)特點數據的管理者:檔系統,數據可長期保存數據面向的對象:某一應用程式數據的共用程度:共用性差、冗餘度大數據的結構化:記錄內有結構,整體無結構數據的獨立性:獨立性差,數據的邏輯結構改變必須修改應用程式數據控制能力:應用程式自己控制應用程式與數據的對應關係(檔系統)應用程式1檔1應用程式2檔2應用程式n檔n存取方法...…...…檔系統中數據的結構記錄內有結構。數據的結構是靠程式定義和解釋的。數據只能是定長的。可以間接實現數據變長要求,但訪問相應數據的應用程式複雜了。檔間是獨立的,因此數據整體無結構。可以間接實現數據整體的有結構,但必須在應用程式中對描述數據間的聯繫。數據的最小存取單位是記錄。三、資料庫系統時期60年代末以來產生的背景應用背景 大規模管理 硬體背景 大容量磁片 軟體背景 有數據庫管理系統 處理方式 聯機即時處理,分佈處理,批處理 資料庫系統(續)特點數據的管理者:DBMS數據面向的對象:現實世界 數據的共用程度:共用性高 數據的獨立性:高度的物理獨立性和一定的邏輯獨立性 數據的結構化:整體結構化數據控制能力:由DBMS統一管理和控制應用程式與數據的對應關係(資料庫系統)DBMS應用程式1應用程式2資料庫…數據的高共用性的好處降低數據的冗餘度,節省存儲空間避免數據間的不一致性使系統易於擴充數據獨立性物理獨立性指用戶的應用程式與存儲在磁片上的資料庫中數據是相互獨立的。當數據的物理存儲改變了,應用程式不用改變。邏輯獨立性指用戶的應用程式與資料庫的邏輯結構是相互獨立的。數據的邏輯結構改變了,用戶程式也可以不變。數據結構化整體數據的結構化是資料庫的主要特徵之一。資料庫中實現的是數據的真正結構化數據的結構用數據模型描述,無需程式定義和解釋。數據可以變長。數據的最小存取單位是資料項目。DBMS對數據的控制功能數據的安全性(Security)保護使每個用戶只能按指定方式使用和處理指定數據,保護數據以防止不合法的使用造成的數據的洩密和破壞。數據的完整性(Integrity)檢查將數據控制在有效的範圍內,或保證數據之間滿足一定的關係。DBMS對數據的控制功能併發(Concurrency)控制對多用戶的併發操作加以控制和協調,防止相互干擾而得到錯誤的結果。資料庫恢復(Recovery)將資料庫從錯誤狀態恢復到某一已知的正確狀態。第一章緒論1.1資料庫系統概述1.2數據模型1.3資料庫系統結構1.4資料庫系統的組成1.5資料庫技術的研究領域1.6小結數據模型在資料庫中用數據模型這個工具來抽象、表示和處理現實世界中的數據和資訊。通俗地講數據模型就是現實世界的模擬數據模型應滿足三方面要求能比較真實地模擬現實世界容易為人所理解便於在電腦上實現數據模型(續)數據模型分成兩個不同的層次(1)概念模型也稱資訊模型,它是按用戶的觀點來對數據和資訊建模。(2)數據模型主要包括網狀模型、層次模型、關係模型等,它是按電腦系統的觀點對數據建模。數據模型(續)客觀對象的抽象過程兩步抽象現實世界中的客觀對象抽象為概念模型;把概念模型轉換為某一DBMS支持的數據模型。概念模型是現實世界到機器世界的一個中間層次。1.2數據模型

1.2.1數據模型的組成要素

1.2.2概念模型

1.2.3常用數據模型

1.2.4層次模型

1.2.5網狀模型

1.2.6關係模型1.2.1數據模型的組成要素數據結構數據操作數據的約束條件1.數據結構什麼是數據結構對象類型的集合兩類對象與數據類型、內容、性質有關的對象與數據之間聯繫有關的對象數據結構是對系統靜態特性的描述2.數據操作數據操作對數據庫中各種對象(型)的實例(值)允許執行的操作及有關的操作規則數據操作的類型檢索更新(包括插入、刪除、修改)

數據操作(續)數據模型對操作的定義操作的確切含義操作符號操作規則(如優先順序)實現操作的語言數據操作是對系統動態特性的描述。3.數據的約束條件數據的約束條件一組完整性規則的集合。完整性規則是給定的數據模型中數據及其聯繫所具有的制約和儲存規則,用以限定符合數據模型的資料庫狀態以及狀態的變化,以保證數據的正確、有效、相容。

數據的約束條件(續)數據模型對約束條件的定義反映和規定本數據模型必須遵守的基本的通用的完整性約束條件。例如在關係模型中,任何關係必須滿足實體完整性和參照完整性兩個條件。提供定義完整性約束條件的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。1.2.2概念模型1.概念模型2.資訊世界中的基本概念3.概念模型的表示方法1.概念模型概念模型的用途概念模型用於資訊世界的建模是現實世界到機器世界的一個中間層次是資料庫設計的有力工具資料庫設計人員和用戶之間進行交流的語言對概念模型的基本要求較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識簡單、清晰、易於用戶理解。2.資訊世界中的基本概念

(1)實體(Entity)客觀存在並可相互區別的事物稱為實體。可以是具體的人、事、物或抽象的概念。(2)屬性(Attribute)實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。

(3)碼(Key)唯一標識實體的屬性集稱為碼。

資訊世界中的基本概念(續)(4)域(Domain)屬性的取值範圍稱為該屬性的域。(5)實體型(EntityType)用實體名及其屬性名集合來抽象和刻畫同類實體稱為實體型(6)實體集(EntitySet)同型實體的集合稱為實體集資訊世界中的基本概念(續)(7)聯繫(Relationship)現實世界中事物內部以及事物之間的聯繫在資訊世界中反映為實體內部的聯繫和實體之間的聯繫實體型間聯繫兩個實體型一對一聯繫(1:1)三個實體型一對多聯繫(1:n)一個實體型多對多聯繫(m:n)

兩個實體型間的聯繫實體型1聯繫名實體型2111:1聯繫實體型1聯繫名實體型2mnm:n聯繫實體型1聯繫名實體型21n1:n聯繫兩個實體型間的聯繫一對一聯繫如果對於實體集A中的每一個實體,實體集B中至多有一個實體與之聯繫,反之亦然,則稱實體集A與實體集B具有一對一聯繫。記為1:1。

實例班級與班長之間的聯繫:一個班級只有一個正班長一個班長只在一個班中任職兩個實體型間的聯繫(續)一對多聯繫如果對於實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯繫,反之,對於實體集B中的每一個實體,實體集A中至多只有一個實體與之聯繫,則稱實體集A與實體集B有一對多聯繫記為1:n實例班級與學生之間的聯繫:一個班級中有若干名學生,每個學生只在一個班級中學習兩個實體型間的聯繫(續)多對多聯繫(m:n)如果對於實體集A中的每一個實體,實體集B中有n個實體(n≥0)與之聯繫,反之,對於實體集B中的每一個實體,實體集A中也有m個實體(m≥0)與之聯繫,則稱實體集A與實體B具有多對多聯繫。記為m:n實例課程與學生之間的聯繫:一門課程同時有若干個學生選修一個學生可以同時選修多門課程多個實體型間的聯繫(續)多個實體型間的一對多聯繫若實體集E1,E2,...,En存在聯繫,對於實體集Ej(j=1,2,...,i-1,i+1,...,n)中的給定實體,最多只和Ei中的一個實體相聯系,則我們說Ei與E1,E2,...,Ei-1,Ei+1,...,En之間的聯繫是一對多的。多個實體型間的聯繫(續)實例

課程、教師與參考書三個實體型如果一門課程可以有若干個教師講授,使用若干本參考書,每一個教師只講授一門課程,每一本參考書只供一門課程使用課程與教師、參考書之間的聯繫是一對多的多個實體型間的一對一聯繫多個實體型間的多對多聯繫同一實體集內各實體間的聯繫一對多聯繫實例

職工實體集內部具有領導與被領導的聯繫某一職工(幹部)“領導”若干名職工一個職工僅被另外一個職工直接領導這是一對多的聯繫一對一聯繫多對多聯繫3.概念模型的表示方法概念模型的表示方法很多實體-聯繫方法(E-R方法)用E-R圖來描述現實世界的概念模型E-R方法也稱為E-R模型E-R圖實體型用矩形表示,矩形框內寫明實體名。學生教師E-R圖(續)屬性用橢圓形表示,並用無向邊將其與相應的實體連接起來學生學號年齡性別姓名E-R圖(續)聯繫聯繫本身:用菱形表示,菱形框內寫明聯繫名,並用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)聯繫的屬性:聯繫本身也是一種實體型,也可以有屬性。如果一個聯繫具有屬性,則這些屬性也要用無向邊與該聯繫連接起來

聯繫的表示方法實體型1聯繫名實體型2111:1聯繫實體型1聯繫名實體型2mnm:n聯繫實體型1聯繫名實體型21n1:n聯繫聯繫的表示方法(續)實體型1聯繫名mn同一實體型內部的m:n聯繫實體型1聯繫名實體型21m多個實體型間的1:n聯繫實體型3n聯繫的表示方法示例班級班級-班長班長111:1聯繫課程選修學生mnm:n聯繫班級組成學生1n1:n聯繫聯繫的表示方法示例(續)職工領導1n同一實體型內部的1:n聯繫課程講授教師1m多個實體型間的1:n聯繫參考書n聯繫屬性的表示方法課程選修學生mn成績E-R圖(續)E-R圖實例:

P19-P20

某工廠物資管理E-R圖1.2.3常用數據模型非關係模型層次模型(HierarchicalModel)網狀模型(NetworkModel)數據結構:以基本層次聯繫為基本單位

基本層次聯繫:兩個記錄以及它們之間的一對多(包括一對一)的聯繫常用數據模型(續)關係模型(RelationalModel)數據結構:表面向對象模型(ObjectOrientedModel)數據結構:對象2.4

關係代數

概述傳統的集合運算專門的關係運算概述1.關係代數2.運算的三要素3.關係代數運算的三個要素4.關係代數運算的分類5.表示記號概述1.關係代數 一種抽象的查詢語言 用對關係的運算來表達查詢概述(續)2.關係代數運算的三個要素運算對象:關係運算結果:關係運算符:四類概述(續)集合運算符將關係看成元組的集合運算是從關係的“水準”方向即行的角度來進行專門的關係運算符不僅涉及行而且涉及列算術比較符輔助專門的關係運算符進行操作邏輯運算符輔助專門的關係運算符進行操作集合運算符∪-∩×並差交廣義笛卡爾積比較運算符>≥<≤=≠大於大於等於小於小於等於等於不等於運算符含義運算符含義表2.4關係代數運算符

概述(續)專門的關係運算符σπ

÷選擇投影連接除邏輯運算符

∧∨非與或運算符含義運算符含義表2.4關係代數運算符(續)

概述(續)概述(續)4.關係代數運算的分類 傳統的集合運算並、差、交、廣義笛卡爾積 專門的關係運算選擇、投影、連接、除概述(續)5.表示記號

(1)R,t

R,t[Ai]

設關係模式為R(A1,A2,…,An)它的一個關係設為R。t

R表示t是R的一個元組t[Ai]則表示元組t中相應於屬性Ai的一個分量

概述(續)(2)A,t[A],A

若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}後剩餘的屬性組。概述(續)(3)trtsR為n目關係,S為m目關係。tr

R,ts

S,trts稱為元組的連接。它是一個n+m列的元組,前n個分量為R中的一個n元組,後m個分量為S中的一個m元組。概述(續)4)象集Zx

給定一個關係R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。2.4

關係代數

概述

傳統的集合運算

專門的關係運算2.4.1傳統的集合運算並差交廣義笛卡爾積1.並(Union)R和S具有相同的目n(即兩個關係都有n個屬性)相應的屬性取自同一個域R∪S

仍為n目關係,由屬於R或屬於S的元組組成

R∪S={t|t

R∨t

S}並(續)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

2.差(Difference)R和S具有相同的目n相應的屬性取自同一個域R-S

仍為n目關係,由屬於R而不屬於S的所有元組組成

R-S={t|t

R∧t

S}差(續)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S

3.交(Intersection)R和S具有相同的目n相應的屬性取自同一個域R∩S仍為n目關係,由既屬於R又屬於S的元組組成

R∩S={t|t

R∧t

S} R∩S=R

–(R-S)交(續)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∩S

4.廣義笛卡爾積(ExtendedCartesianProduct)Rn目關係,k1個元組Sm目關係,k2個元組R×S

列:(n+m)列的元組的集合元組的前n列是關係R的一個元組後m列是關係S的一個元組行:k1×k2個元組R×S={tr

ts|tr

R∧ts

S}廣義笛卡爾積(續)ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c12.4

關係代數概述傳統的集合運算專門的關係運算2.4.2專門的關係運算選擇投影連接除1.選擇(Selection)1)選擇又稱為限制(Restriction)2)選擇運算符的含義在關係R中選擇滿足給定條件的諸元組

σF(R)={t|t

R∧F(t)='真'}F:選擇條件,是一個邏輯運算式,基本形式為:

[(]

X1θY1[)][φ[(]X2θY2[)]]…θ:比較運算符(>,≥,<,≤,=或<>)X1,Y1等:屬性名、常量、簡單函數;屬性名也可以用它的序號來代替;φ:邏輯運算符(∧或∨)[]:表示任選項…:表示上述格式可以重複下去選擇(續)3)選擇運算是從行的角度進行的運算4)舉例 設有一個學生-課程資料庫,包括學生關係Student、課程關係Course和選修關係SC。σ選擇(續)學號Sno姓名Sname性別Ssex年齡Sage所在系Sdept95001李勇男20CS95002劉晨女19IS95003王敏女18MA95004張立男19IS(a)

Student例1例2例4例3例9選擇(續)(b)Course課程號課程名先行課學分CnoCnameCpnoCcredit1資料庫542數學

23資訊系統144操作系統635數據結構746數據處理

27PASCAL語言64例9選擇(續)

(c)SC學號課程號成績SnoCnoGrade9500119295001285950013889500229095002380例7例9選擇(續)[例1]查詢資訊系(IS系)全體學生

σSdept

='IS'(Student)

或σ5='IS'(Student)結果:SnoSnameSsexSageSdept95002劉晨女19IS95004張立男19IS選擇(續)[例2]查詢年齡小於20歲的學生

σSage<20(Student)

或σ4<20(Student)

結果:

SnoSnameSsexSageSdept95002劉晨女19IS95003王敏女18MA95004張立男19IS

2.投影(Projection)1)投影運算符的含義從R中選擇出若干屬性列組成新的關係

πA(R)={t[A]|t

R} A:R中的屬性列

2.投影(Projection)2)投影操作主要是從列的角度進行運算但投影之後不僅取消了原關係中的某些列,而且還可能取消某些元組(避免重複行)π投影(續)3)舉例[例3]查詢學生的姓名和所在系 即求Student關係上學生姓名和所在系兩個屬性上的投影

πSname,Sdept(Student)

或π2,5(Student)結果:投影(續)SnameSdept李勇CS劉晨IS王敏MA張立IS投影(續)[例4]查詢學生關係Student中都有哪些系

πSdept(Student)

結果:SdeptCSISMA3.連接(Join)1)連接也稱為θ連接2)連接運算的含義從兩個關係的笛卡爾積中選取屬性間滿足一定條件的元組

RS={|tr

R∧ts

S∧tr[A]θts[B]}A和B:分別為R和S上度數相等且可比的屬性組θ:比較運算符

連接運算從R和S的廣義笛卡爾積R×S中選取(R關係)在A屬性組上的值與(S關係)在B屬性組上值滿足比較關係的元組。

AθBtrts

連接(續)3)兩類常用連接運算等值連接(equijoin)什麼是等值連接θ為“=”的連接運算稱為等值連接

等值連接的含義從關係R與S的廣義笛卡爾積中選取A、B屬性值相等的那些元組,即等值連接為:

RS={|tr

R∧ts

S∧tr[A]=ts[B]}A=Btrts

連接(續)自然連接(Naturaljoin)什麼是自然連接自然連接是一種特殊的等值連接兩個關係中進行比較的分量必須是相同的屬性組在結果中把重複的屬性列去掉自然連接的含義

R和S具有相同的屬性組B

R

S={|tr

R∧ts

S∧tr[B]=ts[B]}trts連接(續)4)一般的連接操作是從行的角度進行運算。 自然連接還需要取消重複列,所以是同時從行和列的角度進行運算。

AθBRS連接(續)5)舉例

[例5]ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS連接(續)R

S

AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310

C<E連接(續)

等值連接R

SR.B=S.B

AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32連接(續)

自然連接R

S

ABCEa1b153a1b267a2b3810a2b3824)象集Z

給定一個關係R(X,Z),X和Z為屬性組。當t[X]=x時,x在R中的象集(ImagesSet)為:

Zx={t[Z]|t

R,t[X]=x}

它表示R中屬性組X上值為x的諸元組在Z上分量的集合。4)象集ZABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS4.除(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∧πY(S)

Yx}

Yx:x在R中的象集,x=tr[X]除(續)2)除操作是同時從行和列角度進行運算

3)舉例

[例6](p62)÷RS除(續)ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2R÷SAa1RS分析:在關係R中,A可以取四個值{a1,a2,a3,a4}a1的象集為{(b1,c2),(b2,c3),(b2,c1)}

a2的象集為{(b3,c7),(b2,c3)}

a3的象集為{(b4,c6)}

a4的象集為{(b6,c6)}S在(B,C)上的投影為

{(b1,c2),(b2,c1),(b2,c3)}只有a1的象集包含了S在(B,C)屬性組上的投影所以R÷S={a1}5.綜合舉例以學生-課程資料庫為例(P.59)[例7]查詢至少選修1號課程和3號課程的學生號碼

首先建立一個臨時關係K:

然後求:πSno.Cno(SC)÷K

Cno

1

3綜合舉例(續)例7續πSno.Cno(SC)

95001象集{1,2,3} 95002象集{2,3}

πCno(K)={1,3}

於是:πSno.Cno(SC)÷K={95001}SnoCno950011950012950013950022950023綜合舉例(續)[例8]查詢選修了2號課程的學生的學號。

πSno(σCno='2'(SC))={95001,95002}

綜合舉例(續)[例9]查詢至少選修了一門其直接先行課為5號課程的課程的學生姓名。

πSname(σCpno='5'(CourseSCStudent))或

πSname(σCpno='5'(Course)SCπSno,Sname(Student))或πSname(πSno(σCpno='5'(Course)SC)πSno,Sname(Student))

綜合舉例(續)[例10]查詢選修了全部課程的學生號碼和姓名。

πSno,Cno(SC)÷πCno(Course)πSno,Sname(Student)

小結l

關係代數運算 關係代數運算 並、差、交、笛卡爾積、投影、選擇、連接、除 基本運算 並、差、笛卡爾積、投影、選擇 交、連接、除 可以用5種基本運算來表達引進它們並不增加語言的能力,但可以簡化表達小結(續)l

關係代數運算式關係代數運算經有限次複合後形成的式子l

典型關係代數語言ISBL(InformationSystemBaseLanguage)由IBMUnitedKingdom研究中心研製用於PRTV(PeterleeRelationalTestVehicle)實驗系統第二章關係資料庫2.1關係模型概述2.2關係數據結構2.3關係的完整性2.4關係代數2.5關係演算2.6小結2.5關係演算關係演算以數理邏輯中的謂詞演算為基礎種類:按謂詞變元不同分類1.元組關係演算:以元組變數作為謂詞變元的基本對象元組關係演算語言ALPHA2.域關係演算:以域變數作為謂詞變元的基本對象域關係演算語言QBE2.5.1元組關係演算語言ALPHA由E.F.Codd提出INGRES所用的QUEL語言是參照ALPHA語言研製的語句檢索語句GET更新語句PUT,HOLD,UPDATE,DELETE,DROP一、檢索操作

語句格式:

GET

工作空間名

[(定額)](運算式1)

[:操作條件][DOWN/UP運算式2]

定額:規定檢索的元組個數格式:數字運算式1:指定語句的操作對象格式:關係名|關係名.屬性名|元組變數.屬性名|集函數[,…]操作條件:將操作結果限定在滿足條件的元組中格式:邏輯運算式運算式2:指定排序方式格式:關係名.屬性名|元組變數.屬性名[,…]檢索操作(續)(1)簡單檢索(即不帶條件的檢索)(2)限定的檢索(即帶條件的檢索)(3)帶排序的檢索(4)帶定額的檢索(5)用元組變數的檢索(6)用存在量詞的檢索檢索操作(續)(7)帶有多個關係的運算式的檢索(8)用全稱量詞的檢索(9)用兩種量詞的檢索(10)用蘊函(Implication)的檢索(11)集函數(1)簡單檢索 GET

工作空間名(運算式1)[例1]查詢所有被選修的課程號碼。

GETW(SC.Cno)

[例2]查詢所有學生的數據。

GETW(Student)(2)限定的檢索格式

GET

工作空間名(運算式1):操作條件[例3]查詢資訊系(IS)中年齡小於20歲的學生的學號和年齡。

GETW(Student.Sno,Student.Sage):Student.Sdept='IS'∧Student.Sage<20(3)帶排序的檢索格式

GET

工作空間名(運算式1)[:操作條件]DOWN/UP運算式2

[例4]查詢電腦科學系(CS)學生的學號、年齡,結果按年齡降序排序。

GETW(Student.Sno,Student.Sage):Student.Sdept='CS‘

DOWNStudent.Sage(4)帶定額的檢索

格式

:GET

工作空間名(定額)(運算式1)

[:操作條件][DOWN/UP

運算式2][例5]取出一個資訊系學生的學號。

GETW(1)(Student.Sno): Student.Sdept='IS'

[例6]查詢資訊系年齡最大的三個學生的學號及其年齡,結果按年齡降序排序。

GETW(3)(Student.Sno,Student.Sage):Student.Sdept='IS'DOWNStudent.Sage(5)用元組變數的檢索元組變數的含義表示可以在某一關係範圍內變化(也稱為範圍變數RangeVariable)元組變數的用途①簡化關係名:設一個較短名字的元組變數來代替較長的關係名。②操作條件中使用量詞時必須用元組變數。定義元組變數格式:RANGE關係名變數名一個關係可以設多個元組變數(6)用存在量詞的檢索[例8]查詢選修2號課程的學生名字。

RANGESCX

GETW(Student.Sname):

X(X.Sno=Student.Sno∧X.Cno='2')[例9]查詢選修了這樣課程的學生學號,其直接先行課是6號課程。

RANGECourseCXGETW(SC.Sno):

CX(CX.Cno=SC.Cno∧CX.Pcno='6')

用存在量詞的檢索(續)[例10]查詢至少選修一門其先行課為6號課程的學生名字

RANGECourseCXSCSCX GETW(Student.Sname):

SCX(SCX.Sno=Student.Sno∧

CX(CX.Cno=SCX.Cno∧CX.Pcno='6'))

前束範式形式:

GETW(Student.Sname):

SCX

CX(SCX.Sno=Student.Sno∧CX.Cno=SCX.Cno∧CX.Pcno='6')(7)帶有多個關係的運算式的檢索

[例11]查詢成績為90分以上的學生名字與課程名字。

RANGESCSCXGETW(Student.Sname,Course.Cname):

SCX(SCX.Grade≥90∧SCX.Sno=Student.Sno∧Course.Cno=SCX.Cno)(8)用全稱量詞的檢索

[例12]查詢不選1號課程的學生名字。

RANGESCSCXGETW(Student.Sname):SCX(SCX.Sno≠Student.Sno∨SCX.Cno≠'1')用存在量詞表示:

RANGESCSCXGETW(Student.Sname):

SCX(SCX.Sno=Student.Sno∧SCX.Cno='1')(9)用兩種量詞的檢索[例13]查詢選修了全部課程的學生姓名。

RANGECourseCXSCSCXGETW(Student.Sname):CX

SCX (SCX.Sno=Student.Sno∧ SCX.Cno=CX.Cno)(10)用蘊函(Implication)的檢索

[例14]查詢最少選修了95002學生所選課程的學生學號。

RANGECouseCXSCSCXSCSCYGETW(Student.Sno):CX(

SCX(SCX.Sno='95002'∧SCX.Cno=CX.Cno)

SCY(SCY.Sno=Student.Sno∧ SCY.Cno=CX.Cno))(11)集函數常用集函數(Aggregationfunction)或內部函數(Build-infunction)函數名功能COUNT

對元組計數TOTAL

求總和MAX

求最大值MIN

求最小值AVG

求平均值集函數(續)[例15]查詢學生所在系的數目。

GETW(COUNT(Student.Sdept))COUNT函數在計數時會自動排除重複值。

[例16]查詢資訊系學生的平均年齡GETW(AVG(Student.Sage):Student.Sdept='IS’)

二、更新操作(1)修改操作(2)插入操作(3)刪除操作(1)修改操作步驟①用HOLD語句將要修改的元組從資料庫中讀到工作空間中HOLD

工作空間名(運算式1)[:操作條件]HOLD語句是帶上併發控制的GET語句②用宿主語言修改工作空間中元組的屬性③用UPDATE語句將修改後的元組送回資料庫中

UPDATE

工作空間名修改操作(續)[例17]把95007學生從電腦科學系轉到資訊系。HOLDW(Student.Sno,Student.Sdetp):Student.Sno='95007'

(從Student關係中讀出95007學生的數據)

MOVE'IS'TOW.Sdept

(用宿主語言進行修改)

UPDATEW

(把修改後的元組送回Student關係)(2)插入操作步驟①用宿主語言在工作空間中建立新元組②用PUT語句把該元組存入指定關係中

PUT

工作空間名(關係名)

PUT語句只對一個關係操作插入操作(續)[例18]學校新開設了一門2學分的課程“電腦組織與結構”,其課程號為8,直接先行課為6號課程。插入該課程元組

MOVE'8'TOW.CnoMOVE'電腦組織與結構'TOW.CnameMOVE'6'TOW.CpnoMOVE'2'TOW.Ccredit

PUTW(Course)(3)刪除操作①用HOLD語句把要刪除的元組從資料庫中讀到工作空間中②用DELETE語句刪除該元組

DELETE

工作空間名刪除操作(續)[例19]95110學生因故退學,刪除該學生元組。

HOLDW(Student):Student.Sno='95110'DELETEW

刪除操作(續)[例20]將學號95001改為95102。

HOLDW(Student):Student.Sno='95001'

DELETEWMOVE'95102'TOW.SnoMOVE'李勇'TOW.SnameMOVE'男'OW.SsexMOVE'20'TOW.SageMOVE'CS'TOW.Sdept

PUTW(Student)

刪除操作(續)[例21]刪除全部學生。

HOLDW(SC)DELETEW

HOLDW(Student)DELETEW在刪除操作中保持參照完整性小結:元組關係演算語言ALPHA檢索操作GETGET

工作空間名

[(定額)](運算式1)

[:操作條件][DOWN/UP運算式2]插入操作建立新元組--PUT修改操作HOLD--修改--UPDATE刪除操作HOLD--DELETE2.5關系演算2.5.1元組關係演算語言ALPHA2.5.2域關係演算語言QBE2.5.2域關係演算語言QBE

l

一種典型的域關係演算語言 由M.M.Zloof提出

1978年在IBM370上得以實現

QBE也指此關係資料庫管理系統l

QBE:QueryByExample

基於螢幕表格的查詢語言查詢要求:以填寫表格的方式構造查詢用示例元素(域變數)來表示查詢結果可能的情況查詢結果:以表格形式顯示QBE操作框架

關係名屬性名操作命令元組屬性值或查詢條件或操作命令一、檢索操作(1)用戶提出要求;(2)螢幕顯示空白表格;

(3)用戶在最左邊一欄輸入要查詢的關係名,例如Student;Student檢索操作(續)(4)系統顯示該關係的屬性名

(5)用戶在上面構造查詢要求

StudentSnoSnameSsexSageSdept

P.T

AO.C

StudentSnoSnameSsexSageSdept

檢索操作(續)(6)螢幕顯示查詢結果StudentSnoSnameSsexSageSdept

李勇張立

C

構造查詢的幾個要素示例元素即域變數一定要加下劃線示例元素是這個域中可能的一個值,它不必是查詢結果中的元素列印操作符P.

指定查詢結果所含屬性列查詢條件不用加下劃線可使用比較運算符>,≥,<,≤,=和≠

其中=可以省略排序要求1.簡單查詢[例1]查詢全體學生的全部數據。StudentSnoSnameSsexSageSdept

P.95001P.李勇P.男P.20P.CS簡單查詢(續)

顯示全部數據也可以簡單地把P.操作符作用在關係名上。StudentSnoSnameSsexSageSdept

P.

2.條件查詢(1)簡單條件

[例2]求資訊系全體學生的姓名。StudentSnoSnameSsexSageSdept

P.李勇

IS條件查詢(續)

[例3]求年齡大於19歲的學生的學號。StudentSnoSnameSsexSageSdept

P.95001

>19條件查詢(與條件)[例4]求電腦科學系年齡大於19歲的學生的學號。方法(1):把兩個條件寫在同一行上StudentSnoSnameSsexSageSdept

P.95001

>19CS條件查詢(續)

方法(2):把兩個條件寫在不同行上,但使用相同的示例元素值StudentSnoSnameSsexSageSdept

P.95001P.95001

>19CS條件查詢(續)[例5]查詢既選修了1號課程又選修了2號課程的學生的學號。SCSnoCnoGrade

P.95001P.9500112

條件查詢(續)[例6]查詢電腦科學系或者年齡大於19歲的學生的學號。StudentSnoSnameSsexSageSdept

P.95001P.95002

>19CS

多表連接

[例7]查詢選修1號課程的學生姓名。

注意:示例元素Sno是連接屬性,其值在兩個表中要相同。SCSnoCnoGrade

950011

StudentSnoSnameSsexSageSdept

95001P.李勇

條件查詢(非條件)[例8]查詢未選修1號課程的學生姓名

思路:顯示學號為95001的學生名字,而該學生選修1號課程的情況為假SCSnoCnoGrade

950011

StudentSnoSnameSsexSageSdept

95001P.李勇

條件查詢(續)[例9]查詢有兩個人以上選修的課程號思路:查詢這樣的課程1,它不僅被95001選修而且也被另一個學生(

95001)選修了SCSnoCnoGrade

95001

.95001P.11

3.集函數常用集函數:函數名功能CNT對元組計數SUM求總和AVG求平均值MAX求最大值MIN求最小值集函數(續)[例10]查詢資訊系學生的平均年齡。StudentSnoSnameSsexSageSdept

P.AVG.ALL.IS4.對查詢結果排序(續)[例11]查全體男生的姓名,要求查詢結果按所在系昇冪排序,對相同系的學生按年齡降序排序。StudentSnoSnameSsexSageSdept

P.李勇男DO(2).AO(1).二、修改操作[例12]把95001學生的年齡改為18歲。方法(1):將操作符“U.”放在值上StudentSnoSnameSsexSageSdept95001

U.18

修改操作(續)方法(2):將操作符“U.”放在關係上碼95001標明要修改的元組。“U.”標明所在的行是修改後的新值。由於主碼是不能修改的,所以系統不會混淆要修改的屬性。StudentSnoSnameSsexSageSdeptU.95001

18

修改操作(續)[例13]將電腦系所有學生的年齡都改為18歲StudentSnoSnameSsexSageSdept95008

U.18

CS修改操作(續)

[例14]把95001學生的年齡增加1歲分兩行分別表示改前和改後的示例元素必須將操作符“U.”放在關係上StudentSnoSnameSsexSageSdept

U.9500195001

1717+1

修改操作(續)

[例15]將電腦系所有學生的年齡都增加1歲StudentSnoSnameSsexSageSdept

U.9500895008

1818+1

CS2.插入操作[例16]把資訊系女生95701,姓名張三,年齡17歲存入資料庫中。StudentSnoSnameSsexSageSdeptI.95701張三女17IS關係資料庫簡介系統而嚴格地提出關係模型的是美國IBM公司的E.F.Codd1970年提出關係數據模型E.F.Codd,“ARelationalModelofDataforLargeSharedDataBanks”,《CommunicationoftheACM》,1970之後,提出了關係代數和關係演算的概念1972年提出了關係的第一、第二、第三範式1974年提出了關係的BC範式關係資料庫簡介關係資料庫應用數學方法來處理資料庫中的數據80年代後,關係資料庫系統成為最重要、最流行的資料庫系統關係資料庫簡介典型實驗系統SystemRUniversityINGRES典型商用系統ORACLESYBASEINFORMIXDB2INGRES第二章關係資料庫2.1關係模型概述2.2關係數據結構2.3關係的完整性2.4關係代數2.5關係演算2.6小結2.1關係模型概述關係資料庫系統是支持關係模型的資料庫系統關係模型的組成關係數據結構關係操作集合關係完整性約束1.關係數據結構單一的數據結構關係現實世界的實體以及實體間的各種聯繫均用關係來表示數據的邏輯結構二維表從用戶角度,關係模型中數據的邏輯結構是一張二維表。2.關係操作集合1)常用的關係操作2)關係操作的特點3)關係數據語言的種類4)關係數據語言的特點關係操作集合(續)1)常用的關係操作查詢選擇、投影、連接、除、並、交、差數據更新插入、刪除、修改查詢的表達能力是其中最主要的部分關係操作集合(續)2)關係操作的特點集合操作方式,即操作的對象和結果都是集合。非關係數據模型的數據操作方式:一次一記錄檔系統的數據操作方式關係操作集合(續)3)關係數據語言的種類關係代數語言用對關係的運算來表達查詢要求典型代表:ISBL關係操作集合(續)關係數據語言的種類(續)關係演算語言:用謂詞來表達查詢要求元組關係演算語言謂詞變元的基本對象是元組變數典型代表:APLHA,QUEL域關係演算語言謂詞變元的基本對象是域變數典型代表:QBE具有關係代數和關係演算雙重特點的語言典型代表:SQL關係操作集合(續)4)關係數據語言的特點關係語言是一種高度非過程化的語言存取路徑的選擇由DBMS的優化機制來完成用戶不必用迴圈結構就可以完成數據操作能夠嵌入高級語言中使用關係代數、元組關係演算和域關係演算三種語言在表達能力上完全等價3.關係的三類完整性約束實體完整性通常由關係系統自動支持參照完整性早期系統不支持,目前大型系統能自動支持用戶定義的完整性反映應用領域需要遵循的約束條件,體現了具體領域中的語義約束用戶定義後由系統支持第二章關係資料庫2.1關係模型概述2.2關係數據結構2.3關係的完整性2.4關係代數2.5關係演算2.6小結2.2關係數據結構關係模型建立在集合代數的基礎上關係數據結構的基本概念關係關係模式關係資料庫2.2關係數據結構2.2.1關係2.2.2關係模式2.2.3關係資料庫2.2.1關係⒈域(Domain)

2.笛卡爾積(CartesianProduct)

3.關係(Relation)⒈域(Domain)域是一組具有相同數據類型的值的集合。例:整數實數介於某個取值範圍的整數長度指定長度的字串集合{‘男’,‘女’}介於某個取值範圍的日期2.笛卡爾積(CartesianProduct)1)笛卡爾積給定一組域D1,D2,…,Dn,這些域中可以有相同的。D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|di

Di,i=1,2,…,n}所有域的所有取值的一個組合不能重複笛卡爾積(續)例給出三個域:

D1=SUPERVISOR={張清玫,劉逸}

D2=SPECIALITY={電腦專業,資訊專業}D3=POSTGRADUATE={李勇,劉晨,王敏}則D1,D2,D3的笛卡爾積為:D1×D2×D3={(張清玫,電腦專業,李勇),(張清玫,電腦專業,劉晨),

(張清玫,電腦專業,王敏),(張清玫,資訊專業,李勇),

(張清玫,資訊專業,劉晨),(張清玫,資訊專業,王敏),

(劉逸,電腦專業,李勇),(劉逸,電腦專業,劉晨),

(劉逸,電腦專業,王敏),(劉逸,資訊專業,李勇),

(劉逸,資訊專業,劉晨),(劉逸,資訊專業,王敏)}笛卡爾積(續)2)元組(Tuple)笛卡爾積中每一個元素(d1,d2,…,dn)叫作一個n元組(n-tuple)或簡稱元組。

3)分量(Component)笛卡爾積元素(d1,d2,…,dn)中的每一個值di叫作一個分量。

笛卡爾積(續)4)基數(Cardinalnumber)若Di(i=1,2,…,n)為有限集,其基數為mi(i=1,2,…,n),則D1×D2×…×Dn的基數M為:在上例中,基數:2×2×3=12,即D1×D2×D3共有2×2×3=12個元組笛卡爾積(續)5)笛卡爾積的表示方法笛卡爾積可表示為一個二維表。表中的每行對應一個元組,表中的每列對應一個域。在上例中,12個元組可列成一張二維表

笛卡爾積(續)3.關係(Relation)1)關係D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的關係,表示為

R(D1,D2,…,Dn)

R:關係名

n:關係的目或度(Degree)關係(續)注意:關係是笛卡爾積的有限子集。無限關係在資料庫系統中是無意義的。由於笛卡爾積不滿足交換律,即

(d1,d2,…,dn)≠(d2,d1,…,dn)

但關係滿足交換律,即(d1,d2,…,di,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论