數(shù)據(jù)庫原理及應(yīng)用整套課件全書ppt完整版課件最全教程教程整本書電子講義_第1頁
數(shù)據(jù)庫原理及應(yīng)用整套課件全書ppt完整版課件最全教程教程整本書電子講義_第2頁
數(shù)據(jù)庫原理及應(yīng)用整套課件全書ppt完整版課件最全教程教程整本書電子講義_第3頁
數(shù)據(jù)庫原理及應(yīng)用整套課件全書ppt完整版課件最全教程教程整本書電子講義_第4頁
數(shù)據(jù)庫原理及應(yīng)用整套課件全書ppt完整版課件最全教程教程整本書電子講義_第5頁
已閱讀5頁,還剩596頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù) 據(jù) 庫 原 理 及 應(yīng) 用(SQL Server 2005)授課教師:*2022年7月11日第1章數(shù)據(jù)庫概述第1章數(shù)據(jù)庫概述任務(wù)目標(biāo):熟悉數(shù)據(jù)管理技術(shù)的基本概念;掌握數(shù)據(jù)庫系統(tǒng)的構(gòu)成、體系結(jié)構(gòu);掌握數(shù)據(jù)模型的三要素、分類;理解概念模型及其表示方法。第1章數(shù)據(jù)庫概述1.1 數(shù)據(jù)管理技術(shù)基本概念1.2 數(shù)據(jù)庫系統(tǒng)1.3 數(shù)據(jù)模型習(xí)題1.1 數(shù)據(jù)管理技術(shù)的基本概念1.1.1 信息與數(shù)據(jù)姓名:張三年齡:17 性別:男身高:1.67 m體重:50 kg客觀事物 數(shù)據(jù)表達(dá)數(shù)據(jù)表達(dá)信息(Information)1.1 基本概念1.1.1 信息與數(shù)據(jù)數(shù)據(jù)(Data) :是對客觀事物及其活動(dòng)的抽象符號(hào)表示;

2、存儲(chǔ)在某一種媒體上可以鑒別的符號(hào)資料;表示形式多樣,可以是數(shù)據(jù)、文本、圖形、聲音等。信息(Information)是經(jīng)過加工處理后具有一定含義的數(shù)據(jù)集合 ;以某種特定數(shù)據(jù)形式表現(xiàn)。數(shù)據(jù)處理(Data Processing)將數(shù)據(jù)轉(zhuǎn)換成信息的過程稱為數(shù)據(jù)處理;對數(shù)據(jù)進(jìn)行收集、儲(chǔ)存、分類、加工等活動(dòng);目的:從數(shù)據(jù)出發(fā),推導(dǎo)、抽取有價(jià)值的信息。1.1 基本概念 數(shù)據(jù)管理是指對數(shù)據(jù)進(jìn)行收集、分類、組織、編碼、存儲(chǔ)、檢索和維護(hù)等,數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)3個(gè)階段,目前正在向著網(wǎng)絡(luò)化、智能化和集成化的方向發(fā)展。 數(shù)據(jù)管理技術(shù)發(fā)展三階段: 1人工管理階段 2文件系統(tǒng)階段 3數(shù)據(jù)

3、庫系統(tǒng)階段1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.1 基本概念數(shù)據(jù)庫系統(tǒng)階段特點(diǎn)如下:數(shù)據(jù)管理者:數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)面向的對象:整個(gè)應(yīng)用系統(tǒng)。數(shù)據(jù)的共享程度:共享性良好,冗余度小。數(shù)據(jù)的獨(dú)立性:獨(dú)立性良好,具備高度的邏輯獨(dú)立性和物理獨(dú)立性。數(shù)據(jù)的結(jié)構(gòu)化:單條記錄內(nèi)部有結(jié)構(gòu),并使用數(shù)據(jù)模型描述,整體上有結(jié)構(gòu)。數(shù)據(jù)控制能力:由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)安全性、完整性等數(shù)據(jù)控制。 1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.2 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS)是指引進(jìn)了數(shù)據(jù)庫技術(shù)后的計(jì)算機(jī)系統(tǒng),它能夠有組織地、動(dòng)態(tài)地存儲(chǔ)大量數(shù)據(jù),提供數(shù)據(jù)處理和數(shù)據(jù)共享機(jī)制。 數(shù)據(jù)庫系統(tǒng)是一個(gè)復(fù)雜的系統(tǒng)

4、,一般情況下由硬件系統(tǒng)、軟件系統(tǒng)、數(shù)據(jù)庫和用戶組成。 1.1.2 數(shù)據(jù)庫系統(tǒng)構(gòu)成1.2 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫系統(tǒng)的基本組成主要有以下幾項(xiàng):(1)系統(tǒng)硬件(HW,Hard Ware)(2)操作系統(tǒng)(OS,Operating System)(3)數(shù)據(jù)庫(DB,DateBase)(4)數(shù)據(jù)庫管理系統(tǒng) (DBMS,DateBase Management System)(5)數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)軟件(DT,Development Tools)(6)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS,DateBase Application System)(7)用戶(User)1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.2 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管

5、理系統(tǒng)(DataBase Management System,DBMS)是處理數(shù)據(jù)訪問的軟件系統(tǒng),是位于用戶與操作系統(tǒng)之間的一層對數(shù)據(jù)庫進(jìn)行管理的軟件。數(shù)據(jù)庫在建立、運(yùn)行和維護(hù)時(shí)由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。 數(shù)據(jù)庫管理系統(tǒng)的功能主要包括: 數(shù)據(jù)定義:數(shù)據(jù)庫提供數(shù)據(jù)定義語言(DDL,Date Definition Language)對數(shù)據(jù)庫進(jìn)行定義。 數(shù)據(jù)操縱:數(shù)據(jù)庫提供數(shù)據(jù)操作語言(DML,Date Manipulation Lauguage)對數(shù)據(jù)進(jìn)行具體操作。 數(shù)據(jù)庫的運(yùn)行管理:數(shù)據(jù)庫提供數(shù)據(jù)控制語言(DCL,Date Control Language)對數(shù)據(jù)進(jìn)行完整性控制、安全性

6、控制、數(shù)據(jù)庫恢復(fù)、數(shù)據(jù)庫維護(hù)和數(shù)據(jù)庫的并發(fā)控制等。 數(shù)據(jù)字典:數(shù)據(jù)庫的邏輯結(jié)構(gòu)、物理存儲(chǔ)結(jié)構(gòu)和完整性約束均保存在數(shù)據(jù)字典(DD,Date Dictionary)中。 數(shù)據(jù)通信接口:數(shù)據(jù)庫管理系統(tǒng)需要提供與其他軟件系統(tǒng)進(jìn)行通信的功能。例如提供與其他數(shù)據(jù)庫管理系統(tǒng)的接口,從而能夠?qū)?shù)據(jù)轉(zhuǎn)換為另一個(gè)數(shù)據(jù)庫管理系統(tǒng)能夠接受的格式,或者接收其他數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)。 常見的數(shù)據(jù)庫管理系統(tǒng)有Qracle、SQL Server、Sybase、MYSQL、DB2、Access等。1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.2 數(shù)據(jù)庫系統(tǒng) 根據(jù)數(shù)據(jù)庫從建設(shè)到運(yùn)行的整個(gè)過程中不同崗位的工作性質(zhì),可以將其用戶分為兩個(gè)大類:開

7、發(fā)類用戶和應(yīng)用類用戶。1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展數(shù)據(jù)庫分析員開發(fā)類用戶應(yīng)用程序員數(shù)據(jù)庫管理員終端用戶應(yīng)用類用戶數(shù)據(jù)庫用戶分類1.2 數(shù)據(jù)庫系統(tǒng) 1單機(jī)數(shù)據(jù)庫系統(tǒng) 整個(gè)數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)信息,都安裝在一臺(tái)計(jì)算機(jī)上,這類系統(tǒng)系統(tǒng)結(jié)構(gòu)簡捷,系統(tǒng)運(yùn)行速度快,但不同機(jī)器之間不能進(jìn)行數(shù)據(jù)共享,安全性較差,只適用于小型用戶使用。 2主從結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)應(yīng)用終端(應(yīng)用程序)主 機(jī)(DBMS、DB)發(fā)送請求響應(yīng)請求主從結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)1.2 數(shù)據(jù)庫系統(tǒng) 3分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個(gè)整體,但物理地分布在整個(gè)數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)下的

8、不同結(jié)點(diǎn)上。網(wǎng)絡(luò)中的每個(gè)結(jié)點(diǎn)都可以獨(dú)立處理本地?cái)?shù)據(jù)庫中的數(shù)據(jù);同時(shí)也可以同時(shí)存取和處理網(wǎng)絡(luò)上的多個(gè)異地?cái)?shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全網(wǎng)的數(shù)據(jù)庫應(yīng)用。 4客戶服務(wù)器(C/S,Client/Server)結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 該結(jié)構(gòu)下的數(shù)據(jù)庫系統(tǒng)顯著減少了網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了系統(tǒng)的性能、吞吐量和負(fù)載能力。C/S結(jié)構(gòu)分為二層C/S體系結(jié)構(gòu)和三層C/S體系結(jié)構(gòu)。 SQL Server 2005是可用于C/S模式的數(shù)據(jù)庫管理系統(tǒng)。 5瀏覽器/服務(wù)器(B/S,Browser/Server)結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)1.2 數(shù)據(jù)庫系統(tǒng)1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用端計(jì)算機(jī)操作系統(tǒng)客

9、戶端1計(jì)算機(jī)硬件數(shù)據(jù)庫應(yīng)用端計(jì)算機(jī)操作系統(tǒng)客戶端n計(jì)算機(jī)硬件數(shù)據(jù)庫管理系統(tǒng)計(jì)算機(jī)操作系統(tǒng)計(jì)算機(jī)硬件數(shù)據(jù)庫服務(wù)器端請求響應(yīng)響應(yīng) 二層C/S結(jié)構(gòu)1.2 數(shù)據(jù)庫系統(tǒng)1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)應(yīng)用程序界面計(jì)算機(jī)操作系統(tǒng)客戶端1計(jì)算機(jī)硬件應(yīng)用程序界面計(jì)算機(jī)操作系統(tǒng)客戶端n計(jì)算機(jī)硬件數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫管理系統(tǒng)計(jì)算機(jī)操作系統(tǒng)計(jì)算機(jī)硬件數(shù)據(jù)庫服務(wù)器端請求響應(yīng)響應(yīng)請求響應(yīng) 三層C/S結(jié)構(gòu)1.2 數(shù)據(jù)庫系統(tǒng)1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu) 三層B/S結(jié)構(gòu)瀏覽器計(jì)算機(jī)操作系統(tǒng)客戶端1計(jì)算機(jī)硬件瀏覽器計(jì)算機(jī)操作系統(tǒng)客戶端n計(jì)算機(jī)硬件數(shù)據(jù)庫應(yīng)用程序?yàn)g覽器服務(wù)器數(shù)據(jù)庫管理系統(tǒng)計(jì)算機(jī)操作系統(tǒng)計(jì)算機(jī)硬件數(shù)據(jù)庫

10、服務(wù)器端請求響應(yīng)響應(yīng)請求響應(yīng)1.2 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)將數(shù)據(jù)庫建立為三級(jí)模式結(jié)構(gòu)和二級(jí)存儲(chǔ)映象,這便是數(shù)據(jù)庫的體系結(jié)構(gòu)。1.2.3 數(shù)據(jù)庫的體系結(jié)構(gòu)外部應(yīng)用1外部應(yīng)用2外部應(yīng)用3外部應(yīng)用n外模式1外模式2外模式n模式內(nèi)模式數(shù)據(jù)庫模式/外模式映象模式/內(nèi)模式映象三級(jí)模式結(jié)構(gòu)和二級(jí)存儲(chǔ)映象1.3 數(shù)據(jù)模型 數(shù)據(jù)模型(Data Model)是對數(shù)據(jù)特征的抽象,是嚴(yán)格定義的概念集合。數(shù)據(jù)模型包括數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)部分、數(shù)據(jù)庫數(shù)據(jù)的操作部分和數(shù)據(jù)庫數(shù)據(jù)的約束條件。即數(shù)據(jù)模型所描述的三個(gè)部分: (1)數(shù)據(jù)結(jié)構(gòu) (2)數(shù)據(jù)操作 基本的數(shù)據(jù)操作包括兩大類: 檢索:數(shù)據(jù)查詢 更新:數(shù)據(jù)的插入、刪除和更新等

11、操作 (3)數(shù)據(jù)的完整性約束1.3.1 數(shù)據(jù)模型的三要素1.3 數(shù)據(jù)模型 在實(shí)際數(shù)據(jù)庫應(yīng)用中,為了更為便捷、準(zhǔn)確的描述現(xiàn)實(shí)世界中的數(shù)據(jù),通常依據(jù)不同的應(yīng)用環(huán)境,采用不同的數(shù)據(jù)模型。 數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型: (1)概念數(shù)據(jù)模型 (2)邏輯數(shù)據(jù)模型 (3)物理數(shù)據(jù)模型 如果要將現(xiàn)實(shí)世界中的具體事物抽象和表示為根據(jù)某具體應(yīng)用環(huán)境的、某種數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,那么通常需要首先把現(xiàn)實(shí)世界轉(zhuǎn)換為信息世界(概念模型),再由信息世界轉(zhuǎn)換成數(shù)據(jù)庫管理系統(tǒng)支持的邏輯模型。 1.3.2 數(shù)據(jù)模型分類及關(guān)系1.3 數(shù)據(jù)模型 數(shù)據(jù)模型(Data Model)是對數(shù)據(jù)特征的抽象,是嚴(yán)格定義的概念集

12、合。數(shù)據(jù)模型包括數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)部分、數(shù)據(jù)庫數(shù)據(jù)的操作部分和數(shù)據(jù)庫數(shù)據(jù)的約束條件。即數(shù)據(jù)模型所描述的三個(gè)部分: (1)數(shù)據(jù)結(jié)構(gòu) (2)數(shù)據(jù)操作 基本的數(shù)據(jù)操作包括兩大類: 檢索:數(shù)據(jù)查詢 更新:數(shù)據(jù)的插入、刪除和更新等操作 (3)數(shù)據(jù)的完整性約束1.3.2 數(shù)據(jù)模型分類及關(guān)系1.3 數(shù)據(jù)模型1.3.2 數(shù)據(jù)模型分類及關(guān)系機(jī)器世界關(guān)系數(shù)據(jù)模型信息世界實(shí)體及其聯(lián)系現(xiàn)實(shí)世界客觀事物及其聯(lián)系存 在概念模型邏輯模型 三個(gè)世界模型關(guān)系1.3 數(shù)據(jù)模型 概念模型是對信息世界的建模,是對真實(shí)世界中問題域內(nèi)的事物的描述,它不依賴于某一個(gè)具體數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,但概念模型可以轉(zhuǎn)換為計(jì)算機(jī)上某數(shù)據(jù)庫管理系

13、統(tǒng)支持的特定數(shù)據(jù)模型。 概念模型具備以下特點(diǎn): 能夠方便、直接地表達(dá)應(yīng)用中的各種語義知識(shí)。 簡單、清晰、易于理解,是用戶與數(shù)據(jù)庫設(shè)計(jì)人員之間進(jìn)行交流的媒介。1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 1基本概念 (1) 實(shí)體(Entity) 客觀存在并可相互區(qū)別的事物和活動(dòng)的抽象稱為實(shí)體。實(shí)體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。 例如:一個(gè)員工。 (2) 屬性(Attribute) 實(shí)體和聯(lián)系所具有的特性稱為屬性。一個(gè)實(shí)體可以由若干個(gè)屬性來描述。 例如:員工編號(hào)、員工姓名、員工性別、員工年齡。 (3) 主碼(Key) 能唯一標(biāo)識(shí)實(shí)體的屬性或?qū)傩约Q為碼。 例如:實(shí)體員工中的

14、員工編號(hào)。 (4) 域(Domain) 屬性的取值范圍稱為該屬性的域。 例如:可以為員工編號(hào)設(shè)置一定的取值范圍。1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 (5) 實(shí)體型(Entity Type) 用實(shí)體名及描述它的各屬性名,可以刻畫出全部同質(zhì)實(shí)體的共同特征和性質(zhì),它被稱為實(shí)體型。 (6) 實(shí)體集(Entity Set) 同型實(shí)體的集合稱為實(shí)體集。 (7) 聯(lián)系(Relationship) 實(shí)體集間或一個(gè)實(shí)體集內(nèi)的各實(shí)體之間存在的關(guān)系,現(xiàn)實(shí)世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實(shí)體內(nèi)部的聯(lián)系和實(shí)體之間的聯(lián)系。 聯(lián)系有以下三種: 一對一聯(lián)系(1:1) 一對多聯(lián)系(1:n) 多對

15、多聯(lián)系(m:n) 1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 2概念模型表示方法 聯(lián)系方法(Entity-Relationship Approach) 用這個(gè)方法描述的概念模型稱為實(shí)體聯(lián)系模型,簡稱ER模型。ER模型(Entity-Relationship Model)用E-R圖來描述現(xiàn)實(shí)世界的概念模型,它是一個(gè)面向問題的概念模型。 E-R圖的描述方式很接近人的思維方式,描述過程不設(shè)計(jì)數(shù)據(jù)在數(shù)據(jù)庫中的表示和存取,便于用戶與系統(tǒng)開發(fā)人員之間的交流。 在ER模型中,信息由實(shí)體型、實(shí)體屬性和實(shí)體間的聯(lián)系三種概念單元來表示。 1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型實(shí)體型:用矩形表示,矩

16、形框內(nèi)寫明實(shí)體名。屬性:是實(shí)體的說明,用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體連接起來。 如圖所示,學(xué)生實(shí)體具備學(xué)號(hào)、姓名、性別等屬性。1.3.3 概念模型及其表示方法學(xué) 生學(xué) 號(hào)姓 名性 別學(xué)生實(shí)體屬性 1.3 數(shù)據(jù)模型聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。1.3.3 概念模型及其表示方法課 程課程號(hào)課程名課程類型學(xué) 生學(xué) 號(hào)姓 名性 別選修nm課程與學(xué)生的聯(lián)系 1.3 數(shù)據(jù)模型 聯(lián)系本身也是一種實(shí)體型,可以有屬性。如果一個(gè)聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。學(xué)生與課程具有聯(lián)系選課,課

17、程被學(xué)生選修后,學(xué)生需獲得對應(yīng)課程的成績。因此,選修聯(lián)系具有屬性“成績”。 1.3.3 概念模型及其表示方法課 程課程號(hào)課程名課程類型學(xué) 生學(xué) 號(hào)姓 名性別選修nm成 績聯(lián)系“選修”的屬性“成績” 第1章數(shù)據(jù)庫概述本章小結(jié):數(shù)據(jù)與信息;數(shù)據(jù)庫系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng);數(shù)據(jù)模型及其分類;概念模型及E-R圖的畫法。Thank You!數(shù) 據(jù) 庫 原 理 及 應(yīng) 用(SQL Server 2005)授課教師:*2022年7月11日第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)任務(wù)目標(biāo):了解數(shù)據(jù)模型的分類 ,掌握關(guān)系模型的組成及相關(guān)概念;了解關(guān)系代數(shù)的基礎(chǔ)知識(shí),能運(yùn)用關(guān)系代數(shù)進(jìn)行傳統(tǒng)的集合運(yùn)算和專門的集合運(yùn)算;

18、掌握關(guān)系完整性的相關(guān)知識(shí),能夠?qū)﹃P(guān)系進(jìn)行實(shí)體完整性、參照完整性和用戶定義完整性約束; 掌握關(guān)系規(guī)范化理論,能夠使用1NF、2NF和3NF對關(guān)系進(jìn)行規(guī)范化。第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)2.1 關(guān)系模型的基本概念2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算2.3 關(guān)系的完整性2.4 關(guān)系規(guī)范化理論習(xí)題2.1 關(guān)系模型的基本概念2.1.1 關(guān)系模型 在數(shù)據(jù)庫中,有些數(shù)據(jù)實(shí)體之間存在著某種聯(lián)系,用來描述這些數(shù)據(jù)實(shí)體間關(guān)聯(lián)形式的模型叫做數(shù)據(jù)模型。 在數(shù)據(jù)庫技術(shù)領(lǐng)域中,較為經(jīng)典的數(shù)據(jù)模型有三種,分別是: 層次模型; 網(wǎng)狀模型; 關(guān)系模型,采用二維表結(jié)構(gòu)描述數(shù)據(jù)實(shí)體間的關(guān)聯(lián),以記錄組或數(shù)據(jù)表的形式組織數(shù)據(jù),以便于利用各種地理實(shí)體與屬

19、性之間的關(guān)系進(jìn)行存儲(chǔ)和變換,不分層也無指針,是建立空間數(shù)據(jù)和屬性數(shù)據(jù)之間關(guān)系的一種非常有效的數(shù)據(jù)組織方法。 2.1 關(guān)系模型的基本概念 關(guān)系模型和層次、網(wǎng)狀模型相比,有以下特點(diǎn): 1)數(shù)據(jù)結(jié)構(gòu)簡單(二維表) 2)扎實(shí)的理論基礎(chǔ) 3)關(guān)系運(yùn)算 4)關(guān)系模式的數(shù)據(jù)獨(dú)立性強(qiáng) 關(guān)系模型由三部分組成: 關(guān)系數(shù)據(jù)結(jié)構(gòu); 關(guān)系數(shù)據(jù)操作; 關(guān)系數(shù)據(jù)完整性約束。2.1.1 關(guān)系模型2.1 關(guān)系模型的基本概念 2.1.2 關(guān)系基本概念 在關(guān)系和關(guān)系數(shù)據(jù)庫的學(xué)習(xí)中,需要先學(xué)習(xí)以下術(shù)語和相關(guān)概念。 1.域域是一組具有相同數(shù)據(jù)類型的值的集合。 2.元組關(guān)系中的每個(gè)元素是關(guān)系中的元組,可以用來表示一個(gè)實(shí)體。 3.關(guān)系關(guān)系

20、是一個(gè)規(guī)范化的二維表,表的每一行對應(yīng)一個(gè)元組,表的每一列對應(yīng)一個(gè)域,由于域可以相同,為了加以區(qū)分表中的列,必須對每列起一個(gè)名字,稱為屬性。 2.1 關(guān)系模型的基本概念基本的關(guān)系滿足以下特性:關(guān)系(二維表)中的每一行對應(yīng)一個(gè)元組,即一個(gè)實(shí)體;表的每一列對應(yīng)某個(gè)實(shí)體的一個(gè)屬性。關(guān)系中的元組(實(shí)體)不能完全相同。關(guān)系中的屬性名稱不能重復(fù)。關(guān)系中的元組次序和屬性次序可以互換。關(guān)系中的每個(gè)屬性都是不可再分解的數(shù)據(jù)項(xiàng)。關(guān)系的屬性中必須有一個(gè)是關(guān)鍵字,用來唯一標(biāo)識(shí)一個(gè)實(shí)體。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 例:學(xué)生選課系統(tǒng)中,其概念模型中有學(xué)生實(shí)體、課程實(shí)體以及選課聯(lián)系。 學(xué)號(hào)(stud

21、entID)姓(studentName)性別(Sex)20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強(qiáng)男20100108李國慶男課程號(hào)(courseID)課程名(coursename)課程類別(typename)342101計(jì)算機(jī)基礎(chǔ)專業(yè)課342102數(shù)據(jù)庫應(yīng)用專業(yè)課342103C語言程序設(shè)計(jì)專業(yè)課342104大學(xué)英語基礎(chǔ)課342105高等數(shù)學(xué)基礎(chǔ)課2.1.2 關(guān)系基本概念學(xué)號(hào)(studentID)課程號(hào)(courseID)成績(Grade)20100102342103862010010

22、134210179201001053421028120100107342104902010010834210192201001023421047520100107342105802010010634210170關(guān)系選課 關(guān)系課程 關(guān)系學(xué)生 2.1 關(guān)系模型的基本概念 4.屬性 描述實(shí)體或者聯(lián)系的特性的列名稱為屬性,屬性分為主屬性和非主屬性。 主屬性:主碼的各個(gè)屬性。 非主屬性:除了主屬性之外的屬性。 例如,關(guān)系Student中的studentID、studentName、Sex是關(guān)系Student的屬性。在關(guān)系Student的各屬性中,主屬性有studentID,非主屬性有studentNam

23、e和Sex。 關(guān)系Course中的courseID、coursename、typename是關(guān)系Course的屬性。在關(guān)系Course的各屬性中,主屬性有courseID,非主屬性有coursename和typename。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 5. 屬性值 描述實(shí)體或者聯(lián)系的具體數(shù)據(jù)稱為屬性值。屬性值的取值范圍是域。 例如,關(guān)系Student中的20100101,20100105,張小麗,張國強(qiáng),女,男等都是關(guān)系Student的屬性值。 關(guān)系Course中的342101,342103,C語言程序設(shè)計(jì),數(shù)據(jù)庫應(yīng)用,專業(yè)課,基礎(chǔ)課等都是關(guān)系Course的屬性值。 關(guān)

24、系Student_Course中的20100102,20100108,342104,342101,70,81等都是關(guān)系Student_Course的屬性值。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念6. 關(guān)系型關(guān)系表的所有列標(biāo)題,即所有屬性名。例如,關(guān)系Student的關(guān)系型可表示成為:( studentID, studentName, Sex)關(guān)系Course的關(guān)系型可表示成為:(courseID, coursename, typename)關(guān)系Student_Course的關(guān)系型可表示成為:(studentID, courseID, Grade) 2.1.2 關(guān)系基本概念2.1

25、關(guān)系模型的基本概念 7. 關(guān)鍵字 關(guān)系中用來唯一標(biāo)識(shí)一個(gè)實(shí)體的某個(gè)屬性或?qū)傩越M。每個(gè)關(guān)系只能有一個(gè)關(guān)鍵字,又被稱為主碼或主鍵。 例如,關(guān)系Student中的關(guān)鍵字是studentID屬性。關(guān)系Course中的關(guān)鍵字是courseID屬性。關(guān)系Student_Course中的關(guān)鍵字是studentID和courseID屬性組,原理與關(guān)系Student_Course主屬性的選取一樣。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 8. 外關(guān)鍵字 關(guān)系中用的某個(gè)屬性或?qū)傩越M不是本關(guān)系的關(guān)鍵字,而是另一個(gè)關(guān)系的關(guān)鍵字,又被稱為外碼或外鍵。 例如,關(guān)系Student_Course中的student

26、ID屬性和courseID屬性都是外關(guān)鍵字。在關(guān)系Student和關(guān)系Student_Course中沒有外關(guān)鍵字。 9. 候選碼 候選碼是指可以作為關(guān)鍵字的屬性或?qū)傩越M。候選碼可以有多個(gè),可從候選碼中選取一個(gè)或部分作為關(guān)鍵字。2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念10.關(guān)系模式 用來描述關(guān)系的關(guān)系名稱。 關(guān)系模式通常可以簡記為: 關(guān)系名(屬性名1, 屬性名2, 屬性名n)。 如,學(xué)生關(guān)系模式通??梢院営洖椋?Student(studentID,studentName,Sex) 課程關(guān)系模式通??梢院営洖椋?Course(courseID,coursename,typename) 選

27、課關(guān)系模式通??梢院営洖椋?Student_Course(studentID,courseID,Grade) 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 1. 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫是指在一個(gè)給定的現(xiàn)實(shí)世界應(yīng)用領(lǐng)域中,用于描述實(shí)體及實(shí)體之間聯(lián)系的所有關(guān)系表的集合。 2. 關(guān)系數(shù)據(jù)庫系統(tǒng) 采用關(guān)系數(shù)據(jù)模型構(gòu)造的數(shù)據(jù)庫系統(tǒng),被稱為關(guān)系數(shù)據(jù)庫系統(tǒng)。關(guān)系數(shù)據(jù)庫系統(tǒng)是目前使用最為廣泛的數(shù)據(jù)庫系統(tǒng)。2.1.3 關(guān)系數(shù)據(jù)庫2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 關(guān)系數(shù)據(jù)的運(yùn)算是以關(guān)系代數(shù)為基礎(chǔ)的。關(guān)系代數(shù)是一種抽象的查詢語言,用于對關(guān)系的運(yùn)算來表達(dá)各種操作,其運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果亦為關(guān)系。 關(guān)系代數(shù)用到的運(yùn)

28、算符包括四類: 集合運(yùn)算符(并、差、交、笛卡爾積); 專門的關(guān)系運(yùn)算符(選擇、投影、連接); 算術(shù)比較符(大于、小于、等于、大于等于、小于等于、不等于); 邏輯運(yùn)算符(與、或、非)。2.2.1 關(guān)系代數(shù)2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 比較運(yùn)算符和邏輯運(yùn)算符是用來輔助專門的關(guān)系運(yùn)算符進(jìn)行操作的,所以關(guān)系代數(shù)的運(yùn)算按運(yùn)算符的不同主要分為傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算兩類。 傳統(tǒng)的集合運(yùn)算符運(yùn)算名稱運(yùn)算符號(hào)并差交笛卡兒積2.2.1 關(guān)系代數(shù)專門的關(guān)系運(yùn)算符運(yùn)算名稱運(yùn)算符號(hào)選擇投影連接專門的關(guān)系運(yùn)算符 傳統(tǒng)的集合運(yùn)算符 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 傳統(tǒng)的集合運(yùn)算是二目運(yùn)算。假設(shè)有兩個(gè)關(guān)系R和S,t是元組變

29、量,關(guān)系R為學(xué)習(xí)成績優(yōu)秀的學(xué)生,關(guān)系S為心理素質(zhì)優(yōu)秀的學(xué)生,分別如表2-6和表2-7所示。 學(xué)生姓名學(xué)生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強(qiáng)男李國慶男學(xué)生姓名學(xué)生性別張小麗女王剛男王曉霞女郭鵬男劉翔男2.2.2 傳統(tǒng)的集合運(yùn)算表2-7心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系S 表2-6 學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系R2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 學(xué)生姓名學(xué)生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強(qiáng)男李國慶男王曉霞女2.2.2 傳統(tǒng)的集合運(yùn)算1.并運(yùn)算 任務(wù) 2-1 對以上R和S兩個(gè)關(guān)系進(jìn)行并運(yùn)算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知并運(yùn)算RS表示學(xué)習(xí)成績優(yōu)秀或心理素質(zhì)

30、優(yōu)秀的學(xué)生,可以得到RS的關(guān)系如下表2-8所示。 表2-8 并運(yùn)算后的新關(guān)系2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 2.差運(yùn)算 任務(wù) 2-2 對以上R和S兩個(gè)關(guān)系進(jìn)行差運(yùn)算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知差運(yùn)算R-S表示學(xué)習(xí)成績優(yōu)秀的學(xué)生但心理素質(zhì)沒有達(dá)到優(yōu)秀的學(xué)生,可以得到R-S的關(guān)系如下表2-9所示。學(xué)生姓名學(xué)生性別李平女張國強(qiáng)男李國慶男吳飛男2.2.2 傳統(tǒng)的集合運(yùn)算表2-9 差運(yùn)算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 3.交運(yùn)算 任務(wù) 2-3 對以上R和S兩關(guān)系進(jìn)行交運(yùn)算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知交運(yùn)算RS表示學(xué)習(xí)

31、成績優(yōu)秀同時(shí)心理素質(zhì)也優(yōu)秀的學(xué)生,可以得到RS的關(guān)系如下表2-10所示。 學(xué)生姓名學(xué)生性別張小麗女王剛男劉翔男郭鵬男2.2.2 傳統(tǒng)的集合運(yùn)算表2-10 差運(yùn)算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 4.笛卡兒積運(yùn)算 任務(wù) 2-4 假如在學(xué)生選課系統(tǒng)中,學(xué)生關(guān)系R如表2-11所示,選課關(guān)系S如表2-12所示,對以上R和S兩關(guān)系進(jìn)行交運(yùn)算。 任務(wù)分析:笛卡兒積是關(guān)系的連接,在形成的新關(guān)系中前m個(gè)屬性來自R,后n個(gè)屬性來自S,即新關(guān)系的屬性為m+n;關(guān)系R的元組個(gè)數(shù)為a,關(guān)系S的元組個(gè)數(shù)為b,則新關(guān)系的元組個(gè)數(shù)為ab。2.2.2 傳統(tǒng)的集合運(yùn)算2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算學(xué)號(hào)姓名性別20100101

32、張小麗女20100102王剛男學(xué)號(hào)課程號(hào)成績2010010234210386201001013421017920100105342102812010010734210490學(xué)號(hào)姓名性別學(xué)號(hào)課程號(hào)成績20100101張小麗女201001023421038620100101張小麗女201001013421017920100101張小麗女201001053421028120100101張小麗女201001073421049020100102王剛男201001023421038620100102王剛男201001013421017920100102王剛男201001053421028120100102

33、王剛男20100107342104902.2.2 傳統(tǒng)的集合運(yùn)算表2-13 笛卡兒積RS 表2-11 學(xué)生關(guān)系R 表2-12選課關(guān)系S 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 1選擇運(yùn)算 選擇又稱為限制。它是在關(guān)系R中選擇滿足給定條件的元組。 任務(wù) 2-5 使用選擇運(yùn)算從學(xué)生關(guān)系R中選擇男學(xué)生,學(xué)生關(guān)系R如表2-14所示。 任務(wù)分析:運(yùn)算過程中選擇性別條件為“男”的元組組成新關(guān)系。進(jìn)行過選擇運(yùn)算后的新關(guān)系如表2-15所示。 學(xué)號(hào)姓名性別20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強(qiáng)男2010010

34、8李國慶男學(xué)號(hào)姓名性別20100102王剛男20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強(qiáng)男20100108李國慶男2.2.3 專門的關(guān)系運(yùn)算表2-14 學(xué)生關(guān)系R表2-15 選擇運(yùn)算后新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 2投影運(yùn)算 關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。 任務(wù) 2-6 使用投影運(yùn)算從表2-15所示關(guān)系中運(yùn)算出學(xué)生姓名和性別情況。 任務(wù)分析:運(yùn)算過程中選擇表2-15所示關(guān)系的“姓名”和“性別”情況組成新關(guān)系。進(jìn)行過投影運(yùn)算后的新關(guān)系如表2-16所示。 姓名性別王剛男郭鵬男劉翔男吳飛男張國強(qiáng)男李國慶男2.2.3 專門的關(guān)系運(yùn)

35、算表2-16 選擇運(yùn)算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算 3連接運(yùn)算 連接也稱為連接。它是從兩個(gè)關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組,形成一個(gè)新的關(guān)系。 連接分為兩種: 1)等值連接; 等值連接是在關(guān)系R和關(guān)系S的連接中,比較條件為等于,則在笛卡兒積中,按等于的比較條件進(jìn)行選擇。 2)自然連接。 自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系R和S中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。此時(shí),可以將自然連接運(yùn)算過程理解為先進(jìn)行等值連接,再去處重復(fù)屬性列。 2.2.3 專門的關(guān)系運(yùn)算2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算等值連接 任務(wù)2-7 學(xué)生、選課和課程關(guān)系如表2-

36、17、表2-18和表2-19所示,使用等值連接進(jìn)行關(guān)系運(yùn)算。 任務(wù)分析:以選課表中的courseID和studentID條件進(jìn)行等值連接,觀察等值連接的結(jié)果是具有重復(fù)屬性的新關(guān)系。新關(guān)系如表2-20所示。學(xué)號(hào)姓名性別0101張小麗女0102王剛男學(xué)號(hào)課程號(hào)成績0101342103860101342101790102342102810102342104902.2.3 專門的關(guān)系運(yùn)算課程號(hào)(courseID)課程名(coursename)課程類別(typename)342101計(jì)算機(jī)基礎(chǔ)專業(yè)課342102數(shù)據(jù)庫應(yīng)用專業(yè)課342103C語言程序設(shè)計(jì)專業(yè)課342104大學(xué)英語基礎(chǔ)課342105高等數(shù)學(xué)

37、基礎(chǔ)課表2-17 學(xué)生關(guān)系(Student) 表2-18選課關(guān)系(Student_Course) 表2-19 課程關(guān)系(Course) 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算學(xué)號(hào)姓名性別學(xué)號(hào)課程號(hào)成績課程號(hào)課程名課程類別0101張小麗女010134210386342103C語言程序設(shè)計(jì)專業(yè)課0101張小麗女010134210179342101計(jì)算機(jī)基礎(chǔ)專業(yè)課0102王剛男010234210281342102數(shù)據(jù)庫應(yīng)用專業(yè)課0102王剛男010234210490342104大學(xué)英語基礎(chǔ)課2.2.3 專門的關(guān)系運(yùn)算表2-20 等值連接關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運(yùn)算學(xué)號(hào)姓名性別課程號(hào)成績課程名課程類別0101

38、張小麗女34210386C語言程序設(shè)計(jì)專業(yè)課0101張小麗女34210179計(jì)算機(jī)基礎(chǔ)專業(yè)課0102王剛男34210281數(shù)據(jù)庫應(yīng)用專業(yè)課0102王剛男34210490大學(xué)英語基礎(chǔ)課2.2.3 專門的關(guān)系運(yùn)算表2-21 自然連接關(guān)系 自然連接 自然連接是一種特殊的等值連接,它要求兩個(gè)關(guān)系R和S中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。此時(shí),可以將自然連接運(yùn)算過程理解為先進(jìn)行等值連接,再去處重復(fù)屬性列。 任務(wù)2-8 根據(jù)任務(wù)2-7的結(jié)果,進(jìn)行自然連接。 任務(wù)分析:自然連接運(yùn)算過程理解為先進(jìn)行等值連接,再去處重復(fù)屬性列。因此,可以在表2-20的基礎(chǔ)上去處重復(fù)列。其結(jié)果如表

39、2-21所示。 2.3 關(guān)系的完整性 任意一個(gè)關(guān)系通常對應(yīng)現(xiàn)實(shí)世界的某一個(gè)實(shí)體,如學(xué)生關(guān)系對應(yīng)于學(xué)生的集合,課程關(guān)系對應(yīng)課程的集合?,F(xiàn)實(shí)世界中的實(shí)體是可區(qū)分的,即它們具有自身特定的標(biāo)識(shí)。相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識(shí)。主屬性不能取空值,即不能是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個(gè)不可標(biāo)識(shí)的實(shí)體,即存在不可區(qū)分的實(shí)體,這與實(shí)體的定義相矛盾。 實(shí)體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 2.3.1 實(shí)體完整性2.3 關(guān)系的完整性任務(wù)2-9 建立表“學(xué)生”,其中的屬性“課程號(hào)”為主碼,該主碼唯一且不能為空。使用T-SQL語言定義“學(xué)生”表。任務(wù)

40、分析:T-SQL語言的相關(guān)知識(shí)將在本書第五章介紹,此處從T-SQL語言定義數(shù)據(jù)表的角度幫助讀者理解實(shí)體完整性規(guī)則。使用T-SQL語言創(chuàng)建某表“課程”的語句如下:CREATE TABLE COURSE(courseID char(8) NOT NULL PRIMARY KEY,coursename varchar(20) null,typename varchar(18) null)從表的定義中可以看到“courseID char(8) NOT NULL PRIMARY KEY”,對“課程”表的主屬性“PRIMARY KEY”指明了“NOT NULL”。依據(jù)以上T-SQL語句進(jìn)行了表的創(chuàng)建后,當(dāng)

41、有基于此表的數(shù)據(jù)輸入、修改等操作時(shí),數(shù)據(jù)庫管理系統(tǒng)自動(dòng)對輸入和修改的數(shù)據(jù)進(jìn)行檢查,從而可以保障數(shù)據(jù)的有效性。 2.3.1 實(shí)體完整性2.3 關(guān)系的完整性 實(shí)體與實(shí)體之間往往存在某種依存關(guān)系,這種依存關(guān)系叫做聯(lián)系。在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的,這樣就自然存在著關(guān)系與關(guān)系間的引用,即關(guān)系參照的完整性。 在一個(gè)關(guān)系模型中,關(guān)系R中的外碼對應(yīng)另一個(gè)關(guān)系S的主碼(關(guān)系R和S不一定是不同的關(guān)系),關(guān)系R中外碼的取值要參照另一個(gè)關(guān)系S主碼的取值。此時(shí),R為參照關(guān)系,S為被參照關(guān)系。 參照完整性規(guī)則:定義外碼與主碼之間的引用和參照規(guī)則,參照關(guān)系的外碼取值不能超出被參照關(guān)系的主碼取值。 2.

42、3.2 參照完整性2.3 關(guān)系的完整性任務(wù)2-10 新建一個(gè)關(guān)系“選課”,與任務(wù)2-9中關(guān)系“課程”形成參照關(guān)系和被參照關(guān)系,此時(shí)“選課”中外碼courseID的值不能超過“課程”中courseID的值。使用T-SQL語言定義參照完整性。任務(wù)分析:T-SQL語言的相關(guān)知識(shí)將在本書第五章介紹,此處從T-SQL語言實(shí)現(xiàn)參照完整性約束的角度幫助讀者理解參照完整性。使用T-SQL語言創(chuàng)建某表“選課”的語句如下:CREATE TABLE Student_Course(studentID char(10) NOT NULL,courseID char(8) NOT NULL,Grade Tinyint,P

43、RIMARY KEY(studentID,courseID),FROEIGN KEY(courseID) REFERENCES Course(courseID)當(dāng)對“選課”中插入數(shù)據(jù)時(shí),數(shù)據(jù)庫管理系統(tǒng)檢查其插入的courseID值是否在“課程”的courseID屬性值中,如果存在則可插入,如不存在則不能插入。 2.3.2 參照完整性2.3 關(guān)系的完整性2.3.3 用戶定義完整性 實(shí)體完整性和參照性適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng),而用戶自定義的完整性規(guī)則是針對某一具體數(shù)據(jù)庫的約束條件。 不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫進(jìn)行

44、的條件約束,它反映的是具體應(yīng)用所涉及的數(shù)據(jù)所須滿足的要求。關(guān)系模型應(yīng)能提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的處理這些條件要求。因此,在實(shí)際應(yīng)用中,應(yīng)用程序的編程人員不需考慮這類完整性規(guī)則。 2.3 關(guān)系的完整性任務(wù)2-11 對關(guān)系“學(xué)生”,其中的屬性“性別”的取值范圍必須滿足“男”或“女”,使用T-SQL語言定義用戶完整性約束(CHECK約束)。任務(wù)分析:T-SQL語言的相關(guān)知識(shí)將在本書第五章介紹,此處從T-SQL語言實(shí)現(xiàn)用戶定義完整性約束的角度幫助讀者理解用戶定義完整性。使用T-SQL語言創(chuàng)建某表“學(xué)生”的語句如下:CREATE TABLE STUDENT(studentID char

45、(10) NOT NULL PRIMARY KEY,studentName varchar (10) NOT NULL,Sex char(2) NULL CHECK(Sex=男 OR Sex=女))在對關(guān)系“學(xué)生”進(jìn)行數(shù)據(jù)輸入的時(shí)候,數(shù)據(jù)庫管理系統(tǒng)自動(dòng)檢查所輸入性別對應(yīng)的值,所輸入的Sex值只可能是“男”或者是“女”兩種情況之一。 2.3.3 用戶定義完整性2.4 關(guān)系規(guī)范化理論 在數(shù)據(jù)庫設(shè)計(jì)過程中,需要考慮到針對具體問題構(gòu)造適合于這個(gè)問題的數(shù)據(jù)庫模式,即在該數(shù)據(jù)庫設(shè)計(jì)過程中應(yīng)該構(gòu)造幾個(gè)關(guān)系模式,每個(gè)關(guān)系由哪些屬性組成等。這是數(shù)據(jù)庫設(shè)計(jì)的問題,確切地講是關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)問題。 關(guān)系數(shù)據(jù)庫邏輯

46、設(shè)計(jì)的好壞與其所含的各個(gè)關(guān)系模式設(shè)計(jì)的好壞相關(guān)。如果各個(gè)關(guān)系模式結(jié)構(gòu)合理、功能簡單明確、規(guī)范化程度高,就能確保所建立的數(shù)據(jù)庫具有較少的數(shù)據(jù)冗余、較高的數(shù)據(jù)共享度、較好的數(shù)據(jù)一致性,并為數(shù)據(jù)庫系統(tǒng)能夠很好的應(yīng)用于實(shí)際打下良好基礎(chǔ)。 不規(guī)范的關(guān)系設(shè)計(jì)會(huì)增大系統(tǒng)在運(yùn)行過程中的數(shù)據(jù)冗余,進(jìn)而可能由數(shù)據(jù)冗余為整個(gè)數(shù)據(jù)庫系統(tǒng)帶來其他運(yùn)行的障礙。同時(shí),還會(huì)帶來數(shù)據(jù)的刪除異常和插入異常等問題。因此,關(guān)系的規(guī)范化在數(shù)據(jù)庫設(shè)計(jì)中起著很重要的作用。 2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計(jì)中,經(jīng)常會(huì)遇到某一屬性還具有子屬性的情況。此時(shí),可對其進(jìn)行規(guī)范化,使其滿足第一范式。 1NF定義:設(shè)關(guān)系R,則關(guān)系R中所有屬性不可

47、再分,即消除非原子屬性分量。 例如:在關(guān)系“學(xué)生”中有“電話”屬性,電話屬性可能有家庭電話、手機(jī)、宿舍電話等子屬性。如表2-22所示。 學(xué) 號(hào)姓 名性 別電 話家庭電話手 機(jī)宿舍電話20100101張小麗女52236891365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*61563282.4.1 第一范式1NF表2-22 學(xué)生信息表 2.4 關(guān)系規(guī)范化理論 學(xué) 號(hào)姓 名性 別家庭電話手 機(jī)宿舍電話20100101張小麗女5223689

48、1365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*61563282.4.1 第一范式1NF任務(wù) 2-12 對以上關(guān)系進(jìn)行規(guī)范化,使其滿足1NF。任務(wù)分析:家庭電話、手機(jī)、宿舍電話三個(gè)屬性屬于“電話”屬性的子屬性。此時(shí),可將“電話”屬性進(jìn)行分解。結(jié)果如表2-23所示。 表2-22 滿足1NF的學(xué)生信息表 2.4 關(guān)系規(guī)范化理論 2.4.2 第一范式2NF 在關(guān)系模式設(shè)計(jì)中,如果非主屬性存在對主碼的部分函數(shù)依賴,則不滿足2NF。此時(shí),可

49、對其進(jìn)行規(guī)范化,使其滿足第二范式。 2NF定義:設(shè)關(guān)系R,則關(guān)系R中所有非主屬性需完全函數(shù)依賴每個(gè)主碼,即消除非主屬性對主碼的部分函數(shù)依賴。 例如:假如某設(shè)計(jì)人員將學(xué)生“選課”關(guān)系設(shè)計(jì)為“Student_Course(studentID,studentName,Sex,courseID,coursename,typename,Grade)”,主碼為studentID和courseID,則此時(shí)存在非主屬性對主碼的部分函數(shù)依賴。可能產(chǎn)生的問題:數(shù)據(jù)冗余:不同課程同一個(gè)選課學(xué)生的學(xué)生姓名、性別信息存在數(shù)據(jù)冗余。即一個(gè)學(xué)生可能選了多門課程,則在這個(gè)學(xué)生對應(yīng)的多個(gè)課程實(shí)體中,存在大量學(xué)生姓名、性別的數(shù)據(jù)

50、冗余。插入異常:如果有某門課程沒有學(xué)生進(jìn)行選擇,則導(dǎo)致該門課程的信息無法正常插入,造成插入異常。刪除異常:如果某學(xué)生只選擇了一門課程,則在刪除該門課程信息時(shí),導(dǎo)致學(xué)生信息也被刪除,造成刪除異常。更新異常:更新過程實(shí)際是刪除和插入過程的結(jié)合,所以也會(huì)帶來更新異常。2.4 關(guān)系規(guī)范化理論 2.4.2 第一范式2NF任務(wù) 2-13 對以上關(guān)系進(jìn)行規(guī)范化,使其滿足2NF。任務(wù)分析:可以發(fā)現(xiàn)存在兩種非主屬性。一種是“Grade”,它完全由studentID和courseID同時(shí)決定,它對主碼是完全函數(shù)依賴,另一種是“studentName,Sex, coursename,typename”,它們對主碼并

51、不是完全函數(shù)依賴,比如studentName只由studentID決定,而coursename只由courseID決定。此時(shí),可將“選課”關(guān)系分解為兩個(gè)關(guān)系:Student_Course(studentID,courseID,Grade) 主碼:studentID,courseIDCourse(courseID,coursename,typename) 主碼:courseID這樣,兩個(gè)新關(guān)系中的非主屬性就分別完全函數(shù)依賴于各自的關(guān)系主碼,從而達(dá)到了2NF。 2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計(jì)中,如果非主屬性存在對主碼的傳遞函數(shù)依賴,則不滿足3NF。此時(shí),可對其進(jìn)行規(guī)范化,使其滿足第三范式。

52、 3NF定義:設(shè)關(guān)系R,則關(guān)系R中所有非主屬性需不傳遞函數(shù)依賴每個(gè)主碼,即消除非主屬性對每個(gè)主碼的傳遞函數(shù)依賴。 例如:假如某設(shè)計(jì)人員將“課程”關(guān)系設(shè)計(jì)為“Course(courseID,coursename,CoursetypeID,typename)”,主碼為courseID,則此時(shí)存在非主屬性對主碼的傳遞函數(shù)依賴。 可能產(chǎn)生的問題:數(shù)據(jù)冗余:同一課程類型的多門課程對應(yīng)的類型名稱存在數(shù)據(jù)冗余。即可能多門課程屬于同一課程類型,此時(shí),同一類型多門課程對應(yīng)實(shí)體中存在課程類型名稱的數(shù)據(jù)冗余。插入異常:在某課程類型沒有對應(yīng)課程的情況下,無法正常插入課程類型信息,造成插入異常。刪除異常:某類型課程只有

53、一門對應(yīng)課程,當(dāng)刪除該課程信息時(shí),導(dǎo)致刪除課程類型信息,造成刪除異常。更新異常:更新過程實(shí)際是刪除和插入過程的結(jié)合,所以也會(huì)帶來更新異常。2.4.3 第三范式3NF2.4 關(guān)系規(guī)范化理論任務(wù) 2-14 對以上關(guān)系進(jìn)行規(guī)范化,使其滿足3NF。任務(wù)分析:可以發(fā)現(xiàn)“課程”關(guān)系中的主碼courseID決定CoursetypeID,而CoursetypeID決定非主屬性typename,即非主屬性typename通過CoursetypeID傳遞函數(shù)依賴主碼courseID,達(dá)不到3NF。此時(shí),可將“課程”關(guān)系分解為兩個(gè)關(guān)系,取消其傳遞依賴:Course(courseID,coursename, Cour

54、setypeID) 主碼:courseIDCoursetype(coursetypeID,typename) 主碼:coursetypeID這樣,由于分解為兩個(gè)新關(guān)系,則取消了原有關(guān)系之間的傳遞依賴,且新關(guān)系中也不存在其他傳遞依賴,從而達(dá)到了3NF。 2.4.3 第三范式3NF2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計(jì)中,如果不是每一個(gè)決定因素都包含關(guān)鍵字,則不滿足BCNF。 BCNF定義:設(shè)關(guān)系R,則關(guān)系R中所有屬性都不傳遞函數(shù)依賴每個(gè)候選碼,即消除屬性對候選碼的傳遞函數(shù)依賴。 BC范式的要求比第三范式更加嚴(yán)格,是改進(jìn)的第三范式。第三范式只關(guān)注非主屬性和關(guān)鍵字之間的傳遞函數(shù)依賴關(guān)系,而BC范式則

55、關(guān)注所有屬性和每個(gè)候選碼之間的傳遞函數(shù)依賴。當(dāng)一個(gè)關(guān)系模式中有多個(gè)候選碼,并且這些候選碼具有公共屬性時(shí),就不能夠滿足BC范式。由此可見,滿足BC范式的關(guān)系模式一定滿足第三范式,但滿足第三范式的關(guān)系模式不一定滿足BC范式。2.4.4 BC范式BCNF2.4 關(guān)系規(guī)范化理論2.4.5 關(guān)系規(guī)范化的實(shí)際應(yīng)用圖2-1 范式間的關(guān)系3NFBCNF2NF1NF非規(guī)范化關(guān)系消除非原子屬性分量消除非主屬性對主碼的部分函數(shù)依賴消除非主屬性對主碼的傳遞函數(shù)依賴消除非主屬性對主碼的部分和傳遞函數(shù)依賴第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)本章小結(jié):關(guān)系模型、關(guān)系基本概念;關(guān)系數(shù)據(jù)庫基本運(yùn)算;關(guān)系規(guī)范化。Thank You!數(shù) 據(jù) 庫

56、原 理 及 應(yīng) 用(SQL Server 2005)授課教師:*2022年7月11日第3章關(guān)系數(shù)據(jù)庫基礎(chǔ)第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)任務(wù)目標(biāo):了解數(shù)據(jù)庫設(shè)計(jì)的基本方法;了解影響數(shù)據(jù)庫設(shè)計(jì)的各因素及數(shù)據(jù)庫設(shè)計(jì)的特點(diǎn);能夠根據(jù)項(xiàng)目需求分析進(jìn)行數(shù)據(jù)庫的概念模型設(shè)計(jì);能運(yùn)用關(guān)系模型的基本知識(shí)將概念模型轉(zhuǎn)換為關(guān)系模型;能夠用關(guān)系規(guī)范化方法對關(guān)系模型進(jìn)行規(guī)范化和優(yōu)化;能夠根據(jù)完整性規(guī)則對關(guān)系模型進(jìn)行實(shí)體完整性、用戶定義完整性和參照完整性的設(shè)計(jì);了解數(shù)據(jù)庫系統(tǒng)安全的基礎(chǔ)知識(shí)。 第3章數(shù)據(jù)庫的設(shè)計(jì)3.1 數(shù)據(jù)庫設(shè)計(jì)概述3.2 數(shù)據(jù)庫設(shè)計(jì)的步驟3.3 數(shù)據(jù)庫保護(hù)習(xí)題3.1 數(shù)據(jù)庫設(shè)計(jì)概述3.1.1 數(shù)據(jù)庫設(shè)計(jì)方法 規(guī)范

57、化設(shè)計(jì)中著名的有新奧爾良法,它將數(shù)據(jù)庫設(shè)計(jì)分為四個(gè)標(biāo)準(zhǔn)階段:需求分析(分析用戶需求)、概念設(shè)計(jì)(信息分析和定義)、邏輯設(shè)計(jì)(設(shè)計(jì)實(shí)現(xiàn))和物理設(shè)計(jì)(物理數(shù)據(jù)庫設(shè)計(jì))。后來,很多設(shè)計(jì)者在此基礎(chǔ)上對新奧爾良法進(jìn)行了補(bǔ)充和豐富。S.B.Yao法將數(shù)據(jù)庫設(shè)計(jì)分為5個(gè)步驟:需求分析,模式構(gòu)成,模式匯總,模式重構(gòu),模式分析和物理數(shù)據(jù)庫設(shè)計(jì);I.R.Palmer法主張將數(shù)據(jù)庫設(shè)計(jì)當(dāng)成一步步的過程并采用一些輔助手段實(shí)現(xiàn)每一過程;數(shù)據(jù)庫生命周期法以軟件生命周期(規(guī)劃、設(shè)計(jì)、實(shí)施、運(yùn)行維護(hù))為主線對數(shù)據(jù)庫進(jìn)行設(shè)計(jì)。 基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法、基于3NF(第三范式)的設(shè)計(jì)方法和基于抽象語法規(guī)范的設(shè)計(jì)方法,都是在

58、數(shù)據(jù)庫設(shè)計(jì)的不同階段上支持實(shí)現(xiàn)的具體技術(shù)和方法。規(guī)范法設(shè)計(jì)從本質(zhì)上看仍然屬于手工設(shè)計(jì)方法,其基本思想是過程迭代和逐步求精,在遵從一定設(shè)計(jì)標(biāo)準(zhǔn)的基礎(chǔ)上,設(shè)計(jì)出科學(xué)、合理的數(shù)據(jù)庫系統(tǒng)。 3.1 數(shù)據(jù)庫設(shè)計(jì)概述3.1.2 數(shù)據(jù)庫設(shè)計(jì)特點(diǎn) 數(shù)據(jù)庫設(shè)計(jì)的基本任務(wù)是根據(jù)用戶使用的硬件系統(tǒng)、操作系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)等條件,設(shè)計(jì)出數(shù)據(jù)庫模式,設(shè)計(jì)過程中受很多因素的影響。因此,數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)具有如下幾個(gè)主要特點(diǎn): 1反復(fù)性 2試探性 3多步性 4面向數(shù)據(jù)3.2 數(shù)據(jù)庫設(shè)計(jì)的步驟3.2.1 SQL Server數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計(jì)一般步驟 一般可將數(shù)據(jù)庫設(shè)計(jì)分為以下6個(gè)階段。1需求分析階段2概念設(shè)計(jì)階段 3邏輯設(shè)計(jì)

59、階段4物理設(shè)計(jì)階段5數(shù)據(jù)庫實(shí)現(xiàn)階段6數(shù)據(jù)庫運(yùn)行和維護(hù)階段需求分析概念設(shè)計(jì)邏輯設(shè)計(jì)物理設(shè)計(jì)數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)庫的運(yùn)行、維護(hù)圖3-1 數(shù)據(jù)庫設(shè)計(jì)流程3.2 數(shù)據(jù)庫設(shè)計(jì)的步驟3.2.2 需求分析階段 需求分析是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的基礎(chǔ),在進(jìn)行數(shù)據(jù)庫設(shè)計(jì)時(shí),首先要了解與分析用戶的應(yīng)用需求,因?yàn)樵撾A段需要設(shè)計(jì)者與客戶的溝通,因此也是最費(fèi)時(shí)、最困難的一個(gè)階段。 任務(wù) 3-1 學(xué)生成績管理系統(tǒng)需求分析。任務(wù)分析:通過與教務(wù)處學(xué)生成績管理職能部門的溝通,獲得該部門的組織結(jié)構(gòu)圖,分析組織結(jié)構(gòu)圖后繪制該系統(tǒng)的數(shù)據(jù)流程圖,分析學(xué)生成績管理系統(tǒng)的功能需求,寫出數(shù)據(jù)字典。1繪制學(xué)生成績管理部門(教務(wù)處)組織結(jié)構(gòu)圖。學(xué)生成績管理

60、部門(教務(wù)處)學(xué)生管理職責(zé)成績管理職責(zé)課程管理職責(zé)圖3-2 學(xué)生成績管理部門組織結(jié)構(gòu)圖3.2 數(shù)據(jù)庫設(shè)計(jì)的步驟3.2.2 需求分析階段2繪制系統(tǒng)數(shù)據(jù)流程圖。 學(xué)生成績管理部門(教務(wù)處)學(xué)生管理職責(zé)成績管理職責(zé)課程管理職責(zé)學(xué)生管理成績管理課程管理學(xué)生信息表成績信息表課程信息表圖3-3 學(xué)生成績管理系統(tǒng)數(shù)據(jù)流程圖3.2 數(shù)據(jù)庫設(shè)計(jì)的步驟3.2.2 需求分析階段 3了解系統(tǒng)功能需求。 學(xué)生成績管理系統(tǒng)需要完成如下功能。學(xué)生管理:存儲(chǔ)、檢索、維護(hù)有關(guān)學(xué)生的信息;課程管理:存儲(chǔ)、檢索、維護(hù)有關(guān)課程的信息;成績管理:存儲(chǔ)、檢索、維護(hù)有關(guān)學(xué)生成績的信息。4細(xì)讀數(shù)據(jù)字典。 針對學(xué)生成績管理系統(tǒng)的功能需求,通過

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論