




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數 據 庫 原 理 及 應 用(SQL Server 2005):2022年7月11日第1章數據庫概述第1章數據庫概述任務目標:熟悉數據管理技術的基本概念;掌握數據庫系統的構成、體系結構;掌握數據模型的三要素、分類;理解概念模型及其表示方法。第1章數據庫概述1.1 數據管理技術基本概念1.2 數據庫系統1.3 數據模型習題1.1 數據管理技術的基本概念1.1.1 信息與數據姓名:張三年齡:17 性別:男身高:1.67 m體重:50 kg客觀事物 數據表達數據表達信息(Information)1.1 基本概念1.1.1 信息與數據數據(Data) :是對客觀事物及其活動的抽象符號表示;存儲在某一
2、種媒體上可以鑒別的符號資料;表示形式多樣,可以是數據、文本、圖形、聲音等。信息(Information)是經過加工處理后具有一定含義的數據集合 ;以某種特定數據形式表現。數據處理(Data Processing)將數據轉換成信息的過程稱為數據處理;對數據進行收集、儲存、分類、加工等活動;目的:從數據出發,推導、抽取有價值的信息。1.1 基本概念 數據管理是指對數據進行收集、分類、組織、編碼、存儲、檢索和維護等,數據管理技術的發展經歷了人工管理、文件系統和數據庫系統3個階段,目前正在向著網絡化、智能化和集成化的方向發展。 數據管理技術發展三階段: 1人工管理階段 2文件系統階段 3數據庫系統階段
3、1.1.2 數據管理技術的發展1.1 基本概念數據庫系統階段特點如下:數據管理者:數據庫管理系統。數據面向的對象:整個應用系統。數據的共享程度:共享性良好,冗余度小。數據的獨立性:獨立性良好,具備高度的邏輯獨立性和物理獨立性。數據的結構化:單條記錄內部有結構,并使用數據模型描述,整體上有結構。數據控制能力:由數據庫管理系統提供數據安全性、完整性等數據控制。 1.1.2 數據管理技術的發展1.2 數據庫系統 數據庫系統(DataBase System,DBS)是指引進了數據庫技術后的計算機系統,它能夠有組織地、動態地存儲大量數據,提供數據處理和數據共享機制。 數據庫系統是一個復雜的系統,一般情況
4、下由硬件系統、軟件系統、數據庫和用戶組成。 1.1.2 數據庫系統構成1.2 數據庫系統 數據庫系統的基本組成主要有以下幾項:(1)系統硬件(HW,Hard Ware)(2)操作系統(OS,Operating System)(3)數據庫(DB,DateBase)(4)數據庫管理系統 (DBMS,DateBase Management System)(5)數據庫應用系統開發軟件(DT,Development Tools)(6)數據庫應用系統(DBAS,DateBase Application System)(7)用戶(User)1.1.2 數據管理技術的發展1.2 數據庫系統 數據庫管理系統(D
5、ataBase Management System,DBMS)是處理數據訪問的軟件系統,是位于用戶與操作系統之間的一層對數據庫進行管理的軟件。數據庫在建立、運行和維護時由數據庫管理系統統一管理、統一控制。 數據庫管理系統的功能主要包括: 數據定義:數據庫提供數據定義語言(DDL,Date Definition Language)對數據庫進行定義。 數據操縱:數據庫提供數據操作語言(DML,Date Manipulation Lauguage)對數據進行具體操作。 數據庫的運行管理:數據庫提供數據控制語言(DCL,Date Control Language)對數據進行完整性控制、安全性控制、數據
6、庫恢復、數據庫維護和數據庫的并發控制等。 數據字典:數據庫的邏輯結構、物理存儲結構和完整性約束均保存在數據字典(DD,Date Dictionary)中。 數據通信接口:數據庫管理系統需要提供與其他軟件系統進行通信的功能。例如提供與其他數據庫管理系統的接口,從而能夠將數據轉換為另一個數據庫管理系統能夠接受的格式,或者接收其他數據庫管理系統的數據。 常見的數據庫管理系統有Qracle、SQL Server、Sybase、MYSQL、DB2、Access等。1.1.2 數據管理技術的發展1.2 數據庫系統 根據數據庫從建設到運行的整個過程中不同崗位的工作性質,可以將其用戶分為兩個大類:開發類用戶和
7、應用類用戶。1.1.2 數據管理技術的發展數據庫分析員開發類用戶應用程序員數據庫管理員終端用戶應用類用戶數據庫用戶分類1.2 數據庫系統 1單機數據庫系統 整個數據庫系統,包括應用程序、數據庫管理系統、數據信息,都安裝在一臺計算機上,這類系統系統結構簡捷,系統運行速度快,但不同機器之間不能進行數據共享,安全性較差,只適用于小型用戶使用。 2主從結構的數據庫系統 1.2.2 數據庫系統體系結構應用終端(應用程序)主 機(DBMS、DB)發送請求響應請求主從結構的數據庫系統1.2 數據庫系統 3分布式結構的數據庫系統 數據庫中的數據在邏輯上是一個整體,但物理地分布在整個數據庫系統網絡下的不同結點上
8、。網絡中的每個結點都可以獨立處理本地數據庫中的數據;同時也可以同時存取和處理網絡上的多個異地數據庫中的數據,執行全網的數據庫應用。 4客戶服務器(C/S,Client/Server)結構的數據庫系統 該結構下的數據庫系統顯著減少了網絡上的數據傳輸量,提高了系統的性能、吞吐量和負載能力。C/S結構分為二層C/S體系結構和三層C/S體系結構。 SQL Server 2005是可用于C/S模式的數據庫管理系統。 5瀏覽器/服務器(B/S,Browser/Server)結構的數據庫系統 1.2.2 數據庫系統體系結構1.2 數據庫系統1.2.2 數據庫系統體系結構數據庫應用端計算機操作系統客戶端1計算
9、機硬件數據庫應用端計算機操作系統客戶端n計算機硬件數據庫管理系統計算機操作系統計算機硬件數據庫服務器端請求響應響應 二層C/S結構1.2 數據庫系統1.2.2 數據庫系統體系結構應用程序界面計算機操作系統客戶端1計算機硬件應用程序界面計算機操作系統客戶端n計算機硬件數據庫應用程序數據庫服務器數據庫管理系統計算機操作系統計算機硬件數據庫服務器端請求響應響應請求響應 三層C/S結構1.2 數據庫系統1.2.2 數據庫系統體系結構 三層B/S結構瀏覽器計算機操作系統客戶端1計算機硬件瀏覽器計算機操作系統客戶端n計算機硬件數據庫應用程序瀏覽器服務器數據庫管理系統計算機操作系統計算機硬件數據庫服務器端請
10、求響應響應請求響應1.2 數據庫系統 數據庫管理系統將數據庫建立為三級模式結構和二級存儲映象,這便是數據庫的體系結構。1.2.3 數據庫的體系結構外部應用1外部應用2外部應用3外部應用n外模式1外模式2外模式n模式內模式數據庫模式/外模式映象模式/內模式映象三級模式結構和二級存儲映象1.3 數據模型 數據模型(Data Model)是對數據特征的抽象,是嚴格定義的概念集合。數據模型包括數據庫數據的結構部分、數據庫數據的操作部分和數據庫數據的約束條件。即數據模型所描述的三個部分: (1)數據結構 (2)數據操作 基本的數據操作包括兩大類: 檢索:數據查詢 更新:數據的插入、刪除和更新等操作 (3
11、)數據的完整性約束1.3.1 數據模型的三要素1.3 數據模型 在實際數據庫應用中,為了更為便捷、準確的描述現實世界中的數據,通常依據不同的應用環境,采用不同的數據模型。 數據模型按不同的應用層次分成三種類型: (1)概念數據模型 (2)邏輯數據模型 (3)物理數據模型 如果要將現實世界中的具體事物抽象和表示為根據某具體應用環境的、某種數據庫管理系統支持的數據模型,那么通常需要首先把現實世界轉換為信息世界(概念模型),再由信息世界轉換成數據庫管理系統支持的邏輯模型。 1.3.2 數據模型分類及關系1.3 數據模型 數據模型(Data Model)是對數據特征的抽象,是嚴格定義的概念集合。數據模
12、型包括數據庫數據的結構部分、數據庫數據的操作部分和數據庫數據的約束條件。即數據模型所描述的三個部分: (1)數據結構 (2)數據操作 基本的數據操作包括兩大類: 檢索:數據查詢 更新:數據的插入、刪除和更新等操作 (3)數據的完整性約束1.3.2 數據模型分類及關系1.3 數據模型1.3.2 數據模型分類及關系機器世界關系數據模型信息世界實體及其聯系現實世界客觀事物及其聯系存 在概念模型邏輯模型 三個世界模型關系1.3 數據模型 概念模型是對信息世界的建模,是對真實世界中問題域內的事物的描述,它不依賴于某一個具體數據庫管理系統支持的數據模型,但概念模型可以轉換為計算機上某數據庫管理系統支持的特
13、定數據模型。 概念模型具備以下特點: 能夠方便、直接地表達應用中的各種語義知識。 簡單、清晰、易于理解,是用戶與數據庫設計人員之間進行交流的媒介。1.3.3 概念模型及其表示方法1.3 數據模型 1基本概念 (1) 實體(Entity) 客觀存在并可相互區別的事物和活動的抽象稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯系。 例如:一個員工。 (2) 屬性(Attribute) 實體和聯系所具有的特性稱為屬性。一個實體可以由若干個屬性來描述。 例如:員工編號、員工姓名、員工性別、員工年齡。 (3) 主碼(Key) 能唯一標識實體的屬性或屬性集稱為碼。 例如:實體員工中的員工編號。
14、 (4) 域(Domain) 屬性的取值范圍稱為該屬性的域。 例如:可以為員工編號設置一定的取值范圍。1.3.3 概念模型及其表示方法1.3 數據模型 (5) 實體型(Entity Type) 用實體名及描述它的各屬性名,可以刻畫出全部同質實體的共同特征和性質,它被稱為實體型。 (6) 實體集(Entity Set) 同型實體的集合稱為實體集。 (7) 聯系(Relationship) 實體集間或一個實體集內的各實體之間存在的關系,現實世界中事物內部以及事物之間的聯系在信息世界中反映為實體內部的聯系和實體之間的聯系。 聯系有以下三種: 一對一聯系(1:1) 一對多聯系(1:n) 多對多聯系(m
15、:n) 1.3.3 概念模型及其表示方法1.3 數據模型 2概念模型表示方法 聯系方法(Entity-Relationship Approach) 用這個方法描述的概念模型稱為實體聯系模型,簡稱ER模型。ER模型(Entity-Relationship Model)用E-R圖來描述現實世界的概念模型,它是一個面向問題的概念模型。 E-R圖的描述方式很接近人的思維方式,描述過程不設計數據在數據庫中的表示和存取,便于用戶與系統開發人員之間的交流。 在ER模型中,信息由實體型、實體屬性和實體間的聯系三種概念單元來表示。 1.3.3 概念模型及其表示方法1.3 數據模型實體型:用矩形表示,矩形框內寫明
16、實體名。屬性:是實體的說明,用橢圓形表示,并用無向邊將其與相應的實體連接起來。 如圖所示,學生實體具備學號、姓名、性別等屬性。1.3.3 概念模型及其表示方法學 生學 號姓 名性 別學生實體屬性 1.3 數據模型聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊分別與有關實體連接起來,同時在無向邊旁標上聯系的類型(1:1、1:n或m:n)。1.3.3 概念模型及其表示方法課 程課程號課程名課程類型學 生學 號姓 名性 別選修nm課程與學生的聯系 1.3 數據模型 聯系本身也是一種實體型,可以有屬性。如果一個聯系具有屬性,則這些屬性也要用無向邊與該聯系連接起來。學生與課程具有聯系選課,課程被學生選
17、修后,學生需獲得對應課程的成績。因此,選修聯系具有屬性“成績”。 1.3.3 概念模型及其表示方法課 程課程號課程名課程類型學 生學 號姓 名性別選修nm成 績聯系“選修”的屬性“成績” 第1章數據庫概述本章小結:數據與信息;數據庫系統與數據庫管理系統;數據模型及其分類;概念模型及E-R圖的畫法。Thank You!數 據 庫 原 理 及 應 用(SQL Server 2005):2022年7月11日第2章關系數據庫基礎第2章關系數據庫基礎任務目標:了解數據模型的分類 ,掌握關系模型的組成及相關概念;了解關系代數的基礎知識,能運用關系代數進行傳統的集合運算和專門的集合運算;掌握關系完整性的相關
18、知識,能夠對關系進行實體完整性、參照完整性和用戶定義完整性約束; 掌握關系規范化理論,能夠使用1NF、2NF和3NF對關系進行規范化。第2章關系數據庫基礎2.1 關系模型的基本概念2.2 關系數據的基本運算2.3 關系的完整性2.4 關系規范化理論習題2.1 關系模型的基本概念2.1.1 關系模型 在數據庫中,有些數據實體之間存在著某種聯系,用來描述這些數據實體間關聯形式的模型叫做數據模型。 在數據庫技術領域中,較為經典的數據模型有三種,分別是: 層次模型; 網狀模型; 關系模型,采用二維表結構描述數據實體間的關聯,以記錄組或數據表的形式組織數據,以便于利用各種地理實體與屬性之間的關系進行存儲
19、和變換,不分層也無指針,是建立空間數據和屬性數據之間關系的一種非常有效的數據組織方法。 2.1 關系模型的基本概念2.1.1 關系模型 關系模型和層次、網狀模型相比,有以下特點: 1)數據結構簡單(二維表) 2)扎實的理論基礎 3)關系運算 4)關系模式的數據獨立性強 關系模型由三部分組成: 關系數據結構; 關系數據操作; 關系數據完整性約束。2.1 關系模型的基本概念 2.1.2 關系基本概念 在關系和關系數據庫的學習中,需要先學習以下術語和相關概念。 1.域域是一組具有相同數據類型的值的集合。 2.元組關系中的每個元素是關系中的元組,可以用來表示一個實體。 3.關系關系是一個規范化的二維表
20、,表的每一行對應一個元組,表的每一列對應一個域,由于域可以相同,為了加以區分表中的列,必須對每列起一個名字,稱為屬性。 2.1 關系模型的基本概念基本的關系滿足以下特性:關系(二維表)中的每一行對應一個元組,即一個實體;表的每一列對應某個實體的一個屬性。關系中的元組(實體)不能完全相同。關系中的屬性名稱不能重復。關系中的元組次序和屬性次序可以互換。關系中的每個屬性都是不可再分解的數據項。關系的屬性中必須有一個是關鍵字,用來唯一標識一個實體。 2.1.2 關系基本概念2.1 關系模型的基本概念 例:學生選課系統中,其概念模型中有學生實體、課程實體以及選課聯系。 學號(studentID)姓(st
21、udentName)性別(Sex)20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男2.1.2 關系基本概念課程號(courseID)課程名(coursename)課程類別(typename)342101計算機基礎專業課342102數據庫應用專業課342103C語言程序設計專業課342104大學英語基礎課342105高等數學基礎課學號(studentID)課程號(courseID)成績(Grade)201001023421038620100101342101792
22、01001053421028120100107342104902010010834210192201001023421047520100107342105802010010634210170關系選課 關系課程 關系學生 2.1 關系模型的基本概念 4.屬性 描述實體或者聯系的特性的列名稱為屬性,屬性分為主屬性和非主屬性。 主屬性:主碼的各個屬性。 非主屬性:除了主屬性之外的屬性。 例如,關系Student中的studentID、studentName、Sex是關系Student的屬性。在關系Student的各屬性中,主屬性有studentID,非主屬性有studentName和Sex。 關系C
23、ourse中的courseID、coursename、typename是關系Course的屬性。在關系Course的各屬性中,主屬性有courseID,非主屬性有coursename和typename。 2.1.2 關系基本概念2.1 關系模型的基本概念 5. 屬性值 描述實體或者聯系的具體數據稱為屬性值。屬性值的取值范圍是域。 例如,關系Student中的20100101,20100105,張小麗,張國強,女,男等都是關系Student的屬性值。 關系Course中的342101,342103,C語言程序設計,數據庫應用,專業課,基礎課等都是關系Course的屬性值。 關系Student_C
24、ourse中的20100102,20100108,342104,342101,70,81等都是關系Student_Course的屬性值。 2.1.2 關系基本概念2.1 關系模型的基本概念6. 關系型關系表的所有列標題,即所有屬性名。例如,關系Student的關系型可表示成為:( studentID, studentName, Sex)關系Course的關系型可表示成為:(courseID, coursename, typename)關系Student_Course的關系型可表示成為:(studentID, courseID, Grade) 2.1.2 關系基本概念2.1 關系模型的基本概念
25、7. 關鍵字 關系中用來唯一標識一個實體的某個屬性或屬性組。每個關系只能有一個關鍵字,又被稱為主碼或主鍵。 例如,關系Student中的關鍵字是studentID屬性。關系Course中的關鍵字是courseID屬性。關系Student_Course中的關鍵字是studentID和courseID屬性組,原理與關系Student_Course主屬性的選取一樣。 2.1.2 關系基本概念2.1 關系模型的基本概念 8. 外關鍵字 關系中用的某個屬性或屬性組不是本關系的關鍵字,而是另一個關系的關鍵字,又被稱為外碼或外鍵。 例如,關系Student_Course中的studentID屬性和cours
26、eID屬性都是外關鍵字。在關系Student和關系Student_Course中沒有外關鍵字。 9. 候選碼 候選碼是指可以作為關鍵字的屬性或屬性組。候選碼可以有多個,可從候選碼中選取一個或部分作為關鍵字。2.1.2 關系基本概念2.1 關系模型的基本概念10.關系模式 用來描述關系的關系名稱。 關系模式通常可以簡記為: 關系名(屬性名1, 屬性名2, 屬性名n)。 如,學生關系模式通常可以簡記為: Student(studentID,studentName,Sex) 課程關系模式通常可以簡記為: Course(courseID,coursename,typename) 選課關系模式通常可以簡
27、記為: Student_Course(studentID,courseID,Grade) 2.1.2 關系基本概念2.1 關系模型的基本概念 1. 關系數據庫 關系數據庫是指在一個給定的現實世界應用領域中,用于描述實體及實體之間聯系的所有關系表的集合。 2. 關系數據庫系統 采用關系數據模型構造的數據庫系統,被稱為關系數據庫系統。關系數據庫系統是目前使用最為廣泛的數據庫系統。2.1.3 關系數據庫2.2 關系數據的基本運算 關系數據的運算是以關系代數為基礎的。關系代數是一種抽象的查詢語言,用于對關系的運算來表達各種操作,其運算對象是關系,運算結果亦為關系。 關系代數用到的運算符包括四類: 集合
28、運算符(并、差、交、笛卡爾積); 專門的關系運算符(選擇、投影、連接); 算術比較符(大于、小于、等于、大于等于、小于等于、不等于); 邏輯運算符(與、或、非)。2.2.1 關系代數2.2 關系數據的基本運算 比較運算符和邏輯運算符是用來輔助專門的關系運算符進行操作的,所以關系代數的運算按運算符的不同主要分為傳統的集合運算和專門的關系運算兩類。 2.2.1 關系代數傳統的集合運算符運算名稱運算符號并差交笛卡兒積專門的關系運算符運算名稱運算符號選擇投影連接專門的關系運算符 傳統的集合運算符 2.2 關系數據的基本運算 傳統的集合運算是二目運算。假設有兩個關系R和S,t是元組變量,關系R為學習成績
29、優秀的學生,關系S為心理素質優秀的學生,分別如表2-6和表2-7所示。 學生姓名學生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強男李國慶男2.2.2 傳統的集合運算學生姓名學生性別張小麗女王剛男王曉霞女郭鵬男劉翔男表2-7心理素質優秀的學生關系S 表2-6 學習成績優秀的學生關系R2.2 關系數據的基本運算 學生姓名學生性別張小麗女王剛男李平女郭鵬男劉翔男吳飛男張國強男李國慶男王曉霞女2.2.2 傳統的集合運算1.并運算 任務 2-1 對以上R和S兩個關系進行并運算。 任務分析:按照學習成績優秀的學生關系和心理素質優秀的學生關系,可知并運算RS表示學習成績優秀或心理素質優秀的學生,可以得到
30、RS的關系如下表2-8所示。 表2-8 并運算后的新關系2.2 關系數據的基本運算 2.差運算 任務 2-2 對以上R和S兩個關系進行差運算。 任務分析:按照學習成績優秀的學生關系和心理素質優秀的學生關系,可知差運算R-S表示學習成績優秀的學生但心理素質沒有達到優秀的學生,可以得到R-S的關系如下表2-9所示。2.2.2 傳統的集合運算學生姓名學生性別李平女張國強男李國慶男吳飛男表2-9 差運算后的新關系 2.2 關系數據的基本運算 3.交運算 任務 2-3 對以上R和S兩關系進行交運算。 任務分析:按照學習成績優秀的學生關系和心理素質優秀的學生關系,可知交運算RS表示學習成績優秀同時心理素質
31、也優秀的學生,可以得到RS的關系如下表2-10所示。 2.2.2 傳統的集合運算學生姓名學生性別張小麗女王剛男劉翔男郭鵬男表2-10 差運算后的新關系 2.2 關系數據的基本運算 4.笛卡兒積運算 任務 2-4 假如在學生選課系統中,學生關系R如表2-11所示,選課關系S如表2-12所示,對以上R和S兩關系進行交運算。 任務分析:笛卡兒積是關系的連接,在形成的新關系中前m個屬性來自R,后n個屬性來自S,即新關系的屬性為m+n;關系R的元組個數為a,關系S的元組個數為b,則新關系的元組個數為ab。2.2.2 傳統的集合運算2.2 關系數據的基本運算學號姓名性別20100101張小麗女201001
32、02王剛男學號課程號成績20100102342103862010010134210179201001053421028120100107342104902.2.2 傳統的集合運算學號姓名性別學號課程號成績20100101張小麗女201001023421038620100101張小麗女201001013421017920100101張小麗女201001053421028120100101張小麗女201001073421049020100102王剛男201001023421038620100102王剛男201001013421017920100102王剛男201001053421028120100
33、102王剛男2010010734210490表2-13 笛卡兒積RS 表2-11 學生關系R 表2-12選課關系S 2.2 關系數據的基本運算 1選擇運算 選擇又稱為限制。它是在關系R中選擇滿足給定條件的元組。 任務 2-5 使用選擇運算從學生關系R中選擇男學生,學生關系R如表2-14所示。 任務分析:運算過程中選擇性別條件為“男”的元組組成新關系。進行過選擇運算后的新關系如表2-15所示。 學號姓名性別20100101張小麗女20100102王剛男20100103李平女20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男2.2.3
34、 專門的關系運算學號姓名性別20100102王剛男20100104郭鵬男20100105劉翔男20100106吳飛男20100107張國強男20100108李國慶男表2-14 學生關系R表2-15 選擇運算后新關系 2.2 關系數據的基本運算 2投影運算 關系R上的投影是從R中選擇出若干屬性列組成新的關系。 任務 2-6 使用投影運算從表2-15所示關系中運算出學生姓名和性別情況。 任務分析:運算過程中選擇表2-15所示關系的“姓名”和“性別”情況組成新關系。進行過投影運算后的新關系如表2-16所示。 2.2.3 專門的關系運算姓名性別王剛男郭鵬男劉翔男吳飛男張國強男李國慶男表2-16 選擇運
35、算后的新關系 2.2 關系數據的基本運算 3連接運算 連接也稱為連接。它是從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組,形成一個新的關系。 連接分為兩種: 1)等值連接; 等值連接是在關系R和關系S的連接中,比較條件為等于,則在笛卡兒積中,按等于的比較條件進行選擇。 2)自然連接。 自然連接是一種特殊的等值連接,它要求兩個關系R和S中進行比較的分量必須是相同的屬性組,并且要在結果中把重復的屬性去掉。此時,可以將自然連接運算過程理解為先進行等值連接,再去處重復屬性列。 2.2.3 專門的關系運算2.2 關系數據的基本運算等值連接 任務2-7 學生、選課和課程關系如表2-17、表2-18和表
36、2-19所示,使用等值連接進行關系運算。 任務分析:以選課表中的courseID和studentID條件進行等值連接,觀察等值連接的結果是具有重復屬性的新關系。新關系如表2-20所示。學號姓名性別0101張小麗女0102王剛男2.2.3 專門的關系運算學號課程號成績010134210386010134210179010234210281010234210490課程號(courseID)課程名(coursename)課程類別(typename)342101計算機基礎專業課342102數據庫應用專業課342103C語言程序設計專業課342104大學英語基礎課342105高等數學基礎課表2-17 學
37、生關系(Student) 表2-18選課關系(Student_Course) 表2-19 課程關系(Course) 2.2 關系數據的基本運算2.2.3 專門的關系運算學號姓名性別學號課程號成績課程號課程名課程類別0101張小麗女010134210386342103C語言程序設計專業課0101張小麗女010134210179342101計算機基礎專業課0102王剛男010234210281342102數據庫應用專業課0102王剛男010234210490342104大學英語基礎課表2-20 等值連接關系 2.2 關系數據的基本運算2.2.3 專門的關系運算表2-21 自然連接關系 自然連接 自
38、然連接是一種特殊的等值連接,它要求兩個關系R和S中進行比較的分量必須是相同的屬性組,并且要在結果中把重復的屬性去掉。此時,可以將自然連接運算過程理解為先進行等值連接,再去處重復屬性列。 任務2-8 根據任務2-7的結果,進行自然連接。 任務分析:自然連接運算過程理解為先進行等值連接,再去處重復屬性列。因此,可以在表2-20的基礎上去處重復列。其結果如表2-21所示。 學號姓名性別課程號成績課程名課程類別0101張小麗女34210386C語言程序設計專業課0101張小麗女34210179計算機基礎專業課0102王剛男34210281數據庫應用專業課0102王剛男34210490大學英語基礎課2.
39、3 關系的完整性 任意一個關系通常對應現實世界的某一個實體,如學生關系對應于學生的集合,課程關系對應課程的集合。現實世界中的實體是可區分的,即它們具有自身特定的標識。相應地,關系模型中以主碼作為唯一性標識。主屬性不能取空值,即不能是“不知道”或“無意義”的值。如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與實體的定義相矛盾。 實體完整性規則:若屬性A是基本關系R的主屬性,則屬性A不能取空值。 2.3.1 實體完整性2.3 關系的完整性任務2-9 建立表“學生”,其中的屬性“課程號”為主碼,該主碼唯一且不能為空。使用T-SQL語言定義“學生”表。任務分析:T-SQL語言
40、的相關知識將在本書第五章介紹,此處從T-SQL語言定義數據表的角度幫助讀者理解實體完整性規則。使用T-SQL語言創建某表“課程”的語句如下: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”。依據以上T-SQL語句進行了表的創建后,當有基于此表的數據輸入
41、、修改等操作時,數據庫管理系統自動對輸入和修改的數據進行檢查,從而可以保障數據的有效性。 2.3.1 實體完整性2.3 關系的完整性 實體與實體之間往往存在某種依存關系,這種依存關系叫做聯系。在關系模型中實體及實體間的聯系都是用關系來描述的,這樣就自然存在著關系與關系間的引用,即關系參照的完整性。 在一個關系模型中,關系R中的外碼對應另一個關系S的主碼(關系R和S不一定是不同的關系),關系R中外碼的取值要參照另一個關系S主碼的取值。此時,R為參照關系,S為被參照關系。 參照完整性規則:定義外碼與主碼之間的引用和參照規則,參照關系的外碼取值不能超出被參照關系的主碼取值。 2.3.2 參照完整性2
42、.3 關系的完整性任務2-10 新建一個關系“選課”,與任務2-9中關系“課程”形成參照關系和被參照關系,此時“選課”中外碼courseID的值不能超過“課程”中courseID的值。使用T-SQL語言定義參照完整性。任務分析:T-SQL語言的相關知識將在本書第五章介紹,此處從T-SQL語言實現參照完整性約束的角度幫助讀者理解參照完整性。使用T-SQL語言創建某表“選課”的語句如下: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)當對“選課”中插入數據時,數據庫管理系統檢查其插入的courseID值是否在“課程”的courseID屬性值中,如果存在則可插入,如不存在則不能插入。 2.3.2 參照完整性2.3 關系的完整性2.3.3 用戶定義完整性 實體完整性和參照性適用于任何關系數據庫系統,而用戶自定義的完整性規則是針對某一具體數據庫的約束條件。 不同的關系數據庫系統根據其應用環境的不同,往往需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關系數據庫進行的條件約束,它反映的
44、是具體應用所涉及的數據所須滿足的要求。關系模型應能提供定義和檢驗這類完整性的機制,以便用統一的處理這些條件要求。因此,在實際應用中,應用程序的編程人員不需考慮這類完整性規則。 2.3 關系的完整性任務2-11 對關系“學生”,其中的屬性“性別”的取值范圍必須滿足“男”或“女”,使用T-SQL語言定義用戶完整性約束(CHECK約束)。任務分析:T-SQL語言的相關知識將在本書第五章介紹,此處從T-SQL語言實現用戶定義完整性約束的角度幫助讀者理解用戶定義完整性。使用T-SQL語言創建某表“學生”的語句如下: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=女))在對關系“學生”進行數據輸入的時候,數據庫管理系統自動檢查所輸入性別對應的值,所輸入的Sex值只可能是“男”或者是“女”兩種情況之一。 2.3.3 用戶定義完整性2.4 關系規范化理論 在數據庫設計過程中,需要考慮到針對具體問題構造適合于這個問題的數據庫模式,即在該數據庫設計過程中應該構造幾個關系模式,每個關系由哪些屬性組成等。這是數據庫設計的問題,確切地講是關系數據庫邏輯設計問題。 關系數據庫邏輯設計的好壞與其所含的
46、各個關系模式設計的好壞相關。如果各個關系模式結構合理、功能簡單明確、規范化程度高,就能確保所建立的數據庫具有較少的數據冗余、較高的數據共享度、較好的數據一致性,并為數據庫系統能夠很好的應用于實際打下良好基礎。 不規范的關系設計會增大系統在運行過程中的數據冗余,進而可能由數據冗余為整個數據庫系統帶來其他運行的障礙。同時,還會帶來數據的刪除異常和插入異常等問題。因此,關系的規范化在數據庫設計中起著很重要的作用。 2.4 關系規范化理論 在關系模式設計中,經常會遇到某一屬性還具有子屬性的情況。此時,可對其進行規范化,使其滿足第一范式。 1NF定義:設關系R,則關系R中所有屬性不可再分,即消除非原子屬
47、性分量。 例如:在關系“學生”中有“電話”屬性,電話屬性可能有家庭電話、手機、宿舍電話等子屬性。如表2-22所示。 2.4.1 第一范式1NF學 號姓 名性 別電 話家庭電話手 機宿舍電話20100101張小麗女52236891365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*6156328表2-22 學生信息表 2.4 關系規范化理論 2.4.1 第一范式1NF任務 2-12 對以上關系進行規范化,使其滿足1NF。任務分析:家庭電話
48、、手機、宿舍電話三個屬性屬于“電話”屬性的子屬性。此時,可將“電話”屬性進行分解。結果如表2-23所示。 學 號姓 名性 別家庭電話手 機宿舍電話20100101張小麗女52236891365521*612254520100102王剛男53688571352215*625879820100103李平女53658951592256*682001220100104郭鵬男56812571385965*6156328表2-22 滿足1NF的學生信息表 2.4 關系規范化理論 2.4.2 第一范式2NF 在關系模式設計中,如果非主屬性存在對主碼的部分函數依賴,則不滿足2NF。此時,可對其進行規范化,使其
49、滿足第二范式。 2NF定義:設關系R,則關系R中所有非主屬性需完全函數依賴每個主碼,即消除非主屬性對主碼的部分函數依賴。 例如:假如某設計人員將學生“選課”關系設計為“Student_Course(studentID,studentName,Sex,courseID,coursename,typename,Grade)”,主碼為studentID和courseID,則此時存在非主屬性對主碼的部分函數依賴。可能產生的問題:數據冗余:不同課程同一個選課學生的學生姓名、性別信息存在數據冗余。即一個學生可能選了多門課程,則在這個學生對應的多個課程實體中,存在大量學生姓名、性別的數據冗余。插入異常:如果
50、有某門課程沒有學生進行選擇,則導致該門課程的信息無法正常插入,造成插入異常。刪除異常:如果某學生只選擇了一門課程,則在刪除該門課程信息時,導致學生信息也被刪除,造成刪除異常。更新異常:更新過程實際是刪除和插入過程的結合,所以也會帶來更新異常。2.4 關系規范化理論 2.4.2 第一范式2NF任務 2-13 對以上關系進行規范化,使其滿足2NF。任務分析:可以發現存在兩種非主屬性。一種是“Grade”,它完全由studentID和courseID同時決定,它對主碼是完全函數依賴,另一種是“studentName,Sex, coursename,typename”,它們對主碼并不是完全函數依賴,比
51、如studentName只由studentID決定,而coursename只由courseID決定。此時,可將“選課”關系分解為兩個關系:Student_Course(studentID,courseID,Grade) 主碼:studentID,courseIDCourse(courseID,coursename,typename) 主碼:courseID這樣,兩個新關系中的非主屬性就分別完全函數依賴于各自的關系主碼,從而達到了2NF。 2.4 關系規范化理論 在關系模式設計中,如果非主屬性存在對主碼的傳遞函數依賴,則不滿足3NF。此時,可對其進行規范化,使其滿足第三范式。 3NF定義:設關系
52、R,則關系R中所有非主屬性需不傳遞函數依賴每個主碼,即消除非主屬性對每個主碼的傳遞函數依賴。 例如:假如某設計人員將“課程”關系設計為“Course(courseID,coursename,CoursetypeID,typename)”,主碼為courseID,則此時存在非主屬性對主碼的傳遞函數依賴。 可能產生的問題:數據冗余:同一課程類型的多門課程對應的類型名稱存在數據冗余。即可能多門課程屬于同一課程類型,此時,同一類型多門課程對應實體中存在課程類型名稱的數據冗余。插入異常:在某課程類型沒有對應課程的情況下,無法正常插入課程類型信息,造成插入異常。刪除異常:某類型課程只有一門對應課程,當刪除
53、該課程信息時,導致刪除課程類型信息,造成刪除異常。更新異常:更新過程實際是刪除和插入過程的結合,所以也會帶來更新異常。2.4.3 第三范式3NF2.4 關系規范化理論任務 2-14 對以上關系進行規范化,使其滿足3NF。任務分析:可以發現“課程”關系中的主碼courseID決定CoursetypeID,而CoursetypeID決定非主屬性typename,即非主屬性typename通過CoursetypeID傳遞函數依賴主碼courseID,達不到3NF。此時,可將“課程”關系分解為兩個關系,取消其傳遞依賴:Course(courseID,coursename, CoursetypeID)
54、主碼:courseIDCoursetype(coursetypeID,typename) 主碼:coursetypeID這樣,由于分解為兩個新關系,則取消了原有關系之間的傳遞依賴,且新關系中也不存在其他傳遞依賴,從而達到了3NF。 2.4.3 第三范式3NF2.4 關系規范化理論 在關系模式設計中,如果不是每一個決定因素都包含關鍵字,則不滿足BCNF。 BCNF定義:設關系R,則關系R中所有屬性都不傳遞函數依賴每個候選碼,即消除屬性對候選碼的傳遞函數依賴。 BC范式的要求比第三范式更加嚴格,是改進的第三范式。第三范式只關注非主屬性和關鍵字之間的傳遞函數依賴關系,而BC范式則關注所有屬性和每個候
55、選碼之間的傳遞函數依賴。當一個關系模式中有多個候選碼,并且這些候選碼具有公共屬性時,就不能夠滿足BC范式。由此可見,滿足BC范式的關系模式一定滿足第三范式,但滿足第三范式的關系模式不一定滿足BC范式。2.4.4 BC范式BCNF2.4 關系規范化理論2.4.5 關系規范化的實際應用圖2-1 范式間的關系3NFBCNF2NF1NF非規范化關系消除非原子屬性分量消除非主屬性對主碼的部分函數依賴消除非主屬性對主碼的傳遞函數依賴消除非主屬性對主碼的部分和傳遞函數依賴第2章關系數據庫基礎本章小結:關系模型、關系基本概念;關系數據庫基本運算;關系規范化。Thank You!數 據 庫 原 理 及 應 用(
56、SQL Server 2005):2022年7月11日第3章關系數據庫基礎第2章關系數據庫基礎任務目標:了解數據庫設計的基本方法;了解影響數據庫設計的各因素及數據庫設計的特點;能夠根據項目需求分析進行數據庫的概念模型設計;能運用關系模型的基本知識將概念模型轉換為關系模型;能夠用關系規范化方法對關系模型進行規范化和優化;能夠根據完整性規則對關系模型進行實體完整性、用戶定義完整性和參照完整性的設計;了解數據庫系統安全的基礎知識。 第3章數據庫的設計3.1 數據庫設計概述3.2 數據庫設計的步驟3.3 數據庫保護習題3.1 數據庫設計概述3.1.1 數據庫設計方法 規范化設計中著名的有新奧爾良法,它
57、將數據庫設計分為四個標準階段:需求分析(分析用戶需求)、概念設計(信息分析和定義)、邏輯設計(設計實現)和物理設計(物理數據庫設計)。后來,很多設計者在此基礎上對新奧爾良法進行了補充和豐富。S.B.Yao法將數據庫設計分為5個步驟:需求分析,模式構成,模式匯總,模式重構,模式分析和物理數據庫設計;I.R.Palmer法主張將數據庫設計當成一步步的過程并采用一些輔助手段實現每一過程;數據庫生命周期法以軟件生命周期(規劃、設計、實施、運行維護)為主線對數據庫進行設計。 基于E-R模型的數據庫設計方法、基于3NF(第三范式)的設計方法和基于抽象語法規范的設計方法,都是在數據庫設計的不同階段上支持實現
58、的具體技術和方法。規范法設計從本質上看仍然屬于手工設計方法,其基本思想是過程迭代和逐步求精,在遵從一定設計標準的基礎上,設計出科學、合理的數據庫系統。 3.1 數據庫設計概述3.1.2 數據庫設計特點 數據庫設計的基本任務是根據用戶使用的硬件系統、操作系統與數據庫管理系統等條件,設計出數據庫模式,設計過程中受很多因素的影響。因此,數據庫系統設計具有如下幾個主要特點: 1反復性 2試探性 3多步性 4面向數據3.2 數據庫設計的步驟3.2.1 SQL Server數據庫應用系統設計一般步驟 一般可將數據庫設計分為以下6個階段。1需求分析階段2概念設計階段 3邏輯設計階段4物理設計階段5數據庫實現
59、階段6數據庫運行和維護階段需求分析概念設計邏輯設計物理設計數據庫實現數據庫的運行、維護圖3-1 數據庫設計流程3.2 數據庫設計的步驟3.2.2 需求分析階段 需求分析是整個數據庫設計的基礎,在進行數據庫設計時,首先要了解與分析用戶的應用需求,因為該階段需要設計者與客戶的溝通,因此也是最費時、最困難的一個階段。 任務 3-1 學生成績管理系統需求分析。任務分析:通過與教務處學生成績管理職能部門的溝通,獲得該部門的組織結構圖,分析組織結構圖后繪制該系統的數據流程圖,分析學生成績管理系統的功能需求,寫出數據字典。1繪制學生成績管理部門(教務處)組織結構圖。學生成績管理部門(教務處)學生管理職責成績
60、管理職責課程管理職責圖3-2 學生成績管理部門組織結構圖3.2 數據庫設計的步驟3.2.2 需求分析階段2繪制系統數據流程圖。 學生成績管理部門(教務處)學生管理職責成績管理職責課程管理職責學生管理成績管理課程管理學生信息表成績信息表課程信息表圖3-3 學生成績管理系統數據流程圖3.2 數據庫設計的步驟3.2.2 需求分析階段 3了解系統功能需求。 學生成績管理系統需要完成如下功能。學生管理:存儲、檢索、維護有關學生的信息;課程管理:存儲、檢索、維護有關課程的信息;成績管理:存儲、檢索、維護有關學生成績的信息。4細讀數據字典。 針對學生成績管理系統的功能需求,通過分析、歸納,總結出需要如下信息
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于能量尺度方法的軟土蠕變特性研究
- 大單元教學在農村初中英語閱讀課中的應用研究
- 印度學前教育體系解析
- 體檢健康教育核心要點
- 呼吸內科疑難病例討論
- 腸內營養護理外科
- 健康本領的多維解析
- 《社會財務共享服務實務》課件-增值稅的計算與申報
- 預防心理健康教育課件
- 中心校校園安全管理培訓
- 2025區域型變電站智能巡視系統技術規范
- 汛期公交安全課件
- 財務報表編制與審核合同模板
- 上海閔行區教育系統招聘實驗員考試真題2024
- 建設部建設工程重大質量安全事故應急預案
- 2025年中航油招聘筆試參考題庫附帶答案詳解
- 2024年中國中高端電子鋁箔行業市場調查報告
- 2022版體育與健康課程標準
- 《陸上風電場工程概算定額》NBT 31010-2019
- 現代漢語常用字表(拼音版本)
- 紅星水庫除險加固工程初步設計報告
評論
0/150
提交評論