




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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ù)表達數(shù)據(jù)表達信息(Information)1.1 基本概念1.1.1 信息與數(shù)據(jù)數(shù)據(jù)(Data) :是對客觀事物及其活動的抽象符號表示;存儲在某一
2、種媒體上可以鑒別的符號資料;表示形式多樣,可以是數(shù)據(jù)、文本、圖形、聲音等。信息(Information)是經(jīng)過加工處理后具有一定含義的數(shù)據(jù)集合 ;以某種特定數(shù)據(jù)形式表現(xiàn)。數(shù)據(jù)處理(Data Processing)將數(shù)據(jù)轉(zhuǎn)換成信息的過程稱為數(shù)據(jù)處理;對數(shù)據(jù)進行收集、儲存、分類、加工等活動;目的:從數(shù)據(jù)出發(fā),推導(dǎo)、抽取有價值的信息。1.1 基本概念 數(shù)據(jù)管理是指對數(shù)據(jù)進行收集、分類、組織、編碼、存儲、檢索和維護等,數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理、文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)3個階段,目前正在向著網(wǎng)絡(luò)化、智能化和集成化的方向發(fā)展。 數(shù)據(jù)管理技術(shù)發(fā)展三階段: 1人工管理階段 2文件系統(tǒng)階段 3數(shù)據(jù)庫系統(tǒng)階段
3、1.1.2 數(shù)據(jù)管理技術(shù)的發(fā)展1.1 基本概念數(shù)據(jù)庫系統(tǒng)階段特點如下:數(shù)據(jù)管理者:數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)面向的對象:整個應(yīng)用系統(tǒng)。數(shù)據(jù)的共享程度:共享性良好,冗余度小。數(shù)據(jù)的獨立性:獨立性良好,具備高度的邏輯獨立性和物理獨立性。數(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)是指引進了數(shù)據(jù)庫技術(shù)后的計算機系統(tǒng),它能夠有組織地、動態(tài)地存儲大量數(shù)據(jù),提供數(shù)據(jù)處理和數(shù)據(jù)共享機制。 數(shù)據(jù)庫系統(tǒng)是一個復(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)的基本組成主要有以下幾項:(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ù)庫管理系統(tǒng)(D
5、ataBase Management System,DBMS)是處理數(shù)據(jù)訪問的軟件系統(tǒng),是位于用戶與操作系統(tǒng)之間的一層對數(shù)據(jù)庫進行管理的軟件。數(shù)據(jù)庫在建立、運行和維護時由數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制。 數(shù)據(jù)庫管理系統(tǒng)的功能主要包括: 數(shù)據(jù)定義:數(shù)據(jù)庫提供數(shù)據(jù)定義語言(DDL,Date Definition Language)對數(shù)據(jù)庫進行定義。 數(shù)據(jù)操縱:數(shù)據(jù)庫提供數(shù)據(jù)操作語言(DML,Date Manipulation Lauguage)對數(shù)據(jù)進行具體操作。 數(shù)據(jù)庫的運行管理:數(shù)據(jù)庫提供數(shù)據(jù)控制語言(DCL,Date Control Language)對數(shù)據(jù)進行完整性控制、安全性控制、數(shù)據(jù)
6、庫恢復(fù)、數(shù)據(jù)庫維護和數(shù)據(jù)庫的并發(fā)控制等。 數(shù)據(jù)字典:數(shù)據(jù)庫的邏輯結(jié)構(gòu)、物理存儲結(jié)構(gòu)和完整性約束均保存在數(shù)據(jù)字典(DD,Date Dictionary)中。 數(shù)據(jù)通信接口:數(shù)據(jù)庫管理系統(tǒng)需要提供與其他軟件系統(tǒng)進行通信的功能。例如提供與其他數(shù)據(jù)庫管理系統(tǒng)的接口,從而能夠?qū)?shù)據(jù)轉(zhuǎn)換為另一個數(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è)到運行的整個過程中不同崗位的工作性質(zhì),可以將其用戶分為兩個大類:開發(fā)類用戶和
7、應(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單機數(shù)據(jù)庫系統(tǒng) 整個數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)信息,都安裝在一臺計算機上,這類系統(tǒng)系統(tǒng)結(jié)構(gòu)簡捷,系統(tǒng)運行速度快,但不同機器之間不能進行數(shù)據(jù)共享,安全性較差,只適用于小型用戶使用。 2主從結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 1.2.2 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)應(yīng)用終端(應(yīng)用程序)主 機(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ù)在邏輯上是一個整體,但物理地分布在整個數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)下的不同結(jié)點上
8、。網(wǎng)絡(luò)中的每個結(jié)點都可以獨立處理本地數(shù)據(jù)庫中的數(shù)據(jù);同時也可以同時存取和處理網(wǎng)絡(luò)上的多個異地數(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)的性能、吞吐量和負載能力。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)用端計算機操作系統(tǒng)客戶端1計算
9、機硬件數(shù)據(jù)庫應(yīng)用端計算機操作系統(tǒng)客戶端n計算機硬件數(shù)據(jù)庫管理系統(tǒng)計算機操作系統(tǒng)計算機硬件數(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)用程序界面計算機操作系統(tǒng)客戶端1計算機硬件應(yīng)用程序界面計算機操作系統(tǒng)客戶端n計算機硬件數(shù)據(jù)庫應(yīng)用程序數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫管理系統(tǒng)計算機操作系統(tǒng)計算機硬件數(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)瀏覽器計算機操作系統(tǒng)客戶端1計算機硬件瀏覽器計算機操作系統(tǒng)客戶端n計算機硬件數(shù)據(jù)庫應(yīng)用程序瀏覽器服務(wù)器數(shù)據(jù)庫管理系統(tǒng)計算機操作系統(tǒng)計算機硬件數(shù)據(jù)庫服務(wù)器端請
10、求響應(yīng)響應(yīng)請求響應(yīng)1.2 數(shù)據(jù)庫系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)將數(shù)據(jù)庫建立為三級模式結(jié)構(gòu)和二級存儲映象,這便是數(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)模式映象三級模式結(jié)構(gòu)和二級存儲映象1.3 數(shù)據(jù)模型 數(shù)據(jù)模型(Data Model)是對數(shù)據(jù)特征的抽象,是嚴格定義的概念集合。數(shù)據(jù)模型包括數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)部分、數(shù)據(jù)庫數(shù)據(jù)的操作部分和數(shù)據(jù)庫數(shù)據(jù)的約束條件。即數(shù)據(jù)模型所描述的三個部分: (1)數(shù)據(jù)結(jié)構(gòu) (2)數(shù)據(jù)操作 基本的數(shù)據(jù)操作包括兩大類: 檢索:數(shù)據(jù)查詢 更新:數(shù)據(jù)的插入、刪除和更新等操作 (3
11、)數(shù)據(jù)的完整性約束1.3.1 數(shù)據(jù)模型的三要素1.3 數(shù)據(jù)模型 在實際數(shù)據(jù)庫應(yīng)用中,為了更為便捷、準(zhǔn)確的描述現(xiàn)實世界中的數(shù)據(jù),通常依據(jù)不同的應(yīng)用環(huán)境,采用不同的數(shù)據(jù)模型。 數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型: (1)概念數(shù)據(jù)模型 (2)邏輯數(shù)據(jù)模型 (3)物理數(shù)據(jù)模型 如果要將現(xiàn)實世界中的具體事物抽象和表示為根據(jù)某具體應(yīng)用環(huán)境的、某種數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,那么通常需要首先把現(xiàn)實世界轉(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ù)特征的抽象,是嚴格定義的概念集合。數(shù)據(jù)模
12、型包括數(shù)據(jù)庫數(shù)據(jù)的結(jié)構(gòu)部分、數(shù)據(jù)庫數(shù)據(jù)的操作部分和數(shù)據(jù)庫數(shù)據(jù)的約束條件。即數(shù)據(jù)模型所描述的三個部分: (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)系機器世界關(guān)系數(shù)據(jù)模型信息世界實體及其聯(lián)系現(xiàn)實世界客觀事物及其聯(lián)系存 在概念模型邏輯模型 三個世界模型關(guān)系1.3 數(shù)據(jù)模型 概念模型是對信息世界的建模,是對真實世界中問題域內(nèi)的事物的描述,它不依賴于某一個具體數(shù)據(jù)庫管理系統(tǒng)支持的數(shù)據(jù)模型,但概念模型可以轉(zhuǎn)換為計算機上某數(shù)據(jù)庫管理系統(tǒng)支持的特
13、定數(shù)據(jù)模型。 概念模型具備以下特點: 能夠方便、直接地表達應(yīng)用中的各種語義知識。 簡單、清晰、易于理解,是用戶與數(shù)據(jù)庫設(shè)計人員之間進行交流的媒介。1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 1基本概念 (1) 實體(Entity) 客觀存在并可相互區(qū)別的事物和活動的抽象稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。 例如:一個員工。 (2) 屬性(Attribute) 實體和聯(lián)系所具有的特性稱為屬性。一個實體可以由若干個屬性來描述。 例如:員工編號、員工姓名、員工性別、員工年齡。 (3) 主碼(Key) 能唯一標(biāo)識實體的屬性或?qū)傩约Q為碼。 例如:實體員工中的員工編號。
14、 (4) 域(Domain) 屬性的取值范圍稱為該屬性的域。 例如:可以為員工編號設(shè)置一定的取值范圍。1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 (5) 實體型(Entity Type) 用實體名及描述它的各屬性名,可以刻畫出全部同質(zhì)實體的共同特征和性質(zhì),它被稱為實體型。 (6) 實體集(Entity Set) 同型實體的集合稱為實體集。 (7) 聯(lián)系(Relationship) 實體集間或一個實體集內(nèi)的各實體之間存在的關(guān)系,現(xiàn)實世界中事物內(nèi)部以及事物之間的聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。 聯(lián)系有以下三種: 一對一聯(lián)系(1:1) 一對多聯(lián)系(1:n) 多對多聯(lián)系(m
15、:n) 1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型 2概念模型表示方法 聯(lián)系方法(Entity-Relationship Approach) 用這個方法描述的概念模型稱為實體聯(lián)系模型,簡稱ER模型。ER模型(Entity-Relationship Model)用E-R圖來描述現(xiàn)實世界的概念模型,它是一個面向問題的概念模型。 E-R圖的描述方式很接近人的思維方式,描述過程不設(shè)計數(shù)據(jù)在數(shù)據(jù)庫中的表示和存取,便于用戶與系統(tǒng)開發(fā)人員之間的交流。 在ER模型中,信息由實體型、實體屬性和實體間的聯(lián)系三種概念單元來表示。 1.3.3 概念模型及其表示方法1.3 數(shù)據(jù)模型實體型:用矩形表示,矩形框內(nèi)寫明
16、實體名。屬性:是實體的說明,用橢圓形表示,并用無向邊將其與相應(yīng)的實體連接起來。 如圖所示,學(xué)生實體具備學(xué)號、姓名、性別等屬性。1.3.3 概念模型及其表示方法學(xué) 生學(xué) 號姓 名性 別學(xué)生實體屬性 1.3 數(shù)據(jù)模型聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n或m:n)。1.3.3 概念模型及其表示方法課 程課程號課程名課程類型學(xué) 生學(xué) 號姓 名性 別選修nm課程與學(xué)生的聯(lián)系 1.3 數(shù)據(jù)模型 聯(lián)系本身也是一種實體型,可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。學(xué)生與課程具有聯(lián)系選課,課程被學(xué)生選
17、修后,學(xué)生需獲得對應(yīng)課程的成績。因此,選修聯(lián)系具有屬性“成績”。 1.3.3 概念模型及其表示方法課 程課程號課程名課程類型學(xué) 生學(xué) 號姓 名性別選修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ǔ)知識,能運用關(guān)系代數(shù)進行傳統(tǒng)的集合運算和專門的集合運算;掌握關(guān)系完整性的相關(guān)
18、知識,能夠?qū)﹃P(guān)系進行實體完整性、參照完整性和用戶定義完整性約束; 掌握關(guān)系規(guī)范化理論,能夠使用1NF、2NF和3NF對關(guān)系進行規(guī)范化。第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)2.1 關(guān)系模型的基本概念2.2 關(guān)系數(shù)據(jù)的基本運算2.3 關(guān)系的完整性2.4 關(guān)系規(guī)范化理論習(xí)題2.1 關(guān)系模型的基本概念2.1.1 關(guān)系模型 在數(shù)據(jù)庫中,有些數(shù)據(jù)實體之間存在著某種聯(lián)系,用來描述這些數(shù)據(jù)實體間關(guān)聯(lián)形式的模型叫做數(shù)據(jù)模型。 在數(shù)據(jù)庫技術(shù)領(lǐng)域中,較為經(jīng)典的數(shù)據(jù)模型有三種,分別是: 層次模型; 網(wǎng)狀模型; 關(guān)系模型,采用二維表結(jié)構(gòu)描述數(shù)據(jù)實體間的關(guān)聯(lián),以記錄組或數(shù)據(jù)表的形式組織數(shù)據(jù),以便于利用各種地理實體與屬性之間的關(guān)系進行存儲
19、和變換,不分層也無指針,是建立空間數(shù)據(jù)和屬性數(shù)據(jù)之間關(guān)系的一種非常有效的數(shù)據(jù)組織方法。 2.1 關(guān)系模型的基本概念2.1.1 關(guān)系模型 關(guān)系模型和層次、網(wǎng)狀模型相比,有以下特點: 1)數(shù)據(jù)結(jié)構(gòu)簡單(二維表) 2)扎實的理論基礎(chǔ) 3)關(guān)系運算 4)關(guān)系模式的數(shù)據(jù)獨立性強 關(guān)系模型由三部分組成: 關(guān)系數(shù)據(jù)結(jié)構(gòu); 關(guān)系數(shù)據(jù)操作; 關(guān)系數(shù)據(jù)完整性約束。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)系中的每個元素是關(guān)系中的元組,可以用來表示一個實體。 3.關(guān)系關(guān)系是一個規(guī)范化的二維表
20、,表的每一行對應(yīng)一個元組,表的每一列對應(yīng)一個域,由于域可以相同,為了加以區(qū)分表中的列,必須對每列起一個名字,稱為屬性。 2.1 關(guān)系模型的基本概念基本的關(guān)系滿足以下特性:關(guān)系(二維表)中的每一行對應(yīng)一個元組,即一個實體;表的每一列對應(yīng)某個實體的一個屬性。關(guān)系中的元組(實體)不能完全相同。關(guān)系中的屬性名稱不能重復(fù)。關(guān)系中的元組次序和屬性次序可以互換。關(guān)系中的每個屬性都是不可再分解的數(shù)據(jù)項。關(guān)系的屬性中必須有一個是關(guān)鍵字,用來唯一標(biāo)識一個實體。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 例:學(xué)生選課系統(tǒng)中,其概念模型中有學(xué)生實體、課程實體以及選課聯(lián)系。 學(xué)號(studentID)姓(st
21、udentName)性別(Sex)20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男2.1.2 關(guān)系基本概念課程號(courseID)課程名(coursename)課程類別(typename)342101計算機基礎(chǔ)專業(yè)課342102數(shù)據(jù)庫應(yīng)用專業(yè)課342103C語言程序設(shè)計專業(yè)課342104大學(xué)英語基礎(chǔ)課342105高等數(shù)學(xué)基礎(chǔ)課學(xué)號(studentID)課程號(courseID)成績(Grade)201001023421038620100101342101792
22、01001053421028120100107342104902010010834210192201001023421047520100107342105802010010634210170關(guān)系選課 關(guān)系課程 關(guān)系學(xué)生 2.1 關(guān)系模型的基本概念 4.屬性 描述實體或者聯(lián)系的特性的列名稱為屬性,屬性分為主屬性和非主屬性。 主屬性:主碼的各個屬性。 非主屬性:除了主屬性之外的屬性。 例如,關(guān)系Student中的studentID、studentName、Sex是關(guān)系Student的屬性。在關(guān)系Student的各屬性中,主屬性有studentID,非主屬性有studentName和Sex。 關(guān)系C
23、ourse中的courseID、coursename、typename是關(guān)系Course的屬性。在關(guān)系Course的各屬性中,主屬性有courseID,非主屬性有coursename和typename。 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 5. 屬性值 描述實體或者聯(lián)系的具體數(shù)據(jù)稱為屬性值。屬性值的取值范圍是域。 例如,關(guān)系Student中的20100101,20100105,張小麗,張國強,女,男等都是關(guān)系Student的屬性值。 關(guān)系Course中的342101,342103,C語言程序設(shè)計,數(shù)據(jù)庫應(yīng)用,專業(yè)課,基礎(chǔ)課等都是關(guān)系Course的屬性值。 關(guān)系Student_C
24、ourse中的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 關(guān)系模型的基本概念
25、7. 關(guān)鍵字 關(guān)系中用來唯一標(biāo)識一個實體的某個屬性或?qū)傩越M。每個關(guān)系只能有一個關(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)系中用的某個屬性或?qū)傩越M不是本關(guān)系的關(guān)鍵字,而是另一個關(guān)系的關(guān)鍵字,又被稱為外碼或外鍵。 例如,關(guān)系Student_Course中的studentID屬性和cours
26、eID屬性都是外關(guān)鍵字。在關(guān)系Student和關(guān)系Student_Course中沒有外關(guān)鍵字。 9. 候選碼 候選碼是指可以作為關(guān)鍵字的屬性或?qū)傩越M。候選碼可以有多個,可從候選碼中選取一個或部分作為關(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) 選課關(guān)系模式通常可以簡
27、記為: Student_Course(studentID,courseID,Grade) 2.1.2 關(guān)系基本概念2.1 關(guān)系模型的基本概念 1. 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫是指在一個給定的現(xiàn)實世界應(yīng)用領(lǐng)域中,用于描述實體及實體之間聯(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ù)的基本運算 關(guān)系數(shù)據(jù)的運算是以關(guān)系代數(shù)為基礎(chǔ)的。關(guān)系代數(shù)是一種抽象的查詢語言,用于對關(guān)系的運算來表達各種操作,其運算對象是關(guān)系,運算結(jié)果亦為關(guān)系。 關(guān)系代數(shù)用到的運算符包括四類: 集合
28、運算符(并、差、交、笛卡爾積); 專門的關(guān)系運算符(選擇、投影、連接); 算術(shù)比較符(大于、小于、等于、大于等于、小于等于、不等于); 邏輯運算符(與、或、非)。2.2.1 關(guān)系代數(shù)2.2 關(guān)系數(shù)據(jù)的基本運算 比較運算符和邏輯運算符是用來輔助專門的關(guān)系運算符進行操作的,所以關(guān)系代數(shù)的運算按運算符的不同主要分為傳統(tǒng)的集合運算和專門的關(guān)系運算兩類。 2.2.1 關(guān)系代數(shù)傳統(tǒng)的集合運算符運算名稱運算符號并差交笛卡兒積專門的關(guān)系運算符運算名稱運算符號選擇投影連接專門的關(guān)系運算符 傳統(tǒng)的集合運算符 2.2 關(guān)系數(shù)據(jù)的基本運算 傳統(tǒng)的集合運算是二目運算。假設(shè)有兩個關(guān)系R和S,t是元組變量,關(guān)系R為學(xué)習(xí)成績
29、優(yōu)秀的學(xué)生,關(guān)系S為心理素質(zhì)優(yōu)秀的學(xué)生,分別如表2-6和表2-7所示。 學(xué)生姓名學(xué)生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強男李國慶男2.2.2 傳統(tǒng)的集合運算學(xué)生姓名學(xué)生性別張小麗女王剛男王曉霞女郭鵬男劉翔男表2-7心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系S 表2-6 學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系R2.2 關(guān)系數(shù)據(jù)的基本運算 學(xué)生姓名學(xué)生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強男李國慶男王曉霞女2.2.2 傳統(tǒng)的集合運算1.并運算 任務(wù) 2-1 對以上R和S兩個關(guān)系進行并運算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知并運算RS表示學(xué)習(xí)成績優(yōu)秀或心理素質(zhì)優(yōu)秀的學(xué)生,可以得到
30、RS的關(guān)系如下表2-8所示。 表2-8 并運算后的新關(guān)系2.2 關(guān)系數(shù)據(jù)的基本運算 2.差運算 任務(wù) 2-2 對以上R和S兩個關(guān)系進行差運算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知差運算R-S表示學(xué)習(xí)成績優(yōu)秀的學(xué)生但心理素質(zhì)沒有達到優(yōu)秀的學(xué)生,可以得到R-S的關(guān)系如下表2-9所示。2.2.2 傳統(tǒng)的集合運算學(xué)生姓名學(xué)生性別李平女張國強男李國慶男吳飛男表2-9 差運算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運算 3.交運算 任務(wù) 2-3 對以上R和S兩關(guān)系進行交運算。 任務(wù)分析:按照學(xué)習(xí)成績優(yōu)秀的學(xué)生關(guān)系和心理素質(zhì)優(yōu)秀的學(xué)生關(guān)系,可知交運算RS表示學(xué)習(xí)成績優(yōu)秀同時心理素質(zhì)
31、也優(yōu)秀的學(xué)生,可以得到RS的關(guān)系如下表2-10所示。 2.2.2 傳統(tǒng)的集合運算學(xué)生姓名學(xué)生性別張小麗女王剛男劉翔男郭鵬男表2-10 差運算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運算 4.笛卡兒積運算 任務(wù) 2-4 假如在學(xué)生選課系統(tǒng)中,學(xué)生關(guān)系R如表2-11所示,選課關(guān)系S如表2-12所示,對以上R和S兩關(guān)系進行交運算。 任務(wù)分析:笛卡兒積是關(guān)系的連接,在形成的新關(guān)系中前m個屬性來自R,后n個屬性來自S,即新關(guān)系的屬性為m+n;關(guān)系R的元組個數(shù)為a,關(guān)系S的元組個數(shù)為b,則新關(guān)系的元組個數(shù)為ab。2.2.2 傳統(tǒng)的集合運算2.2 關(guān)系數(shù)據(jù)的基本運算學(xué)號姓名性別20100101張小麗女201001
32、02王剛男學(xué)號課程號成績20100102342103862010010134210179201001053421028120100107342104902.2.2 傳統(tǒng)的集合運算學(xué)號姓名性別學(xué)號課程號成績20100101張小麗女201001023421038620100101張小麗女201001013421017920100101張小麗女201001053421028120100101張小麗女201001073421049020100102王剛男201001023421038620100102王剛男201001013421017920100102王剛男201001053421028120100
33、102王剛男2010010734210490表2-13 笛卡兒積RS 表2-11 學(xué)生關(guān)系R 表2-12選課關(guān)系S 2.2 關(guān)系數(shù)據(jù)的基本運算 1選擇運算 選擇又稱為限制。它是在關(guān)系R中選擇滿足給定條件的元組。 任務(wù) 2-5 使用選擇運算從學(xué)生關(guān)系R中選擇男學(xué)生,學(xué)生關(guān)系R如表2-14所示。 任務(wù)分析:運算過程中選擇性別條件為“男”的元組組成新關(guān)系。進行過選擇運算后的新關(guān)系如表2-15所示。 學(xué)號姓名性別20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男2.2.3
34、 專門的關(guān)系運算學(xué)號姓名性別20100102王剛男20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男表2-14 學(xué)生關(guān)系R表2-15 選擇運算后新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運算 2投影運算 關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。 任務(wù) 2-6 使用投影運算從表2-15所示關(guān)系中運算出學(xué)生姓名和性別情況。 任務(wù)分析:運算過程中選擇表2-15所示關(guān)系的“姓名”和“性別”情況組成新關(guān)系。進行過投影運算后的新關(guān)系如表2-16所示。 2.2.3 專門的關(guān)系運算姓名性別王剛男郭鵬男劉翔男吳飛男張國強男李國慶男表2-16 選擇運
35、算后的新關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運算 3連接運算 連接也稱為連接。它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組,形成一個新的關(guān)系。 連接分為兩種: 1)等值連接; 等值連接是在關(guān)系R和關(guān)系S的連接中,比較條件為等于,則在笛卡兒積中,按等于的比較條件進行選擇。 2)自然連接。 自然連接是一種特殊的等值連接,它要求兩個關(guān)系R和S中進行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。此時,可以將自然連接運算過程理解為先進行等值連接,再去處重復(fù)屬性列。 2.2.3 專門的關(guān)系運算2.2 關(guān)系數(shù)據(jù)的基本運算等值連接 任務(wù)2-7 學(xué)生、選課和課程關(guān)系如表2-17、表2-18和表
36、2-19所示,使用等值連接進行關(guān)系運算。 任務(wù)分析:以選課表中的courseID和studentID條件進行等值連接,觀察等值連接的結(jié)果是具有重復(fù)屬性的新關(guān)系。新關(guān)系如表2-20所示。學(xué)號姓名性別0101張小麗女0102王剛男2.2.3 專門的關(guān)系運算學(xué)號課程號成績010134210386010134210179010234210281010234210490課程號(courseID)課程名(coursename)課程類別(typename)342101計算機基礎(chǔ)專業(yè)課342102數(shù)據(jù)庫應(yīng)用專業(yè)課342103C語言程序設(shè)計專業(yè)課342104大學(xué)英語基礎(chǔ)課342105高等數(shù)學(xué)基礎(chǔ)課表2-17 學(xué)
37、生關(guān)系(Student) 表2-18選課關(guān)系(Student_Course) 表2-19 課程關(guān)系(Course) 2.2 關(guān)系數(shù)據(jù)的基本運算2.2.3 專門的關(guān)系運算學(xué)號姓名性別學(xué)號課程號成績課程號課程名課程類別0101張小麗女010134210386342103C語言程序設(shè)計專業(yè)課0101張小麗女010134210179342101計算機基礎(chǔ)專業(yè)課0102王剛男010234210281342102數(shù)據(jù)庫應(yīng)用專業(yè)課0102王剛男010234210490342104大學(xué)英語基礎(chǔ)課表2-20 等值連接關(guān)系 2.2 關(guān)系數(shù)據(jù)的基本運算2.2.3 專門的關(guān)系運算表2-21 自然連接關(guān)系 自然連接 自
38、然連接是一種特殊的等值連接,它要求兩個關(guān)系R和S中進行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。此時,可以將自然連接運算過程理解為先進行等值連接,再去處重復(fù)屬性列。 任務(wù)2-8 根據(jù)任務(wù)2-7的結(jié)果,進行自然連接。 任務(wù)分析:自然連接運算過程理解為先進行等值連接,再去處重復(fù)屬性列。因此,可以在表2-20的基礎(chǔ)上去處重復(fù)列。其結(jié)果如表2-21所示。 學(xué)號姓名性別課程號成績課程名課程類別0101張小麗女34210386C語言程序設(shè)計專業(yè)課0101張小麗女34210179計算機基礎(chǔ)專業(yè)課0102王剛男34210281數(shù)據(jù)庫應(yīng)用專業(yè)課0102王剛男34210490大學(xué)英語基礎(chǔ)課2.
39、3 關(guān)系的完整性 任意一個關(guān)系通常對應(yīng)現(xiàn)實世界的某一個實體,如學(xué)生關(guān)系對應(yīng)于學(xué)生的集合,課程關(guān)系對應(yīng)課程的集合?,F(xiàn)實世界中的實體是可區(qū)分的,即它們具有自身特定的標(biāo)識。相應(yīng)地,關(guān)系模型中以主碼作為唯一性標(biāo)識。主屬性不能取空值,即不能是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個不可標(biāo)識的實體,即存在不可區(qū)分的實體,這與實體的定義相矛盾。 實體完整性規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。 2.3.1 實體完整性2.3 關(guān)系的完整性任務(wù)2-9 建立表“學(xué)生”,其中的屬性“課程號”為主碼,該主碼唯一且不能為空。使用T-SQL語言定義“學(xué)生”表。任務(wù)分析:T-SQL語言
40、的相關(guān)知識將在本書第五章介紹,此處從T-SQL語言定義數(shù)據(jù)表的角度幫助讀者理解實體完整性規(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語句進行了表的創(chuàng)建后,當(dāng)有基于此表的數(shù)據(jù)輸入
41、、修改等操作時,數(shù)據(jù)庫管理系統(tǒng)自動對輸入和修改的數(shù)據(jù)進行檢查,從而可以保障數(shù)據(jù)的有效性。 2.3.1 實體完整性2.3 關(guān)系的完整性 實體與實體之間往往存在某種依存關(guān)系,這種依存關(guān)系叫做聯(lián)系。在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,這樣就自然存在著關(guān)系與關(guān)系間的引用,即關(guān)系參照的完整性。 在一個關(guān)系模型中,關(guān)系R中的外碼對應(yīng)另一個關(guān)系S的主碼(關(guān)系R和S不一定是不同的關(guān)系),關(guān)系R中外碼的取值要參照另一個關(guān)系S主碼的取值。此時,R為參照關(guān)系,S為被參照關(guān)系。 參照完整性規(guī)則:定義外碼與主碼之間的引用和參照規(guī)則,參照關(guān)系的外碼取值不能超出被參照關(guān)系的主碼取值。 2.3.2 參照完整性2
42、.3 關(guān)系的完整性任務(wù)2-10 新建一個關(guān)系“選課”,與任務(wù)2-9中關(guān)系“課程”形成參照關(guān)系和被參照關(guān)系,此時“選課”中外碼courseID的值不能超過“課程”中courseID的值。使用T-SQL語言定義參照完整性。任務(wù)分析:T-SQL語言的相關(guān)知識將在本書第五章介紹,此處從T-SQL語言實現(xiàn)參照完整性約束的角度幫助讀者理解參照完整性。使用T-SQL語言創(chuàng)建某表“選課”的語句如下:CREATE TABLE Student_Course(studentID char(10) NOT NULL,courseID char(8) NOT NULL,Grade Tinyint,PRIMARY KEY
43、(studentID,courseID),FROEIGN KEY(courseID) REFERENCES Course(courseID)當(dāng)對“選課”中插入數(shù)據(jù)時,數(shù)據(jù)庫管理系統(tǒng)檢查其插入的courseID值是否在“課程”的courseID屬性值中,如果存在則可插入,如不存在則不能插入。 2.3.2 參照完整性2.3 關(guān)系的完整性2.3.3 用戶定義完整性 實體完整性和參照性適用于任何關(guān)系數(shù)據(jù)庫系統(tǒng),而用戶自定義的完整性規(guī)則是針對某一具體數(shù)據(jù)庫的約束條件。 不同的關(guān)系數(shù)據(jù)庫系統(tǒng)根據(jù)其應(yīng)用環(huán)境的不同,往往需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關(guān)系數(shù)據(jù)庫進行的條件約束,它反映的
44、是具體應(yīng)用所涉及的數(shù)據(jù)所須滿足的要求。關(guān)系模型應(yīng)能提供定義和檢驗這類完整性的機制,以便用統(tǒng)一的處理這些條件要求。因此,在實際應(yīng)用中,應(yīng)用程序的編程人員不需考慮這類完整性規(guī)則。 2.3 關(guān)系的完整性任務(wù)2-11 對關(guān)系“學(xué)生”,其中的屬性“性別”的取值范圍必須滿足“男”或“女”,使用T-SQL語言定義用戶完整性約束(CHECK約束)。任務(wù)分析:T-SQL語言的相關(guān)知識將在本書第五章介紹,此處從T-SQL語言實現(xiàn)用戶定義完整性約束的角度幫助讀者理解用戶定義完整性。使用T-SQL語言創(chuàng)建某表“學(xué)生”的語句如下:CREATE TABLE STUDENT(studentID char(10) NOT N
45、ULL PRIMARY KEY,studentName varchar (10) NOT NULL,Sex char(2) NULL CHECK(Sex=男 OR Sex=女))在對關(guān)系“學(xué)生”進行數(shù)據(jù)輸入的時候,數(shù)據(jù)庫管理系統(tǒng)自動檢查所輸入性別對應(yīng)的值,所輸入的Sex值只可能是“男”或者是“女”兩種情況之一。 2.3.3 用戶定義完整性2.4 關(guān)系規(guī)范化理論 在數(shù)據(jù)庫設(shè)計過程中,需要考慮到針對具體問題構(gòu)造適合于這個問題的數(shù)據(jù)庫模式,即在該數(shù)據(jù)庫設(shè)計過程中應(yīng)該構(gòu)造幾個關(guān)系模式,每個關(guān)系由哪些屬性組成等。這是數(shù)據(jù)庫設(shè)計的問題,確切地講是關(guān)系數(shù)據(jù)庫邏輯設(shè)計問題。 關(guān)系數(shù)據(jù)庫邏輯設(shè)計的好壞與其所含的
46、各個關(guān)系模式設(shè)計的好壞相關(guān)。如果各個關(guān)系模式結(jié)構(gòu)合理、功能簡單明確、規(guī)范化程度高,就能確保所建立的數(shù)據(jù)庫具有較少的數(shù)據(jù)冗余、較高的數(shù)據(jù)共享度、較好的數(shù)據(jù)一致性,并為數(shù)據(jù)庫系統(tǒng)能夠很好的應(yīng)用于實際打下良好基礎(chǔ)。 不規(guī)范的關(guān)系設(shè)計會增大系統(tǒng)在運行過程中的數(shù)據(jù)冗余,進而可能由數(shù)據(jù)冗余為整個數(shù)據(jù)庫系統(tǒng)帶來其他運行的障礙。同時,還會帶來數(shù)據(jù)的刪除異常和插入異常等問題。因此,關(guān)系的規(guī)范化在數(shù)據(jù)庫設(shè)計中起著很重要的作用。 2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計中,經(jīng)常會遇到某一屬性還具有子屬性的情況。此時,可對其進行規(guī)范化,使其滿足第一范式。 1NF定義:設(shè)關(guān)系R,則關(guān)系R中所有屬性不可再分,即消除非原子屬
47、性分量。 例如:在關(guān)系“學(xué)生”中有“電話”屬性,電話屬性可能有家庭電話、手機、宿舍電話等子屬性。如表2-22所示。 2.4.1 第一范式1NF學(xué) 號姓 名性 別電 話家庭電話手 機宿舍電話20100101張小麗女52236891365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*6156328表2-22 學(xué)生信息表 2.4 關(guān)系規(guī)范化理論 2.4.1 第一范式1NF任務(wù) 2-12 對以上關(guān)系進行規(guī)范化,使其滿足1NF。任務(wù)分析:家庭電話
48、、手機、宿舍電話三個屬性屬于“電話”屬性的子屬性。此時,可將“電話”屬性進行分解。結(jié)果如表2-23所示。 學(xué) 號姓 名性 別家庭電話手 機宿舍電話20100101張小麗女52236891365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*6156328表2-22 滿足1NF的學(xué)生信息表 2.4 關(guān)系規(guī)范化理論 2.4.2 第一范式2NF 在關(guān)系模式設(shè)計中,如果非主屬性存在對主碼的部分函數(shù)依賴,則不滿足2NF。此時,可對其進行規(guī)范化,使其
49、滿足第二范式。 2NF定義:設(shè)關(guān)系R,則關(guān)系R中所有非主屬性需完全函數(shù)依賴每個主碼,即消除非主屬性對主碼的部分函數(shù)依賴。 例如:假如某設(shè)計人員將學(xué)生“選課”關(guān)系設(shè)計為“Student_Course(studentID,studentName,Sex,courseID,coursename,typename,Grade)”,主碼為studentID和courseID,則此時存在非主屬性對主碼的部分函數(shù)依賴??赡墚a(chǎn)生的問題:數(shù)據(jù)冗余:不同課程同一個選課學(xué)生的學(xué)生姓名、性別信息存在數(shù)據(jù)冗余。即一個學(xué)生可能選了多門課程,則在這個學(xué)生對應(yīng)的多個課程實體中,存在大量學(xué)生姓名、性別的數(shù)據(jù)冗余。插入異常:如果
50、有某門課程沒有學(xué)生進行選擇,則導(dǎo)致該門課程的信息無法正常插入,造成插入異常。刪除異常:如果某學(xué)生只選擇了一門課程,則在刪除該門課程信息時,導(dǎo)致學(xué)生信息也被刪除,造成刪除異常。更新異常:更新過程實際是刪除和插入過程的結(jié)合,所以也會帶來更新異常。2.4 關(guān)系規(guī)范化理論 2.4.2 第一范式2NF任務(wù) 2-13 對以上關(guān)系進行規(guī)范化,使其滿足2NF。任務(wù)分析:可以發(fā)現(xiàn)存在兩種非主屬性。一種是“Grade”,它完全由studentID和courseID同時決定,它對主碼是完全函數(shù)依賴,另一種是“studentName,Sex, coursename,typename”,它們對主碼并不是完全函數(shù)依賴,比
51、如studentName只由studentID決定,而coursename只由courseID決定。此時,可將“選課”關(guān)系分解為兩個關(guān)系:Student_Course(studentID,courseID,Grade) 主碼:studentID,courseIDCourse(courseID,coursename,typename) 主碼:courseID這樣,兩個新關(guān)系中的非主屬性就分別完全函數(shù)依賴于各自的關(guān)系主碼,從而達到了2NF。 2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計中,如果非主屬性存在對主碼的傳遞函數(shù)依賴,則不滿足3NF。此時,可對其進行規(guī)范化,使其滿足第三范式。 3NF定義:設(shè)關(guān)系
52、R,則關(guān)系R中所有非主屬性需不傳遞函數(shù)依賴每個主碼,即消除非主屬性對每個主碼的傳遞函數(shù)依賴。 例如:假如某設(shè)計人員將“課程”關(guān)系設(shè)計為“Course(courseID,coursename,CoursetypeID,typename)”,主碼為courseID,則此時存在非主屬性對主碼的傳遞函數(shù)依賴。 可能產(chǎn)生的問題:數(shù)據(jù)冗余:同一課程類型的多門課程對應(yīng)的類型名稱存在數(shù)據(jù)冗余。即可能多門課程屬于同一課程類型,此時,同一類型多門課程對應(yīng)實體中存在課程類型名稱的數(shù)據(jù)冗余。插入異常:在某課程類型沒有對應(yīng)課程的情況下,無法正常插入課程類型信息,造成插入異常。刪除異常:某類型課程只有一門對應(yīng)課程,當(dāng)刪除
53、該課程信息時,導(dǎo)致刪除課程類型信息,造成刪除異常。更新異常:更新過程實際是刪除和插入過程的結(jié)合,所以也會帶來更新異常。2.4.3 第三范式3NF2.4 關(guān)系規(guī)范化理論任務(wù) 2-14 對以上關(guān)系進行規(guī)范化,使其滿足3NF。任務(wù)分析:可以發(fā)現(xiàn)“課程”關(guān)系中的主碼courseID決定CoursetypeID,而CoursetypeID決定非主屬性typename,即非主屬性typename通過CoursetypeID傳遞函數(shù)依賴主碼courseID,達不到3NF。此時,可將“課程”關(guān)系分解為兩個關(guān)系,取消其傳遞依賴:Course(courseID,coursename, CoursetypeID)
54、主碼:courseIDCoursetype(coursetypeID,typename) 主碼:coursetypeID這樣,由于分解為兩個新關(guān)系,則取消了原有關(guān)系之間的傳遞依賴,且新關(guān)系中也不存在其他傳遞依賴,從而達到了3NF。 2.4.3 第三范式3NF2.4 關(guān)系規(guī)范化理論 在關(guān)系模式設(shè)計中,如果不是每一個決定因素都包含關(guān)鍵字,則不滿足BCNF。 BCNF定義:設(shè)關(guān)系R,則關(guān)系R中所有屬性都不傳遞函數(shù)依賴每個候選碼,即消除屬性對候選碼的傳遞函數(shù)依賴。 BC范式的要求比第三范式更加嚴格,是改進的第三范式。第三范式只關(guān)注非主屬性和關(guān)鍵字之間的傳遞函數(shù)依賴關(guān)系,而BC范式則關(guān)注所有屬性和每個候
55、選碼之間的傳遞函數(shù)依賴。當(dāng)一個關(guān)系模式中有多個候選碼,并且這些候選碼具有公共屬性時,就不能夠滿足BC范式。由此可見,滿足BC范式的關(guān)系模式一定滿足第三范式,但滿足第三范式的關(guān)系模式不一定滿足BC范式。2.4.4 BC范式BCNF2.4 關(guān)系規(guī)范化理論2.4.5 關(guān)系規(guī)范化的實際應(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ù)庫基本運算;關(guān)系規(guī)范化。Thank You!數(shù) 據(jù) 庫 原 理 及 應(yīng) 用(
56、SQL Server 2005):2022年7月11日第3章關(guān)系數(shù)據(jù)庫基礎(chǔ)第2章關(guān)系數(shù)據(jù)庫基礎(chǔ)任務(wù)目標(biāo):了解數(shù)據(jù)庫設(shè)計的基本方法;了解影響數(shù)據(jù)庫設(shè)計的各因素及數(shù)據(jù)庫設(shè)計的特點;能夠根據(jù)項目需求分析進行數(shù)據(jù)庫的概念模型設(shè)計;能運用關(guān)系模型的基本知識將概念模型轉(zhuǎn)換為關(guān)系模型;能夠用關(guān)系規(guī)范化方法對關(guān)系模型進行規(guī)范化和優(yōu)化;能夠根據(jù)完整性規(guī)則對關(guān)系模型進行實體完整性、用戶定義完整性和參照完整性的設(shè)計;了解數(shù)據(jù)庫系統(tǒng)安全的基礎(chǔ)知識。 第3章數(shù)據(jù)庫的設(shè)計3.1 數(shù)據(jù)庫設(shè)計概述3.2 數(shù)據(jù)庫設(shè)計的步驟3.3 數(shù)據(jù)庫保護習(xí)題3.1 數(shù)據(jù)庫設(shè)計概述3.1.1 數(shù)據(jù)庫設(shè)計方法 規(guī)范化設(shè)計中著名的有新奧爾良法,它
57、將數(shù)據(jù)庫設(shè)計分為四個標(biāo)準(zhǔn)階段:需求分析(分析用戶需求)、概念設(shè)計(信息分析和定義)、邏輯設(shè)計(設(shè)計實現(xiàn))和物理設(shè)計(物理數(shù)據(jù)庫設(shè)計)。后來,很多設(shè)計者在此基礎(chǔ)上對新奧爾良法進行了補充和豐富。S.B.Yao法將數(shù)據(jù)庫設(shè)計分為5個步驟:需求分析,模式構(gòu)成,模式匯總,模式重構(gòu),模式分析和物理數(shù)據(jù)庫設(shè)計;I.R.Palmer法主張將數(shù)據(jù)庫設(shè)計當(dāng)成一步步的過程并采用一些輔助手段實現(xiàn)每一過程;數(shù)據(jù)庫生命周期法以軟件生命周期(規(guī)劃、設(shè)計、實施、運行維護)為主線對數(shù)據(jù)庫進行設(shè)計。 基于E-R模型的數(shù)據(jù)庫設(shè)計方法、基于3NF(第三范式)的設(shè)計方法和基于抽象語法規(guī)范的設(shè)計方法,都是在數(shù)據(jù)庫設(shè)計的不同階段上支持實現(xiàn)
58、的具體技術(shù)和方法。規(guī)范法設(shè)計從本質(zhì)上看仍然屬于手工設(shè)計方法,其基本思想是過程迭代和逐步求精,在遵從一定設(shè)計標(biāo)準(zhǔn)的基礎(chǔ)上,設(shè)計出科學(xué)、合理的數(shù)據(jù)庫系統(tǒng)。 3.1 數(shù)據(jù)庫設(shè)計概述3.1.2 數(shù)據(jù)庫設(shè)計特點 數(shù)據(jù)庫設(shè)計的基本任務(wù)是根據(jù)用戶使用的硬件系統(tǒng)、操作系統(tǒng)與數(shù)據(jù)庫管理系統(tǒng)等條件,設(shè)計出數(shù)據(jù)庫模式,設(shè)計過程中受很多因素的影響。因此,數(shù)據(jù)庫系統(tǒng)設(shè)計具有如下幾個主要特點: 1反復(fù)性 2試探性 3多步性 4面向數(shù)據(jù)3.2 數(shù)據(jù)庫設(shè)計的步驟3.2.1 SQL Server數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計一般步驟 一般可將數(shù)據(jù)庫設(shè)計分為以下6個階段。1需求分析階段2概念設(shè)計階段 3邏輯設(shè)計階段4物理設(shè)計階段5數(shù)據(jù)庫實現(xiàn)
59、階段6數(shù)據(jù)庫運行和維護階段需求分析概念設(shè)計邏輯設(shè)計物理設(shè)計數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)庫的運行、維護圖3-1 數(shù)據(jù)庫設(shè)計流程3.2 數(shù)據(jù)庫設(shè)計的步驟3.2.2 需求分析階段 需求分析是整個數(shù)據(jù)庫設(shè)計的基礎(chǔ),在進行數(shù)據(jù)庫設(shè)計時,首先要了解與分析用戶的應(yīng)用需求,因為該階段需要設(shè)計者與客戶的溝通,因此也是最費時、最困難的一個階段。 任務(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é)生成績管理部門(教務(wù)處)學(xué)生管理職責(zé)成績
60、管理職責(zé)課程管理職責(zé)圖3-2 學(xué)生成績管理部門組織結(jié)構(gòu)圖3.2 數(shù)據(jù)庫設(shè)計的步驟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è)計的步驟3.2.2 需求分析階段 3了解系統(tǒng)功能需求。 學(xué)生成績管理系統(tǒng)需要完成如下功能。學(xué)生管理:存儲、檢索、維護有關(guān)學(xué)生的信息;課程管理:存儲、檢索、維護有關(guān)課程的信息;成績管理:存儲、檢索、維護有關(guān)學(xué)生成績的信息。4細讀數(shù)據(jù)字典。 針對學(xué)生成績管理系統(tǒng)的功能需求,通過分析、歸納,總結(jié)出需要如下信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理實務(wù)案例試題及答案
- 2025年法學(xué)概論備考策略與試題及答案
- 企業(yè)組織行為與戰(zhàn)略風(fēng)險管理的系統(tǒng)思考試題及答案
- 養(yǎng)老機構(gòu)醫(yī)養(yǎng)結(jié)合模式下的市場拓展策略報告2025
- 信息處理年度考試試題及答案分析
- 2025年數(shù)字藝術(shù)市場交易活躍度:藝術(shù)市場消費者行為分析與市場細分研究報告
- 重慶用工協(xié)議書
- 軟件項目管理面試題及答案
- 設(shè)備保價協(xié)議書
- 誤會解除協(xié)議書
- 2025年護士考試心理健康試題及答案
- 旅游法規(guī)教程試題及答案
- 工程測量學(xué)概述
- 農(nóng)村小學(xué)教師信息技術(shù)應(yīng)用能力提升策略研究:數(shù)字化教學(xué)資源與實踐應(yīng)用
- 2025-2030中國學(xué)生校服行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- DB11 T 411.8-2007 體育場館等級劃分及評定 第8部分:籃球館
- 滴滴管理制度
- 2025年全國中小學(xué)生百科知識競賽題庫及答案(480題)
- 貨車掛靠協(xié)議合同
- 2025屆天津市十二區(qū)重點學(xué)校高三下學(xué)期畢業(yè)聯(lián)考(一)英語試題(含答案)
- 生物醫(yī)學(xué)電子學(xué)智慧樹知到期末考試答案章節(jié)答案2024年天津大學(xué)
評論
0/150
提交評論