數(shù)據(jù)庫原理及應用教程_第1頁
數(shù)據(jù)庫原理及應用教程_第2頁
數(shù)據(jù)庫原理及應用教程_第3頁
數(shù)據(jù)庫原理及應用教程_第4頁
數(shù)據(jù)庫原理及應用教程_第5頁
已閱讀5頁,還剩216頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

數(shù)據(jù)庫應用技術(shù)數(shù)據(jù)庫原理及應用教程第一章數(shù)據(jù)庫系統(tǒng)概述(1)第二章關(guān)系數(shù)據(jù)庫(2)第三章關(guān)系數(shù)據(jù)庫標準語言-SQL(4)第四章關(guān)系數(shù)據(jù)庫理論(3)第五章數(shù)據(jù)庫安全保護(2)第六章數(shù)據(jù)庫設計(2)第七章SQLServer2000高級應用(2)第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫隨著計算機硬件和軟件的發(fā)展,數(shù)據(jù)管理經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)三個發(fā)展階段人工管理階段(50年代中期以前)文件系統(tǒng)階段(50年代后期至60年代中期)數(shù)據(jù)庫系統(tǒng)階段(60年代末開始)1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1964年,美國通用電氣公司成功開發(fā)了世界上的第一個數(shù)據(jù)庫系統(tǒng)——IDS(IntegratedDataStore)。IDS奠定了網(wǎng)狀數(shù)據(jù)庫的基礎(chǔ),并且得到了廣泛的發(fā)行和應用,成為數(shù)據(jù)庫系統(tǒng)發(fā)展史上的一座豐碑。1968年,美國國際商用機器公司(IBM)也推出世界上第一個層次數(shù)據(jù)庫系統(tǒng)IMS(InformationManagementSystem),同樣在數(shù)據(jù)庫系統(tǒng)發(fā)展史上占有重要的地位。1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫七十年代初,E.F.Codd在總結(jié)前面的層次、網(wǎng)狀數(shù)據(jù)庫優(yōu)缺點的基礎(chǔ)上,提出了關(guān)系數(shù)據(jù)模型的概念。他提出了關(guān)系代數(shù)和關(guān)系演算(直到今天,在E.F.Codd的這些基本理論還在左右這數(shù)據(jù)庫系統(tǒng)的發(fā)展,也依然是高校計算機專業(yè)課堂上所要講述的重要內(nèi)容)。1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫在理論上,確立了完整的關(guān)系模型理論、數(shù)據(jù)依賴理論和關(guān)系數(shù)據(jù)庫的設計理論(在后面將重點講述這些關(guān)系數(shù)據(jù)庫的基本理論);在實踐上,世界上出現(xiàn)了很多著名的關(guān)系數(shù)據(jù)庫系統(tǒng),比較著名的如SystemR,INGRES,Oracle等。1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫/china/sql/2008/

//課堂提問1、P421.131.152、P422.12.10第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型1.2數(shù)據(jù)庫系統(tǒng)的組成數(shù)據(jù)庫系統(tǒng)通常是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)構(gòu)成,由數(shù)據(jù)庫、數(shù)據(jù)庫用戶、計算機硬件系統(tǒng)和計算機軟件系統(tǒng)等級部分組成。1.2數(shù)據(jù)庫系統(tǒng)的組成用戶1用戶2用戶n用戶…數(shù)據(jù)庫管理員軟件系統(tǒng)應用系統(tǒng)應用開發(fā)工具DBMS操作系統(tǒng)(OS)數(shù)據(jù)庫數(shù)據(jù)庫數(shù)據(jù)庫是存儲在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。 數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲,具有較少的冗余度、較高的數(shù)據(jù)獨立性和易擴展性,并為各個用戶共享。用戶用戶是指使用數(shù)據(jù)庫的人,他們可以對數(shù)據(jù)庫進行存儲、維護和檢索等操作。第一類用戶:終端用戶;第二類用戶:應用程序員第三類用戶:數(shù)據(jù)庫管理員(DBA)軟件系統(tǒng)軟件系統(tǒng)主要包括數(shù)據(jù)庫管理系統(tǒng)(DBMS)及其開發(fā)工具、操作系統(tǒng)和應用系統(tǒng)。DBMS完成對硬件的訪問,并對數(shù)據(jù)庫的數(shù)據(jù)進行存取、維護和管理,完成數(shù)據(jù)庫系統(tǒng)的各類人員、應用程序等對數(shù)據(jù)庫的各種操作請求。DBMS是數(shù)據(jù)庫系統(tǒng)的核心軟件。硬件系統(tǒng)硬件系統(tǒng)指存儲和運行數(shù)據(jù)庫系統(tǒng)的硬件設備1.2數(shù)據(jù)庫系統(tǒng)的組成應用系統(tǒng)應用開發(fā)工具DBMS操作系統(tǒng)硬件課堂提問1、P433.62、P411.11.23、P422.42.5第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)(重點)數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)模式的概念數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)的二級映像與數(shù)據(jù)獨立性數(shù)據(jù)庫系統(tǒng)的三級模式與二級映像的優(yōu)點1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)可以從多種不同的角度考查數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)。從數(shù)據(jù)庫管理系統(tǒng)的角度看,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu);從數(shù)據(jù)庫最終用戶的角度看,數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、分布式結(jié)構(gòu)、客戶/服務器結(jié)構(gòu)和瀏覽器/服務器結(jié)構(gòu),這是數(shù)據(jù)庫系統(tǒng)外部的體系結(jié)構(gòu)。1.3數(shù)據(jù)庫系統(tǒng)模式的概念模式(Schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。例如:學生記錄定義為(學號、姓名、性別、系別、年齡),稱為記錄型,而(001101,張立,男,計算機,20)則是該記錄型的一個記錄值。模式只是對記錄型的描述,而與具體的值無關(guān)。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫系統(tǒng)內(nèi)部的體系結(jié)構(gòu)從邏輯上劃分為三級:外模式、模式和內(nèi)模式;對用戶而言,可以對應地分為:一般用戶級模式、概念級模式和物理模式;應用1應用2應用n……外模式1……外模式m子模式/模式映象模式模式/內(nèi)模式映象內(nèi)模式數(shù)據(jù)庫圖1.8數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)用戶級概念級物理級模式(Schema)也稱為邏輯模式或概念模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。模式處于三級結(jié)構(gòu)的中間層,不涉及數(shù)據(jù)的物理存儲細節(jié)和硬件環(huán)境,與具體的應用程序也無關(guān),是整個數(shù)據(jù)庫實際存儲的抽象表示。一個數(shù)據(jù)庫只有一個模式,是數(shù)據(jù)庫的整體邏輯。外模式又稱子模式或用戶模式,是三級結(jié)構(gòu)的最外層,是數(shù)據(jù)庫用戶能看到并允許使用的那部分局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。外模式一般是模式的子集,一個數(shù)據(jù)庫就可以有多個外模式。外模式是保證數(shù)據(jù)庫安全的一個有力措施。內(nèi)模式又稱存儲模式,是三級結(jié)構(gòu)中的最內(nèi)層,也是靠近物理存儲的一層,即與實際存儲數(shù)據(jù)方式有關(guān)的一層。是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方法。由多個存儲記錄組成,但并非物理層,不必關(guān)心具體的存儲位置。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)一個數(shù)據(jù)庫系統(tǒng)中,實際存在的只是物理級數(shù)據(jù)庫,是數(shù)據(jù)訪問的基礎(chǔ);概念級數(shù)據(jù)庫是物理級數(shù)據(jù)庫的一種抽象描述;用戶級數(shù)據(jù)庫是用戶對數(shù)據(jù)庫的接口。外模式可有多個,而模式、內(nèi)模式只能各有一個。內(nèi)模式是整個數(shù)據(jù)庫實際存儲的表示,而模式是整個數(shù)據(jù)庫實際存儲的抽象表示,外模式是概念模式的某一部分的抽象表示數(shù)據(jù)庫系統(tǒng)的二級映像與數(shù)據(jù)獨立性數(shù)據(jù)庫系統(tǒng)的三級模式是對數(shù)據(jù)的三個抽象級別,它使用戶能邏輯地抽象地處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計算機內(nèi)部的存儲方式,把數(shù)據(jù)的具體組織交給DBMS管理。為了能夠在內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換,DBMS在三級模式之間提供了二級映象功能。數(shù)據(jù)庫系統(tǒng)的二級映像與數(shù)據(jù)獨立性外模式/模式映像模式/內(nèi)模式映像外模式/模式映像模式描述的是數(shù)據(jù)的全局邏輯結(jié)構(gòu),外模式描述的是數(shù)據(jù)局部邏輯結(jié)構(gòu);同一模式可以有任意多個外模式,每一個外模式都存在一個外模式/模式映像;確定了數(shù)據(jù)的局部邏輯結(jié)構(gòu)與全局邏輯結(jié)構(gòu)之間的對應關(guān)系;保證了數(shù)據(jù)程序間的邏輯獨立性。模式/內(nèi)模式映像模式和內(nèi)模式是唯一的,所以模式/內(nèi)模式映像是唯一的;確定了數(shù)據(jù)的全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應關(guān)系存儲結(jié)構(gòu)變化時,數(shù)據(jù)庫管理員對模式/內(nèi)模式映像作相應的變化,是模式保持不變確保了數(shù)據(jù)的物理獨立性數(shù)據(jù)庫系統(tǒng)的三級模式與二級映像的優(yōu)點保證數(shù)據(jù)的獨立性模式和內(nèi)模式分開,保證了數(shù)據(jù)的物理獨立性;外模式和模式分開,保證了數(shù)據(jù)的邏輯獨立性。

簡化了用戶接口按照外模式編寫應用程序或輸入命令,不需要了解數(shù)據(jù)內(nèi)部的存儲結(jié)構(gòu)有利于數(shù)據(jù)共享不同的外模式下可有多個用戶共享系統(tǒng)中的數(shù)據(jù),減少了數(shù)據(jù)冗余有利于數(shù)據(jù)的安全保密在外模式下根據(jù)需求進行操作,只能對限定的數(shù)據(jù)操作,保證了其他數(shù)據(jù)的安全。課堂提問1、P433.73.82、P411.11.21.31.81.101.111.143、P422.32.42.52.72.9第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型1.4數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)進行管理的大型系統(tǒng)軟件,它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,用戶在數(shù)據(jù)庫系統(tǒng)中的一切操作,包括數(shù)據(jù)定義、查詢、更新及各種控制,都是通過DBMS進行的。DBMS就是實現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)處理轉(zhuǎn)換成計算機中的具體的物理數(shù)據(jù)的處理軟件,這給用戶帶來很大的方便。數(shù)據(jù)庫管理系統(tǒng)DBMS的主要功能DBMS的組成DBMS的數(shù)據(jù)存取的過程DBMS的主要功能1、數(shù)據(jù)定義

DBMS提供數(shù)據(jù)定義語言DDL(DataDefineLanguage),定義數(shù)據(jù)的模式、外模式和內(nèi)模式三級模式結(jié)構(gòu),定義模式/內(nèi)模式和外模式/模式二級映象,定義有關(guān)的約束條件,例如,為保證數(shù)據(jù)庫安全而定義的用戶口令和存取權(quán)限,為保證正確語義而定義完整性規(guī)則。DBMS的主要功能2.數(shù)據(jù)操縱

DBMS提供數(shù)據(jù)操縱語言DML(DataManipulationLanguage)實現(xiàn)對數(shù)據(jù)庫的基本操作,包括檢索、插入、修改、刪除等。

SQL語言就是DML的一種。DBMS的主要功能3.數(shù)據(jù)庫運行管理

DBMS對數(shù)據(jù)庫的控制主要通過四個方面實現(xiàn):數(shù)據(jù)的安全性控制數(shù)據(jù)的完整性控制多用戶環(huán)境下的并發(fā)控制數(shù)據(jù)庫的恢復以確保數(shù)據(jù)正確有效和數(shù)據(jù)庫系統(tǒng)的正常運行。DBMS的主要功能4.數(shù)據(jù)庫的建立和維護功能包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復、重組織,系統(tǒng)性能監(jiān)視、分析等功能。5.數(shù)據(jù)通信接口DBMS提供與其他軟件系統(tǒng)進行通信的功能。實現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。DBMS的主要功能4.數(shù)據(jù)庫的建立和維護功能包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝入,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復、重組織,系統(tǒng)性能監(jiān)視、分析等功能。5.數(shù)據(jù)通信接口DBMS提供與其他軟件系統(tǒng)進行通信的功能。實現(xiàn)用戶程序與DBMS之間的通信,通常與操作系統(tǒng)協(xié)調(diào)完成。DBMS的主要功能6.數(shù)據(jù)組織、存儲和管理

DBMS負責對數(shù)據(jù)庫中需要存放的各種數(shù)據(jù)如:數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑等的組織、存儲和管理工作,確定以何種文件結(jié)構(gòu)和存取方式物理地組織這些數(shù)據(jù),以提高存儲空間利用率和對數(shù)據(jù)庫進行增、刪、查和該的效率等。DBMS的組成DBMS是許多程序所組成的一個大型軟件系統(tǒng)每個程序都有自己的功能共同完成DBMS的一件或幾件工作。DBMS的組成語言編譯處理程序系統(tǒng)運行控制程序系統(tǒng)建立、維護程序數(shù)據(jù)字典DBMS的數(shù)據(jù)存取的過程在數(shù)據(jù)庫系統(tǒng)中,DBMS與操作系統(tǒng)、應用程序、硬件等協(xié)同工作,共同完成數(shù)據(jù)各種存取操作,其中DBMS起著關(guān)鍵的作用。DBMS對數(shù)據(jù)的存取通常需要以下幾個步驟:用戶使用某種特定的數(shù)據(jù)操作語言向DBMS發(fā)出存取請求;DBMS的數(shù)據(jù)存取的過程DBMS接受請求并解釋轉(zhuǎn)換成機器代碼指令;DBMS依次檢查外模式、外模式/模式映象、模式、模式/內(nèi)模式映象及存儲結(jié)構(gòu)定義;DBMS對存儲數(shù)據(jù)庫執(zhí)行必要的存取操作;從對數(shù)據(jù)庫的存取操作中接受結(jié)果DBMS的數(shù)據(jù)存取的過程對得到的結(jié)果進行必要的處理,如格式轉(zhuǎn)換等將處理的結(jié)果返回給用戶上述存取過程中還包括安全性控制、完整性控制,以確保數(shù)據(jù)的正確性、有效性和一致性。課堂提問1.1.71.91.12第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型1.5數(shù)據(jù)模式數(shù)據(jù)模型的概念三個世界的劃分及其有關(guān)概念數(shù)據(jù)模型的分類實體聯(lián)系模型及E-R圖數(shù)據(jù)模型的組成要素數(shù)據(jù)模型的概念數(shù)據(jù)模型是數(shù)據(jù)的框架,該框架描述了數(shù)據(jù)及其聯(lián)系的組織方式、表達方式和存取路徑,是數(shù)據(jù)庫系統(tǒng)的核心和基礎(chǔ)各種機器上實現(xiàn)的DBMS軟件都基于某種數(shù)據(jù)模型它的數(shù)據(jù)結(jié)構(gòu)直接影響到數(shù)據(jù)庫系統(tǒng)的其他部分的性能,也是數(shù)據(jù)定義和數(shù)據(jù)操縱語言的基礎(chǔ)是設計數(shù)據(jù)庫的一項首要任務三個世界的劃分及其有關(guān)概念1、三個世界的劃分將現(xiàn)實世界的事物及聯(lián)系抽象成信息世界的信息模型,然后再抽象成計算機世界的數(shù)據(jù)模型信息模型不依賴于具體的計算機系統(tǒng),是計算機內(nèi)部數(shù)據(jù)的抽象表示,是概念模型概念模型經(jīng)過抽象,轉(zhuǎn)換成計算機上某一DBMS支持的數(shù)據(jù)模型三個世界的劃分及其有關(guān)概念現(xiàn)實世界概念模型認識抽象DBMS支持的數(shù)據(jù)模型信息世界計算機世界現(xiàn)實世界三個世界的劃分及其有關(guān)概念2、現(xiàn)實世界是客觀存在的世界每個事物都有自己的特征或性質(zhì)事務之間是有相互聯(lián)系的三個世界的劃分及其有關(guān)概念3、信息世界及其有關(guān)基本概念實體(Entity):客觀存在并可以相互區(qū)別的事物 客觀存在并且可以相互區(qū)別的“事物”稱為實體。實體可以是可觸及的對象,如一個學生,一本書,一輛汽車;也可以是抽象的事件,如一堂課,一次比賽等。三個世界的劃分及其有關(guān)概念屬性(Attributes):實體的某一特性稱為屬性,一個實體可以有多個屬性。如學生實體有學號、姓名、年齡、性別、系等方面的屬性。屬性有"型"和“值”之分,"型"即為屬性名,如姓名、年齡、性別是屬性的型;“值”即為屬性的具體內(nèi)容,如(990001,張立,20,男,計算機)這些屬性值的集合表示了一個學生實體。三個世界的劃分及其有關(guān)概念實體型(EntityType) 若干個屬性型組成的集合可以表示一個實體的類型,簡稱實體型。如學生(學號,姓名,年齡,性別,系)就是一個實體型。實體集(EntitySet)

同型實體的集合稱為實體集。如所有的學生、所有的課程等。三個世界的劃分及其有關(guān)概念鍵(Key) 能唯一標識一個實體的屬性或?qū)傩约Q為實體的鍵。如學生的學號,學生的姓名可能有重名,不能作為學生實體的鍵。域(Domain) 屬性值的取值范圍稱為該屬性的域。如學號的域為6位整數(shù),姓名的域為字符串集合,年齡的域為小于40的整數(shù),性別的域為(男,女)。三個世界的劃分及其有關(guān)概念聯(lián)系(Relationship)在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系同樣也要抽象和反映到信息世界中來,在信息世界中將被抽象為實體型內(nèi)部的聯(lián)系和實體型之間的聯(lián)系。三個世界的劃分及其有關(guān)概念聯(lián)系(Relationship)實體內(nèi)部的聯(lián)系通常是指組成實體的各屬性之間的聯(lián)系;實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。反映實體型及其聯(lián)系的結(jié)構(gòu)形式稱為實體模型,也稱作信息模型,它是現(xiàn)實世界及其聯(lián)系的抽象表示。三個世界的劃分及其有關(guān)概念兩個實體型之間的聯(lián)系有如下三種類型:(1)一對一聯(lián)系(1:1) 實體集A中的一個實體至多與實體集B中的一個實體相對應,反之亦然,則稱實體集A與實體集B為一對一的聯(lián)系。記作1:1。如:班級與班長,觀眾與座位,病人與床位。三個世界的劃分及其有關(guān)概念兩個實體型之間的聯(lián)系有如下三種類型:(2)一對多聯(lián)系(1:n) 實體集A中的一個實體與實體集B中的多個實體相對應,反之,實體集B中的一個實體至多與實體集A中的一個實體相對應。記作1:n。如:班級與學生、公司與職員、省與市。三個世界的劃分及其有關(guān)概念兩個實體型之間的聯(lián)系有如下三種類型:(3)多對多(m:n) 實體集A中的一個實體與實體集B中的多個實體相對應,反之,實體集B中的一個實體與實體集A中的多個實體相對應。記作(m:n)。如:教師與學生,學生與課程,工廠與產(chǎn)品。三個世界的劃分及其有關(guān)概念實際上,一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例。可以用圖形來表示兩個實體型之間的這三類聯(lián)系

ABABAB(a)(b)(c)三個世界的劃分及其有關(guān)概念4計算機世界中的基本概念 信息世界中的實體抽象為計算機世界中的數(shù)據(jù),存儲在計算機中。在計算機世界中,常用的主要概念如下:字段(Field) 對應于屬性的數(shù)據(jù)稱為字段,也稱為數(shù)據(jù)項。字段的命名往往和屬性名相同。 如學生有學號、姓名、年齡、性別、系等字段。三個世界的劃分及其有關(guān)概念4計算機世界中的基本概念記錄(Record) 對應于每個實體的數(shù)據(jù)稱為記錄。 如一個學生(990001,張立,20,男,計算機)為一個記錄。 文件(File) 對應于實體集的數(shù)據(jù)稱為文件。 如所有學生的記錄組成了一個學生文件。三個世界的劃分及其有關(guān)概念4計算機世界中的基本概念關(guān)鍵字(key) 能唯一標識文件中每個記錄的字段或字段集,稱為記錄的關(guān)鍵字。 如在學生文件中,學號可以唯一標識一個學生記錄,因此,學號可以作為學生記錄的關(guān)鍵字。三個世界的劃分及其有關(guān)概念在計算機世界中,信息模型被抽象為數(shù)據(jù)模型,實體型內(nèi)部的聯(lián)系抽象為同一記錄內(nèi)部各字段間的聯(lián)系,實體型之間的聯(lián)系抽象為記錄與記錄之間的聯(lián)系。現(xiàn)實世界是設計數(shù)據(jù)庫的出發(fā)點,也是使用數(shù)據(jù)庫的最終歸宿。實體模型和數(shù)據(jù)模型是現(xiàn)實世界事物及其聯(lián)系的兩級抽象。而數(shù)據(jù)模型是實現(xiàn)數(shù)據(jù)庫系統(tǒng)的根據(jù)。三個世界的劃分及其有關(guān)概念通過以上的介紹,我們可總結(jié)出三個世界中各術(shù)語的對應關(guān)系:

現(xiàn)實世界--信息世界--計算機世界 事物總體--

實體集--

文件 事物個體--

實體--

記錄 特征 --

屬性--

字段 事物間聯(lián)系--

實體模型--

數(shù)據(jù)模型數(shù)據(jù)模型的分類根據(jù)模型應用的不同目的,將模型劃分為兩類:概念模型邏輯模型和物理模型概念模型也成為信息模型是按用戶的觀點對數(shù)據(jù)和信息建模,不依賴與具體的計算機系統(tǒng)描述某個特定組織所關(guān)心的信息結(jié)構(gòu)用于數(shù)據(jù)庫設計時用戶和數(shù)據(jù)庫設計人員之間交流的工具實體模型,簡稱E-R模型邏輯模型和物理模型邏輯模型是按計算機的觀點對數(shù)據(jù)建模,有嚴格的形式化定義邏輯模型主要用于DBMS的實現(xiàn),即數(shù)據(jù)庫是按照DBMS規(guī)定的數(shù)據(jù)模型組織和建立起來的。物理模型是對數(shù)據(jù)最底層的抽象,描述數(shù)據(jù)在磁盤或磁帶上的存儲方式和存取方式,是面向計算機系統(tǒng)的。實體聯(lián)系模型及E-R圖廣泛應用于數(shù)據(jù)庫設計工作中的一種概念模型,利用E-R圖來表示實體及其之間的聯(lián)系E-R圖的基本成分包含實體型、屬性和聯(lián)系實體型:用矩形框表示,框內(nèi)注明實體名稱屬性:用橢圓表示,框內(nèi)標注屬性名稱,并用無向邊與有關(guān)實體相連聯(lián)系:聯(lián)系用菱形表示,框內(nèi)標注聯(lián)系名稱,并用無向邊與有關(guān)實體相連,同時在無向邊旁標上聯(lián)系的類型實體聯(lián)系模型及E-R圖課程選修學號學號學號學號學號學號學號學號學號學生nm數(shù)據(jù)模型的組成要素由于數(shù)據(jù)模型是現(xiàn)實世界中的事物及其聯(lián)系的一種模擬和抽象表示,是一種形式化描述數(shù)據(jù)、數(shù)據(jù)間聯(lián)系以及有關(guān)語義約束規(guī)則的方法。數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)庫的組成對象以及對象間的聯(lián)系數(shù)據(jù)操作:數(shù)據(jù)庫中的各種數(shù)據(jù)允許執(zhí)行的操作的集合數(shù)據(jù)的完整性約束:保證數(shù)據(jù)的正確、有效和相容課堂提問1.1.51.62.62.112.143.11第一章數(shù)據(jù)庫系統(tǒng)概述1.1數(shù)據(jù)庫系統(tǒng)的產(chǎn)生、發(fā)展和當前流行的數(shù)據(jù)庫1.2數(shù)據(jù)庫數(shù)據(jù)庫系統(tǒng)的組成1.3數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)1.4數(shù)據(jù)庫管理系統(tǒng)1.5數(shù)據(jù)模式1.6四種數(shù)據(jù)模型四種數(shù)據(jù)模型層次模型網(wǎng)狀模型關(guān)系模型面向?qū)ο竽P完P(guān)系模型關(guān)系模型是發(fā)展較晚的一種模型,1970年美國IBM公司的研究員E.F.Codd首次提出了數(shù)據(jù)庫系統(tǒng)的關(guān)系模型。他發(fā)表了題為“大型共享數(shù)據(jù)銀行數(shù)據(jù)的關(guān)系模型”(ARelationModelofDataforLargeSharedDataBanks),在文中解釋了關(guān)系模型,定義了某些關(guān)系代數(shù)運算,研究了數(shù)據(jù)的函數(shù)相關(guān)性,定義了關(guān)系的第三范式,從而開創(chuàng)了數(shù)據(jù)庫的關(guān)系方法和數(shù)據(jù)規(guī)范化理論的研究關(guān)系模型他為此獲得了1981年的圖靈獎。此后許多人把研究方向轉(zhuǎn)到關(guān)系方法上,陸續(xù)出現(xiàn)了關(guān)系數(shù)據(jù)庫系統(tǒng)。1977年IBM公司研制的關(guān)系數(shù)據(jù)庫的代表SystemR開始運行,其后又進行了不斷的改進和擴充,出現(xiàn)了基于SystemR的數(shù)據(jù)庫系統(tǒng)SQL/DB。關(guān)系模型20世紀80年代以來,計算機廠商新推出的數(shù)據(jù)庫管理系統(tǒng)幾乎都支持關(guān)系模型,非關(guān)系系統(tǒng)的產(chǎn)品也都加上了關(guān)系接口。數(shù)據(jù)庫領(lǐng)域當前的研究工作也都是以關(guān)系方法為基礎(chǔ)。關(guān)系數(shù)據(jù)庫已成為目前應用最廣泛的數(shù)據(jù)庫系統(tǒng),如現(xiàn)在廣泛使用的小型數(shù)據(jù)庫系統(tǒng)Foxpro、Acess,大型數(shù)據(jù)庫系統(tǒng)Oracle、Informix、Sybase、SQLServer等都是關(guān)系數(shù)據(jù)庫系統(tǒng)。關(guān)系模型1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)以及有關(guān)概念關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是一個“二維表框架”組成的集合,每個二維表又可稱為關(guān)系,所以關(guān)系模型是“關(guān)系框架”的集合。關(guān)系模型與層次模型、網(wǎng)狀模型不同,它是建立在嚴格的數(shù)學概念之上的。關(guān)系模型1.關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)以及有關(guān)概念圖1.22給出了教學數(shù)據(jù)庫的關(guān)系模型及其實例,包含五個關(guān)系:教師關(guān)系T、學生關(guān)系S、課程關(guān)系C、選課關(guān)系SC和授課關(guān)系TC,分別對應五張表。下面以圖1.22為例,介紹關(guān)系模型中所涉及的一些基概念。T(教師關(guān)系)TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計算機T2王平女28講師8001200信息T3劉偉男30講師9001200計算機T4張雪女51教授16003000自動化T5張?zhí)m女39副教授13002000信息S(學生關(guān)系)SNO學號SN姓名SEX性別AGE年齡DEPT系別S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化C(課程關(guān)系)CNO課程號CN課程名CT課時C1程序設計60C2微機原理80C3數(shù)字邏輯60C4數(shù)據(jù)結(jié)構(gòu)80C5數(shù)據(jù)庫60C6編譯原理60C7操作系統(tǒng)60SC(選課關(guān)系)TC(授課關(guān)系)SNO學號CNO課程號SCORE成績

TNO教師號CNO課程號S1C190

T1C1S1C285

T1C4S2C557

T2C5S2C680

T3C1S2C7

T3C5S2C570

T4C2S3C10

T4C3S3C270

T5C5S3C485

T5C7S4C193

S4C285

S4C383

S5C289

關(guān)系模型(1)關(guān)系(Relation) 一個關(guān)系對應一張二維表(2)元組(Tuple) 表格中的一行,如S表中的一個學生記錄即為一個元組。關(guān)系模型(3)屬性(Attribute) 表格中的一列,相當于記錄中的一個字段,如S表中有五個屬性(學號,姓名,性別,年齡,系別)。(4)關(guān)鍵字(Key) 可唯一標識元組的屬性或?qū)傩约卜Q為關(guān)系鍵或主碼,如S表中學號可以唯一確定一個學生,為學生關(guān)系的主碼。(5)域(Domain) 屬性的取值范圍,如年齡的域是(14~40),性別的域是(男,女)。(6)分量 每一行對應的列的屬性值,即元組中的一個屬性值,如學號、姓名、年齡等均是一個分量。關(guān)系模型(7)關(guān)系模式對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,……屬性n),如:學生(學號,姓名,性別,年齡,系別)。在關(guān)系模型中,實體是用關(guān)系來表示的,如:學生(學號,姓名,性別,年齡,系別)課程(課程號,課程名,課時)實體間的關(guān)系也是用關(guān)系來表示的,如:學生和課程之間的關(guān)系選課關(guān)系(學號,課程號,成績)關(guān)系模型關(guān)系模型(8)關(guān)系實例:是關(guān)系模式的“值”,是關(guān)系的數(shù)據(jù),相當于二維表中的數(shù)據(jù)關(guān)系模型2.關(guān)系模型的數(shù)據(jù)操縱與完整性約束數(shù)據(jù)操縱主要包括查詢、插入、刪除和修改數(shù)據(jù),這些操作必須滿足關(guān)系的完整性約束條件,即實體完整性、參照完整性和用戶定義的完整性。關(guān)系模型3、關(guān)系模型的優(yōu)缺點關(guān)系模型的優(yōu)點主要有:(1)與非關(guān)系模型不同,它有較強的數(shù)學理論根據(jù)。(2)數(shù)據(jù)結(jié)構(gòu)簡單、清晰,用戶易懂易用,不僅用關(guān)系描述實體,而且用關(guān)系描述實體間的聯(lián)系。(3)關(guān)系模型的存取路徑對用戶透明,從而具有更高的數(shù)據(jù)獨立性、更好的安全保密性,也簡化了程序員的工作和數(shù)據(jù)庫建立和開發(fā)的工作。關(guān)系模型3、關(guān)系模型的優(yōu)缺點關(guān)系模型的缺點主要有:由于存取路徑對用戶透明,查詢效率往往不如非關(guān)系模型,因此,為了提高性能,必須對用戶的查詢表示進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的負擔。第二章關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫是支持關(guān)系模型的數(shù)據(jù)庫系統(tǒng)。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.2關(guān)系的鍵與關(guān)系的完整性2.3關(guān)系代數(shù)2.4關(guān)系演算2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)是關(guān)系。實體以及實體之間的聯(lián)系都由關(guān)系來表示。2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.1.1關(guān)系的形式化定義以及有關(guān)概念2.1.2關(guān)系的性質(zhì)2.1.3關(guān)系模式2.1.4關(guān)系數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫模式2.1.1關(guān)系的形式化定義以及有關(guān)概念1、域(Domain)域是一組具有相同數(shù)據(jù)類型的值的集合,又稱為值域。(用D表示)域中所包含的值的個數(shù)稱為域的基數(shù)(用m表示)。關(guān)系中用域表示屬性的取值范圍。域名無排列次序。 例如:D1={李力,王平,劉偉} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 2.1.1關(guān)系的形式化定義以及有關(guān)概念1、域(Domain)D1={李力,王平,劉偉} m1=3 D2={男,女} m2=2 D3={47,28,30} m3=3 2.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct)

給定一組域D1,D2,…,Dn(它們可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,…,Dn的笛卡爾積為D1×D2×……×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}。2.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct)

其中:1.元素中的每一個di叫做一個分量(Component),來自相應的域(di∈Di)2.每一個元素(d1,d2,d3,…,dn)叫做一個n元組(n-tuple),簡稱元組(Tuple)。2.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct) 3.若Di(i=1,2,……n)為有限集,Di中的集合元素個數(shù)稱為Di的基數(shù),用mi(i=1,2,……n)表示,則笛卡爾積D1×D2×……×Dn的基數(shù)M(即元素(d1,d2,……dn)的個數(shù))為所有域的基數(shù)的累乘之積,即

M=2.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct)

例如:上述表示教師關(guān)系中姓名、性別兩個域的笛卡爾積為:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(劉偉,男),(劉偉,女)}其中:李力、王平、劉偉、男、女都是分量(李力,男),(李力,女)等是元組其基數(shù)M=m1×m2=3*2=6元組的個數(shù)為62.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct) 4.笛卡爾積可用二維表的形式表示表2.1D1和D2的笛卡爾積姓名性別李力男李力女王平男王平女劉偉男劉偉女2.1.1關(guān)系的形式化定義以及有關(guān)概念2、

笛卡爾積(CartesianProduct)

笛卡爾積實際是一個二維表,表的框架由域構(gòu)成,表的任意一行就是一個元組,表中的每一列來自同一域,如第一個分量來自D1,第二個分量來自D2。2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

笛卡爾積D1×D2×…×Dn的任一子集稱為定義在域D1,D2,…Dn上的n元關(guān)系(Relation),可用R(D1,D2……Dn)表示。

如上例D1×D2笛卡爾積的子集可以構(gòu)成教師關(guān)系T1,如下表:2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

姓名性別李力男王平女劉偉男姓名性別李力男李力女王平男王平女劉偉男劉偉女2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

1)

R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當n=1時,稱為單元關(guān)系。當n=2時,稱為二元關(guān)系。…當n=n時,稱為n元關(guān)系。2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

1)

R為關(guān)系名,n稱為關(guān)系的目或度(Degree)。當n=1時,稱為單元關(guān)系。當n=2時,稱為二元關(guān)系?!攏=n時,稱為n元關(guān)系。2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

2)該子集中的元素是關(guān)系中的元組,用r表示,關(guān)系中元組個數(shù)是關(guān)系的基數(shù)。如(李力,男),(王平,女),(劉偉,男)為三個元組,關(guān)系T的基數(shù)為3。2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

3)可以把關(guān)系看成一個二維表。其中,(1)表的框架由域Di(i=1,2,……n)構(gòu)成;(2)表的任意一行對應一個元組;(3)表的每一列來自同一域;(4)域可以相同,為了加以區(qū)別,每列起一個名字,稱為屬性,n目關(guān)系有n個屬性,屬性的名字唯一,屬性的取值范圍Di(i=1,2,…,n)稱為值域;2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

3)可以把關(guān)系看成一個二維表。其中,(5)具有相同關(guān)系框架的關(guān)系成為同類關(guān)系。姓名性別張雪女張?zhí)m女姓名性別李力男王平女劉偉男2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

4)數(shù)學上關(guān)系是笛卡爾積的任意子集,但在實際應用中關(guān)系是笛卡爾積中所取的有意義的子集。姓名性別李力男李力女姓名性別李力男李力女王平男王平女劉偉男劉偉女2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

在關(guān)系模型中,關(guān)系可進一步定義為:定義在域D1,D2,……Dn(不要求完全相異)上的關(guān)系由關(guān)系頭(Heading)和關(guān)系體(Body)組成。關(guān)系頭:由屬性名A1,A2,…,An的集合組成,每個屬性Ai正好對應一個域Di(i=1,2,…,n),關(guān)系頭,也稱關(guān)系框架,相對固定,是關(guān)系的數(shù)據(jù)結(jié)構(gòu)的描述。關(guān)系體:是指關(guān)系結(jié)構(gòu)中的內(nèi)容或者數(shù)據(jù),并非固定不變,它隨元組的建立、刪除或修改而變化。2.1.1關(guān)系的形式化定義以及有關(guān)概念3、

關(guān)系(Relation)

姓名性別李力男王平女劉偉男2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.1.1關(guān)系的形式化定義以及有關(guān)概念2.1.2關(guān)系的性質(zhì)2.1.3關(guān)系模式2.1.4關(guān)系數(shù)據(jù)庫與關(guān)系數(shù)據(jù)庫模式2.1.2關(guān)系的性質(zhì)盡管關(guān)系與二維表格、傳統(tǒng)的數(shù)據(jù)文件是非常類似的,但它們之間又有重要的區(qū)別。

嚴格地說,關(guān)系是種規(guī)范化了的二維表中行的集合,為了使相應的數(shù)據(jù)操作簡化,在關(guān)系模型中,對關(guān)系作了種種限制,關(guān)系具有如下特性:2.1.2關(guān)系的性質(zhì)關(guān)系中不允許出現(xiàn)相同的元組。 因為數(shù)學上集合中沒有相同的元素,而關(guān)系是元組的集合,所以作為集合元素的元組應該是唯一的。2.1.2關(guān)系的性質(zhì)2.關(guān)系中元組的順序(即行序)是無關(guān)緊要的,在一個關(guān)系中可以任意交換兩行的次序。

因為集合中的元素是無序的,所以作為集合元素的元組也是無序的。根據(jù)關(guān)系的這個性質(zhì),可以改變元組的順序使其具有某種排序,然后按照順序查詢數(shù)據(jù),可以提高查詢速度。2.1.2關(guān)系的性質(zhì)3.關(guān)系中屬性的順序是無關(guān)緊要的,即列的順序可以任意交換。 交換時,應連同屬性名一起交換,否則將得到不同的關(guān)系。性別姓名男李力女王平男劉偉姓名性別李力男王平女劉偉男2.1.2關(guān)系的性質(zhì)4.同一屬性名下的各個屬性值必須來自同一個域,是同一類型的數(shù)據(jù)。5.關(guān)系中各個屬性必須有不同的名字,不同的屬性可來自同一個域,即它們的分量可以取自同一個域。2.1.2關(guān)系的性質(zhì)6.關(guān)系中每一分量必須是不可分的數(shù)據(jù)項。 或者說所有屬性值都是原子的,即是一個確定的值,而不是值的集合。屬性值可以為空值,表示“未知”或“不可使用”,即不可“表中有表”。滿足此條件的關(guān)系稱為規(guī)范化關(guān)系,否則稱為非規(guī)范化關(guān)系。

2.1.2關(guān)系的性質(zhì)6.關(guān)系中每一分量必須是不可分的數(shù)據(jù)項。

姓名籍貫

姓名省市/縣省市/縣

張強吉林長春

張強吉林長春王麗山西大同

王麗山西大同第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.2關(guān)系的鍵與關(guān)系的完整性2.3關(guān)系代數(shù)2.4關(guān)系演算2.2關(guān)系的鍵與關(guān)系的完整性2.2.1候選鍵與主關(guān)系鍵2.2.2外部關(guān)系鍵2.2.3關(guān)系的完整性2.2.1候選鍵與主關(guān)系鍵1.候選鍵(CandidateKey)

能唯一標識關(guān)系中元組的屬性或?qū)傩约瑒t稱該屬性或?qū)傩约癁楹蜻x鍵(CandidateKey),也稱候選關(guān)鍵字或候選碼。2.2.1候選鍵與主關(guān)系鍵1.候選鍵(CandidateKey)

設關(guān)系R有屬性A1,A2,……An,其屬性集K=(Ai,Aj,……Ak),當且僅當滿足下列條件時,K被稱為候選鍵:2.2.1候選鍵與主關(guān)系鍵1.候選鍵(CandidateKey)唯一性(Uniqueness):關(guān)系R的任意兩個不同元組,其屬性集K的值是不同的。最小性(Minimally):組成關(guān)系鍵的屬性集(Ai,Aj,……Ak)中,任一屬性都不能從屬性集K中刪掉,否則將破壞唯一性的性質(zhì)。2.2.1候選鍵與主關(guān)系鍵2.主關(guān)系鍵(PrimaryKey)

如果一個關(guān)系中有多個候選鍵,可以從中選擇一個作為查詢、插入或刪除元組的操作變量,被選用的候選鍵稱為主關(guān)系鍵(PrimaryKey),或簡稱為主鍵、主碼、關(guān)系鍵、關(guān)鍵字。2.2.1候選鍵與主關(guān)系鍵2.主關(guān)系鍵(PrimaryKey)

每個關(guān)系必需選擇一個主關(guān)系鍵,選定以后,不能隨意改變。每個關(guān)系必定有且僅有一個主關(guān)系鍵,因為關(guān)系的元組無重復,至少關(guān)系的所有屬性的組合可作為主關(guān)系鍵,通常用較小的屬性組合作為主關(guān)系鍵。2.2.1候選鍵與主關(guān)系鍵3.主屬性與非碼屬性主屬性(PrimeAttribute):包含在主碼中的的各屬性稱為主屬性。非碼屬性(Non-PrimeAttribute):不包含在任何候選碼中的屬性稱為非碼屬性。2.2.1候選鍵與主關(guān)系鍵3.主屬性與非碼屬性在最簡單的情況下,一個候選碼只包含一個屬性;在最極終端的情況下,所有屬性的組合是關(guān)系的候選碼,這時稱為全碼(all-key)。2.2關(guān)系的鍵與關(guān)系的完整性2.2.1候選鍵與主關(guān)系鍵2.2.2外部關(guān)系鍵2.2.3關(guān)系的完整性2.2.2外部關(guān)系鍵如果關(guān)系R2的一個或一組屬性X不是R2的主碼,而是另一關(guān)系R1的主碼,則該屬性或?qū)傩越MX稱為關(guān)系R2的外部關(guān)系鍵或外碼(Foreignkey)。關(guān)系R2為參照關(guān)系(referencingrelation),關(guān)系R1為被參照關(guān)系(referencedrelation)。被參照關(guān)系的主碼和參照關(guān)系的外碼必須定義在同一個域上。2.2.2外部關(guān)系鍵TNO教師號CNO課程號T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C7TNTNOPROF李力T1教授王平T2講師劉偉T3講師張雪T4教授張?zhí)mT5副教授2.2關(guān)系的鍵與關(guān)系的完整性2.2.1候選鍵與主關(guān)系鍵2.2.2外部關(guān)系鍵2.2.3關(guān)系的完整性2.2.3關(guān)系的完整性為了維護數(shù)據(jù)庫中數(shù)據(jù)與現(xiàn)實世界的一致性,對關(guān)系數(shù)據(jù)庫的插入、刪除和修改操作必須有一定的約束條件,這就是關(guān)系模型的三類完整性:實體完整性參照完整性用戶自定義的完整性實體完整性實體完整性是指主關(guān)系鍵的值不能為空或部分為空。關(guān)系模型中的一個元組對應一個實體,一個關(guān)系則對應一個實體集?,F(xiàn)實世界中的實體是可區(qū)分的,即它們具有某種唯一性標識。與此相對應,關(guān)系模型中以主關(guān)系鍵來唯一標識元組。實體完整性如果主關(guān)系鍵中的值為空或部分為空,即主屬性為空,則不符合關(guān)系鍵的定義條件,不能唯一標識元組及與其相對應的實體。這就說明存在不可區(qū)分的實體,從而與現(xiàn)實世界中的實體是可以區(qū)分的事實相矛盾。因此主關(guān)系鍵的值不能為空或部分為空。參照完整性如果關(guān)系R2的外部關(guān)系鍵X與關(guān)系R1的主關(guān)系鍵相符,則X的每個值或者等于R1中主關(guān)系鍵的某一個值,或者取空值。2.2.2外部關(guān)系鍵TNO教師號CNO課程號T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C7TNTNOPROF李力T1教授王平T2講師劉偉T3講師張雪T4教授張?zhí)mT5副教授參照完整性SNO學號SN姓名SEX性別AGE年齡DEPT所在系

DEPT所在系A(chǔ)DDR地址S1趙亦女17計算機

計算機1號樓S2錢爾男18信息

信息1號樓…

自動化2號樓S11王威男19

S(學生關(guān)系)D(系別關(guān)系)參照完整性實體完整性和參照完整性是關(guān)系模型必須滿足的完整性約束條件,被稱作關(guān)系的兩個不變性。任何關(guān)系數(shù)據(jù)庫系統(tǒng)都應該支持這兩類完整性。除此之外,不同的關(guān)系數(shù)據(jù)庫系統(tǒng)由于應用環(huán)境的不同,往往還需要一些特殊的約束條件,這就是用戶定義完整性。用戶自定義完整性用戶定義完整性是針對某一具體關(guān)系數(shù)據(jù)庫的約束條件。它反映某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。第二章關(guān)系數(shù)據(jù)庫2.1關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)及其形式化定義2.2關(guān)系的鍵與關(guān)系的完整性2.3關(guān)系代數(shù)2.4關(guān)系演算2.3

關(guān)系代數(shù)關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作和關(guān)系完整性約束三部分組成;關(guān)系操作包括查詢操作和更新操作;關(guān)系操作采用集合操作方式,操作的對象和結(jié)果都是集合,也稱為一次一集合。2.3

關(guān)系代數(shù)關(guān)系代數(shù):用關(guān)系的運算來表達查詢要求;關(guān)系演算:用謂詞來表達查詢要求元組關(guān)系演算:謂詞變元的基本對象是元組變量域關(guān)系演算:謂詞變元的基本對象是元組變量2.3

關(guān)系代數(shù)關(guān)系代數(shù):用關(guān)系的運算來表達查詢要求;關(guān)系演算:用謂詞來表達查詢要求元組關(guān)系演算:謂詞變元的基本對象是元組變量域關(guān)系演算:謂詞變元的基本對象是元組變量2.3

關(guān)系代數(shù)傳統(tǒng)的集合運算:將關(guān)系看作元組的集合;專門集合運算:涉及行運算和列運算傳統(tǒng)的集合運算傳統(tǒng)的集合運算:將關(guān)系看作元組的集合;專門集合運算:涉及行運算和列運算傳統(tǒng)的集合運算定義2.8設給定兩個關(guān)系R、S,若滿足:(1)

具有相同的度n;(2)

R中第i個屬性和S中第i個屬性必須來自同一個域。則說關(guān)系R、S是相容的。除笛卡爾積外,要求參加運算的關(guān)系必須滿足上述的相容性定義。傳統(tǒng)的集合運算ABCABCa1b1c1a1b1c1a1b1c2a2b2c1a2b2c1a2b3c2RS1.并(Union)關(guān)系R和關(guān)系S的并由屬于R或?qū)儆赟的元組組成,即R和S的所有元組合并,刪去重復元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R∪S={t|t∈R∨t∈S}對于關(guān)系數(shù)據(jù)庫,記錄的插入和添加可通過并運算實現(xiàn)。1.并(Union)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c1a2b2c1a2b3c2a1b1c2R∪S2.差(Difference)關(guān)系R與關(guān)系S的差由屬于R而不屬于S的所有元組組成,即R中刪去與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R-S={t|t∈R∧┐t∈S}通過差運算,可實現(xiàn)關(guān)系數(shù)據(jù)庫記錄的刪除。2.差(Difference)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c2R-S3.交(Intersection)關(guān)系R與關(guān)系S的交由既屬于R又屬于S的元組組成,即R與S中相同的元組,組成一個新關(guān)系,其結(jié)果仍為n目關(guān)系。記作:

R∩S={t|t∈Rt∈S}如果兩個關(guān)系沒有相同的元組,那么它們的交為空。3.交(Intersection)兩個關(guān)系的并和差運算為基本運算(即不能用其他運算表達的運算)而交運算為非基本運算,交運算可以用差運算來表示:

R∩S=R-(R-S)3.交(Intersection)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSABCa1b1c2R∩

Sa2b2c14.廣義笛卡爾積(ExtendedCartesianProduct)兩個分別為n目和m目關(guān)系R和S的廣義笛卡爾積是一個(n+m)列的元組的集合元組的前n列是關(guān)系R的一個元組,后m列是關(guān)系S的一個元組若R有k1個元組,S有k2個元組,則關(guān)系R和關(guān)系S的廣義笛卡爾積有k1*k2個元組,記作

R×S={tr⌒ts|tr∈R,∧ts∈S}4.廣義笛卡爾積(ExtendedCartesianProduct)ABCa1b1c1a1b1c2a2b2c1ABCa1b1c1a2b2c1a2b3c2RSR×

SABCABCa1b1c1a1b1c1a1b1c1a2b2c1a1b1c1a2b3c2a1b1c2a1b1c1a1b1c2a2b2c1a1b1c2a2b3c2a2b2c1a1b1c1a2b2c1a2b2c1a2b2c1a2b3c2專門集合運算由于傳統(tǒng)的集合運算,只是從行的角度進行,而要靈活地實現(xiàn)關(guān)系數(shù)據(jù)庫多樣的查詢操作,必須引入專門的關(guān)系運算。在講專門的關(guān)系運算之前,為敘述上的方便先引入幾個概念。專門集合運算設關(guān)系模式為R(A1,A2,……An),它的一個關(guān)系為R,t∈R表示t是R的一個元組,t[Ai]則表示元組t中相應于屬性Ai的一個分量。專門集合運算若A={Ai1,Ai2,……,Aik},其中Ai1,Ai2,……,Aik是A1,A2,……,An中的一部分,則A稱為屬性列或域列,?則表示{A1,A2,……,An}中去掉{Ai1,Ai2,……,Aik}后剩余的屬性組。t[A]={t[Ai1],t[Ai2],……,t[Aik]}表示元組t在屬性列A上諸分量的集合。專門集合運算R為n目關(guān)系,S為m目關(guān)系,tr∈R,ts∈S,trts稱為元組的連接(concatenation),它是一個n+m列的元組,前n個分量為R的一個n元組,后m個分量為S中的一個m元組。專門集合運算給定一個關(guān)系R(X,Z),X和Z為屬性組,定義當t[X]=x時,x在R中的象集(imageset),為Zx={t[Z]|t∈R,t[X]=x},它表示R中的屬性組X上值為x的諸元組在Z上分量的集合。1、選?。⊿election)選取運算是單目運算,是根據(jù)一定的條件在給定的關(guān)系R中選取若干個元組,組成一個新關(guān)系,記作:σF(R)={t|t∈R∧F(t)為真}其中:1、選?。⊿election)σ為選取運算符F為選取的條件,它由運算對象(屬性名、常數(shù)、簡單函數(shù))、算術(shù)比較運算符(>,≥,<,≤,=,≠)和邏輯運算符(∨∧┐)連接起來的邏輯表達式,結(jié)果為邏輯值“真”或“假”。1、選取(Selection)選取運算實際上是從關(guān)系R中選取使邏輯表達式為真的元組,是從行的角度進行的運算。例1查詢計算機系的全體學生:σDEPT=’計算機’(S)或σ5=’計算機’(S)(其中5為DEPT的屬性序號)S(學生關(guān)系)SNO學號SN姓名SEX性別AGE年齡DEPT系別S1趙亦女17計算機S2錢爾男18信息S3孫珊女20信息S4李思男21自動化S5周武男19計算機S6吳麗女20自動化1、選取(Selection)SNOSNSEXAGEDEPTS1趙亦女17計算機S5周武男19計算機σDEPT=’計算機’(S)例2查詢工資高于1000元的男教師。σ(SAL>1000)∧(SEX=’男’)(T)T(教師關(guān)系)TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計算機T2王平女28講師8001200信息T3劉偉男30講師9001200計算機T4張雪女51教授16003000自動化T5張?zhí)m女39副教授13002000信息1、選?。⊿election)TNOTNSEXAGEPROFSALCOMMDEPTT1李力男47教授15003000計算機2.投影(Projection)投影運算也是單目運算,關(guān)系R上的投影是從R中選擇出若干屬性列,組成新的關(guān)系,即對關(guān)系在垂直方向進行的運算,從左到右按照指定的若干屬性及順序取出相應列,刪去重復元組。記作:ΠA(R)={t[A]|t∈R}2.投影(Projection)其中:A為R中的屬性列Π為投影運算符。2.投影(Projection)從其定義可看出,投影運算是從列的角度進行的運算,這正是選取運算和投影運算的區(qū)別所在。選取運算是從關(guān)系的水平方向上進行運算的,而投影運算則是從關(guān)系的垂直方向上進行的。2.投影(Projection)例查詢教師的姓名及其職稱。ΠTN,TNO,PROF(T)或Π2,1,5(T)(其中2,1,5分別為TN、TNO和PROF的屬性序號)T(教師關(guān)系)TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計算機T2王平女28講師8001200信息T3劉偉男30講師9001200計算機T4張雪女51教授16003000自動化T5張?zhí)m女39副教授13002000信息2.投影(Projection)TNTNOPROF李力T1教授王平T2講師劉偉T3講師張雪T4教授張?zhí)mT5副教授投影運算可以改變關(guān)系的屬性次序2.投影(Projection)例2.7查詢教師關(guān)系中有哪些系。ΠDEPT(T)T(教師關(guān)系)TNO教師號TN姓名SEX性別AGE年齡PROF職稱SAL工資COMM崗位津貼DEPT系別T1李力男47教授15003000計算機T2王平女28講師8001200信息T3劉偉男30講師9001200計算機T4張雪女51教授16003000自動化T5張?zhí)m女39副教授13002000信息2.投影(Projection)投影后取消了某些屬性列后,就可能出現(xiàn)重復行,應該取消這些完全相同的行。投影之后,不但減少了屬性,元組也可能減少,新關(guān)系與原關(guān)系不相容。DEPT計算機信息自動化2.投影(Projection)例查詢講授C5課程的教師號ΠTNO(σCNO=’C5’(TC))TC(授課關(guān)系)TNO教師號CNO課程號T1C1T1C4T2C5T3C1T3C5T4C2T4C3T5C5T5C72.投影(Projection)結(jié)果為:選取運算和投影運算相結(jié)合,先在授課表中選取滿足條件的元組,再于TNO屬性上進行投影。TNOT2T3T5TNOCNOT2C5T3C5T5C53.連接(Join)連接運算是二目運算,是從兩個關(guān)系的笛卡爾積中選取滿足連接條件的元組,組成新的關(guān)系。設關(guān)系R(A1,A2,……An)及S(B1,B2,……Bm),連接屬性集X包含于{A1,A2,……An},及Y包含于{B1,B2,……Bm}3.連接(Join)X與Y中屬性列數(shù)目相等,且相對應屬性有共同的域。若Z={A1,A2……An}/X(/X:去掉X之外的屬性)及W={B1,B2……Bm}/Y,則R及S可表示為R(Z,X),S(W,Y);3.連接(Join)關(guān)系R和S在連接屬性X和Y上的連接,就是以R×S笛卡爾積中,選取X屬性列上的分量與Y屬性列上的分量滿足給定θ比較條件的那些元組在R×S上選取在連接屬性X,Y上滿足θ條件的子集,組成新的關(guān)系新關(guān)系的度為n+m。3.連接(Join)記作:R∞S={tr⌒ts

|tr∈R∧ts∈S∧

tr[X]θts[Y]為真}其中,∞是連接運算符,θ為算術(shù)比較運算符,也稱θ連接;XθY3.連接(Join)XθY為連接條件;θ為“=”時,稱為等值連接;θ為“<”時,稱為小于連接;θ為“>”時,稱為大于連接。連接運算為非基本運算,可以用選取運算和廣義笛卡爾積運算來表示:R∞S=σxθy(R×S)3.連接(Join)ABCa1b12a1b24a2b36a2b48BDb15b26b37b38

RS大于連接(C>D)AR.BCS.BDa2b36b15a2b48b15a2b48b26a2b48b37等值連接(C=D)BDb15b26b37b38ABCa1b12a1b24a2b36a2b48

RSAR.BCS.BDa2b36b26a2b48b383.

溫馨提示

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

最新文檔

評論

0/150

提交評論