




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、主講教師:趙曉瑜zhaoxiaoyu_ 工程技術(shù)系 2011年2月 1、課程作用,課程重要性:沒有數(shù)據(jù)庫,就不可能有管理系統(tǒng)。對于任何一個管理系統(tǒng)而言,數(shù)據(jù)庫是它所必備的。 2、如何學(xué)好這門課程:勤動腦+多動手!1.1 數(shù)據(jù)庫基本概念數(shù)據(jù)庫基本概念1.2 關(guān)系數(shù)據(jù)庫設(shè)計關(guān)系數(shù)據(jù)庫設(shè)計1.3 數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫應(yīng)用系統(tǒng)1.4 MySQL概述概述 對數(shù)據(jù)庫技術(shù)的功能及實際應(yīng)用有個整體對數(shù)據(jù)庫技術(shù)的功能及實際應(yīng)用有個整體認識;認識; 理解并掌握數(shù)據(jù)庫的常用術(shù)語及基本概念理解并掌握數(shù)據(jù)庫的常用術(shù)語及基本概念(Data、DB、DBMS、DBS等)等) 理解數(shù)據(jù)庫系統(tǒng)的特點理解數(shù)據(jù)庫系統(tǒng)的特點 掌握關(guān)系
2、數(shù)據(jù)庫的設(shè)計掌握關(guān)系數(shù)據(jù)庫的設(shè)計 MYSQL的安裝和配置的安裝和配置對數(shù)據(jù)庫“想當(dāng)然想當(dāng)然”的理解:數(shù)據(jù)庫應(yīng)該是存放數(shù)據(jù)的倉庫?那么什么是“數(shù)據(jù)”呢?1. 數(shù)據(jù)庫( DataBase) 數(shù)據(jù)庫(DB)是存放數(shù)據(jù)的倉庫,只不過這些數(shù)據(jù)存在一定的關(guān)聯(lián),并按一定的格式存放在計算機上。 數(shù)據(jù)庫是長期存儲在計算機內(nèi)、有組織的、可共享的數(shù)據(jù)集合。這種集合具有如下特點: 最小的冗余度 應(yīng)用程序?qū)?shù)據(jù)資源共享 數(shù)據(jù)獨立性高 統(tǒng)一管理和控制 1.1.1 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)2. 數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,簡記為DBMS) DBMS是管理數(shù)據(jù)庫的
3、系統(tǒng),它按一定的數(shù)據(jù)模型組織數(shù)據(jù),是位于用戶與操作系統(tǒng)之間的一個數(shù)據(jù)管理軟件。DBMS應(yīng)提供如下功能:(1)數(shù)據(jù)定義功能 用戶通過數(shù)據(jù)定義語言(DDL,Data Definition Language)它可以方便地對數(shù)據(jù)庫中的數(shù)據(jù)對象進行定義。(2)數(shù)據(jù)操縱功能 用戶可以使用數(shù)據(jù)操縱語言(DML,Data Manipulation Language) 操縱數(shù)據(jù),實現(xiàn)對數(shù)據(jù)的基本操作。如查詢、插入、刪除和修改。(3)數(shù)據(jù)的完整性檢查功能 保證用戶輸入的數(shù)據(jù)應(yīng)滿足相應(yīng)的約束條件。(4)數(shù)據(jù)庫的安全保護功能 保證只有賦予權(quán)限的用戶才能訪問數(shù)據(jù)庫中的數(shù)據(jù)。(5)數(shù)據(jù)庫的并發(fā)控制功能 使多個應(yīng)用程序可在
4、同一時刻并發(fā)地訪問數(shù)據(jù)庫的數(shù)據(jù)。(6)數(shù)據(jù)庫系統(tǒng)的故障恢復(fù)功能 使數(shù)據(jù)庫運行出現(xiàn)故障時進行數(shù)據(jù)庫恢復(fù),以保證數(shù)據(jù)庫可靠運行。(7)在網(wǎng)絡(luò)環(huán)境下訪問數(shù)據(jù)庫的功能。(8)方便、有效地存取數(shù)據(jù)庫信息的接口和工具。編程人員通過程序開發(fā)工具與數(shù)據(jù)庫的接口編寫數(shù)據(jù)庫應(yīng)用程序。數(shù)據(jù)庫管理員通過提供的工具對數(shù)據(jù)庫進行管理。3、數(shù)據(jù)庫系統(tǒng)(DataBase System,簡記為DBS) 數(shù)據(jù)庫系統(tǒng)一般由數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)與操作數(shù)據(jù)庫的應(yīng)用程序,加上支撐它們的硬件、軟件平臺和與數(shù)據(jù)庫有關(guān)的人員構(gòu)成。圖1.1描述了數(shù)據(jù)庫系統(tǒng)的構(gòu)成。圖1.1 數(shù)據(jù)庫系統(tǒng)的構(gòu)成4、數(shù)據(jù)(Data) “數(shù)據(jù)”是一個多義詞,分為
5、有意義的數(shù)據(jù)和無意義的字節(jié)數(shù)據(jù) 硬盤可硬盤可存儲30G數(shù)據(jù) 把U盤數(shù)據(jù)拷到硬盤去 學(xué)生信息表中的數(shù)據(jù) 實驗結(jié)果表中的數(shù)據(jù) 因此數(shù)據(jù)庫中的數(shù)據(jù)是指有意義的數(shù)據(jù) 數(shù)據(jù)是描述現(xiàn)實世界事物的符號記錄,是用物理符號記錄的可以鑒別的信息。從廣義上講,數(shù)據(jù)不僅包含數(shù)字,還包括了文本、圖像、音頻、視頻等。 1 1、數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展、數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展 數(shù)據(jù)管理技術(shù)經(jīng)歷了如下三個階段:人工管人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。 人工管理階段人力手工整理存儲數(shù)據(jù) 特點是:數(shù)據(jù)不保存、數(shù)據(jù)無專門軟件進行管理、數(shù)據(jù)不共享、數(shù)據(jù)不具有獨立性、數(shù)據(jù)無結(jié)構(gòu)。 文件系統(tǒng)
6、階段使用磁盤文件來存儲數(shù)據(jù) 特點是:數(shù)據(jù)可以長期保存、由文件系統(tǒng)管理數(shù)據(jù)、程序與數(shù)據(jù)有一定的獨立性、數(shù)據(jù)共享性差、數(shù)據(jù)獨立性差、記錄內(nèi)部有結(jié)構(gòu)。 數(shù)據(jù)庫系統(tǒng)階段 關(guān)系型數(shù)據(jù)庫 特點:數(shù)據(jù)結(jié)構(gòu)化 在描述數(shù)據(jù)時不僅描述數(shù)據(jù)本身,還描述數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)共享性高、冗余度小、易擴充 數(shù)據(jù)可以被多個應(yīng)用共享。這不僅大大減小了數(shù)據(jù)的冗余度、節(jié)約存儲空間、減少存取時間,而且可以避免數(shù)據(jù)之間的不相容性和不一致性。數(shù)據(jù)獨立性高 數(shù)據(jù)獨立性包括物理獨立性和邏輯獨立性。數(shù)據(jù)的物理獨立性是指當(dāng)數(shù)據(jù)的物理存儲改變時,應(yīng)用程序不用改變。數(shù)據(jù)的邏輯獨立性是指當(dāng)數(shù)據(jù)的邏輯結(jié)構(gòu)改變時,用戶應(yīng)用程序不用改變。統(tǒng)一的數(shù)據(jù)管理和控
7、制 數(shù)據(jù)庫對系統(tǒng)中的用戶是共享資源。計算機的共享一般是并發(fā)的,即多個用戶可以同時存取數(shù)據(jù)庫中的數(shù)據(jù),甚至可以同時存取數(shù)據(jù)庫中同一個數(shù)據(jù)。因此,數(shù)據(jù)庫管理系統(tǒng)必須提供以下幾個方面的數(shù)據(jù)控制保護功能。 數(shù)據(jù)的安全性(security)保護 數(shù)據(jù)的完整性(integrity)控制 數(shù)據(jù)庫恢復(fù)(recovery) 并發(fā)(concurrency)控制2、數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)集中式系統(tǒng) DBMS和應(yīng)用程序以及與用戶終端進行通信的軟件等都運行在一臺宿主計算機上,所有的數(shù)據(jù)處理都是在宿主計算機中進行。宿主計算機一般是大型機、中型機或小型機。應(yīng)用程序和DBMS之間通過操作系統(tǒng)管理的共享內(nèi)存或應(yīng)用任務(wù)區(qū)來進行通信
8、,DBMS利用操作系統(tǒng)提供的服務(wù)來訪問數(shù)據(jù)庫。終端通常是非智能的,本身沒有處理能力。 集中系統(tǒng)的主要優(yōu)點是:具有集中的安全控制,以及處理大量數(shù)據(jù)和支持大量并發(fā)用戶的能力。集中系統(tǒng)的主要缺點是:購買和維持這樣的系統(tǒng)一次性投資太大,并且不適合分布處理。個人計算機系統(tǒng) 與大型系統(tǒng)不同,通常個人計算機(微機)上的DBMS功能和數(shù)據(jù)庫應(yīng)用功能是結(jié)合在一個應(yīng)用程序中的,這類DBMS(如FoxPro、Acssce)的功能靈活,系統(tǒng)結(jié)構(gòu)簡潔,運行速度快,但這類DBMS的數(shù)據(jù)共享性、安全性、完整性等控制功能比較薄弱??蛻?服務(wù)器系統(tǒng) 在客戶/服務(wù)器(Client/Server,簡記為C/S)結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)中,
9、數(shù)據(jù)處理任務(wù)被劃分為兩部分:一部分運行在客戶端,另一部分運行在服務(wù)器端??蛻舳素撠?zé)應(yīng)用處理,數(shù)據(jù)庫服務(wù)器完成DBMS的核心功能。 這種模型中,客戶機上都必須安裝應(yīng)用程序和工具,使客戶端過于龐大、負擔(dān)太重,而且系統(tǒng)安裝、維護、升級和發(fā)布困難,從而影響效率。分布式系統(tǒng) 一個分布式數(shù)據(jù)系統(tǒng)由一個邏輯數(shù)據(jù)庫組成,整個邏輯數(shù)據(jù)庫的數(shù)據(jù),存儲在分布于網(wǎng)絡(luò)中的多個結(jié)點上的物理數(shù)據(jù)庫中。在當(dāng)今的客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)中,服務(wù)器的數(shù)目可以是一個或多個。當(dāng)系統(tǒng)中存在多個數(shù)據(jù)庫服務(wù)器時就形成了分布系統(tǒng)。瀏覽器/服務(wù)器系統(tǒng) 隨著Internet的迅速普及,出現(xiàn)了三層客戶機/服務(wù)器模型:客戶機應(yīng)用服務(wù)器數(shù)據(jù)庫服務(wù)
10、器。這種系統(tǒng)稱為瀏覽器/服務(wù)器(Browser/Server,簡記為B/S)系統(tǒng)。3 3、數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu)、數(shù)據(jù)庫系統(tǒng)三級模式結(jié)構(gòu) 從DBMS方面考慮,數(shù)據(jù)庫系統(tǒng)通常采用三級模式結(jié)構(gòu),這是DBMS內(nèi)部的系統(tǒng)結(jié)構(gòu)。模式(schema) 模式也稱為邏輯模式,是數(shù)據(jù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征描述,是所有用戶的公共數(shù)據(jù)視圖。 一個數(shù)據(jù)庫只有一個模式。DBMS提供描述語言(模式DDL)來嚴格定義模式。外模式(external schema) 外模式也稱為子模式或用戶模式,它是數(shù)據(jù)庫用戶能夠看到和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。 外模式
11、通常是模式的子集。一個數(shù)據(jù)庫可以有多個外模式。外模式是保證數(shù)據(jù)庫安全性的一個有力措施。每個用戶只能看見和訪問所對應(yīng)的外模式中的數(shù)據(jù),數(shù)據(jù)庫中其余數(shù)據(jù)是不可見的。 DBMS提供子模式描述語言(子模式DDL)來嚴格定義子模式。內(nèi)模式(internal shcema) 內(nèi)模式也稱為存儲模式(storage shcema),一個數(shù)據(jù)庫只有一個內(nèi)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。 DBMS提供內(nèi)模式描述語言(內(nèi)模式DDL,或者存儲模式DDL)來嚴格定義內(nèi)模式。三級模式之間的映射 三級模式間有兩種映射:模式/外模式映射、模式/內(nèi)模式映射 模式/外模式映射定義某個外模式和
12、模式的對應(yīng)關(guān)系,當(dāng)模式發(fā)生改變時,只要改變其映射,而無需改動外模式,從而保證了數(shù)據(jù)的邏輯獨立性。 模式/內(nèi)模式映射定義內(nèi)模式和模式的對應(yīng)關(guān)系,當(dāng)內(nèi)模式發(fā)生改變時,只要改變其映射,而無需改動模式,從而保證了數(shù)據(jù)的物理獨立性。4 4、 數(shù)據(jù)模型及其組成要素數(shù)據(jù)模型及其組成要素 數(shù)據(jù)庫系統(tǒng)的核心是數(shù)據(jù)庫,數(shù)據(jù)庫是根據(jù)數(shù)據(jù)模型建立的,因而數(shù)據(jù)模型是數(shù)據(jù)庫系統(tǒng)的基礎(chǔ)。 數(shù)據(jù)模型通常都是由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和完整性約束3個要素組成。 數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)研究數(shù)據(jù)元素之間的組織形式、存儲形式以及數(shù)據(jù)操作等。數(shù)據(jù)結(jié)構(gòu)用于描述系統(tǒng)的靜態(tài)特性。 在數(shù)據(jù)庫系統(tǒng)中,通常按照其數(shù)據(jù)結(jié)構(gòu)的類型來命名數(shù)據(jù)模型。例如層
13、次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)、關(guān)系結(jié)構(gòu)的數(shù)據(jù)模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。 數(shù)據(jù)操作數(shù)據(jù)操作 數(shù)據(jù)操作用于描述系統(tǒng)的動態(tài)特性。數(shù)據(jù)操作是指對數(shù)據(jù)庫中的各種對象的實例允許執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。 數(shù)據(jù)庫主要有查詢和更新兩大類操作。 數(shù)據(jù)完整性約束數(shù)據(jù)完整性約束 數(shù)據(jù)完整性約束是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和儲存規(guī)則,用以符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效和相容。 數(shù)據(jù)模型是數(shù)據(jù)庫技術(shù)的關(guān)鍵,它的3個要素完整地描述了一個數(shù)據(jù)模型。1.1.2. 1.1.2. 數(shù)據(jù)模型的種類數(shù)據(jù)模型的種類目前,數(shù)據(jù)庫領(lǐng)域中
14、,最常用的數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型和關(guān)系模型。 層次模型 層次模型是數(shù)據(jù)庫中最早出現(xiàn)的數(shù)據(jù)模型。用樹型結(jié)構(gòu)表示實體類型以及實體間的聯(lián)系是層次模型的主要特征。 層次模型的一個最基本的特點是,任何一個給定的記錄值(也稱為實體)只有按照其路徑查看時,才能顯出它的全部意義。沒有一個子記錄值能夠脫離雙親記錄值而獨立存在。圖1.2 按層次模型組織的數(shù)據(jù)示例 網(wǎng)狀模型 每一個數(shù)據(jù)用一個節(jié)點表示,每個節(jié)點與其他節(jié)點都有聯(lián)系,這樣數(shù)據(jù)庫中的所有數(shù)據(jù)節(jié)點就構(gòu)成了一個復(fù)雜的網(wǎng)絡(luò)。在網(wǎng)狀模型中,一個子結(jié)點可以有多個父結(jié)點,在兩個結(jié)點之間可以有一種或多種聯(lián)系。圖1.3為按網(wǎng)狀模型組織的數(shù)據(jù)示例。圖1.3 按網(wǎng)狀模
15、型組織的數(shù)據(jù)示例 關(guān)系模型 在關(guān)系模型中,數(shù)據(jù)在用戶觀點下的邏輯結(jié)構(gòu)就是一張二維表。每一張二維表稱為一個關(guān)系(relation)。 表格中的一行稱為一個記錄,一列稱為一個字段,每列的標題稱為字段名。如果給每個關(guān)系表取一個名字,則有n個字段的關(guān)系表的結(jié)構(gòu)可表示為:關(guān)系表名(字段名1,字段名n),通常把關(guān)系表的結(jié)構(gòu)稱為關(guān)系模式。在關(guān)系表中,如果一個字段或幾個字段組合的值可唯一標志其對應(yīng)記錄,則稱該字段或字段組合為碼。有時一個表可能有多個碼,如表A.4中,姓名不允許重名,則“學(xué)號”、“姓名”均是學(xué)生信息表碼。對于每一個關(guān)系表通??芍付ㄒ粋€碼為“主碼”,在關(guān)系模式中,一般用下橫線標出主碼。按關(guān)系模型組
16、織的數(shù)據(jù)表達方式簡潔、直觀,插入、刪除、修改操作方便,而按層次、網(wǎng)狀模型組織的數(shù)據(jù)表達方式復(fù)雜,插入、刪除、修改操作復(fù)雜。因此,關(guān)系模型得到了廣泛應(yīng)用,MySQL是支持關(guān)系數(shù)據(jù)模型的數(shù)據(jù)庫管理系統(tǒng)。1.2.1 數(shù)據(jù)庫設(shè)計概述 數(shù)據(jù)庫設(shè)計的主要內(nèi)容有數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計和數(shù)據(jù)庫的行為特性設(shè)計。 數(shù)據(jù)庫的結(jié)構(gòu)特性設(shè)計起著關(guān)鍵作用。數(shù)據(jù)庫的結(jié)構(gòu)特性是靜態(tài)的,一般情況下不會輕易變動。 數(shù)據(jù)庫的行為結(jié)構(gòu)設(shè)計是指確定數(shù)據(jù)庫用戶的行為和動作。數(shù)據(jù)庫用戶的行為和動作是指數(shù)據(jù)查詢和統(tǒng)計、事物處理及表報處理等。1.2.2 數(shù)據(jù)庫設(shè)計的基本步驟 考慮數(shù)據(jù)庫及其應(yīng)用系統(tǒng)開發(fā)的全過程,可以將數(shù)據(jù)庫設(shè)計過程可分為以下6個
17、階段。需求分析階段 調(diào)查用戶需求的具體步驟是:調(diào)查使用該系統(tǒng)的組織單位的具體情況,包括部門組成、部門職責(zé)、部門人員等,了解使用組織的各個信息。調(diào)查使用系統(tǒng)的各部門的業(yè)務(wù)活動。包括各部門使用該系統(tǒng)的業(yè)務(wù)流程、業(yè)務(wù)數(shù)據(jù)、以及業(yè)務(wù)功能等,了解各部門的業(yè)務(wù)相關(guān)信息。在熟悉了各部門組織及業(yè)務(wù)情況后,協(xié)助用戶明確對該系統(tǒng)的各種功能的需要,包括需要的數(shù)據(jù)要求、對數(shù)據(jù)的處理要求、對整個系統(tǒng)的安全要求等,從而與客戶達成共識。確定該系統(tǒng)的最終功能。這是需求分析的最后一步,在完成以上三個步驟后,最終要求客戶需要分析人員確定系統(tǒng)的功能,具體確定當(dāng)前階段系統(tǒng)應(yīng)該完成的功能,以及后期系統(tǒng)擴展需要完成的功能。 概念結(jié)構(gòu)設(shè)計
18、階段 概念結(jié)構(gòu)設(shè)計是整個數(shù)據(jù)庫設(shè)計的關(guān)鍵,它通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,一般用E-R圖表示概念模型。 邏輯結(jié)構(gòu)設(shè)計階段 邏輯結(jié)構(gòu)設(shè)計是將概念結(jié)構(gòu)轉(zhuǎn)化為選定的DBMS所支持的數(shù)據(jù)模型,并使其在功能、性能、完整性約束、一致性和可擴充性等方面均滿足用戶的需求。數(shù)據(jù)庫物理設(shè)計階段 數(shù)據(jù)庫的物理設(shè)計通常分為兩步進行: (1) 確定數(shù)據(jù)庫的物理結(jié)構(gòu):數(shù)據(jù)存放方法和存儲結(jié)構(gòu) 具體的關(guān)系模式存取方法主要包括以下兩種選擇:一是索引方法,一是聚簇方法,一是HASH方法。 (2)評價所確定的物理結(jié)構(gòu)數(shù)據(jù)庫實施階段 數(shù)據(jù)庫實施階段的任務(wù)是根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果,在計
19、算機上建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行系統(tǒng)測試和試運行。 數(shù)據(jù)庫運行和維護階段 數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。信息世界中的基本概念 實體(entity) 客觀存在并可相互區(qū)別的事物稱為實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯(lián)系。例如:酒店里,一名客人、一名前臺服務(wù)員、一名前臺主管等都是實體,同樣,前臺主管與前臺服務(wù)員之間的聯(lián)系稱為實體。 屬性(attribute) 實體所具有的某一特性稱為屬性。一個實體可以由若干個屬性來刻畫。若干屬性中能唯一標識實體的屬性稱為該實體的碼。主碼(prima
20、ry key) 惟一標識實體的屬性集稱為主碼。 例如,學(xué)生號是學(xué)生實體的主碼,職工號是職工實體的主碼。域(domain) 屬性的取值范圍稱為該屬性的域。 例如,職工性別的域為(男,女),姓名的域為字母字符串集合,年齡的域為小于150的整數(shù),職工號的域為5位數(shù)字組成的字符串等。實體型(實體型(entity typeentity type) 具有相同屬性的實體必然具有共同的特征和性質(zhì)。用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。 例如,學(xué)生(學(xué)號,姓名,性別,出生年份,系,入學(xué)時間)就是一個實體型。實體集(實體集(entity setentity set) 同型實體的集合稱為實體集。
21、例如,全體學(xué)生就是一個實體集。 圖書館的圖書也是一個實體集。 聯(lián)系(聯(lián)系(relationshiprelationship) 在現(xiàn)實世界中,事物內(nèi)部以及事物之間是有聯(lián)系的,這些聯(lián)系在信息世界中反映為實體內(nèi)部的聯(lián)系和實體之間的聯(lián)系。實體內(nèi)部的聯(lián)系通常是組成實體的各屬性之間的聯(lián)系。概念模型的表示方法概念模型的表示方法 概念模型是對信息世界建模,所以概念模型應(yīng)該能夠方便、準確地表示信息世界中的常用概念。概念模型的表示方法很多,其中最為常用的是P.P.S.Chen于1976年提出的實體聯(lián)系方法(Entity-Relationship Approach,簡記為E-R表示法)。 該方法用ER圖來描述現(xiàn)實世
22、界的概念模型,稱為實體聯(lián)系模型,簡稱E-R模型。E-R圖中各圖形的含義及圖示見表1-1。 需要注意的是,聯(lián)系本身也可以有屬性。如果一個聯(lián)系具有屬性,則這些屬性也要用無向邊與該聯(lián)系連接起來。表1-1 E-R圖中各圖形的含義對象類對象類型型 E-RE-R圖表示方法圖表示方法 E-RE-R圖表示圖圖表示圖示示 學(xué)生、課程示學(xué)生、課程示例例 實體 用矩形表示,矩形內(nèi)寫明實體名稱。屬性 用橢圓形表示,橢圓內(nèi)寫明屬性名稱,并用無向邊將其與實體連接起來。聯(lián)系 用菱形表示,菱形內(nèi)寫明聯(lián)系名稱,用無向邊分別與有關(guān)實體連接起來,并在無向邊旁標明聯(lián)系的類型。實體屬性聯(lián)系學(xué)生學(xué)號選課對于每一個實體集,可指定一個碼為主
23、碼。如果用矩形框表示實體集,用帶半圓的矩形框表示屬性,用線段連接實體集與屬性,當(dāng)一個屬性或?qū)傩越M合指定為主碼時,在實體集與屬性的連接線上標記一斜線,則可以用圖1.4描述學(xué)生成績管理系統(tǒng)中的實體集及每個實體集涉及的屬性。圖1.4 學(xué)生和課程實體集屬性的描述 1.2.2 概念結(jié)構(gòu)設(shè)計概念結(jié)構(gòu)設(shè)計 實體集A和實體集之間存在各種關(guān)系,通常把這些關(guān)系稱為“聯(lián)系”。通常將實體集及實體集聯(lián)系的圖表示為實體(Entity)-聯(lián)系(Relationship)模型;從分析用戶項目涉及的數(shù)據(jù)對象及數(shù)據(jù)對象之間的聯(lián)系出發(fā),到獲取E-R圖的這一過程稱為概念結(jié)構(gòu)設(shè)計。聯(lián)系用菱形表示,通過直線與實體相連。這樣構(gòu)成的圖就是E
24、-R圖,E-R圖就是E-R模型的描述方法。1. 一對一的聯(lián)系(1:1)A中的一個實體最多與B中的一個實體相聯(lián)系,B中的一個實體也最多與A中的一個實體相聯(lián)系。例如,一般情況下,“部門”與“主管”這兩個實體集之間的聯(lián)系是一對一的聯(lián)系 一對多的聯(lián)系(1:n) 如果對于實體集A中的每一個實體,實體集B中有n個實體與之聯(lián)系(n0),反之,對于實體集B中的每一個實體,實體集A中至多有一個實體與之聯(lián)系,則稱實體集A與實體集B具有一對多聯(lián)系,記為1:n 。例如,“班級”與“學(xué)生”這兩個實體集之間的聯(lián)系是一對多的聯(lián)系,因為,一個班可有若干學(xué)生,反過來,一個學(xué)生只能屬于一個班。3. 多對多的聯(lián)系(m:n) 如果對
25、于實體集A中的每一個實體,實體集B中有n個實體與之聯(lián)系(n0),反之,對于實體集B中的每一個實體,實體集A中也有m個實體與之聯(lián)系(m0),則稱實體集A與實體集B具有多對多聯(lián)系,記為m:n 。例如,“學(xué)生”與“課程”這兩個實體集之間的聯(lián)系是多對多的聯(lián)系,因為,一個學(xué)生可選多門課程,反過來,一門課程可被多個學(xué)生選修。注意: 一對一聯(lián)系是一對多聯(lián)系的特例,而一對多聯(lián)系又是多對多聯(lián)系的特例。實體型之間的這種一對一、一對多、多對多聯(lián)系不僅存在于兩個實體型之間,也存在于兩個以上的實體型之間。同一個實體集內(nèi)的各實體之間也可以存在一對一、一對多、多對多的聯(lián)系。【例1】在選課系統(tǒng)中,一門課程同時有若干個學(xué)生選修
26、(學(xué)生的屬性主要包括:學(xué)號、姓名、性別、年齡、所在系等) ,而一個學(xué)生可以同時選修多門課程(課程的屬性主要由課程號、課程名、學(xué)分組成,則課程與學(xué)生之間具有多對多聯(lián)系。學(xué)號所在系年齡姓名性別學(xué)生課程號課程名學(xué)分課程成績選課mn【例2】職工實體集內(nèi)部有領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)的聯(lián)系。即某職工為部門領(lǐng)導(dǎo),“領(lǐng)導(dǎo)”若干職工,而一名職工僅被另外一個職工(領(lǐng)導(dǎo))直接領(lǐng)導(dǎo),因此這是一對多聯(lián)系。職工領(lǐng)導(dǎo)1n 【例3】圖書借閱系統(tǒng)概念模型設(shè)計。該系統(tǒng)中有讀者(屬性有:編號、姓名、讀者類型、已借數(shù)量組成)、圖書(屬性有:編號、書名、出版社、定價、出版日期組成)兩個實體集,實體集之間通過借閱(屬性有:借期、還期組成)建立聯(lián)系。
27、假定一位讀者可以借閱多本圖書,一本圖書可以經(jīng)多位讀者借閱。一本圖書一位讀者可以借閱多次(不同時間)。 讀者編號姓名讀者類型已借數(shù)量圖書出版日期出版社編號書名定價借期還期借閱mn 將E-R模型轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型必須遵循以下規(guī)則:一、E-R圖中的每個實體型轉(zhuǎn)換成一個關(guān)系模式,實體型中的實體的屬性轉(zhuǎn)換成關(guān)系模式的屬性。實體的碼也是關(guān)系模式的碼。二、E-R圖中的聯(lián)系,根據(jù)聯(lián)系類型的不同,采用不同的方法使被它聯(lián)系的實體所對應(yīng)的關(guān)系彼此有某種聯(lián)系。具體有以下幾種不同的情況: 1. (1:1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換(1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模
28、式,其主碼為參與聯(lián)系的實體集中任一方的主碼。例如,考慮圖1.5描述的“班級(BJ)”與“正班長(BZ)”實體集E-R模型可設(shè)計如下關(guān)系模式:BJ(班級編號,院系,專業(yè)名,人數(shù))BZ (學(xué)號,姓名)SY(學(xué)號,班級編號) (2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,則將聯(lián)系的屬性及一方的主碼加入另一方實體集對應(yīng)的關(guān)系模式中,主碼仍為原實體方的主碼。例如,圖1.5“班級(BJ)”與“正班長(BZ)”實體集E-R模型可設(shè)計如下關(guān)系模式:BJ(班級編號,院系,專業(yè)名,人數(shù))BZ (學(xué)號,姓名,班級編號 )或者BJ(班級編號,院系,專業(yè)名,人數(shù),學(xué)號)BZ (學(xué)號,姓名)2. (1:n)聯(lián)系的E-R圖到關(guān)系模式的
29、轉(zhuǎn)換(1)聯(lián)系單獨對應(yīng)一個關(guān)系模式,則由聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性構(gòu)成關(guān)系模式,n端的主碼作為該關(guān)系模式的主碼。例如,考慮圖1.6描述的“班級(BJ)”與“學(xué)生(XS)”實體集E-R模型可設(shè)計如下關(guān)系模式:BJ(班級編號,院系,專業(yè)名,人數(shù))XS (學(xué)號,姓名,專業(yè)名,性別,出生日期,總學(xué)分,備注)SY(學(xué)號,班級編號)(2)聯(lián)系不單獨對應(yīng)一個關(guān)系模式,則將聯(lián)系的屬性及1端的主碼加入n端實體集對應(yīng)的關(guān)系模式中,主碼仍為n端的主碼。例如,圖1.6“班級(BJ)”與“學(xué)生(XS)”實體集E-R模型可設(shè)計如下關(guān)系模式:BJ(班級編號,院系,專業(yè)名,人數(shù))XS (學(xué)號,姓名,專業(yè)名,性別
30、,出生日期,總學(xué)分,備注,班級編號 3. (m:n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對于(m n)的聯(lián)系,單獨對應(yīng)一個關(guān)系模式,該關(guān)系模式包括聯(lián)系的屬性、參與聯(lián)系的各實體集的主碼屬性,該關(guān)系模式的主碼由各實體集的主碼屬性共同組成。例如,圖1.7描述的“學(xué)生(XS)”與“課程(KC)”實體集之間的聯(lián)系可設(shè)計如下關(guān)系模式:XS (學(xué)號,姓名,專業(yè)名,性別,出生日期,總學(xué)分,備注)KC(課程號,課程名稱,類別,開課學(xué)期,學(xué)時,學(xué)分)XS_KC (學(xué)號,課程號,成績)關(guān)系模式XS_KC的主碼是由“學(xué)號”和“課程號”兩個屬性組合起來構(gòu)成的一個主碼,一個關(guān)系模式只能有一個主碼。至此,已介紹了根據(jù)E-R圖設(shè)計
31、關(guān)系模式的方法,通常這一設(shè)計過程稱為邏輯結(jié)構(gòu)設(shè)計。在設(shè)計好一個項目的關(guān)系模式后,就可以在數(shù)據(jù)庫管理系統(tǒng)環(huán)境下創(chuàng)建數(shù)據(jù)庫、關(guān)系表及其他數(shù)據(jù)庫對象,輸入相應(yīng)數(shù)據(jù),并根據(jù)需要對數(shù)據(jù)中的數(shù)據(jù)進行各種操作。練習(xí):將如下圖所示的E-R圖轉(zhuǎn)換為關(guān)系模式,棱形框中的屬性自己確定。 解:本題的E-R圖轉(zhuǎn)換為如下關(guān)系模式:單位(單位號,地址,電話)職工(職工號,姓名,性別,年齡,單位號)練習(xí):設(shè)有商業(yè)銷售記賬數(shù)據(jù)庫。一個顧客(顧客姓名,單位,電話號碼)可以買多種商品,一種商品(商品名稱,型號,單價)供應(yīng)多個顧客。試畫出對應(yīng)的E-R圖。 并根據(jù)E-R圖轉(zhuǎn)換成相應(yīng)的關(guān)系模式。解:本題對應(yīng)的E-R圖如圖所示。關(guān)系模式為
32、:顧客(顧客姓名,單位,電話號碼);商品(商品名稱,型號,單價);購買(顧客姓名,商品名稱);數(shù)據(jù)的物理模型即指數(shù)據(jù)的存儲結(jié)構(gòu),如對數(shù)據(jù)庫物理文件和索引文件的組織方式、文件的存取路徑、內(nèi)存的管理等。物理模型不僅與數(shù)據(jù)庫管理系統(tǒng)有關(guān),還和操作系統(tǒng)甚至硬件有關(guān),物理模型對用戶是不可見的。 問題的提出問題的提出 在活期儲蓄管理過程中,“儲戶”通過“存取款”與“儲蓄所”發(fā)生業(yè)務(wù)聯(lián)系。試設(shè)計活期儲蓄管理系統(tǒng)數(shù)據(jù)庫的概念模型、關(guān)系模型并確定約束。 系統(tǒng)需求分析系統(tǒng)需求分析 通過對數(shù)據(jù)庫用戶(儲蓄所業(yè)務(wù)人員)的調(diào)查,對用戶的需求進行分析得知:儲戶是指在某個儲蓄所開戶的人。該儲蓄所稱為儲戶的開戶行。一個儲蓄所
33、可以有多個儲戶,每個儲戶有惟一的賬號。每個儲戶可以在多個允許發(fā)生業(yè)務(wù)的儲蓄所進行存取款。儲戶按信譽分為“一般”和“良好”兩種。信譽“一般”的儲戶不允許透支。信譽“良好”的儲戶可以透支,但不能超過5萬元。儲戶按狀態(tài)分為:“正?!焙汀皰焓А眱煞N(分別用0、1表示)。狀態(tài)為“正?!钡膬粼试S存取款,狀態(tài)為“掛失”的儲戶不允許存取款。儲戶的信息有:賬號、姓名、密碼、電話、地址、信譽、存款額、開戶行編號、開戶日期、狀態(tài)等。儲蓄所的信息有:編號、名稱、電話、地址、負責(zé)人儲戶進行存取款時應(yīng)該提供賬號、存取標志(1:表示存款,0:表示取款)、存取金額、存取日期等信息,儲蓄所首先要對儲戶的身份進行驗證,對合法的
34、儲戶再根據(jù)“信譽”判斷是否可以發(fā)生此次業(yè)務(wù)。若發(fā)生業(yè)務(wù)則記錄相應(yīng)信息,修改儲戶的存款額。 概念模型設(shè)計概念模型設(shè)計 根據(jù)需求分析得知,此系統(tǒng)涉及“儲戶”和“儲蓄所”兩個實體集。兩個實體集間通過“存取款”發(fā)生多對多的聯(lián)系。其E-R圖如圖2-2所示。 名稱儲戶儲蓄所存取款開戶行存款額信譽地址電話賬號姓名儲蓄所編號電話地址存取日期存取標志存取金額mn圖2-2活期儲蓄管理系統(tǒng)的E-R模型 關(guān)系模型設(shè)計關(guān)系模型設(shè)計 由概念模型向關(guān)系模型的轉(zhuǎn)換規(guī)則知,關(guān)系模型中包括3個關(guān)系:實體集“儲戶”和“儲蓄所”分別形成關(guān)系,實體的碼就是關(guān)系的碼;聯(lián)系“存取款”形成一個關(guān)系,該關(guān)系的碼應(yīng)該包括兩個實體的碼,考慮到允許
35、同一儲戶在同一儲蓄所多次存取款,所以聯(lián)系“存取款”對應(yīng)的關(guān)系的主碼中還應(yīng)該包括“存取日期”。 另外,考慮到儲戶的信息項較多,而且有一部分信息(如:賬號、姓名、電話、地址、開戶行等)相對固定,其余信息(如:儲戶的密碼、信譽、狀態(tài)、存款額等)經(jīng)常變化。因此,可以將實體儲戶的信息分割為儲戶基本信息和儲戶動態(tài)信息兩個關(guān)系,兩個關(guān)系的碼均為賬號。這樣更利于數(shù)據(jù)的存儲和維護,還可以提高數(shù)據(jù)的安全性。 儲戶基本信息(賬號,名稱,電話,地址,開戶行,開戶日期) 儲戶動態(tài)信息(賬號,密碼,信譽,存款額,狀態(tài)) 儲蓄所(編號,名稱,電話,地址) 存取款(賬號,儲蓄所編號,存取標志,存取金額,存取日期) 約束關(guān)系約
36、束關(guān)系 實體完整性 實體“儲戶”的主碼“賬號”不能為空;實體“儲蓄所”的主碼“編號”不能為空。關(guān)系“存取款”中的主碼“賬號”和儲蓄所“編號”和“日期”不能為空。 參照完整性 參照關(guān)系“存取款”的屬性“賬號”和儲蓄所“編碼”分別是被參照關(guān)系“儲戶”和“儲蓄所”的外碼。因此,參照關(guān)系“存取款”的屬性“賬號”的值必須是被參照關(guān)系“儲戶”中某一元組的“賬號”的值。同樣,參照關(guān)系“存取款”的屬性儲蓄所“編號”的值必須是被參照關(guān)系“儲蓄所”中某一元組的“編號”的值。 用戶定義的完整性 對信譽為“一般”的儲戶取款時,只有當(dāng): “儲戶.存款額”“存取款.金額”0 時才可以發(fā)生取款業(yè)務(wù)。 同理,對信譽為“良好”
37、的儲戶取款時,只要: “儲戶.存款額”“存取款.金額”50000(元) 時便可以發(fā)生取款業(yè)務(wù)。 關(guān)系結(jié)構(gòu)描述 表2-17給出的活期儲蓄管理系統(tǒng)的關(guān)系結(jié)構(gòu)描述,實際上是給出了該系統(tǒng)數(shù)據(jù)庫模式的型。數(shù)據(jù)說明: 0 正常 0 一般儲戶,不允許透支儲戶狀態(tài)= 信譽= 1 掛失 1 允許透支5萬元 0 取款存取標志= 1 存款1 1、關(guān)系模型的結(jié)構(gòu)、關(guān)系模型的結(jié)構(gòu)關(guān)系(relationship) 關(guān)系是滿足一定條件的二維表。表中的一行稱為關(guān)系的一個元組,用來存儲事物的一個實例;表中的一列稱為關(guān)系的一個屬性,用來描述實體的某一特征。表是由一組相關(guān)實體組成的集合。所以,表和實體集這兩個詞常??梢越惶媸褂?。
38、表2-1給出了實體集、關(guān)系、表等一系列術(shù)語之間的對照關(guān)系概念模型中關(guān)系理論中關(guān)系數(shù)據(jù)庫中某些軟件中實體集(Entity set)關(guān)系(relation)表(Table)表(或數(shù)據(jù)庫文件)實體(Entity)元組(Tuple)行(Row)記錄(Recode)屬性(Attribute)屬性(Attribute)列(Col)字段(Field)主碼(Primary key) 主碼(Primary key)關(guān)鍵字(Primary key)關(guān)鍵字(Primary key) 關(guān)系是一個行與列交叉的二維表,每一列(屬性)的所有數(shù)據(jù)都是同一種數(shù)據(jù)類型的,每一列都有惟一的列名,列在表中的順序無關(guān)緊要;表中的任意兩
39、行(元組)不能相同,行在表中的順序也無關(guān)緊要。 表表2-22-2以圖書借閱系統(tǒng)為例給出了一個表的實例以圖書借閱系統(tǒng)為例給出了一個表的實例編號書名作者出版社出版日期定價F12.245計算機文化基礎(chǔ)劉凌志青山2002.521.80F33.33數(shù)據(jù)結(jié)構(gòu)實用教程王云曉藍天2002.522.00G22.12Visual Basic實用教程梁曉峰碧水2003.1028.00G11.22Java程序設(shè)計實用教程張大海碧水2004.720.80F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.724.50G11.11C語言程序設(shè)計張大海藍天2004.826.30G12.08C語言程序設(shè)計梁曉峰青山2004.
40、1022.00G12.09C語言程序設(shè)計梁曉峰青山2004.1022.00關(guān)系的特點:關(guān)系的特點:關(guān)系的每一行定義實體集的一個實體,每一列定義實體的一個屬性。每一行必須有一個主碼,主碼是一個屬性組(可以是一個屬性),它能惟一的標識一個實體。每一列表示一個屬性,且列名不能重復(fù)。 列的每個值必須與對應(yīng)屬性的類型相同。 列有取值范圍,稱為域。 列是不可分割的最小數(shù)據(jù)項。 行、列的順序?qū)τ脩魺o關(guān)緊要。 關(guān)系中的術(shù)語關(guān)系中的術(shù)語候選碼(Candidate Key) 若關(guān)系中的某一屬性組(或單個屬性)的值能惟一的標識一個元組,則稱該屬性組(或?qū)傩裕楹蜻x碼。 選擇一個候選碼作為關(guān)系的主碼。2、關(guān)系代數(shù) 關(guān)
41、系代數(shù)是一種抽象的查詢語言。從數(shù)學(xué)的角度來看,關(guān)系是一個集合,關(guān)系的元組是集合的元素。因此,關(guān)系代數(shù)包括集合運算:交、并、差、乘,還有關(guān)系專有的運算:選擇、投影、連接、除。 并并(union)(union) 設(shè)R和S是兩個關(guān)系,它們的并運算是將兩個關(guān)系中的所有元組構(gòu)成一個新關(guān)系,即由屬于R或?qū)儆赟的元素組成,該關(guān)系用RS,也可以記做R+S。 【例1】有在職職工和離退修職工兩個表,若需要所有職工的表,可以利用并運算實現(xiàn)。工號 姓名 性別狀態(tài)106001 張春來男1103026 馬宏明男1105008 王紅女1表表2-3 2-3 在職職工表在職職工表 表表2-4 2-4 離退修職工表離退修職工表S
42、 S工號姓名性別 狀態(tài)106008李建新男 0104012王紅女 0表表2-5 2-5 新關(guān)系新關(guān)系SS工號 姓名 性別狀態(tài)106001 張春來男1103026 馬宏明男1105008 王紅女1106008李建新男 0104012王紅女 0差(差(difference) 設(shè)R和S是兩個關(guān)系,R和S的差運算是由屬于R而不屬于S的所有元組構(gòu)成新關(guān)系,也就是從關(guān)系R中減去關(guān)系S中的元組,該關(guān)系用R-S。差運算也要求兩個關(guān)系對應(yīng)屬性的性質(zhì)(屬性名、屬性的域等)必須一致。 【例2】某商店有本店商品表,接到不合格商品表后,需要將本店中的不合格商品去掉。可以利用差運算實現(xiàn)。表表2-6 2-6 本店商品表本店
43、商品表 品牌 名稱 廠家 106001奶粉 天南103026奶粉地北205008白糖 南山204045白糖 北山302034食鹽西山表表2-72-7 不合格商品表不合格商品表品牌 名稱 廠家 103026奶粉地北4023037 火腿 西山 204045白糖 北山表表2-8 2-8 新關(guān)系新關(guān)系 品牌 名稱 廠家 106001奶粉 天南205008白糖 南山302034食鹽西山交(交(intersectionintersection) 設(shè)R和S是兩個關(guān)系,R和S的交運算是由屬于R并且也屬于S的所有元組構(gòu)成的一個新關(guān)系,即由關(guān)系R和關(guān)系S中公共的元組構(gòu)成的新關(guān)系。該關(guān)系用RS。交運算也要求兩個關(guān)系
44、對應(yīng)屬性的性質(zhì)(屬性名、屬性的域等)必須一致。 【例3】在【例2】中,找出本店內(nèi)不合格的商品,可以用交運算實現(xiàn)。品牌 名稱 廠家 103026奶粉地北204045白糖 北山表表2-9 2-9 新關(guān)系新關(guān)系 乘(乘(productproduct) 設(shè)R和S是兩個關(guān)系,R和S的乘運算是一個新關(guān)系(記為RS)結(jié)果是兩個關(guān)系中所有元組按一定規(guī)則組合而成。關(guān)系R有m個屬性,關(guān)系S有n個屬性,則RS由(m+n)個屬性;R有i個元組,S有j個元組,則RS有(ij)個元組;每個元組的前m個屬性是R的一個元組,后n個屬性是S的一個元組。 說明:兩個關(guān)系(集合)的乘運算,在集合論中也稱為廣義笛卡爾積。所以關(guān)系的乘
45、運算也稱為廣義笛卡爾積。 【例4】現(xiàn)有學(xué)生表、必修課程表,每個學(xué)生必須學(xué)習(xí)所有必修課程,要求形成選課表??梢岳藐P(guān)系乘運算實現(xiàn)。 學(xué)號 姓名 0406001 王曉立 0406002 張大衛(wèi) 表表2-10 2-10 學(xué)生表學(xué)生表表表2-11 2-11 必修課程表必修課程表 課程號課程名 學(xué)分 C601 數(shù)據(jù)庫 3 C602 操作系統(tǒng) 2C603數(shù)學(xué) 5 表表2-12 2-12 新關(guān)系新關(guān)系 學(xué)號姓名課程號課程名學(xué)分0406001王曉立C601數(shù)據(jù)庫 30406001王曉立C602操作系統(tǒng)20406001王曉立C603 數(shù)學(xué)5 0406002張大衛(wèi)C601 數(shù)據(jù)庫 30406002張大衛(wèi)C602操
46、作系統(tǒng) 20406002張大衛(wèi)C603 數(shù)學(xué)5投影(投影(projectionprojection) 關(guān)系R的投影運算是從R中選擇某些屬性的所有值組成的新關(guān)系。換言之,投影運算的結(jié)果是一個表的垂直方向的子集。 關(guān)系R的投影運算記為:A(R)。其中,A為R的一組屬性列。 投影的結(jié)果將消除重復(fù)的元組。 例5:在表2-5所示的關(guān)系RS中 列出所有職工的名單,可以通過投影運算實現(xiàn); 姓名 張春來 馬宏明 王紅 李建新 姓名姓名(RS)(RS) 列出職工姓名及其任職狀態(tài),可以通過投影運算實現(xiàn)。姓名 狀態(tài)張春來 1馬宏明 1王紅 1李建新 0王紅 0姓名,狀態(tài)姓名,狀態(tài)(RS)(RS)姓名(RS)可記為2
47、(RS),姓名,狀態(tài)(RS)可記為2,4(RS)。注意:姓名(RS)運算的結(jié)果將同名的兩個“王紅”去掉重復(fù),只保留一個。選擇(選擇(selectionselection) 關(guān)系R的選擇運算是從關(guān)系R中選擇滿足指定條件(用F表示)的元組構(gòu)成的新關(guān)系。換言之,選擇運算的結(jié)果是一個表的水平方向的子集。 關(guān)系R的選擇運算記為:F(R)。其中,F(xiàn)是包括屬性名的邏輯表達式,運算符有算術(shù)比較運算符:,和邏輯運算符:,(非、或、與)。 【例2-6】 在表2-11中求出學(xué)分大于等于3的課程信息。 表表2-13 2-13 學(xué)分學(xué)分33( RS) ( RS) 課程號課程名 學(xué)分 C601 數(shù)據(jù)庫 3 C603數(shù)學(xué)
48、5 在表2-4中求所有在職男職工名單。 性 別性 別 = = 男男 狀 態(tài)狀 態(tài)=1=1( RS)( RS)工號 姓名 性別狀態(tài)106001 張春來男1103026 馬宏明男1性別性別=男男( RS) 連接(連接(joinjoin) 關(guān)系R與關(guān)系S的連接運算是從兩個關(guān)系的廣義笛卡爾積中選取屬性間滿足一定條件的元組形成一個新關(guān)系。記作: 其中:A為包含S中的屬性的表達式 B為包含R中屬性的表達式 通常為關(guān)系比較符。 等值連接(equal join) 為“”的連接運算稱為等值連接。關(guān)系R和S的等值連接是從R和S的廣義笛卡爾積RS中選取A與B等值的那些元組,形成的關(guān)系。S R AB 自然連接(nat
49、ural join) 關(guān)系R和S的自然連接是一種特殊的等值連接,它要求關(guān)系R和S中進行比較的分量必須是相同的屬性組的一種連接,并且在結(jié)果中把重復(fù)的屬性列去掉(只保留一個)。 自然連接記為: 一般的連接運算是從行的角度進行的。但自然連接還需要取消重復(fù)列,所以自然連接是同時從行和列的角度進行運算。 自然連接是構(gòu)造新關(guān)系的有效方法,是關(guān)系代數(shù)中常用的一種運算,在關(guān)系數(shù)據(jù)庫理論中起著重要作用。利用投影、選擇和自然連接運算可以任意地分解和構(gòu)造關(guān)系。 一般地,自然連接使用在R和S有公共屬性的情況中。如果兩個關(guān)系沒有公共屬性,那么它們的自然連接就轉(zhuǎn)化為廣義笛卡爾積。S R 【例2-7】設(shè)圖書借閱信息如表2-
50、15所示,圖書信息如表2-16 所示,求各讀者借閱圖書的信息。 讀者編號圖書編號借期還期2004060002F12.2452004-6-292002060328F23.552004-5-262004-12-222004160426G11.112004-10-212002060328G12.082004-8-262002060328G11.222004-9-012004160426G12.102004-9-142004-11-08表表2-15 2-15 借閱信息表借閱信息表borrowinf borrowinf 編號書名作者出版社出版日期定價F12.245計算機文化基礎(chǔ)劉凌志青山2002.521
51、.80F33.33數(shù)據(jù)結(jié)構(gòu)實用教程王云曉藍天2002.522.00G22.12Visual Basic實用教程梁曉峰碧水2003.1028.00G11.22Java程序設(shè)計實用教程張大海碧水2004.720.80F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版) 馬志剛青山2004.724.50G11.11C語言程序設(shè)計張大海藍天2004.826.30G12.08C語言程序設(shè)計梁曉峰青山2004.1022.00G12.10C語言程序設(shè)計梁曉峰青山2004.1022.00表表2-16 2-16 圖書信息表圖書信息表books books 求各讀者借閱圖書的信息,可通過等值連接實現(xiàn): borrowinf books
52、 圖書編號 = 編號 結(jié)果為讀者編號圖書編號借期還期編號書名作者出版社出版日期定價2004060002F12.2452004-6-29F12.245計算機文化基礎(chǔ)劉凌志青山2002.521.802002060328F23.552004-5-262004-12-22F33.33數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.728.002004160426G11.112004-10-21G22.12C語言程序設(shè)計張大海藍天2004.82002060328G12.082004-8-26G11.22C語言程序設(shè)計梁曉峰青山2004.102002060328 G11.222004-9-01F23.55Java
53、程序設(shè)計實用教程張大海碧水2004.720.802004160426G12.102004-9-142004-11-08G11.11C語言程序設(shè)計梁曉峰青山2004.1022.00 除(除(dividedivide) 設(shè)關(guān)系R的屬性可以分成互不相交的兩組,用X、Y表示(XY為空集,XY為R的全部屬性),則關(guān)系R可以表示為:R(X,Y)。 設(shè)R(X,Y)和S(Y,Z)是兩個關(guān)系,其中R中的Y和S中的Y可以有不同的屬性名,但必須出自相同的域。R與S的除運算是一個新關(guān)系P(X)(記為RS),它的屬性為屬性組X,設(shè)S在Y上的投影y(S)有j個元組,RS由所有滿足以下條件的元素構(gòu)成:元組在X上的分量值x的
54、象集YX包含S在Y上投影的集合。 【例2-8】已知學(xué)生選課表R,要找出同時選修課號為C601、C605兩門課程的學(xué)生的學(xué)號。指定的課程號和對應(yīng)課程名構(gòu)成的關(guān)系記為S,則該問題可以用RS表示。學(xué)號課程號0406001C6010406001C6020406001C6050406002C6020406002C6050406002C6030406003C6050406003C601選課表選課表 R R課程號課程名C601數(shù)據(jù)庫C605軟件工程S S學(xué)號 0406001 0406003 R RS S3、關(guān)系代數(shù)與數(shù)據(jù)查詢 在關(guān)系代數(shù)中,關(guān)系代數(shù)運算經(jīng)過有限次復(fù)合而成的式子稱為關(guān)系代數(shù)表達式,它的運算結(jié)果
55、仍然是一個關(guān)系。可以用關(guān)系代數(shù)表達式表示對數(shù)據(jù)庫的查詢和更新操作。 【例2-9】以圖書借閱信息表(表2-15)、 圖書信息表(表2-16)為例,完成下列任務(wù): (1) 每本圖書的編號和書名; (2) 每位讀者的編號和所借圖書的書名; (3) 2004年8月以前的圖書未還情況讀者編號和所借圖書書名; (4) 編號為:2002060328的讀者所借圖書信息。每本圖書的編號和書名; 解: R1=編號,書名(books)編號書名F12.245計算機文化基礎(chǔ)F33.33數(shù)據(jù)結(jié)構(gòu)實用教程G22.12Visual Basic實用教程G11.22Java程序設(shè)計實用教程F23.55數(shù)據(jù)結(jié)構(gòu)(C語言版)G11.
56、11C語言程序設(shè)計G12.08C語言程序設(shè)計G12.10C語言程序設(shè)計R1R1(2) 每位讀者的編號和所借圖書的書名; 解: R2= 讀者編號,書名 (borrowinf books) 圖書編號=編號 讀者編號書名2004060002計算機文化基礎(chǔ)2002060328數(shù)據(jù)結(jié)構(gòu)(C語言版)2004160426C語言程序設(shè)計2002060328C語言程序設(shè)計2002060328 Java程序設(shè)計實用教程2004160426C語言程序設(shè)計R2R2(3) 2004年8月以前的圖書未還情況讀者編號和所借圖書書名;解: R3=讀者編號,書名(借期2004-08-01還期=NULL(borrowinf bo
57、oks) ) 圖書編號=編號讀者編號書名2004060002計算機文化基礎(chǔ)R3R3(4) 編號為2002060328的讀者所借圖書信息。 解: R4=讀者編號=2002060328 (borrowinf books ) 圖書編號 = 編號 讀者編號圖書編號借期還期書名作者出版社出版日期定價2002060328F23.552004-5-262004-12-22數(shù)據(jù)結(jié)構(gòu)(C語言版)馬志剛青山2004.728.002002060328G12.082004-8-26C語言程序設(shè)計梁曉峰青山2004.102002060328 G11.222004-9-01Java程序設(shè)計實用教程張大海碧水2004.72
58、0.80R4R44 4、關(guān)系模型的三類完整性約束 (1) 1) 實體完整性實體完整性 實體完整性規(guī)則: 若屬性A是關(guān)系R的主屬性,則A不能取空值。(2)(2)參照完整性規(guī)則參照完整性規(guī)則 外碼和參照關(guān)系外碼和參照關(guān)系 設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的主碼(或候選碼)。如果F與基本關(guān)系S的主碼KS相對應(yīng),則稱F是基本關(guān)系R的外碼,并稱基本關(guān)系R為參照關(guān)系,稱基本關(guān)系S為被參照關(guān)系。 例如:在授課系統(tǒng)的關(guān)系模型中: 課程(課號,課名,學(xué)分) 課號關(guān)系課程的主碼 教師(工號,姓名,職稱,課號) 課號是關(guān)系教師的外碼 參考書(書號,書名,課號) 關(guān)系教師是參照關(guān)系,關(guān)系課程是被參照關(guān)系
59、。參照完整性規(guī)則參照完整性規(guī)則 參照完整性規(guī)則:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼KS相對應(yīng),則對于R中的每個元組在F上的值必須滿足:或者取空值(F的每個屬性均為空值),或者等于S中某個元組的主碼值。 例如,在授課系統(tǒng)的關(guān)系模型中,關(guān)系教師中的外碼“課號”只能是下面兩類值: (1) 空值。表示還未給該教師安排課。 (2) 非空值,但此值必須為被參照關(guān)系課程中某一門課程的“課號”。 注意:在實際應(yīng)用中,外碼不一定與對應(yīng)的主碼同名。 在關(guān)系數(shù)據(jù)庫中,表與表之間的聯(lián)系是通過公共屬性實現(xiàn)的。這個公共屬性往往是一個表的主碼,同時是另一個表的外碼。(3)(3)、 用戶定義的完整性
60、用戶定義的完整性 用戶定義的完整性就是針對某一具體要求來定義的約束條件,它反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。 例如,某個屬性必須取惟一值;某些屬性之間應(yīng)滿足一定的函數(shù)關(guān)系;某個屬性的取值范圍在0400之間等。關(guān)系模型應(yīng)提供定義和檢驗這類完整性的機制,以便系統(tǒng)用統(tǒng)一的方法處理它們,而不需要由應(yīng)用程序來承擔(dān)這一功能。 所以,用戶定義的完整性通常是定義屬性取值的約束,即對屬性的值域的約束。對屬性的值域的約束也稱為域完整性規(guī)則是指對關(guān)系中屬性取值的正確性限制。包括數(shù)據(jù)類型、精度、取值范圍、是否允許空值等。(4 4)、完整性規(guī)則檢查)、完整性規(guī)則檢查 為了維護數(shù)據(jù)庫中數(shù)據(jù)的完整性,在對關(guān)系
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 稀土金屬冶煉的產(chǎn)業(yè)政策分析考核試卷
- 農(nóng)業(yè)廢棄物生物質(zhì)能源的開發(fā)利用考核試卷
- 管道工程設(shè)計與施工規(guī)范考核試卷
- 電力系統(tǒng)通信與網(wǎng)絡(luò)安全考核試卷
- 江西師范大學(xué)《外語教學(xué)法》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海第二工業(yè)大學(xué)附屬龔路中學(xué)2025屆高考模擬考試卷語文試題試卷含解析
- 西安交通大學(xué)《化工原理實驗一》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢工商學(xué)院《商務(wù)策劃》2023-2024學(xué)年第一學(xué)期期末試卷
- 文山市重點中學(xué)2025屆高三下學(xué)期期末質(zhì)量抽測物理試題含解析
- 上海電影藝術(shù)職業(yè)學(xué)院《學(xué)前兒童語言教育與活動指導(dǎo)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年湖南高考物理卷試題真題解讀及答案詳解
- 中醫(yī)醫(yī)療技術(shù)手冊2013普及版
- 工程人合伙協(xié)議書范本
- 【全球6G技術(shù)大會】:2023通感一體化系統(tǒng)架構(gòu)與關(guān)鍵技術(shù)白皮書
- 造紙化學(xué)品3課件
- 《電力建設(shè)工程起重施工技術(shù)規(guī)范》
- 小學(xué)校教材教輔讀物自查自糾排查表
- 詩歌25種表現(xiàn)手法及詩歌鑒賞藝術(shù)手法題(二)
- 廣東省省級政務(wù)信息化(2024年第一批)項目需求-廣東省財政廳業(yè)務(wù)系統(tǒng)運維運營服務(wù)(2024年)項目
- 寄拍行業(yè)分析
- 培訓(xùn)地坪漆課件
評論
0/150
提交評論