數(shù)據(jù)庫應(yīng)用技術(shù)SQL-Server完整版課件_第1頁
數(shù)據(jù)庫應(yīng)用技術(shù)SQL-Server完整版課件_第2頁
數(shù)據(jù)庫應(yīng)用技術(shù)SQL-Server完整版課件_第3頁
數(shù)據(jù)庫應(yīng)用技術(shù)SQL-Server完整版課件_第4頁
數(shù)據(jù)庫應(yīng)用技術(shù)SQL-Server完整版課件_第5頁
已閱讀5頁,還剩898頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2022/7/111數(shù)據(jù)庫應(yīng)用技術(shù) SQL Server 20082022/7/112第1章 數(shù)據(jù)庫基礎(chǔ)知識 【學(xué)習(xí)要求】理解數(shù)據(jù)庫的基本概念。了解數(shù)據(jù)管理三個(gè)階段的特點(diǎn)。理解三個(gè)世界的信息描述方法理解三種常見的數(shù)據(jù)模型。理解關(guān)系數(shù)據(jù)庫的基本概念。掌握關(guān)系數(shù)據(jù)庫的關(guān)系操作。理解函數(shù)依賴關(guān)系。掌握關(guān)系規(guī)范化方法與過程。2022/7/113第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.1 數(shù)據(jù)庫概述 1.2 數(shù)據(jù)模型 1.3 關(guān)系數(shù)據(jù)庫 1.4 關(guān)系規(guī)范化 2022/7/114第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.1 數(shù)據(jù)庫概述 數(shù)據(jù)庫技術(shù)是計(jì)算機(jī)技術(shù)的一個(gè)重要分支,計(jì)算機(jī)應(yīng)用技術(shù)發(fā)展到現(xiàn)在,除操作系統(tǒng)之外,數(shù)據(jù)庫已經(jīng)成為計(jì)

2、算機(jī)應(yīng)用的重要支撐系統(tǒng)和核心組成部分。例如,電子政務(wù)系統(tǒng)、電子商務(wù)系統(tǒng)、決策支持系統(tǒng)、電子郵件系統(tǒng)、財(cái)務(wù)金融系統(tǒng)等計(jì)算機(jī)應(yīng)用系統(tǒng)均以數(shù)據(jù)庫為信息存儲(chǔ)的平臺(tái),全部都離不開數(shù)據(jù)庫。1.1.1 數(shù)據(jù)庫基本概念 1數(shù)據(jù)(Data) 數(shù)據(jù)是對客觀事物屬性的一種符號化的表示。從數(shù)據(jù)處理的角度看,數(shù)據(jù)是計(jì)算機(jī)處理及數(shù)據(jù)庫中存儲(chǔ)的基本對象。數(shù)據(jù)的表現(xiàn)形式很多,它們都可以經(jīng)過數(shù)字化后存入計(jì)算機(jī)。 2信息(Information) 信息是經(jīng)過加工處理并對人類客觀行為產(chǎn)生影響的事物屬性的表現(xiàn)形式。信息具有實(shí)效性、實(shí)用性和知識性等特性。 2022/7/115第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.1 數(shù)據(jù)庫概述 1.1.1 數(shù)據(jù)

3、庫基本概念 3數(shù)據(jù)庫(DB) 數(shù)據(jù)庫是數(shù)據(jù)存儲(chǔ)的倉庫,是長期存貯在計(jì)算機(jī)內(nèi)、有組織、可共享的數(shù)據(jù)的集合。數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型進(jìn)行組織、描述和存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶所共享。 4數(shù)據(jù)庫管理系統(tǒng)(DBMS) 數(shù)據(jù)庫管理系統(tǒng)是指數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心組成部分,它為用戶提供一個(gè)可以方便、有效地存取數(shù)據(jù)庫信息的環(huán)境。數(shù)據(jù)庫管理系統(tǒng)的主要功能由四個(gè)方面組成: (1)數(shù)據(jù)定義功能; (2)數(shù)據(jù)庫的運(yùn)行管理; (3)數(shù)據(jù)庫的建立和維護(hù)功能; (4)數(shù)據(jù)操縱功能。2022/7/116第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.1 數(shù)據(jù)庫概述

4、1.1.1 數(shù)據(jù)庫基本概念 5數(shù)據(jù)庫系統(tǒng)(DBS) 數(shù)據(jù)庫系統(tǒng)是采用數(shù)據(jù)庫技術(shù)構(gòu)建的復(fù)雜的計(jì)算機(jī)系統(tǒng),它是綜合了計(jì)算機(jī)硬件、軟件、數(shù)據(jù)集合和數(shù)據(jù)庫管理人員、遵循數(shù)據(jù)庫規(guī)則、向用戶和應(yīng)用程序提供信息服務(wù)的集成系統(tǒng)。數(shù)據(jù)庫系統(tǒng)由數(shù)據(jù)庫、軟件系統(tǒng)、硬件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫管理員和用戶等要素組成。 1.1.2 數(shù)據(jù)庫的發(fā)展 數(shù)據(jù)庫技術(shù)發(fā)展至今大致可分為人工管理、文件管理、數(shù)據(jù)庫系統(tǒng)管理等三個(gè)階段。 1人工管理階段 計(jì)算機(jī)問世初期,由于計(jì)算機(jī)的軟、硬件技術(shù)不先進(jìn),應(yīng)用程序與數(shù)據(jù)直接對應(yīng),程序不僅要設(shè)計(jì)數(shù)據(jù)處理的方法,還要直接操作數(shù)據(jù)。因此,用戶的應(yīng)用程序與數(shù)據(jù)之間相互結(jié)合、不可分割,當(dāng)數(shù)據(jù)有所變

5、動(dòng)時(shí)程序也必須隨之改變,因此,獨(dú)立性差,程序之間的數(shù)據(jù)不能互相傳遞,缺少共享性。2022/7/117第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.1.2 數(shù)據(jù)庫的發(fā)展 2文件管理階段 文件管理階段是把有關(guān)的數(shù)據(jù)組織成一種數(shù)據(jù)文件,數(shù)據(jù)可以脫離程序獨(dú)立存在。在這種管理方式下,用戶或應(yīng)用程序通過文件管理系統(tǒng)對數(shù)據(jù)文件中的數(shù)據(jù)進(jìn)行加工處理,應(yīng)用程序的數(shù)據(jù)具有一定的獨(dú)立性,比手工管理方式前進(jìn)了一步。但是,數(shù)據(jù)文件仍然高度依賴于其應(yīng)用程序,不能被多個(gè)程序所共享。 3數(shù)據(jù)庫管理階段 隨著數(shù)據(jù)量的不斷增大,文件管理方式顯然在操作效率和數(shù)據(jù)共享方面不能滿足實(shí)際要求,為了解決這種海量數(shù)據(jù)、數(shù)據(jù)共享和操作效率等問題,于是出現(xiàn)了數(shù)據(jù)

6、庫。 數(shù)據(jù)庫管理階段對所有的數(shù)據(jù)實(shí)行統(tǒng)一的規(guī)劃管理,所有數(shù)據(jù)形成一個(gè)數(shù)據(jù)中心,構(gòu)成一個(gè)數(shù)據(jù)倉庫。數(shù)據(jù)庫中的數(shù)據(jù)能夠滿足所有用戶的不同要求,供不同的用戶共享。 在數(shù)據(jù)庫管理的系統(tǒng)環(huán)境下,應(yīng)用程序?qū)?shù)據(jù)的管理和訪問靈活方便,數(shù)據(jù)與應(yīng)用程序之間相互獨(dú)立,使得程序的編制質(zhì)量和效率大大提高。2022/7/118第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.2 數(shù)據(jù)模型 數(shù)據(jù)庫管理系統(tǒng)是基于某個(gè)數(shù)據(jù)模型設(shè)計(jì)出來的,而數(shù)據(jù)模型是現(xiàn)實(shí)世界數(shù)據(jù)特征的模擬和抽象。一個(gè)完整的數(shù)據(jù)模型必須包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束三個(gè)部分。其中,數(shù)據(jù)結(jié)構(gòu)用來描述實(shí)體之間的構(gòu)成和聯(lián)系,數(shù)據(jù)操作是指對數(shù)據(jù)庫的查詢和更新操作,數(shù)據(jù)完整性約束則是

7、指施加在數(shù)據(jù)上的限制和規(guī)則。 根據(jù)應(yīng)用目的的不同,數(shù)據(jù)模型分為兩種: 一種是信息模型,也稱概念模型,它從用戶的觀點(diǎn)來對數(shù)據(jù)和信息進(jìn)行建模,反映了信息從現(xiàn)實(shí)世界到信息世界的轉(zhuǎn)化,它不涉及計(jì)算機(jī)軟、硬件的具體細(xì)節(jié),只注重于符號表達(dá)和用戶的理解能力。典型的信息模型有著名的“實(shí)體-聯(lián)系模型”。信息模型主要用于數(shù)據(jù)庫設(shè)計(jì)階段; 另一種是結(jié)構(gòu)數(shù)據(jù)模型,結(jié)構(gòu)數(shù)據(jù)模型主要用于DBMS的實(shí)現(xiàn),它反映了信息從信息世界到機(jī)器世界的轉(zhuǎn)換,描述了計(jì)算機(jī)中數(shù)據(jù)的邏輯結(jié)構(gòu)、信息在存儲(chǔ)器上的具體組織等。 常見的結(jié)構(gòu)數(shù)據(jù)模型有三種,即層次模型、網(wǎng)狀模型和關(guān)系模型。 2022/7/119第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.1 數(shù)據(jù)處

8、理的抽象描述 人們在研究和處理數(shù)據(jù)的時(shí)候,通常把數(shù)據(jù)的描述分為三個(gè)世界,即現(xiàn)實(shí)世界、信息世界、機(jī)器世界,這三個(gè)世界對信息描述的轉(zhuǎn)換過程,就是將客觀現(xiàn)實(shí)的信息反映到計(jì)算機(jī)數(shù)據(jù)庫中的過程。 1現(xiàn)實(shí)世界 客觀存在的世界就是現(xiàn)實(shí)世界,它獨(dú)立于人們的思想之外?,F(xiàn)實(shí)世界存在無數(shù)的對象和事務(wù),每一個(gè)對象或事務(wù)可以看成是一個(gè)個(gè)體,每個(gè)個(gè)體有一項(xiàng)或多項(xiàng)特征信息。例如,人的身高、體重、年齡、膚色等特征。 2信息世界 信息世界是現(xiàn)實(shí)世界在人們頭腦中的反映,人的思維將現(xiàn)實(shí)世界中對象或事務(wù)的特征抽象化后用文字符號表示出來,就形成了信息世界。 (1)實(shí)體 客觀存在的并且可以相互區(qū)別的事物稱為實(shí)體,實(shí)體可以是具體的事物,也

9、可以是抽象的事件。例如,一名學(xué)生,一臺(tái)電腦,上課、比賽等。2022/7/1110第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.1 數(shù)據(jù)處理的抽象描述 2信息世界 (1)實(shí)體 客觀存在的并且可以相互區(qū)別的事物稱為實(shí)體,實(shí)體可以是具體的事物,也可以是抽象的事件。例如,一名學(xué)生,一臺(tái)電腦,上課、比賽等。 實(shí)體是信息世界的基本單位,相同類型實(shí)體的集合稱為實(shí)體集。例如,一個(gè)班由多位學(xué)生實(shí)體組成,則這個(gè)班集體稱為學(xué)生實(shí)體的實(shí)體集。 (2)屬性 實(shí)體的特性稱為屬性,一個(gè)實(shí)體可以有多個(gè)屬性,每一個(gè)屬性都有其數(shù)據(jù)類型和數(shù)據(jù)的取值范圍。例如,學(xué)生實(shí)體可由學(xué)號、姓名、成績等若干個(gè)屬性來描述。 (3)鍵 在一個(gè)實(shí)體集中能唯一標(biāo)識一

10、個(gè)實(shí)體的屬性稱為鍵。鍵可以是一個(gè)屬性,也可以由多個(gè)屬性組合而成。例如,學(xué)號、身份證號等能唯一地標(biāo)別一個(gè)學(xué)生,它們都是鍵。2022/7/1111第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.1 數(shù)據(jù)處理的抽象描述 2信息世界 (4)聯(lián)系 實(shí)體之間相互作用,互相制約的關(guān)系稱為實(shí)體集的聯(lián)系,也稱為關(guān)聯(lián)或關(guān)聯(lián)關(guān)系。實(shí)體之間的關(guān)聯(lián)關(guān)系主要有“一對一、一對多(多對一)和多對多”等三種。 3機(jī)器世界 機(jī)器世界又稱為數(shù)據(jù)世界。信息世界中的信息經(jīng)過抽象和組織,以數(shù)據(jù)的形式存儲(chǔ)在計(jì)算機(jī)中,形成了機(jī)器世界。在機(jī)器世界中,用于描述數(shù)據(jù)的基本術(shù)語與信息世界中的術(shù)語是一一對應(yīng)的,只是在文字?jǐn)⑹錾下杂胁町悺?(1)字段 字段也稱為數(shù)據(jù)項(xiàng)

11、,用于標(biāo)記實(shí)體的屬性。在一張關(guān)系表中,每一列稱為一個(gè)字段。字段與信息世界的“屬性”相對應(yīng)。例如,在學(xué)生信息表中,一個(gè)學(xué)生就是一個(gè)實(shí)體,它包含了“學(xué)號、姓名、性別、年齡、”等字段。 2022/7/1112第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.1 數(shù)據(jù)處理的抽象描述 3機(jī)器世界 (2)記錄 記錄是具有邏輯關(guān)系的一個(gè)或多個(gè)字段的集合。記錄與信息世界中的“實(shí)體”相對應(yīng),一個(gè)記錄描述了一個(gè)實(shí)體的基本信息。 (3)關(guān)鍵字 能夠唯一標(biāo)識一條記錄的字段稱為關(guān)鍵字。關(guān)鍵字與信息世界中的“鍵”相對應(yīng)。關(guān)鍵字可以是一個(gè)字段,也可以由多個(gè)字段組合而成。例如,學(xué)生信息表中的學(xué)號、身份證號等能唯一地標(biāo)識一名學(xué)生,它們都是關(guān)鍵字

12、。 (4)文件 文件是記錄的集合。文件對應(yīng)于信息世界中的“實(shí)體集”。文件的存儲(chǔ)形式有很多種,例如,順序文件、隨機(jī)文件、索引文件等。2022/7/1113第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.1 數(shù)據(jù)處理的抽象描述 4三個(gè)世界信息描述的對應(yīng)關(guān)系 從現(xiàn)實(shí)世界到信息世界再到機(jī)器世界,事務(wù)被一逐層抽象,信息被邏輯化、符號化等處理, 表1.1展示了三種世界之間信息描述的對應(yīng)關(guān)系。2022/7/1114第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 實(shí)體-聯(lián)系模型(簡稱E-R模型)是目前最常用的信息模型,它從用戶的觀點(diǎn)來對數(shù)據(jù)和信息進(jìn)行建模,反映了信息從現(xiàn)實(shí)世界到信息世界的轉(zhuǎn)化,它不涉及計(jì)算機(jī)軟、硬件的具體

13、細(xì)節(jié),便于分析與理解。 1E-R圖的基本元素 E-R模型使用E-R圖表達(dá),E-R圖主要有“實(shí)體、屬性、聯(lián)系和連線”等元素符號組成。各元素的表達(dá)符號和用途見表1.2所示。 2022/7/1115第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 完整的E-R圖必須清楚地表達(dá)實(shí)體、屬性和聯(lián)系三者之間的關(guān)系。下面根據(jù)常見的關(guān)聯(lián)關(guān)系的種類分別介紹E-R圖的畫法。 (1) 一對一關(guān)聯(lián)關(guān)系 如果實(shí)體集A中的每一個(gè)實(shí)體,在實(shí)體集B中最多只能有一個(gè)實(shí)體與之有關(guān)系,反之亦然,則稱實(shí)體集A與實(shí)體集B的關(guān)系是一對一的關(guān)聯(lián)關(guān)系。記為1:1。 【例1-1】使用E-R圖描述學(xué)校和校長兩個(gè)實(shí)體的關(guān)聯(lián)關(guān)系。

14、 因?yàn)橐粋€(gè)學(xué)校只有一個(gè)校長,而一個(gè)校長只在一個(gè)學(xué)校任校長。所以,學(xué)校和校長的關(guān)系是一對一的關(guān)聯(lián)關(guān)系。設(shè)學(xué)校實(shí)體的屬性主要有:編號、校名、地址、等;校長實(shí)體的屬性主要有:編號、姓名、職稱、等。使用E-R圖描述如圖1-1所示。 2022/7/1116第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 (2) 一對多或多對一關(guān)聯(lián)關(guān)系 如果實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(nO)與之有關(guān)系,則稱實(shí)體集A與實(shí)體集B是一對多的關(guān)聯(lián)關(guān)系,記為1:n。反之,如果實(shí)體集A中有n個(gè)實(shí)體(nO)與實(shí)體集B中的一個(gè)實(shí)體有關(guān)系,則稱實(shí)體集A與實(shí)體集B是多對一的關(guān)聯(lián)關(guān)系,記為n:1。 一對多

15、與多對一的關(guān)聯(lián)關(guān)系是同一種關(guān)系,只是觀察問題的方向不同。 【例1-2】使用E-R圖描述班級與學(xué)生兩個(gè)實(shí)體的關(guān)聯(lián)關(guān)系。 因?yàn)橐粋€(gè)班有多名學(xué)生,而每個(gè)學(xué)生只能是某個(gè)班級的成員,所以,班級與學(xué)生之間的關(guān)系是一對多的關(guān)聯(lián)關(guān)系。設(shè)班級實(shí)體的主要屬性有:編號、班名、教室、等;學(xué)生實(shí)體的主要屬性有:編號、姓名、年齡、等。使用E-R圖描述如圖1-2所示。 2022/7/1117第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 (3)多對多關(guān)聯(lián)關(guān)系 如果實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有n個(gè)實(shí)體(n0)與之有關(guān)系。反之,對于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有m個(gè)實(shí)體(mO)與之有關(guān)系,

16、則稱實(shí)體集A與實(shí)體B是多對多的關(guān)聯(lián)關(guān)系,記為m:n。 【例1-3】使用E-R圖描述課程與學(xué)生兩個(gè)實(shí)體的關(guān)聯(lián)關(guān)系。 因?yàn)橐婚T課程同時(shí)有若干個(gè)學(xué)生選修,而一個(gè)學(xué)生可以同時(shí)選修多門課程。所以,課程與學(xué)生之間的關(guān)系是多對多的關(guān)聯(lián)關(guān)系。設(shè)課程實(shí)體的主要屬性有:編號、名稱、學(xué)分、等;學(xué)生實(shí)體的主要屬性有:編號、姓名、年齡、等。使用E-R圖描述如圖1-3所示。2022/7/1118第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 (4)實(shí)體集中自身發(fā)生的關(guān)聯(lián)關(guān)系 如果實(shí)體集A中的某個(gè)實(shí)體與自身實(shí)體集A中的另一個(gè)實(shí)體產(chǎn)生關(guān)系,則稱實(shí)體集A自身具有一對一的關(guān)聯(lián)關(guān)系;如果實(shí)體集A中的某個(gè)實(shí)體與

17、自身實(shí)體集A中的n個(gè)實(shí)體(nO)產(chǎn)生關(guān)系,則稱實(shí)體集A自身具有一對多的關(guān)聯(lián)關(guān)系。 【例1-4】使用E-R圖描述應(yīng)用程序中菜單實(shí)體的主菜單與子菜單項(xiàng)的關(guān)聯(lián)關(guān)系。 在菜單實(shí)體集中,主菜單與子菜單都是菜單集的實(shí)體,但是,一個(gè)主菜單有n個(gè)(nO)子菜單實(shí)體與之產(chǎn)生關(guān)系,所以,主菜單與子菜單項(xiàng)的關(guān)系是實(shí)體集中自身發(fā)生的一對多的關(guān)聯(lián)關(guān)系。設(shè)菜單實(shí)體的主要屬性有:編號、名稱、類型、動(dòng)作、關(guān)聯(lián)、等。使用E-R圖描述如圖1-4所示。 2022/7/1119第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 (5)多個(gè)實(shí)體之間發(fā)生的關(guān)聯(lián)關(guān)系 如果實(shí)體集A與實(shí)體集B發(fā)生某種關(guān)系(如一對多等),而實(shí)

18、體集B與實(shí)體集C也發(fā)生某種關(guān)系(如一對多、一對一或多對多等),則多個(gè)實(shí)體之間可能兩兩產(chǎn)生關(guān)聯(lián)關(guān)系,這是實(shí)際應(yīng)用中常見的綜合性關(guān)聯(lián)關(guān)系。 【例1-5】使用E-R圖描述學(xué)生、課程和教師三個(gè)實(shí)體之間的關(guān)聯(lián)關(guān)系。 學(xué)生實(shí)體和課程實(shí)體的關(guān)聯(lián)關(guān)系由【例1-3】所述。教師實(shí)體與課程實(shí)體的關(guān)系是一個(gè)教師可以授n門(nO)課程,所以,教師實(shí)體與課程實(shí)體是一對多的關(guān)聯(lián)關(guān)系。設(shè)教師實(shí)體的主要屬性有:編號、姓名、職稱、等。使用E-R圖描述學(xué)生、課程和教師三個(gè)實(shí)體之間的關(guān)聯(lián)關(guān)系時(shí),如圖1-5所示。 2022/7/1120第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.2 實(shí)體-關(guān)系模型 2E-R圖的畫法 組合E-R總圖形成E-R模型:

19、在一個(gè)應(yīng)用系統(tǒng)中,把所有實(shí)體間產(chǎn)生的關(guān)系利用E-R圖描述出來并組合成一個(gè)總的E-R圖后,就得到了該應(yīng)用系統(tǒng)的完整的E-R模型圖。 在設(shè)計(jì)E-R模型時(shí),由于系統(tǒng)分析人員的經(jīng)驗(yàn)或見解不同,針對同一個(gè)企業(yè)運(yùn)營模式,不同人員設(shè)計(jì)的E-R模型也將有所差異,因此,E-R圖設(shè)計(jì)不是唯一的。當(dāng)E-R圖比較龐大時(shí),為了使E-R圖更抽象,可以將屬性省略,只保留實(shí)體和聯(lián)系兩部分內(nèi)容。 總之,E-R圖直觀易懂,是系統(tǒng)開發(fā)人員和客戶溝通的良好工具。對客戶來說,它概括了企業(yè)運(yùn)營的方式和各種聯(lián)系,對于系統(tǒng)開發(fā)人員來講,它從概念上描述了一個(gè)應(yīng)用系統(tǒng)數(shù)據(jù)庫的信息組織。根據(jù)E-R圖,結(jié)合具體類型的DBMS可以設(shè)計(jì)出相應(yīng)的數(shù)據(jù)庫管

20、理系統(tǒng)的結(jié)構(gòu)數(shù)據(jù)模型。設(shè)計(jì)完善、高質(zhì)量的E-R圖是數(shù)據(jù)庫設(shè)計(jì)的一個(gè)重要步驟。 2022/7/1121第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.3 結(jié)構(gòu)數(shù)據(jù)模型 結(jié)構(gòu)數(shù)據(jù)模型是機(jī)器世界的數(shù)據(jù)模型,常見的結(jié)構(gòu)數(shù)據(jù)模型有層次模型、網(wǎng)狀模型以及關(guān)系模型。 采用這些模型構(gòu)建的數(shù)據(jù)庫管理系統(tǒng)分別叫做層次型數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)狀型數(shù)據(jù)庫管理系統(tǒng)以及關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。 1層次模型 用樹形結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型稱為層次模型。在這種模型中,數(shù)據(jù)被組織成由“根”開始的“樹”,每個(gè)實(shí)體由根節(jié)點(diǎn)開始沿著不同的分支放在不同的層次上。如果不再向下分支,則分支序列中最后的節(jié)點(diǎn)稱為“葉”。上一級節(jié)點(diǎn)與下級節(jié)點(diǎn)之間是一對多的聯(lián)系。如

21、圖1-6所示是一個(gè)層次模型的實(shí)例。 層次模型的主要特征是:有且僅有一個(gè)節(jié)點(diǎn)無父節(jié)點(diǎn),這個(gè)節(jié)點(diǎn)稱為根節(jié)點(diǎn);除根節(jié)點(diǎn)外,每一個(gè)節(jié)點(diǎn)有且只有一個(gè)父節(jié)點(diǎn);父子節(jié)點(diǎn)與子節(jié)點(diǎn)之間是一對多的聯(lián)系;層次模型無法表達(dá)多對多的關(guān)系。 2022/7/1122第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.3 結(jié)構(gòu)數(shù)據(jù)模型 2網(wǎng)狀模型 用網(wǎng)狀結(jié)構(gòu)表示實(shí)體之間聯(lián)系的模型稱為網(wǎng)狀模型。網(wǎng)狀模型是層次模型的擴(kuò)展,網(wǎng)中的每一個(gè)節(jié)點(diǎn)代表一個(gè)實(shí)體類型。網(wǎng)狀模型突破了層次模型的兩點(diǎn)限制,允許節(jié)點(diǎn)有多于一個(gè)的父節(jié)點(diǎn);可以有一個(gè)以上的節(jié)點(diǎn)沒有父節(jié)點(diǎn)。因此,網(wǎng)狀模型可以方便地表示各種類型的聯(lián)系。如圖1-7所示是一個(gè)網(wǎng)狀模型的實(shí)例。 網(wǎng)狀模型的主要特征是

22、:允許一個(gè)以上的節(jié)點(diǎn)沒有父節(jié)點(diǎn);一個(gè)節(jié)點(diǎn)可以有多于一個(gè)的父節(jié)點(diǎn);節(jié)點(diǎn)間是多對多的關(guān)系。 2022/7/1123第1章 數(shù)據(jù)庫基礎(chǔ)知識 l.2.3 結(jié)構(gòu)數(shù)據(jù)模型 3關(guān)系模型 采用二維表的結(jié)構(gòu)表示實(shí)體之間的聯(lián)系的模型稱為關(guān)系模型。關(guān)系模型以關(guān)系數(shù)學(xué)理論為基礎(chǔ),操作的對象和結(jié)果都是二維表,這種二維表與日常生活與工作中所使用的行列表格的概念完全一樣。 在關(guān)系模型中,每一個(gè)關(guān)系都是一個(gè)二維表,無論實(shí)體本身還是實(shí)體間的聯(lián)系均用稱為“關(guān)系”的二維表來表示。表1.3使用關(guān)系表列出了學(xué)生入學(xué)時(shí)的概要信息。 關(guān)系模型概念清晰,結(jié)構(gòu)簡單,用戶比較容易理解,具有較好的數(shù)據(jù)獨(dú)立性和安全保密性。但是,關(guān)系模型也有缺點(diǎn),其

23、查詢效率有時(shí)不如層次模型和網(wǎng)狀模型。2022/7/1124第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3 關(guān)系數(shù)據(jù)庫 關(guān)系模型是當(dāng)今最流行的數(shù)據(jù)模型,較好地解決了網(wǎng)狀模型和層次模型中存在的問題,目前幾乎所有流行的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品如Oracle、SQL Server、MySQL等都是基于關(guān)系模型的實(shí)現(xiàn)。1.3.1 關(guān)系數(shù)據(jù)庫的基本概念 關(guān)系數(shù)據(jù)庫是基于關(guān)系模型建立的數(shù)據(jù)庫。關(guān)系數(shù)據(jù)庫由一個(gè)或多個(gè)稱為“關(guān)系”二維表組成,每個(gè)關(guān)系又由一條或多條記錄組成,而每條記錄則由一個(gè)或多個(gè)稱為“字段”的屬性組成。在關(guān)系數(shù)據(jù)庫中,大部分基本概念與描述信息世界的常用術(shù)語相一致。 1關(guān)系 關(guān)系是指一張有規(guī)則的、沒有重復(fù)行或重復(fù)列的

24、二維表。一個(gè)關(guān)系對應(yīng)于一張二維表,每張二維表(下面用“關(guān)系”簡稱)有一個(gè)表名。 2記錄 在關(guān)系中,水平方向的行稱為記錄,關(guān)系中的每一行稱為一條記錄。記錄也稱為實(shí)體或元組(下面用“記錄”簡稱)。2022/7/1125第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.1 關(guān)系數(shù)據(jù)庫的基本概念 3屬性 在關(guān)系中,垂直方向的列稱為屬性。屬性在關(guān)系中也叫列、欄、字段等(下面用 “字段”簡稱),每一列有一個(gè)屬性名,也叫列名、欄名或字段名等(下面用 “字段名”簡稱)。關(guān)系中的字段是有值的,它等于當(dāng)前被處理的記錄所對應(yīng)的字段值。 4域 字段的取值范圍稱為域。 5關(guān)聯(lián) 關(guān)聯(lián)是指關(guān)系與關(guān)系之間記錄數(shù)據(jù)相互關(guān)聯(lián)的方式。關(guān)聯(lián)也稱聯(lián)系或

25、關(guān)聯(lián)關(guān)系(下面用 “關(guān)聯(lián)關(guān)系”簡稱)。關(guān)聯(lián)關(guān)系主要有一對一、一對多(多對一)、多對多等三種。 6關(guān)鍵字 在關(guān)系中,能夠唯一標(biāo)識一條記錄的字段或多個(gè)字段的組合稱為關(guān)鍵字。關(guān)鍵字也稱為“鍵”。例如,在表1.3中,“學(xué)號”能唯一標(biāo)識一名學(xué)生,所以,“學(xué)號”可以充當(dāng)關(guān)鍵字;但 “姓名”不能拿來充當(dāng)關(guān)鍵字,因?yàn)橥粋€(gè)班級可能出現(xiàn)兩個(gè)或多個(gè)同名同姓的學(xué)生。 2022/7/1126第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.1 關(guān)系數(shù)據(jù)庫的基本概念 7候選關(guān)鍵字 當(dāng)關(guān)系中存在多個(gè)“鍵”時(shí),稱這些“鍵”為候選關(guān)鍵字或候選鍵。 8主關(guān)鍵字 在關(guān)系中,從一個(gè)或多個(gè)候選關(guān)鍵字中選出一個(gè)關(guān)鍵字做主關(guān)鍵字,則這個(gè)關(guān)鍵字稱為主關(guān)鍵字

26、,也稱主鍵。在一個(gè)關(guān)系中主鍵只能有一個(gè)。 9外部關(guān)鍵字 在關(guān)系中,如果存在這樣一個(gè)字段:一方面,它不是關(guān)系中的關(guān)鍵字,另一方面,它的取值來自另一個(gè)關(guān)系的某個(gè)主鍵,則此字段稱為外部關(guān)鍵字,外部關(guān)鍵字也叫外鍵。 提示:由于關(guān)系的用途十分廣泛,導(dǎo)致同一概念在不同的應(yīng)用場合有不同的叫法,例如,“屬性、列、欄、字段”都是二維表中“屬性”這個(gè)概念的不同叫法,習(xí)慣上叫“字段”;類似的還有,“屬性名、列名、欄名、字段名” 習(xí)慣上叫“字段名”;“屬性的值、字段的值”習(xí)慣上叫“字段值”;“外部關(guān)鍵字”習(xí)慣上叫“外鍵”。2022/7/1127第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.2 關(guān)系的特點(diǎn) 1關(guān)系中的字段不可再分,必

27、須是最基本的原子數(shù)據(jù)項(xiàng)。 2關(guān)系中每一字段的值的數(shù)據(jù)類型相同,并且來自同一個(gè)域。 3字段在關(guān)系中的左、右次序是無關(guān)的。 4記錄在關(guān)系中的上、下次序是無關(guān)的。 5同一關(guān)系中不允許出現(xiàn)兩個(gè)相同的記錄。 6同一關(guān)系中不允許出現(xiàn)兩個(gè)相同的字段。1.3.3 數(shù)據(jù)完整性 數(shù)據(jù)完整性是為保證數(shù)據(jù)庫中關(guān)系數(shù)據(jù)的正確性和相容性,對關(guān)系模型提出的約束條件和需要遵守的規(guī)則。數(shù)據(jù)完整性通常包括實(shí)體完整性、域完整性和參照完整性。2022/7/1128第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.3 數(shù)據(jù)完整性 1實(shí)體完整性 實(shí)體完整性是在關(guān)系內(nèi)部建立的記錄與記錄之間的約束規(guī)則。它通過關(guān)系的主鍵來實(shí)現(xiàn)約束,要求關(guān)系中主鍵的值不能為“空

28、”,并保證數(shù)據(jù)具有唯一性,這樣就能確保關(guān)系中不會(huì)出現(xiàn)重復(fù)的記錄。 實(shí)體完整性解決關(guān)系內(nèi)部記錄與記錄之間數(shù)據(jù)的約束問題。 2域完整性 域完整性是指在關(guān)系內(nèi)部建立的對字段的定義和取值范圍進(jìn)行限制的約束規(guī)則。域完整性解決的是字段自身的數(shù)據(jù)約束問題。 3參照完整性 參照完整性是指在關(guān)系與關(guān)系之間(或在同一個(gè)關(guān)系的不同記錄之間)建立的約束規(guī)則。它通過一個(gè)關(guān)系的外鍵與另一個(gè)關(guān)系的主鍵建立起關(guān)聯(lián)關(guān)系來進(jìn)行關(guān)系之間的約束,約束一旦失效,參照完整性就沒有意義。參照完整性主要用于解決關(guān)系與關(guān)系之間記錄數(shù)據(jù)的關(guān)聯(lián)約束問題。2022/7/1129第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.4 關(guān)系操作 關(guān)系數(shù)據(jù)庫的操作主要有選擇

29、、投影和連接三種操作。數(shù)學(xué)中的集合運(yùn)算是關(guān)系操作的理論基礎(chǔ)。 1選擇操作 選擇操作也叫篩選操作,是指從指定的關(guān)系中選出滿足某種條件的記錄從而形成一個(gè)新的關(guān)系的操作。 【例1-6】從“class班級表”中選擇出“2012”年級的班級信息。 如圖1-9所示的記錄集是從圖1-8所示的班級表中選擇出來的“2012”年級的班級信息,從結(jié)果可知,選擇操作的結(jié)果是被選擇的關(guān)系的子集。 2022/7/1130第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.4 關(guān)系操作 2投影操作 投影操作是對指定的關(guān)系進(jìn)行字段的投影操作,它從指定的關(guān)系中抽取出某些字段列以形成一個(gè)新的關(guān)系。投影操作分兩步完成: (1)選擇指定的字段,形成一個(gè)

30、可能含有重復(fù)記錄的臨時(shí)關(guān)系; (2)從臨時(shí)關(guān)系中刪除重復(fù)的記錄行。 【例1-7】從“class班級表”中投影出“班級編號、班級名稱”兩個(gè)字段的信息。 如圖1-10所示的記錄集是從圖1-8所示的班級表中投影所得,從結(jié)果可知,投影操作的結(jié)果是被投影的關(guān)系字段的子集。 2022/7/1131第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.4 關(guān)系操作 3連接操作 連接操作是從兩個(gè)關(guān)系的記錄中選擇出滿足某一給定條件的記錄作為操作結(jié)果。連接操作通常包含選擇操作或投影操作,如果包含選擇操作則會(huì)改變結(jié)果關(guān)系的記錄條數(shù),如果包含投影操作則會(huì)改變結(jié)果關(guān)系的字段個(gè)數(shù)。兩個(gè)關(guān)系進(jìn)行連接操作后,如果沒有包含投影操作,則結(jié)果關(guān)系的字段

31、個(gè)數(shù)是兩個(gè)關(guān)系的字段的并集;如果沒有包含選擇操作,則結(jié)果關(guān)系的記錄條數(shù)是兩個(gè)關(guān)系的記錄的笛卡爾乘積。 在實(shí)際應(yīng)用中,連接操作通常同時(shí)包含投影操作和選擇操作。 【例1-8】通過連接操作從“class班級表”和“specialty專業(yè)表”中連接產(chǎn)生“計(jì)算機(jī)應(yīng)用技術(shù)”專業(yè)的班級專業(yè)信息“班級編號、班級名稱、專業(yè)名稱”。 根據(jù)案例要求,圖1-8所示的班級表和圖1-11所示的專業(yè)表進(jìn)行連接操作時(shí),首先要進(jìn)行關(guān)系的關(guān)聯(lián)操作,再進(jìn)行選擇操作,然后進(jìn)行投影操作才能得到結(jié)果。操作過程如下: 2022/7/1132第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.4 關(guān)系操作 3連接操作 【例1-8】通過連接操作從“class班級

32、表”和“specialty專業(yè)表”中連接產(chǎn)生“計(jì)算機(jī)應(yīng)用技術(shù)”專業(yè)的班級專業(yè)信息“班級編號、班級名稱、專業(yè)名稱”。 操作過程如下: 第一步:兩表要根據(jù)關(guān)聯(lián)關(guān)系的條件,即“class班級表”的外鍵“specialty_id”等于“specialty專業(yè)表”的主鍵“id”,將兩表的記錄建立起關(guān)聯(lián)關(guān)系,關(guān)聯(lián)的結(jié)果如圖1-12所示;2022/7/1133第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.3.4 關(guān)系操作 3連接操作 第二步:從圖1-12所示的關(guān)聯(lián)結(jié)果中進(jìn)行選擇操作,選擇的條件是“專業(yè)名稱”等于“計(jì)算機(jī)應(yīng)用技術(shù)”,選擇的結(jié)果如圖1-13所示; 第三步:從圖1-13所示的選擇結(jié)果中進(jìn)行投影操作,根據(jù)案例要求,投

33、影只抽取“班級編號、班級名稱、專業(yè)名稱”三個(gè)字段的信息。投影的結(jié)果如圖1-14所示,這也是案例要求的最終結(jié)果。 2022/7/1134第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4 關(guān)系規(guī)范化 一個(gè)數(shù)據(jù)庫常常包含多個(gè)關(guān)系,為了使數(shù)據(jù)庫中關(guān)系的結(jié)構(gòu)更加合理,消除各種操作異常,使數(shù)據(jù)冗余盡可能地小,便于插入、更新和刪除操作,數(shù)據(jù)庫中的關(guān)系在設(shè)計(jì)時(shí)一般都要經(jīng)過規(guī)范化處理。 關(guān)系規(guī)范化處理是把一個(gè)不好的關(guān)系模式轉(zhuǎn)化成一個(gè)好的關(guān)系模式的過程。關(guān)系規(guī)范化的目的是使得關(guān)系模式中的每個(gè)屬性都是不可再分的數(shù)據(jù)項(xiàng)、使得關(guān)系模式盡可能地滿足第三甚至到第五范式的基本要求。1.4.1 關(guān)系規(guī)范化的必要性 下面通過分析表1.4綜合信息表

34、的數(shù)據(jù)結(jié)構(gòu)來理解關(guān)系規(guī)范化的必要性。表中的數(shù)據(jù)以學(xué)號排序,列出了每位學(xué)生的專業(yè)、班級、各門課程的授課教師和課程成績等信息,從表面上看,信息比較詳盡清楚,滿足日常工作的需求,但從數(shù)據(jù)庫管理的角度去分析,這個(gè)關(guān)系就存在著諸多問題。2022/7/1135第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.1 關(guān)系規(guī)范化的必要性 1.存在非原子屬性 首先,關(guān)系表中的“專業(yè)”屬性不是“原子”元素,還可以繼續(xù)分解成“專業(yè)名稱”和“專業(yè)方向”兩個(gè)屬性。 2.存在大量的數(shù)據(jù)冗余 例如,關(guān)系中每個(gè)教師有“教師編號,教師姓名,職稱”三個(gè)數(shù)據(jù)項(xiàng),如果一個(gè)班有50個(gè)學(xué)生,則每門課程的教師信息將有50份相同的數(shù)據(jù),存在大量的數(shù)據(jù)冗余。 3

35、.容易造成修改異常 在孤立的關(guān)系中修改數(shù)據(jù)時(shí),只要數(shù)據(jù)滿足“域”完整性規(guī)則,修改操作就不會(huì)產(chǎn)生修改異常,但容易造成數(shù)據(jù)不一致,例如,修改某位教師的“職稱”數(shù)據(jù)時(shí),漏改或錯(cuò)改了某行的職稱數(shù)據(jù)。 如果在有關(guān)聯(lián)關(guān)系的兩個(gè)關(guān)系中修改數(shù)據(jù),如果關(guān)系沒有規(guī)范化,或者關(guān)系與關(guān)系之間沒有約束好,則修改操作容易產(chǎn)生修改異常,也容易導(dǎo)致數(shù)據(jù)的不一致。 2022/7/1136第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.1 關(guān)系規(guī)范化的必要性 4容易造成插入異常 在孤立的關(guān)系中插入記錄時(shí),只要數(shù)據(jù)滿足“域”完整性規(guī)則,插入操作就不會(huì)產(chǎn)生插入異常,但容易造成數(shù)據(jù)的不一致。 在有關(guān)聯(lián)關(guān)系的兩個(gè)關(guān)系之間插入記錄時(shí),如果關(guān)系沒有規(guī)范化,

36、或者關(guān)系與關(guān)系之間沒有約束好,就容易產(chǎn)生插入異常或?qū)е聰?shù)據(jù)的不一致。例如,如果“課程表”中還沒有某門課程的記錄,這時(shí)就不能向“成績表”中插入某門課程的成績,否則,就會(huì)產(chǎn)生插入異常。 5容易造成刪除異常 在孤立的關(guān)系中刪除記錄時(shí),刪除操作不會(huì)產(chǎn)生刪除異常,但是,如果關(guān)系與關(guān)系之間有關(guān)聯(lián)關(guān)系時(shí),如果關(guān)系沒有規(guī)范化,或者關(guān)系與關(guān)系之間沒有約束好,則刪除操作容易產(chǎn)生刪除異常、容易導(dǎo)致數(shù)據(jù)的不一致。 例如,如果“課程表”與“成績表”沒有約束好關(guān)聯(lián)關(guān)系,則刪除“課程表”中的某門課程后,“成績表”中該門課程的數(shù)據(jù)就無法找到對應(yīng)的課程名稱等信息,從而導(dǎo)致數(shù)據(jù)不一致;反之,如果關(guān)系之間建立了良好的關(guān)聯(lián)關(guān)系,上述

37、刪除操作就不會(huì)成功,如果使用了強(qiáng)制性的方法刪除了某門課程,則此后在查詢、修改“成績表”中該門課程的數(shù)據(jù)時(shí),就會(huì)發(fā)生因刪除而導(dǎo)致的刪除異常。 2022/7/1137第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.1 關(guān)系規(guī)范化的必要性 通過上述分析,可以確認(rèn)表1.4是一個(gè)不好的關(guān)系。一個(gè)好的關(guān)系,不應(yīng)存在非原子屬性、不應(yīng)發(fā)生插入異?;騽h除異常、應(yīng)該盡可能地避免出現(xiàn)修改異常、冗余數(shù)據(jù)必須盡可能地減少。如何解決這些問題?這正是關(guān)系規(guī)范化要解決的問題,所以,關(guān)系規(guī)范化是非常必要的。 關(guān)系數(shù)據(jù)庫的設(shè)計(jì)主要包括“函數(shù)依賴、關(guān)系范式和模式設(shè)計(jì)”等三方面的內(nèi)容,其中,函數(shù)依賴起著核心作用,下面予以簡要介紹。1.4.2 函數(shù)依

38、賴關(guān)系 關(guān)系的規(guī)范化主要是處理關(guān)系中的屬性對其它某個(gè)或某些屬性數(shù)據(jù)的依賴程度,這些依賴條件主要是函數(shù)依賴條件。在概念上,函數(shù)依賴是指一個(gè)或一組屬性的取值可以決定其它屬性的取值。 常見的函數(shù)依賴有:完全函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴三種。2022/7/1138第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.2 函數(shù)依賴關(guān)系 在介紹函數(shù)的依賴關(guān)系之前,下面給出關(guān)系的另一種表示方法,即“關(guān)系模式”法: 格式:關(guān)系名(屬性名,n) 例如:上述圖1-11專業(yè)表使用關(guān)系模式表示為: 專業(yè)(id,專業(yè)編號,專業(yè)名稱) 1. 函數(shù)依賴定義 設(shè)R是關(guān)系模式中的一個(gè)關(guān)系,X、Y是R的屬性子集。如果X的值確定后,屬性集Y的值

39、也同時(shí)被確定,則稱X函數(shù)決定Y,也就是說Y函數(shù)依賴于X,記為:XY;如果可逆則為互相依賴,記為:XY;如果不存在函數(shù)依賴,則記為:X!Y。 例如,設(shè)有關(guān)系“學(xué)生(學(xué)號,姓名,性別)”,則屬性“姓名,性別”都函數(shù)依賴于“學(xué)號”,即有“學(xué)號姓名,學(xué)號性別”,換句話說,“學(xué)號”可以決定“姓名,性別”等屬性的取值。 2022/7/1139第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.2 函數(shù)依賴關(guān)系 2. 完全函數(shù)依賴 如果Y屬性集依賴于X,而不依賴于X的任何一個(gè)真子集,則稱Y完全函數(shù)依賴于X,記為:X Y。 例如,設(shè)有關(guān)系“成績(學(xué)號,課程號,成績)”,因?yàn)椤皩W(xué)號”或“課程號”各自不能單獨(dú)確定一個(gè)學(xué)生某門課程的成

40、績,只有兩者聯(lián)合起來才能確定,所以“(學(xué)號,課程號) 成績”是完全函數(shù)依賴。 關(guān)系模式中,如果僅存在一個(gè)主鍵,則非主屬性(不屬于主鍵屬性集中的屬性)都完全函數(shù)依賴于主鍵。 3.部分函數(shù)依賴 設(shè)X是X的某一個(gè)特定的子集,如果XY,XY,則稱Y部分函數(shù)依賴于X,記為:X Y。 例如,設(shè)有關(guān)系“學(xué)生(學(xué)號,姓名,性別,班級編號,班級名稱)”,因?yàn)橛校▽W(xué)號,班級編號)班級名稱,班級編號班級名稱,所以“(學(xué)號,班級編號)班級名稱”是部分函數(shù)依賴。 關(guān)系模式中存在部分函數(shù)依賴是因?yàn)槟承傩约韧耆瘮?shù)依賴于組合鍵,又完全函數(shù)依賴于組合鍵中的某個(gè)鍵。 2022/7/1140第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.2

41、函數(shù)依賴關(guān)系 4. 傳遞函數(shù)依賴 如果XY,而且YZ,但Y!X,即Y不完全函數(shù)依賴(部分函數(shù)依賴)于X,則稱Z傳遞函數(shù)依賴于X,記為:X Y。 例如,設(shè)有關(guān)系“教學(xué)(課程號,教師號,教師電話)”,因?yàn)橛小罢n程號教師號,教師號教師電話,教師號!課程號”,所以“課程號 教師電話”是傳遞函數(shù)依賴。 關(guān)系模式中如果存在兩類或兩類以上不同性質(zhì)的屬性集,則關(guān)系模式必然存在傳遞函數(shù)依賴。 2022/7/1141第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.3 關(guān)系規(guī)范化處理 根據(jù)一個(gè)關(guān)系滿足數(shù)據(jù)依賴程度的不同,關(guān)系可規(guī)范化為“第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、”等,但實(shí)際使用時(shí),通常只規(guī)范化到第

42、三范式即能達(dá)到基本要求。 1第一范式(1NF) 定義:如果關(guān)系模式中的每個(gè)屬性都是不可分解的基本數(shù)據(jù)項(xiàng)(簡稱原子屬性),則稱這個(gè)關(guān)系是滿足第一范式的關(guān)系。第一范式是最低級別的范式。 【例1-9】將表1.4中的關(guān)系規(guī)范化滿足第一范式的要求。 因?yàn)?,“專業(yè)”屬性包含了“專業(yè)方向”,所以該關(guān)系不滿足第一范式的要求,如果將“專業(yè)”屬性分解為“專業(yè)名稱、專業(yè)方向”兩個(gè)屬性后,就滿足了第一范式的要求。為便于后面的第二、第三范式的規(guī)范化,表1.4改用關(guān)系模式表示如下: 綜合信息表(學(xué)號,姓名,性別,專業(yè)名稱,專業(yè)方向,教師編號,教師姓名,職稱,課程編號,課程名稱,成績) 第一范式?jīng)]有解決數(shù)據(jù)冗余量大,以及操

43、作異常等問題,所以,需要進(jìn)一步引入第二、第三范式的處理。 2022/7/1142第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.3 關(guān)系規(guī)范化處理 2第二范式(2NF) 定義:如果關(guān)系模式中的所有非主屬性都完全函數(shù)依賴于任意的候選鍵,則稱這個(gè)關(guān)系是滿足第二范式的關(guān)系。第二范式要求關(guān)系在滿足第一范式的基礎(chǔ)上,去除那些部分函數(shù)依賴于主鍵的非主屬性,使得關(guān)系的所有非主屬性都完全函數(shù)依賴于主鍵。 如果關(guān)系中出現(xiàn)非主屬性對主鍵的部分函數(shù)依賴,則關(guān)系就不滿足第二范式,所以,規(guī)范化處理時(shí),須從消除非主屬性對主鍵屬性的部分函數(shù)依賴入手,規(guī)范化的方法是,對關(guān)系進(jìn)行“投影”處理,將關(guān)系模式分解為兩個(gè)或多個(gè)新的關(guān)系模式。 【例1-

44、10】將“例1-9”得到的關(guān)系模式規(guī)范化滿足第二范式的要求。 分析“綜合信息表”關(guān)系模式,因?yàn)橛小埃▽W(xué)號,教師編號)(教師姓名、職稱)”,同時(shí),“教師編號(教師姓名、職稱)”,所以,存在部分函數(shù)依賴;類似的,關(guān)系模式中還存在專業(yè)、課程等信息的部分函數(shù)依賴,由此可見,關(guān)系模式不滿足第二范式的要求。2022/7/1143第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.3 關(guān)系規(guī)范化處理 2第二范式(2NF) 【例1-10】將“例1-9”得到的關(guān)系模式規(guī)范化滿足第二范式的要求。 根據(jù)消除部分函數(shù)依賴的要求,原有關(guān)系可拆分成四個(gè)關(guān)系: (1)學(xué)生(學(xué)號,姓名,性別,專業(yè)名稱,專業(yè)方向) (2)教師(教師編號,教師姓名

45、,職稱) (3)課程(課程編號,課程名稱) (4)成績(學(xué)號,課程編號,教師編號,成績) 關(guān)系模式分解后,消除了部分函數(shù)依賴,達(dá)到了第二范式的要求,但是,有些新的關(guān)系模式仍然因?yàn)榇嬖凇皞鬟f函數(shù)依賴”而導(dǎo)致操作異常,所以,還要繼續(xù)進(jìn)行第三范式的規(guī)范化處理。 2022/7/1144第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.3 關(guān)系規(guī)范化處理 3第三范式(3NF) 定義:如果關(guān)系模式中的所有非主屬性對任何候選鍵都不存在傳遞依賴,則稱這個(gè)關(guān)系是滿足第三范式的關(guān)系。第三范式要求關(guān)系在滿足第二范式的基本上,除去所有傳遞函數(shù)依賴于主鍵的非主屬性。 【例1-11】將“例1-10”得到的關(guān)系模式規(guī)范化滿足第三范式的要求。

46、 因?yàn)闈M足第三范式的關(guān)系模式一定滿足第二范式的要求,所以,第三范式的規(guī)范化處理可以從第二范式的規(guī)范化結(jié)果開始。 分析“學(xué)生(學(xué)號,姓名,性別,專業(yè)名稱,專業(yè)方向)”關(guān)系模式,因?yàn)椤皩W(xué)號專業(yè)名稱,專業(yè)名稱!學(xué)號,專業(yè)名稱專業(yè)方向”,所以,“學(xué)號 專業(yè)方向”出現(xiàn)傳遞函數(shù)依賴。根據(jù)第三范式的要求,上述“學(xué)生”關(guān)系模式進(jìn)一步分解為如下三個(gè)關(guān)系模式: (1)學(xué)生(學(xué)號,姓名,性別,方向編號) (2)方向(方向編號,方向名稱,專業(yè)編號) (3)專業(yè)(專業(yè)編號,專業(yè)名稱) 2022/7/1145第1章 數(shù)據(jù)庫基礎(chǔ)知識 1.4.3 關(guān)系規(guī)范化處理 3第三范式(3NF) 至此,“綜合信息表”關(guān)系模式規(guī)范化完畢,

47、得到了六個(gè)滿足第三范式要求的關(guān)系模式: (1)學(xué)生(學(xué)號,姓名,性別,方向編號) (2)方向(方向編號,方向名稱,專業(yè)編號) (3)專業(yè)(專業(yè)編號,專業(yè)名稱) (4)教師(教師編號,教師姓名,職稱) (5)課程(課程編號,課程名稱) (6)成績(學(xué)號,課程編號,教師編號,成績) 關(guān)系規(guī)范化還可以進(jìn)行到第四、第五等范式,但不是規(guī)范化程度越高越好,因?yàn)殛P(guān)系規(guī)范化會(huì)帶來其他一些問題,例如,規(guī)范化程度越高,關(guān)系模式的表現(xiàn)力就越差、數(shù)據(jù)操縱就會(huì)越復(fù)雜、操縱的代價(jià)就會(huì)越高等。因此,有時(shí)出于編程效率等方面的原因,關(guān)系模式會(huì)人為地加入一些其它屬性,使關(guān)系只滿足第二范式的要求。2022/7/1146第1章 數(shù)據(jù)

48、庫基礎(chǔ)知識 小 結(jié) 1數(shù)據(jù)管理技術(shù)發(fā)展分為人工、文件、數(shù)據(jù)庫系統(tǒng)管理等三個(gè)階段。 2一個(gè)完整的數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)完整性約束三個(gè)部分。數(shù)據(jù)模型分為兩種:一種是信息模型;另一種是結(jié)構(gòu)數(shù)據(jù)模型。常見的結(jié)構(gòu)數(shù)據(jù)模型有三種,即層次模型、網(wǎng)狀模型和關(guān)系模型。 3關(guān)系數(shù)據(jù)庫由一個(gè)或多個(gè)二維關(guān)系表組成,每個(gè)關(guān)系表又由一條或多條記錄組成,而每條記錄則由一個(gè)或多個(gè)屬性組成。 4數(shù)據(jù)完整性通常包括實(shí)體完整性、域完整性和參照完整性;關(guān)系數(shù)據(jù)庫的操作主要有選擇、投影和連接三種操作。 5關(guān)系規(guī)范化處理是把一個(gè)不好的關(guān)系模式轉(zhuǎn)化成一個(gè)好的關(guān)系模式的過程。目的是使得關(guān)系中的每個(gè)屬性都是不可再分的數(shù)據(jù)項(xiàng)、使得

49、關(guān)系模式盡可能地滿足第三甚至到第五范式的基本要求。 6常見的函數(shù)依賴有:完全函數(shù)依賴、部分函數(shù)依賴、傳遞函數(shù)依賴三種。第一范式使得關(guān)系模式中的每個(gè)屬性都是不可分解的基本數(shù)據(jù)項(xiàng);第二范式是去除那些部分函數(shù)依賴于主鍵的非主屬性,使得關(guān)系模式中的所有非主屬性都完全函數(shù)依賴于主鍵;第三范式是除去關(guān)系模式中那些傳遞函數(shù)依賴于主鍵的非主屬性。2022/7/1147第1章 數(shù)據(jù)庫基礎(chǔ)知識 作 業(yè) 1請使用關(guān)系規(guī)范化技術(shù)對如下“訂單信息表”進(jìn)行規(guī)范化處理,要求規(guī)范化后的關(guān)系模式能滿足第三范式(3NF)的要求。 2根據(jù)你對“行包托運(yùn)”業(yè)務(wù)的了解情況,使用E-R圖技術(shù)為從事行包托運(yùn)的企業(yè)設(shè)計(jì)一個(gè)“行包托運(yùn)管理系統(tǒng)

50、”的信息模型,然后將E-R模型轉(zhuǎn)化為關(guān)系模式表示。 數(shù)據(jù)庫應(yīng)用技術(shù) SQL Server 20082022/7/1148第2章 SQL Server 2008的安裝與配置【學(xué)習(xí)要求】了解SQL Server 2008的發(fā)展概況及特性。了解SQL Server 2008的版本情況。理解SQL Server 2008的服務(wù)器組件。理解SQL Server 2008的管理工具。熟悉SQL Server 2008的安裝環(huán)境。掌握SQL Server 2008的安裝。掌握SQL Server 2008的常規(guī)配置。理解“sa”賬戶的重要性。掌握SQL Server 2008 賬戶的登錄方法。2022/7/

51、1149第2章 SQL Server 2008的安裝與配置2.1 SQL Server 2008概述2.2 SQL Server 2008安裝2.3 SQL Server 2008配置2022/7/1150第2章 SQL Server 2008的安裝與配置2.1 SQL Server 2008概述2.1.1 SQL Server 2008的發(fā)展概況 SQL Server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng),最初由 Microsoft、Sybase、Ashton-Tate 三家公司共同開發(fā),1988年推出了第一個(gè)OS/2版本,在Windows NT推出后, Microsoft公司將其移植到Windows

52、NT系統(tǒng)上,從2000年至今,SQL Server發(fā)布了SQL Server 2000、SQL Server 2005、SQL Server 2008和SQL Server2012 等重要版本。2.1.2 SQL Server 2008的特性 1可信任的 SQL Server 2008使得企業(yè)可以依照很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行應(yīng)用程序。在保護(hù)信息方面,SQL Server 2008提供或加強(qiáng)了數(shù)據(jù)加密、外鍵管理、對象審查等處理功能;在業(yè)務(wù)可持續(xù)性方面,SQL Server 2008改進(jìn)了數(shù)據(jù)庫的鏡像,增加了熱添加CPU的功能;在可預(yù)測的系統(tǒng)性能方面,SQL Server 2008提供

53、或加強(qiáng)了數(shù)據(jù)采集、擴(kuò)展事件、備份壓縮、數(shù)據(jù)壓縮、資源監(jiān)控器和穩(wěn)定的計(jì)劃等多方面的功能。 2022/7/11512022/7/1152第2章 SQL Server 2008的安裝與配置2.1.2 SQL Server 2008的特性 2高效的 SQL Server 2008使得企業(yè)可以降低開發(fā)和管理數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本,使得開發(fā)人員可以開發(fā)強(qiáng)大的下一代數(shù)據(jù)庫應(yīng)用程序。主要表現(xiàn)在:加強(qiáng)了基于政策的管理功能、改進(jìn)了系統(tǒng)安裝模式、通過提供各種高效率的開發(fā)工具加速了應(yīng)用的開發(fā)過程等。 3智能的 商業(yè)智能(BI)作為大多數(shù)企業(yè)投資的關(guān)鍵領(lǐng)域以及作為企業(yè)所有層面的用戶的一種關(guān)鍵信息來源,SQL Serv

54、er 2008提供了一個(gè)全面的平臺(tái),當(dāng)用戶需要時(shí)能為其提供智能化信息。 SQL Server 2008通過增加或優(yōu)化數(shù)據(jù)壓縮、備份壓縮、分區(qū)表并行、星型聯(lián)接查詢優(yōu)化器、資源監(jiān)控器、分組設(shè)置、捕獲變更數(shù)據(jù)等方面的功能,提高了數(shù)據(jù)的集成功能;通過增加或優(yōu)化報(bào)表引擎、報(bào)表設(shè)計(jì)器、可視化、Office渲染、SharePoint 集成等方面的功能,增強(qiáng)了報(bào)表的處理功能;通過增加或優(yōu)化設(shè)計(jì)的可擴(kuò)展性、塊計(jì)算、回寫MOLAP、資源監(jiān)控器、預(yù)測分析等方面的功能,提高了用戶對應(yīng)用的分析和洞察能力。 2022/7/1153第2章 SQL Server 2008的安裝與配置2.1.3 SQL Server 2008

55、的版本 SQL Server 2008提供了多種版本以滿足不同用戶的要求,其特點(diǎn)如表2.1所示。 提示:企業(yè)版、標(biāo)準(zhǔn)版之外的其他版本是針對特定的群體設(shè)計(jì)的,統(tǒng)稱為專業(yè)版。 2022/7/1154第2章 SQL Server 2008的安裝與配置2.1.4 SQL Server 2008的服務(wù)器組件 SQL Server 2008以組件的方式提供各項(xiàng)功能和服務(wù),它主要由四個(gè)服務(wù)器組件組成: (1)SQL Server 數(shù)據(jù)庫引擎 SQL Server 數(shù)據(jù)庫引擎包括數(shù)據(jù)庫引擎(用于存儲(chǔ)、處理和保護(hù)數(shù)據(jù)的核心服務(wù))、復(fù)制、全文搜索以及用于管理關(guān)系數(shù)據(jù)和XML數(shù)據(jù)的工具。 (2)Analysis S

56、ervices組件 Analysis Services組件主要包括用于創(chuàng)建和管理聯(lián)機(jī)分析處理 (OLAP) 以及數(shù)據(jù)挖掘應(yīng)用程序的工具。 (3)Reporting Services組件 Reporting Services組件主要包括用于創(chuàng)建、管理和部署表格報(bào)表、矩陣報(bào)表、圖形報(bào)表以及自由格式報(bào)表的服務(wù)器和客戶端組件。Reporting Services還是一個(gè)可用于開發(fā)報(bào)表應(yīng)用程序的可擴(kuò)展平臺(tái)。 (4)Integration Services組件 Integration Services組件是一組圖形工具和可編程對象,主要用于移動(dòng)、復(fù)制和轉(zhuǎn)換數(shù)據(jù)等。2022/7/1155第2章 SQL Se

57、rver 2008的安裝與配置2.1.5 SQL Server 2008的管理工具 SQL Server 2008通過各種操作簡便的工具為應(yīng)用開發(fā)人員、數(shù)據(jù)庫管理人員等用戶提供使用SQL Server 2008數(shù)據(jù)庫管理系統(tǒng)的環(huán)境。各種管理工具的功能如表2.2所示。2022/7/1156第2章 SQL Server 2008的安裝與配置2.1.6 SQL Server 2008的安裝環(huán)境 1硬件要求 在安裝SQL Server 2008之前,需要檢查計(jì)算機(jī)系統(tǒng)的硬件和軟件配置是否符合要求,然后才能進(jìn)入安裝階段。硬件配置主要從處理器(CPU)、內(nèi)存、硬盤等幾個(gè)主要硬件設(shè)備的要求去檢查。 (1)處

58、理器 要正常安裝和使用SQL Server 2008,要求處理器類型為Pentium III兼容處理器或速度更快的處理器,建議使用2.0GHz或更快的處理器。 對于64位版的SQL Server 2008,處理器類型最低應(yīng)為AMD Opteron、AMD Athlon 64、支持Intel EM64T的Intel Xeon和支持EM64T的Intel Pentium IV的一種,建議使用2.0GHz或更快的處理器。 (2)內(nèi)存 SQL Server 2008需要的內(nèi)存數(shù)量最少為512MB,推薦內(nèi)存在2GB以上。為了獲得數(shù)據(jù)處理的最高效率,在實(shí)際使用中,內(nèi)存越大越好。同時(shí),安裝數(shù)據(jù)庫管理系統(tǒng)的服

59、務(wù)器建議使用一臺(tái)專用的服務(wù)器。 2022/7/1157第2章 SQL Server 2008的安裝與配置2.1.6 SQL Server 2008的安裝環(huán)境 (3)硬盤 SQL Server 2008對硬盤的速度沒有太多要求,但硬盤的處理速度越快越好。SQL Server 2008安裝光盤的文件大小超過1.5GB,所以,用戶在安裝前要檢查硬盤剩余空間,建議硬盤剩余空間不要少于4GB。 2軟件要求 安裝SQL Server 2008時(shí),首先要檢查Windows操作系統(tǒng)的版本,不同版本的SQL Server 2008對Windows操作系統(tǒng)的版本要求有所不同。 (1)企業(yè)版:只能安裝到服務(wù)器版的操

60、作系統(tǒng)中(例如Windows Server 2003或Windows Server 2008),而不能安裝到個(gè)人版操作系統(tǒng)中(例如Windows XP)。 (2)標(biāo)準(zhǔn)版:可以安裝到個(gè)人版操作系統(tǒng)和服務(wù)器版操作系統(tǒng)中,可安裝的常見操作系統(tǒng)有:Windows XP、Windows Vista、Windows 7/8、Windows Server 2003/2008等。 提示:通常,64位的版本原則上只能安裝在64位的Windows操作系統(tǒng)環(huán)境下使用;32位的版本原則上只能安裝在32位的Windows操作系統(tǒng)環(huán)境下使用。但64位的Windows如果安裝了“WOW64”支持管理工具,則32位的SQL

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論