




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)庫(kù)原理與應(yīng)用教程
―SQLServer2019第1章數(shù)據(jù)庫(kù)系統(tǒng)概述第1章數(shù)據(jù)庫(kù)系統(tǒng)概述數(shù)據(jù)庫(kù)——通俗地講就是存放數(shù)據(jù)的倉(cāng)庫(kù)。而數(shù)據(jù)庫(kù)技術(shù)所研究的問(wèn)題是如何科學(xué)地組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù),是當(dāng)代計(jì)算機(jī)科學(xué)的重要組成部分。本章主要介紹數(shù)據(jù)庫(kù)技術(shù)的發(fā)展歷史、數(shù)據(jù)庫(kù)系統(tǒng)的基本概念、組成和功能以及數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)三個(gè)問(wèn)題。第1章數(shù)據(jù)庫(kù)系統(tǒng)概述1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史
數(shù)據(jù)庫(kù)技術(shù)是20世紀(jì)60年代后期興起的一門(mén)信息管理自動(dòng)化學(xué)科,是計(jì)算機(jī)學(xué)科的一個(gè)重要分支(數(shù)據(jù)處理)。了解計(jì)算機(jī)的三個(gè)主要的應(yīng)用領(lǐng)域:科學(xué)計(jì)算、數(shù)據(jù)處理、智能控制1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史1.1.1數(shù)據(jù)處理技術(shù)1.數(shù)據(jù)(Data)
數(shù)據(jù)是描述事物的符號(hào)記錄,是各類信息的具體表現(xiàn)形式。除了常用的數(shù)字?jǐn)?shù)據(jù)外,文字(如名稱)、圖形、圖像、聲音等信息,也都是數(shù)據(jù)。應(yīng)用中提煉有用的數(shù)據(jù),一般對(duì)事物用記錄來(lái)描述。例如,對(duì)學(xué)生的學(xué)號(hào)、姓名、性別和年齡等情況這樣描述:202201001、張三、男、19。
1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史2.數(shù)據(jù)處理(DataProcess)
數(shù)據(jù)處理是指對(duì)數(shù)據(jù)的收集、分類、組織、編碼、存儲(chǔ)、加工、計(jì)算、檢索、維護(hù)、傳播以及打印等一系列的活動(dòng)。
其目的就是從大量的數(shù)據(jù)中提取出有效的信息資源。在數(shù)據(jù)處理中,通常數(shù)據(jù)的計(jì)算比較簡(jiǎn)單,而數(shù)據(jù)的管理比較復(fù)雜。數(shù)據(jù)管理是數(shù)據(jù)處理的核心,指數(shù)據(jù)的收集、分類、組織、編碼、存儲(chǔ)、加工、計(jì)算、檢索、維護(hù)、傳播以及打印等操作。1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史1.1.2數(shù)據(jù)庫(kù)技術(shù)的三個(gè)發(fā)展階段*
隨著計(jì)算機(jī)硬件和軟件的發(fā)展,計(jì)算機(jī)在數(shù)據(jù)處理方面應(yīng)用越來(lái)越廣泛,數(shù)據(jù)庫(kù)技術(shù)也不斷地發(fā)展。從數(shù)據(jù)管理的角度數(shù)據(jù)庫(kù)技術(shù)經(jīng)歷了三個(gè)階段**。
1.人工管理階段
2.文件系統(tǒng)階段
3.數(shù)據(jù)庫(kù)系統(tǒng)階段1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史1.人工管理階段
20世紀(jì)50年代中期以前屬于人工管理階段,它是數(shù)據(jù)管理的初級(jí)階段。這一階段的計(jì)算機(jī)主要用于科學(xué)計(jì)算。特點(diǎn):(1)數(shù)據(jù)不能被長(zhǎng)期保存,沒(méi)有文件的概念。(2)沒(méi)有對(duì)數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng)。(3)數(shù)據(jù)無(wú)獨(dú)立性、不能共享。(4)數(shù)據(jù)和應(yīng)用程序一一對(duì)應(yīng),應(yīng)用程序依賴于數(shù)據(jù)的物理組織,因此數(shù)據(jù)的獨(dú)立性差。1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史程序與數(shù)據(jù)是一個(gè)整體,一個(gè)程序中的數(shù)據(jù)無(wú)法被其他程序使用,因此程序與程序之間存在大量的重復(fù)數(shù)據(jù)。
應(yīng)用程序和數(shù)據(jù)的依賴關(guān)系:應(yīng)用程序n應(yīng)用程序2數(shù)據(jù)組n應(yīng)用程序1數(shù)據(jù)組1數(shù)據(jù)組2…1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史2.文件系統(tǒng)階段
20世紀(jì)50年代后期至60年代中后期,計(jì)算機(jī)的應(yīng)用范圍不斷擴(kuò)大,不僅用于科學(xué)計(jì)算,還大量用于管理。硬件方面,磁盤(pán)成為計(jì)算機(jī)的主要外存儲(chǔ)器;軟件方面,出現(xiàn)了高級(jí)語(yǔ)言和操作系統(tǒng)。程序通過(guò)數(shù)據(jù)文件訪問(wèn)數(shù)據(jù)。外存儲(chǔ)器數(shù)據(jù)輸入程序數(shù)據(jù)輸入程序數(shù)據(jù)文件特點(diǎn):(1)數(shù)據(jù)可以長(zhǎng)期保存(2)由文件系統(tǒng)管理數(shù)據(jù)(3)
數(shù)據(jù)具有一定的獨(dú)立性,但獨(dú)立性較差應(yīng)用程序和數(shù)據(jù)文件的關(guān)系:應(yīng)用程序n應(yīng)用程序2數(shù)據(jù)文件n數(shù)據(jù)文件1文件系統(tǒng)應(yīng)用程序1數(shù)據(jù)文件21.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史3.數(shù)據(jù)庫(kù)系統(tǒng)階段
20世紀(jì)60年代后期以來(lái),計(jì)算機(jī)應(yīng)用越來(lái)越廣泛,數(shù)據(jù)量急劇增加,數(shù)據(jù)的共享要求越來(lái)越高。硬件方面,有了大容量的磁盤(pán);軟件方面,出現(xiàn)了能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。所以,此階段將數(shù)據(jù)集中存儲(chǔ)在一臺(tái)計(jì)算機(jī)上(數(shù)據(jù)庫(kù)中),進(jìn)行統(tǒng)一組織和管理。外存儲(chǔ)器數(shù)據(jù)庫(kù)1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史1.1數(shù)據(jù)庫(kù)技術(shù)發(fā)展史數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)如下(優(yōu)點(diǎn)):(1)數(shù)據(jù)結(jié)構(gòu)化(2)較高的數(shù)據(jù)共享性(3)較高的數(shù)據(jù)獨(dú)立性(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制
應(yīng)用程序與數(shù)據(jù)之間的關(guān)系如圖所示:應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)1.2數(shù)據(jù)庫(kù)系統(tǒng)組成數(shù)據(jù)庫(kù)系統(tǒng)是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫(kù)后的系統(tǒng),一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)開(kāi)發(fā)工具、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)和數(shù)據(jù)庫(kù)用戶構(gòu)成。
數(shù)據(jù)庫(kù)發(fā)開(kāi)工具應(yīng)用系統(tǒng)人員硬件DBMS數(shù)據(jù)庫(kù)OS1.2數(shù)據(jù)庫(kù)系統(tǒng)組成1.數(shù)據(jù)庫(kù)(DataBase,DB)
數(shù)據(jù)庫(kù)是指長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)有組織的、可共享的數(shù)據(jù)集合,即在計(jì)算機(jī)系統(tǒng)中按一定的數(shù)據(jù)模型組織、存儲(chǔ)和使用的相關(guān)聯(lián)的數(shù)據(jù)集合。它不僅包括描述事物的數(shù)據(jù)本身,還包括相關(guān)事物之間的聯(lián)系。
1.2數(shù)據(jù)庫(kù)系統(tǒng)組成
2.數(shù)據(jù)庫(kù)管理系統(tǒng)(DataBaseManagementSystem,DBMS)**
數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件。它建立在操作系統(tǒng)的基礎(chǔ)上,位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它為用戶或應(yīng)用程序提供訪問(wèn)數(shù)據(jù)庫(kù)的方法,包括數(shù)據(jù)庫(kù)的創(chuàng)建、查詢、更新及各種數(shù)據(jù)控制等。
1.2數(shù)據(jù)庫(kù)系統(tǒng)組成數(shù)據(jù)庫(kù)管理系統(tǒng)的功能*數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件,一般說(shuō)來(lái),其功能主要包括以下4個(gè)方面。(1)數(shù)據(jù)定義和操縱功能
DBMS提供數(shù)據(jù)定義語(yǔ)言DDL對(duì)數(shù)據(jù)庫(kù)中的對(duì)象進(jìn)行定義和數(shù)據(jù)操縱語(yǔ)言DML檢索、插入、修改、刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。(2)數(shù)據(jù)庫(kù)運(yùn)行控制功能對(duì)數(shù)據(jù)庫(kù)進(jìn)行并發(fā)控制、安全性檢查、完整性約束條件的檢查和執(zhí)行、數(shù)據(jù)庫(kù)的內(nèi)部維護(hù)等。1.2數(shù)據(jù)庫(kù)系統(tǒng)組成(3)數(shù)據(jù)庫(kù)的組織、存儲(chǔ)和管理
DBMS確定以何種文件結(jié)構(gòu)和存取方式物理地組織數(shù)據(jù),如何實(shí)現(xiàn)數(shù)據(jù)之間的聯(lián)系,以便提高存儲(chǔ)空間利用率和各種操作的時(shí)間效率。(4)建立和維護(hù)數(shù)據(jù)庫(kù)初始數(shù)據(jù)的輸入與數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)與恢復(fù)、數(shù)據(jù)庫(kù)的重組織與重構(gòu)造、性能的監(jiān)視與分析等。1.2數(shù)據(jù)庫(kù)系統(tǒng)組成3.數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)
凡使用數(shù)據(jù)庫(kù)技術(shù)管理其數(shù)據(jù)的系統(tǒng)都稱為數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的應(yīng)用非常廣泛,它可以用于事務(wù)管理、計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)圖形分析和處理以及人工智能等系統(tǒng)中。1.2數(shù)據(jù)庫(kù)系統(tǒng)組成4.人員(1)終端用戶終端用戶是數(shù)據(jù)庫(kù)的使用者,通過(guò)應(yīng)用程序與數(shù)據(jù)庫(kù)進(jìn)行交互。(2)應(yīng)用程序員應(yīng)用程序員負(fù)責(zé)分析、設(shè)計(jì)、開(kāi)發(fā)、維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)中各類應(yīng)用程序,數(shù)據(jù)庫(kù)系統(tǒng)一般需要一個(gè)以上的應(yīng)用程序員在開(kāi)發(fā)周期內(nèi)完成數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)、應(yīng)用程序開(kāi)發(fā)等任務(wù)。1.2數(shù)據(jù)庫(kù)系統(tǒng)組成(3)數(shù)據(jù)庫(kù)管理員(DatabaseAdministrator,DBA)*
數(shù)據(jù)庫(kù)管理員是高級(jí)用戶,其職能是管理、監(jiān)督、維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)的正常運(yùn)行,負(fù)責(zé)全面管理和控制數(shù)據(jù)庫(kù)系統(tǒng)。職責(zé):設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和內(nèi)容,定義數(shù)據(jù)庫(kù)的安全性和完整性,監(jiān)督數(shù)據(jù)庫(kù)的運(yùn)行等等。1.3數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)1.3.1數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)*
為了保障數(shù)據(jù)與程序之間的獨(dú)立性,使用戶能以簡(jiǎn)單的邏輯結(jié)構(gòu)操作數(shù)據(jù)而無(wú)需考慮數(shù)據(jù)的物理結(jié)構(gòu),簡(jiǎn)化應(yīng)用程序的編制和程序員的負(fù)擔(dān),增強(qiáng)系統(tǒng)的可靠性。DBMS將數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)分為三級(jí)模式:外模式、模式和內(nèi)模式。
1.3.1數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)學(xué)生表:學(xué)號(hào)姓名性別學(xué)院2016002張三男數(shù)學(xué)2016025李四女?dāng)?shù)學(xué)2016023劉明男數(shù)學(xué)2016033王曉女信技2016055李洪男信技2016123鄭曉風(fēng)女信技模式外模式學(xué)號(hào)姓名性別2016033王曉女2016055李洪男2016123鄭曉風(fēng)女男劉明2016023女男性別李四2016025張三2016002姓名學(xué)號(hào)數(shù)學(xué)學(xué)院學(xué)生:信息技術(shù)學(xué)院學(xué)生:1.3.1數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)1.3.1數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)(1)模式
模式也稱概念模式或邏輯模式,是對(duì)數(shù)據(jù)庫(kù)中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式,綜合地考慮了所有用戶的需求,并將這些需求結(jié)合成一個(gè)邏輯整體。(2)內(nèi)模式內(nèi)模式也稱存儲(chǔ)模式或物理模式,是對(duì)數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。三級(jí)模式結(jié)構(gòu)的一個(gè)具體實(shí)例圖書(shū)信息出版社名稱字符型20書(shū)名字符型30作者姓名字符型20出版日期日期型
作者著書(shū)信息作者姓名字符型20書(shū)名字符型30出版社出書(shū)類型出版社名稱字符型20書(shū)名字符型30類型字符型1
作者
作品
出版社
數(shù)據(jù)文件數(shù)據(jù)文件數(shù)據(jù)文件
索引文件索引文件索引文件
作者
作品
出版社
作者編號(hào)字符型5書(shū)號(hào)字符型6出版社編號(hào)字符型5
作者姓名字符型20書(shū)名字符型30出版社名稱字符型20
通信地址字符型50類型字符型1城市字符型10
郵編字符型6價(jià)格貨幣
電話字符型11出版日期日期型
外模式模式內(nèi)模式1.3.1數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)(3)外模式
外模式也稱子模式或用戶模式,它是對(duì)數(shù)據(jù)庫(kù)用戶能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述。外模式通常是模式的子集,一個(gè)數(shù)據(jù)庫(kù)可以有多個(gè)外模式。
1.3.2數(shù)據(jù)庫(kù)的兩級(jí)映像
數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)把數(shù)據(jù)的具體組織(內(nèi)模式)留給DBMS去做,用戶只要抽象地處理數(shù)據(jù)(模式——DBA、外模式——程序員),減輕了用戶使用系統(tǒng)的負(fù)擔(dān)。但,三級(jí)模式結(jié)構(gòu)之間差別往往很大,為了實(shí)現(xiàn)這3個(gè)抽象級(jí)別的聯(lián)系和轉(zhuǎn)換,DBMS在三級(jí)模式結(jié)構(gòu)之間提供了兩級(jí)映像:外模式/模式映像,模式/內(nèi)模式映像。1.3.2數(shù)據(jù)庫(kù)的兩級(jí)映像(1)外模式/模式映像對(duì)于每個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都有一個(gè)外模式/模式映像,它定義了該外模式與模式之間的對(duì)應(yīng)關(guān)系。
*當(dāng)模式改變時(shí)(如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/模式映像作相應(yīng)改變,可以使外模式保持不變。因?yàn)閼?yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫(xiě)的,所以應(yīng)用程序不必修改。此映像的功能就是:保證了數(shù)據(jù)與程序的邏輯獨(dú)立性,簡(jiǎn)稱邏輯數(shù)據(jù)獨(dú)立性*。1.3.2數(shù)據(jù)庫(kù)的兩級(jí)映像(2)模式/內(nèi)模式映像
數(shù)據(jù)庫(kù)中只有一個(gè)模式,也只有一個(gè)內(nèi)模式,所以模式/內(nèi)模式映像是唯一的,它定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。
*當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)改變了(如選用了另一種存儲(chǔ)結(jié)構(gòu)),由數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映像作相應(yīng)改變,可以保證模式保持不變,因而應(yīng)用程序也不必改變。此映像的功能是:保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱物理數(shù)據(jù)獨(dú)立性*。第1章數(shù)據(jù)庫(kù)系統(tǒng)概述總結(jié):1、數(shù)據(jù)庫(kù)技術(shù)的發(fā)展歷史了解數(shù)據(jù)管理的三個(gè)階段。2、數(shù)據(jù)庫(kù)系統(tǒng)的組成和功能(1)理解DB、DBMS、DBA概念(2)了解DBMS的功能3、數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)清楚數(shù)據(jù)庫(kù)分成三級(jí)模式結(jié)構(gòu)的目的(使用方便),兩級(jí)映像的作用(數(shù)據(jù)獨(dú)立性)。數(shù)據(jù)庫(kù)原理與應(yīng)用教程
―SQLServer2019第2章數(shù)據(jù)模型第2章數(shù)據(jù)模型
客觀事物是信息之源,是設(shè)計(jì)、建立數(shù)據(jù)庫(kù)的出發(fā)點(diǎn)。計(jì)算機(jī)不能直接處理現(xiàn)實(shí)世界中的具體事物,所以人們必須事先將具體事物轉(zhuǎn)換成計(jì)算機(jī)能夠處理的數(shù)據(jù)。在數(shù)據(jù)庫(kù)系統(tǒng)的形式化結(jié)構(gòu)中如何抽象、表示、處理現(xiàn)實(shí)世界中的信息和數(shù)據(jù)呢?這就是數(shù)據(jù)庫(kù)的數(shù)據(jù)模型。第2章數(shù)據(jù)模型本章主要介紹三個(gè)問(wèn)題:信息的三種世界概念模型數(shù)據(jù)模型第2章數(shù)據(jù)模型2.1信息的三種世界計(jì)算機(jī)信息處理的對(duì)象是現(xiàn)實(shí)生活中的客觀事物,在對(duì)客觀事物實(shí)施處理的過(guò)程中,涉及到三個(gè)層次,即現(xiàn)實(shí)世界、信息世界和機(jī)器世界,經(jīng)歷了兩次抽象和轉(zhuǎn)換。2.1信息的三種世界1.現(xiàn)實(shí)世界現(xiàn)實(shí)世界就是人們所能看到的、接觸到的世界。現(xiàn)實(shí)世界就是存在于人腦之外的客觀世界,客觀事物及其相互聯(lián)系就處于現(xiàn)實(shí)世界中。2.1信息的三種世界2.信息世界
信息世界就是現(xiàn)實(shí)世界在人們頭腦中的反映,又稱概念世界??陀^事物在信息世界中稱為實(shí)體,反映事物間聯(lián)系的是實(shí)體模型或概念模型。3.數(shù)據(jù)世界數(shù)據(jù)世界又叫機(jī)器世界,是信息世界中的信息數(shù)據(jù)化后對(duì)應(yīng)的產(chǎn)物。現(xiàn)實(shí)世界中的客觀事物及其聯(lián)系,在數(shù)據(jù)世界中用數(shù)據(jù)模型來(lái)描述。第2章數(shù)據(jù)模型2.2概念模型(信息世界)
概念模型是現(xiàn)實(shí)世界的抽象反映,是獨(dú)立于計(jì)算機(jī)系統(tǒng)的模型,是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次。2.2.1基本概念*1.
實(shí)體(Entity)*:客觀存在并可以相互區(qū)分的事物。如一個(gè)學(xué)生、一個(gè)班級(jí)等。2.
屬性(Attribute)*:實(shí)體所具有的某些特性。通過(guò)屬性對(duì)實(shí)體進(jìn)行描述,實(shí)體是由屬性組成的。
2.2概念模型例如,學(xué)生實(shí)體可由學(xué)號(hào)、姓名、性別、年齡、系、專業(yè)等組成,(202202001、張強(qiáng)、男、19、計(jì)算機(jī)、軟件工程)這些屬性組合起來(lái)就可以表示“張強(qiáng)”這個(gè)學(xué)生。3.
碼(Key)*
:一個(gè)實(shí)體往往有多個(gè)屬性,它們構(gòu)成該實(shí)體的屬性集合。如果其中有一個(gè)屬性或?qū)傩约軌蛭ㄒ粯?biāo)識(shí)整個(gè)屬性集合,則稱該屬性或?qū)傩约癁樵搶?shí)體的碼。例如,學(xué)號(hào)是學(xué)生實(shí)體的碼。在同一學(xué)校里,不可能有兩個(gè)學(xué)生具有相同的學(xué)號(hào)。2.2概念模型4.實(shí)體型(EntityType):具有相同屬性的實(shí)體必然具有共同的特征和性質(zhì)。用實(shí)體名及其屬性名集合來(lái)抽象和刻畫(huà)同類實(shí)體,稱為實(shí)體型。例如,學(xué)生(學(xué)號(hào),姓名,性別,出生年份,系,入學(xué)時(shí)間)就是一個(gè)實(shí)體型。5.實(shí)體集(EntitySet):同型實(shí)體的集合稱為實(shí)體集。例如,全體學(xué)生就是一個(gè)實(shí)體集。2.2概念模型6.
聯(lián)系(Relationship)*
:現(xiàn)實(shí)世界的事物之間是有聯(lián)系的,即各實(shí)體型之間是有聯(lián)系的。a1
a2
a3
a4
b1
b2
b3
b4
A
B
(1)一對(duì)一聯(lián)系(1:1)對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中至多有一個(gè)實(shí)體與之對(duì)應(yīng),反之亦然,則稱實(shí)體集A與實(shí)體集B具有一對(duì)一聯(lián)系,記為1:1。例如,部門(mén)與經(jīng)理之間聯(lián)系,學(xué)校與校長(zhǎng)之間的聯(lián)系等等就是一對(duì)一的聯(lián)系。2.2概念模型(2)一對(duì)多聯(lián)系(1:M)對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有多個(gè)實(shí)體與之對(duì)應(yīng);反過(guò)來(lái),對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中至多有一個(gè)實(shí)體與之對(duì)應(yīng),則稱實(shí)體集A與實(shí)體集B具有一對(duì)多聯(lián)系,記為1:M。例如,一個(gè)班可以有多個(gè)學(xué)生,但一個(gè)學(xué)生只能屬于一個(gè)班。班級(jí)與學(xué)生之間的聯(lián)系就是一對(duì)多的聯(lián)系。a1
a2
a3
b1
b2
b3
b4
b5A
B
2.2概念模型(3)多對(duì)多聯(lián)系(M:N)對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有多個(gè)實(shí)體與之對(duì)應(yīng);反過(guò)來(lái),對(duì)于實(shí)體集B中的每一個(gè)實(shí)體,實(shí)體集A中也有多個(gè)實(shí)體與之對(duì)應(yīng),則稱實(shí)體集A與實(shí)體集B具有多對(duì)多聯(lián)系,記為M:N。例如,學(xué)生在選課時(shí),一個(gè)學(xué)生可以選多門(mén)課程,一門(mén)課程也可以被多個(gè)學(xué)生選,則學(xué)生和課程之間具有多對(duì)多聯(lián)系。a1
a2
a3
a4
b1
b2
b3
b4
A
B
2.2概念模型2.2.2E-R模型*
概念模型的表示方法很多,其中最為著名和使用最為廣泛的是P.P.Chen于1976年提出的E-R(Entity-Relationship)模型。E-R模型又叫實(shí)體-聯(lián)系模型,是對(duì)現(xiàn)實(shí)世界的一種抽象,它的主要成分是實(shí)體、聯(lián)系和屬性。E-R模型的圖形表示稱為E-R圖*。2.2概念模型E-R圖通用的表示方式:(1)用矩形表示實(shí)體,在框內(nèi)寫(xiě)上實(shí)體名。(2)用橢圓形表示實(shí)體的屬性,并用無(wú)向邊把實(shí)體和屬性連接起來(lái)。(3)用菱形表示實(shí)體間的聯(lián)系,在菱形框內(nèi)寫(xiě)上聯(lián)系名,用無(wú)向邊分別把菱形框與有關(guān)實(shí)體連接起來(lái),在無(wú)向邊旁注明聯(lián)系的類型。注:有的聯(lián)系也有屬性。
2.2概念模型例1:學(xué)生實(shí)體和班級(jí)實(shí)體的聯(lián)系的E-R圖。
學(xué)生實(shí)體有屬性:學(xué)號(hào)、姓名、性別、年齡、班級(jí)名。班級(jí)實(shí)體有屬性:班級(jí)名、班主任。學(xué)生班級(jí)屬于班級(jí)名班主任N1姓名性別出生日期學(xué)號(hào)例2:學(xué)生選課系統(tǒng)的E-R圖。學(xué)生實(shí)體有屬性:學(xué)號(hào)、姓名、性別、年齡、班級(jí)名。課程實(shí)體有屬性:課程名、課程編號(hào)、學(xué)時(shí)、學(xué)分。注:學(xué)生選課后有成績(jī)2.2概念模型成績(jī)選修MN學(xué)生課程學(xué)號(hào)姓名性別出生日期課程號(hào)課程名學(xué)分學(xué)時(shí)例1、例2組合成一個(gè)簡(jiǎn)單的學(xué)生信息數(shù)據(jù)庫(kù)系統(tǒng)
。2.2概念模型1NMN課程學(xué)生選修姓名性別出生日期課程號(hào)課程名學(xué)分成績(jī)學(xué)號(hào)班級(jí)屬于班主任班級(jí)名學(xué)時(shí)系實(shí)體的屬性有:系名,系號(hào),系主任教師實(shí)體的屬性有:教師號(hào),教師名,年齡,職稱。練習(xí):畫(huà)出某學(xué)校系和教師之間關(guān)系的E-R圖。2.2概念模型2.2概念模型例如:有一個(gè)高等學(xué)校信息數(shù)據(jù)庫(kù)系統(tǒng),包含學(xué)生、教師、專業(yè)、教科書(shū)和課程五個(gè)實(shí)體,實(shí)體聯(lián)系的E-R圖。
MN1N1NNMNM1N屬于所屬教科書(shū)專業(yè)訂購(gòu)課程開(kāi)課教師學(xué)生教學(xué)選修專業(yè)名專業(yè)號(hào)學(xué)號(hào)姓名性別年齡職工號(hào)姓名性別民族課程號(hào)課程名學(xué)分成績(jī)書(shū)號(hào)書(shū)名出版社數(shù)量開(kāi)課學(xué)期第2章數(shù)據(jù)模型2.3數(shù)據(jù)模型
數(shù)據(jù)模型是對(duì)客觀事物及聯(lián)系的數(shù)據(jù)描述,是概念模型的數(shù)據(jù)化,即數(shù)據(jù)模型提供表示和組織數(shù)據(jù)的方法。數(shù)據(jù)模型通常由數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)的完整性約束三部分(三要素*)組成。2.3數(shù)據(jù)模型1、數(shù)據(jù)結(jié)構(gòu)對(duì)計(jì)算機(jī)的數(shù)據(jù)組織方式和數(shù)據(jù)之間聯(lián)系進(jìn)行框架性描述的集合,是對(duì)數(shù)據(jù)庫(kù)靜態(tài)特征的描述。數(shù)據(jù)庫(kù)系統(tǒng)是按數(shù)據(jù)結(jié)構(gòu)的類型來(lái)組織數(shù)據(jù)的,因此數(shù)據(jù)庫(kù)系統(tǒng)通常按照數(shù)據(jù)結(jié)構(gòu)的類型來(lái)命名數(shù)據(jù)模型。如層次結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)和關(guān)系結(jié)構(gòu)的模型分別命名為層次模型、網(wǎng)狀模型和關(guān)系模型。
2.3數(shù)據(jù)模型2、數(shù)據(jù)操作指數(shù)據(jù)庫(kù)中各記錄允許執(zhí)行的操作的集合,例如插入、刪除、修改、檢索、更新等操作,是對(duì)數(shù)據(jù)庫(kù)動(dòng)態(tài)特征的描述。3、數(shù)據(jù)的完整性約束是關(guān)于數(shù)據(jù)狀態(tài)和狀態(tài)變化的一組完整性約束規(guī)則的集合,以保證數(shù)據(jù)的正確性、有效性和一致性。例如,數(shù)據(jù)庫(kù)的主碼不能允許取空值,性別的取值范圍為“男或女”等。
2.3數(shù)據(jù)模型2.3.1層次模型
層次模型用樹(shù)形結(jié)構(gòu)來(lái)表示各類實(shí)體以及實(shí)體間的聯(lián)系。每個(gè)結(jié)點(diǎn)表示一個(gè)記錄類型,結(jié)點(diǎn)之間的連線表示記錄類型間的聯(lián)系,這種聯(lián)系只能是父子聯(lián)系。學(xué)校學(xué)院1學(xué)院3學(xué)院2系1系2教研室1教研室2層次模型存在如下特點(diǎn):(1)只有一個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),稱為根結(jié)點(diǎn)。(2)根結(jié)點(diǎn)以外的其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)。所以只能表示一對(duì)多和一對(duì)一聯(lián)系。2.3數(shù)據(jù)模型層次數(shù)據(jù)模型的操作主要有查詢、插入、刪除和更新。進(jìn)行插入、刪除、更新操作時(shí)要滿足層次模型的完整性約束條件:(1)進(jìn)行插入操作時(shí),如果沒(méi)有相應(yīng)的雙親結(jié)點(diǎn)值就不能插入子女結(jié)點(diǎn)值。(2)進(jìn)行刪除操作時(shí),如果刪除雙親結(jié)點(diǎn)值,則相應(yīng)的子女結(jié)點(diǎn)值也被同時(shí)刪除。(3)進(jìn)行更新操作時(shí),應(yīng)更新所有相應(yīng)記錄,以保證數(shù)據(jù)的一致性。2.3數(shù)據(jù)模型層次模型的優(yōu)點(diǎn)是模型本身比較簡(jiǎn)單,只需很少幾條命令就能操縱數(shù)據(jù)庫(kù);對(duì)于實(shí)體間聯(lián)系是固定的,且預(yù)先定義好的應(yīng)用系統(tǒng),采用層次模型最易實(shí)現(xiàn)。但其缺點(diǎn)也很多,如插入和刪除操作的限制比較多;查詢子女結(jié)點(diǎn)必須通過(guò)雙親結(jié)點(diǎn);無(wú)法直接表示多對(duì)多聯(lián)系等等。2.3數(shù)據(jù)模型2.3.2網(wǎng)狀模型網(wǎng)狀數(shù)據(jù)模型是一種比層次模型更具普遍性的結(jié)構(gòu),它允許多個(gè)結(jié)點(diǎn)沒(méi)有雙親結(jié)點(diǎn),也允許一個(gè)結(jié)點(diǎn)有多個(gè)雙親結(jié)點(diǎn)。因此,網(wǎng)狀模型可以方便地表示各種類型的聯(lián)系。課程1課程2課程3學(xué)生2學(xué)生3學(xué)生4學(xué)生5學(xué)生1網(wǎng)狀模型是一個(gè)不加任何條件的無(wú)向圖。一般來(lái)說(shuō),層次模型是網(wǎng)狀模型的特殊形式,網(wǎng)狀模型是層次模型的一般形式。
2.3數(shù)據(jù)模型網(wǎng)狀數(shù)據(jù)模型的操作主要包括查詢、插入、刪除和更新數(shù)據(jù)。進(jìn)行插入、刪除、更新操作時(shí)要滿足網(wǎng)狀模型的完整性約束條件:(1)插入操作允許插入尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值。(2)刪除操作允許只刪除雙親結(jié)點(diǎn)值。(3)更新操作只需要更新指定記錄即可。(4)查詢操作可以有多種方法,可根據(jù)具體情況選用。2.3數(shù)據(jù)模型網(wǎng)狀模型與層次模型相比,提供了更大的靈活性,能更直接地描述現(xiàn)實(shí)世界,性能和效率也比較好。網(wǎng)狀模型的缺點(diǎn)是結(jié)構(gòu)比較復(fù)雜,用戶不易掌握;DDL和DML語(yǔ)言復(fù)雜,用戶不易使用;記錄之間聯(lián)系變動(dòng)后涉及鏈接指針的調(diào)整,擴(kuò)充和維護(hù)都比較復(fù)雜。2.3數(shù)據(jù)模型2.3.3關(guān)系模型*
用二維表格*結(jié)構(gòu)表示實(shí)體以及實(shí)體之間的聯(lián)系的數(shù)據(jù)模型稱為關(guān)系模型。關(guān)系模型是數(shù)據(jù)模型中最重要的模型。它以關(guān)系數(shù)學(xué)為理論基礎(chǔ),在關(guān)系模型中,操作的對(duì)象和操作結(jié)果都是二維表。2.3數(shù)據(jù)模型重要概念*:1.關(guān)系一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系都有一個(gè)關(guān)系名,在計(jì)算機(jī)里,一個(gè)關(guān)系可以存儲(chǔ)為一個(gè)文件。2.元組二維表中的行稱為元組,每一行是一個(gè)元組。元組對(duì)應(yīng)存儲(chǔ)文件中的一個(gè)記錄。3.屬性二維表的列稱為屬性,每一列有一個(gè)屬性名,屬性值是屬性的具體值。屬性對(duì)應(yīng)存儲(chǔ)文件中的一個(gè)字段,屬性的具體取值就形成表中的一個(gè)個(gè)元組。2.3數(shù)據(jù)模型4.域域是屬性的取值范圍。5.關(guān)系模式*對(duì)關(guān)系的信息結(jié)構(gòu)及語(yǔ)義限制的描述稱為關(guān)系模式,用關(guān)系名和包含的屬性名的集合表示。例如,職工信息表的關(guān)系模式是:職工(職工號(hào),姓名,性別,年齡,工資)。6.關(guān)鍵字或碼在關(guān)系的屬性中,能夠用來(lái)唯一標(biāo)識(shí)元組的屬性(或?qū)傩越M合)稱為關(guān)鍵字或碼(Key)。2.3數(shù)據(jù)模型7.候選關(guān)鍵字或候選碼
如果在一個(gè)關(guān)系中,存在多個(gè)屬性(或?qū)傩越M合)都能用來(lái)唯一標(biāo)識(shí)該關(guān)系中的元組,這些屬性(或?qū)傩越M合)都稱為該關(guān)系的候選關(guān)鍵字或候選碼,候選碼可以有多個(gè)。
8.主鍵或主碼
在一個(gè)關(guān)系的若干候選關(guān)鍵字中,被指定作為關(guān)鍵字的候選關(guān)鍵字稱為該關(guān)系的主鍵或主碼(PrimaryKey),一般,我們習(xí)慣選擇號(hào)碼作為一個(gè)關(guān)系的主碼。2.3數(shù)據(jù)模型9.主屬性和非主屬性
在一個(gè)關(guān)系中,包含在任何候選碼中的各個(gè)屬性稱為主屬性;不包含在任一候選碼中的屬性稱為非主屬性。10.外鍵或外碼一個(gè)關(guān)系的某個(gè)屬性(或?qū)傩越M合)不是該關(guān)系的主碼或只是主碼的一部分,卻是另一個(gè)關(guān)系的主碼,則稱這樣的屬性為該關(guān)系的外鍵或外碼(ForeignKey)。外碼是表與表聯(lián)系的紐帶。前面的層次模型圖可以用3個(gè)表表示:(1)學(xué)院表(2)系表(3)教研室表2.3數(shù)據(jù)模型學(xué)校學(xué)院1學(xué)院3學(xué)院2系1系2教研室1教研室2前面的網(wǎng)狀模型圖也可以用3個(gè)表表示:(1)學(xué)生表(2)課程表(3)成績(jī)表2.3數(shù)據(jù)模型課程1課程2課程3學(xué)生2學(xué)生3學(xué)生4學(xué)生5學(xué)生1學(xué)院表例:學(xué)院號(hào)學(xué)院名院長(zhǎng)001數(shù)學(xué)張三002物理李四003化學(xué)王五004文學(xué)劉明系名系主任學(xué)院號(hào)數(shù)學(xué)系aa001計(jì)算機(jī)系bb001網(wǎng)絡(luò)系cc002電子系dd002系表例:教研室名教研室主任系名數(shù)學(xué)基礎(chǔ)AB數(shù)學(xué)系數(shù)學(xué)應(yīng)用BC數(shù)學(xué)系計(jì)算機(jī)應(yīng)用AC計(jì)算機(jī)系網(wǎng)絡(luò)基礎(chǔ)AD計(jì)算機(jī)系網(wǎng)絡(luò)應(yīng)用BD網(wǎng)絡(luò)系網(wǎng)絡(luò)實(shí)驗(yàn)BE網(wǎng)絡(luò)系控制理論DF電子系教研室表例:2.3數(shù)據(jù)模型學(xué)生表例:學(xué)號(hào)姓名性別2016002張三男2016025李四女2016023劉明男2016033王曉女課程號(hào)課程名學(xué)分A002數(shù)據(jù)庫(kù)4B025英語(yǔ)5A005網(wǎng)絡(luò)3B028VB3課程表例:學(xué)號(hào)課程號(hào)成績(jī)2016002A002782016002B025882016002A005932016025A002902016025B025782016025A005772016025B028882016033A002872004033B025832016023A005792016023B028922016023B02589成績(jī)表例:表示學(xué)生和課程之間的聯(lián)系2.3數(shù)據(jù)模型
關(guān)系模型的操作主要包括查詢、插入、刪除和修改數(shù)據(jù)。這些操作必須滿足關(guān)系的完整性約束條件,使得關(guān)系數(shù)據(jù)庫(kù)從一種一致性狀態(tài)轉(zhuǎn)變到另一種一致性狀態(tài)。
詳細(xì)內(nèi)容見(jiàn)第3章。2.3數(shù)據(jù)模型1、了解信息的三種世界(現(xiàn)實(shí)世界、信息世界和機(jī)器世界
)。2、概念模型的基本概念(清楚的理解實(shí)體、屬性、碼和聯(lián)系)。3、學(xué)會(huì)E-R圖的畫(huà)法。4、最常見(jiàn)的三種數(shù)據(jù)模型,了解前兩種,深刻理解關(guān)系模型中的概念。第2章數(shù)據(jù)模型數(shù)據(jù)庫(kù)原理與應(yīng)用教程
―SQLServer2019第3章關(guān)系數(shù)據(jù)庫(kù)第3章關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)就是支持關(guān)系模型的數(shù)據(jù)庫(kù)系統(tǒng)。關(guān)系數(shù)據(jù)模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系完整性約束三部分組成。實(shí)體的聯(lián)系有兩類,一類是實(shí)體與實(shí)體之間的聯(lián)系;另一類是實(shí)體內(nèi)部各屬性間的聯(lián)系。關(guān)系模式中各個(gè)屬性之間的相互關(guān)聯(lián),就是數(shù)據(jù)依賴,它是規(guī)范化理論中一個(gè)最重要最基本的概念,是數(shù)據(jù)庫(kù)模式設(shè)計(jì)的關(guān)鍵。第3章關(guān)系數(shù)據(jù)庫(kù)本章介紹兩個(gè)問(wèn)題:(1)關(guān)系數(shù)據(jù)模型三要素:關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系數(shù)據(jù)庫(kù)完整性、關(guān)系運(yùn)算即關(guān)系數(shù)據(jù)庫(kù)操作(2)關(guān)系的規(guī)范化:函數(shù)依賴的相關(guān)概念、關(guān)系的規(guī)范化目的和過(guò)程第3章關(guān)系數(shù)據(jù)庫(kù)3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)非常簡(jiǎn)單,現(xiàn)實(shí)世界的實(shí)體以及實(shí)體間的各種聯(lián)系均用關(guān)系來(lái)表示。在用戶看來(lái),關(guān)系模型中數(shù)據(jù)的邏輯結(jié)構(gòu)就是一張二維表。
3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)3.1.1關(guān)系的定義和性質(zhì)關(guān)系就是一張二維表,但并不是任何二維表都叫關(guān)系,我們不能把日常生活中所用的任何表格都當(dāng)成一個(gè)關(guān)系直接存放到數(shù)據(jù)庫(kù)里。
那么什么樣的二維表才叫關(guān)系呢?例如:有兩個(gè)域,D1=動(dòng)物集合={貓,狗,豬},D2=食物集合={魚(yú),骨頭,白菜},D1×D2={(貓,魚(yú))(狗,魚(yú))(豬,魚(yú))(貓,骨頭)(狗,骨頭)(豬,骨頭)(貓,白菜)(狗,白菜)(豬,白菜)}表3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)1、關(guān)系的數(shù)學(xué)定義笛卡爾積:設(shè)D1,D2,…,Dn為任意域,定義D1,D2,…,Dn的笛卡爾積為:D1×D2×…×Dn={(d1,d2,…,dn)|diDi,i=1,2,…,n}
域:一組具有相同數(shù)據(jù)類型的值的集合。動(dòng)物食物貓魚(yú)狗魚(yú)豬魚(yú)貓骨頭狗骨頭豬骨頭貓白菜狗白菜豬白菜D1×D2=動(dòng)物食物表笛卡爾積推出關(guān)系表的定義3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系:D1×D2×…×Dn的中有關(guān)系的行形成的子集叫做D1×D2×…×D7n上的一個(gè)關(guān)系(Relation),用R(D1,D2,…,Dn)表示。(R表示關(guān)系名,n表示關(guān)系的目、度或元)動(dòng)物食物表的子集——?jiǎng)游锸澄镪P(guān)系表動(dòng)物食物貓魚(yú)狗骨頭豬白菜3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)2.關(guān)系的性質(zhì):關(guān)系數(shù)據(jù)庫(kù)要求關(guān)系必須是具有以下性質(zhì):(1)在同一個(gè)關(guān)系中,同一個(gè)列的數(shù)據(jù)必須是同一種數(shù)據(jù)類型。(2)在同一個(gè)關(guān)系中,不同的列的數(shù)據(jù)可以同一種數(shù)據(jù)類型,但各屬性名必須是互不相同。(3)在同一個(gè)關(guān)系中,任意兩個(gè)元組都不能完全相同。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)(4)在同一個(gè)關(guān)系中,列的次序無(wú)關(guān)緊要。即列的排列順序是不分先后的。(5)在同一個(gè)關(guān)系中,元組的位置無(wú)關(guān)緊要,即排行不分先后。(6)關(guān)系中的每個(gè)屬性必須是單值,即不可再分,這就要求關(guān)系的結(jié)構(gòu)不能嵌套。這是關(guān)系應(yīng)滿足的最基本的條件。
3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)例如,有這樣一個(gè)學(xué)生表如下:復(fù)合表示例學(xué)號(hào)姓名性別系編號(hào)成績(jī)C語(yǔ)言英語(yǔ)高數(shù)2022001張三男017787862022002李四女026989762022003劉明男037984822022004王曉女036690763.1關(guān)系數(shù)據(jù)結(jié)構(gòu)上述復(fù)合表格就不是關(guān)系,應(yīng)對(duì)其進(jìn)行結(jié)構(gòu)上的修改,才能成為數(shù)據(jù)庫(kù)中的關(guān)系。(1)可以轉(zhuǎn)化成一個(gè)關(guān)系,即學(xué)生成績(jī)關(guān)系(學(xué)號(hào),姓名,性別,系編號(hào),C語(yǔ)言,英語(yǔ),高數(shù));(2)也可以轉(zhuǎn)化成兩個(gè)關(guān)系,即學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,系編號(hào))和成績(jī)關(guān)系(學(xué)號(hào),C語(yǔ)言,英語(yǔ),高數(shù))。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)在關(guān)系數(shù)據(jù)模型中,實(shí)體以及實(shí)體之間的聯(lián)系都是用關(guān)系來(lái)表示的。它是通過(guò)關(guān)系當(dāng)中的冗余屬性(一般是主碼和外碼的關(guān)系)來(lái)實(shí)現(xiàn)實(shí)體之間的聯(lián)系。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)3.1.2關(guān)系數(shù)據(jù)庫(kù)1.關(guān)系模式*關(guān)系數(shù)據(jù)庫(kù)中,關(guān)系模式是型,關(guān)系是值;關(guān)系模式是對(duì)關(guān)系的描述。因此關(guān)系模式必須指出這個(gè)元組集合的結(jié)構(gòu),即它由哪些屬性構(gòu)成,這些屬性來(lái)自哪些域。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系模式可以形式化地表示為:
R(U,D,dom,F(xiàn))其中:R是關(guān)系名;U是組成該關(guān)系的屬性名集合;D是屬性所來(lái)自的域;dom
是屬性間域的映象集合;F是屬性間的數(shù)據(jù)依賴關(guān)系集合。關(guān)系模式通??梢院?jiǎn)記為*:
R(U)或R(A1,A2,…,An)
其中:R是關(guān)系名,A1,A2,…,An為屬性名。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)學(xué)號(hào)姓名性別年齡所在系2021000101
王蕭男17計(jì)算機(jī)系2021000207李云虎男18物理系2021010302郭敏女18數(shù)學(xué)系2021010408高紅女20數(shù)學(xué)系2021020309王睿男19美術(shù)系2021020506張旭
女21美術(shù)系學(xué)生情況表
學(xué)生情況表的關(guān)系模式可以描述為:學(xué)生情況表(學(xué)號(hào),姓名,性別,年齡,所在系)3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系是關(guān)系模式在某一時(shí)刻的狀態(tài)或內(nèi)容。關(guān)系模式是靜態(tài)的、穩(wěn)定的,而關(guān)系是動(dòng)態(tài)的、隨時(shí)間不斷變化的,因?yàn)殛P(guān)系操作在不斷地更新著數(shù)據(jù)庫(kù)中的數(shù)據(jù)。實(shí)際應(yīng)用中,我們常常把關(guān)系模式和關(guān)系統(tǒng)稱為關(guān)系。3.1關(guān)系數(shù)據(jù)結(jié)構(gòu)2.關(guān)系數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)就是采用關(guān)系模型的數(shù)據(jù)庫(kù)。在一個(gè)給定的應(yīng)用領(lǐng)域中,所有實(shí)體及實(shí)體之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)的型即為其關(guān)系模式的集合,關(guān)系數(shù)據(jù)庫(kù)的值是這些關(guān)系模式在某一時(shí)刻對(duì)應(yīng)的關(guān)系的集合。
第3章關(guān)系數(shù)據(jù)庫(kù)3.2關(guān)系的完整性數(shù)據(jù)完整性是指關(guān)系模型中數(shù)據(jù)的正確性與一致性。關(guān)系模型允許定義三類完整性約束*
:實(shí)體完整性、參照完整性和用戶自定義的完整性約束。3.2關(guān)系的完整性1、實(shí)體完整性規(guī)則*實(shí)體完整性規(guī)則要求關(guān)系中主碼的屬性具有唯一性且不能取空值*。例如學(xué)生表中的學(xué)號(hào)屬性既具有唯一性又不能為空。選修關(guān)系的主碼為學(xué)號(hào)和課程號(hào)既具有唯一性又不允許為空。3.2關(guān)系的完整性2、參照完整性規(guī)則*
設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,如果F與基本關(guān)系S的主碼K相對(duì)應(yīng),則稱F是基本關(guān)系R的外碼(Foreignkey),并稱基本關(guān)系R為參照關(guān)系,基本關(guān)系S為被參照關(guān)系或目標(biāo)關(guān)系。如,班級(jí)關(guān)系(班級(jí),班主任)中班級(jí)為主碼。學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,班級(jí))中班級(jí)為外碼。參照完整性是用來(lái)定義外碼與主碼之間引用規(guī)則的。3.2關(guān)系的完整性參照完整性規(guī)則**:若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼K相對(duì)應(yīng)(基本關(guān)系R和S可能是相同的關(guān)系),則對(duì)于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值);或者等于S中某個(gè)元組的主碼值*
。3.2關(guān)系的完整性【例】學(xué)生實(shí)體和專業(yè)實(shí)體可以用下面的關(guān)系表示,其中主碼用下劃線標(biāo)識(shí)。學(xué)生(學(xué)號(hào),姓名,性別,年齡,系號(hào))系(系號(hào),系名,系主任)“系號(hào)”屬性是學(xué)生關(guān)系的外碼,是系關(guān)系的主碼。系關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系。所以,學(xué)生關(guān)系中的每個(gè)元組的“系號(hào)”屬性只能取下面兩類值:空值或系關(guān)系中已經(jīng)存在的值。學(xué)生表:學(xué)號(hào)姓名性別年齡2022002張三男202022025李四女212023023劉明男182023033王曉女19課程號(hào)課程名學(xué)分A002數(shù)據(jù)庫(kù)4B025英語(yǔ)5A005網(wǎng)絡(luò)3B028VB3課程表:學(xué)號(hào)課程號(hào)成績(jī)2022002A002782022002B025882022002A005932022025A002902022025B025782022025A005772022025B028882023033A002872023033B025832023023A005792023023B028922023023B02589選修表:3.2關(guān)系的完整性分析參照完整性:3.2關(guān)系的完整性3、用戶定義的完整性規(guī)則用戶定義的完整性規(guī)則由用戶根據(jù)實(shí)際情況對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的內(nèi)容進(jìn)行的規(guī)定,也稱為域完整性規(guī)則*
。通過(guò)這些規(guī)則限制數(shù)據(jù)庫(kù)只接受符合完整性約束條件的數(shù)據(jù)值,不接受違反約束條件的數(shù)據(jù),從而保證數(shù)據(jù)庫(kù)的中數(shù)據(jù)的有效性和可靠性。例如,學(xué)生表中的性別數(shù)據(jù)只能是男和女,選課表中的成績(jī)數(shù)據(jù)為0到100之間,等等。第3章關(guān)系數(shù)據(jù)庫(kù)3.3關(guān)系運(yùn)算關(guān)系代數(shù)是以關(guān)系為運(yùn)算對(duì)象的一組高級(jí)運(yùn)算的集合;關(guān)系代數(shù)是一種抽象的查詢語(yǔ)言,是關(guān)系數(shù)據(jù)操縱語(yǔ)言的一種傳統(tǒng)表達(dá)方式。(數(shù)學(xué)方式的查詢過(guò)程)
注意:關(guān)系代數(shù)的運(yùn)算對(duì)象是關(guān)系,運(yùn)算結(jié)果也是關(guān)系。3.3關(guān)系運(yùn)算關(guān)系代數(shù)中的操作可以分為兩類:
傳統(tǒng)的集合操作:并、差、交、笛卡兒積。專門(mén)的關(guān)系操作*:投影、選擇、連接、除法等。在兩類集合運(yùn)算中,除運(yùn)算本身的運(yùn)算符外(如并運(yùn)算為∪
),還將用到兩類輔助操作符:
(1)比較運(yùn)算符:>、≥、<、≤、=、≠。
(2)邏輯運(yùn)算符:∨(或)、∧(與)、┐(非)。3.3關(guān)系運(yùn)算3.3.1傳統(tǒng)的集合運(yùn)算1、笛卡兒積*設(shè)關(guān)系R和S的元數(shù)(屬性個(gè)數(shù))分別為r和s,定義R和S的笛卡兒積是一個(gè)(r+s)元的元組集合,每個(gè)元組的前r個(gè)分量(屬性值)來(lái)自R的一個(gè)元組,后s個(gè)分量來(lái)自S的一個(gè)元組,記為R×S。若R有m個(gè)元組,S有n個(gè)元組,則R×S有m×n個(gè)元組。3.3關(guān)系運(yùn)算已知關(guān)系R和關(guān)系S,如下圖:ABCa1b2c1a2b1c3a3b3c2
關(guān)系REFDe1f2d2e2f3d1e3f1d3關(guān)系S
3.3關(guān)系運(yùn)算R×SABCEFDa1b2c1e1f2d2a1b2c1e2F3d1a1b2c2e3f1d3a2b1c3e1f2d2a2b1c3e2F3d1a2b1c3e3f1d3a3b3c2e1f2d2a3b3c2e2F3d1a3b3c2e3f1d33.3關(guān)系運(yùn)算2、并(Union)
設(shè)關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的并是由屬于R或?qū)儆赟的元組構(gòu)成的集合,記為R∪S。形式定義如下:
R∪S={t|t∈R∨t∈S},其含義為:任取元組t,當(dāng)且僅當(dāng)t屬于R或t屬于S時(shí),t屬于R∪S。R∪S是一個(gè)n元關(guān)系。3.3關(guān)系運(yùn)算我們可以把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的并為?abc123789101112R∪SR
Sabc123456789abc123456789101112注意:并運(yùn)算會(huì)取消某些元組(避免重復(fù)行)。3.3關(guān)系運(yùn)算3、差(Difference)
關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的差是由屬于R但不屬于S是元組構(gòu)成的集合,記為R-S。形式定義如下:
R-S={t|t∈R∧t∈S}其含義為:當(dāng)且僅當(dāng)t屬于R并且不屬于S時(shí),t屬于R-S。R-S也是一個(gè)n元關(guān)系。3.3關(guān)系運(yùn)算同樣把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的差為?
R-Sabc456abc123789101112R
Sabc1234567893.3關(guān)系運(yùn)算4、交(Intersection)關(guān)系R和S具有相同的關(guān)系模式,R和S是n元關(guān)系,R和S的交是由屬于R且屬于S是元組構(gòu)成的集合,記為R∩S。形式定義如下:
R∩S={t|t∈R∧t∈S}其含義為:任取元組t,當(dāng)且僅當(dāng)t既屬于R又屬于S時(shí),t屬于R∩S。R∩S也是一個(gè)n元關(guān)系。3.3關(guān)系運(yùn)算還是把關(guān)系R想象成足球愛(ài)好者表和把S想象成籃球愛(ài)好者表,那么R和S的交為?
R∩Sabc123789abc123789101112R
Sabc1234567893.3關(guān)系運(yùn)算3.3.2專門(mén)的關(guān)系運(yùn)算*專門(mén)的關(guān)系運(yùn)算包括選擇、投影、連接、除等。1、選擇(Selection)選擇運(yùn)算是在關(guān)系R中選擇滿足給定條件的諸元組,記作σF(R)={t|t∈R^F(t)='真'}3.3關(guān)系運(yùn)算設(shè)有一個(gè)學(xué)生-課程數(shù)據(jù)庫(kù),包括學(xué)生關(guān)系student、課程關(guān)系course和成績(jī)表score。
學(xué)生情況表(student)學(xué)號(hào)(no)姓名(name)性別(sex)年齡(age)所在系(dep)2022001張超男18物理系2022002李嵐女17信息系2022003王芳女19數(shù)學(xué)系2022004劉娟女18信息系2022005趙強(qiáng)男19物理系3.3關(guān)系運(yùn)算
課程表(course)課程號(hào)(cno)課程名(cname)學(xué)分(credit)1數(shù)據(jù)庫(kù)42高等數(shù)學(xué)33信息系統(tǒng)24操作系統(tǒng)35數(shù)據(jù)結(jié)構(gòu)56C程序設(shè)計(jì)33.3關(guān)系運(yùn)算
成績(jī)表(score)學(xué)號(hào)(no)課程號(hào)(cno)成績(jī)(grade)20220012782022001388202200158120220021902022002468202200347020220035572022003189202200529320220055793.3關(guān)系運(yùn)算例:查詢數(shù)學(xué)系學(xué)生的信息。σdep=‘?dāng)?shù)學(xué)系’
(student)或σ5=‘?dāng)?shù)學(xué)系’
(student)查詢數(shù)學(xué)系學(xué)生的信息,結(jié)果:學(xué)號(hào)(no)姓名(nam)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學(xué)系3.3關(guān)系運(yùn)算例:查詢年齡大于17的女同學(xué)的信息。σ
age>17∧sex=’女’
(student)
或
σ4>17∧3=’女’(student)
查詢結(jié)果表學(xué)號(hào)(no)姓名(name)性別(sex)年齡(age)所在系(dep)2022003王芳女19數(shù)學(xué)系2022004劉娟女18信息系3.3關(guān)系運(yùn)算2、投影(Projection)
關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作πA(R)={t[A]|t∈R}其中,A為R中的屬性列。投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因?yàn)槿∠四承傩粤泻?,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。3.3關(guān)系運(yùn)算例:查詢學(xué)生的學(xué)號(hào)和姓名。πno,name(student)或π1,2(student)結(jié)果表如表所示。查詢學(xué)生的學(xué)號(hào)和姓名學(xué)號(hào)(no)姓名(name)2022001張超2022002李嵐2022003
王芳2022004劉娟2022005趙強(qiáng)3.3關(guān)系運(yùn)算課程名(cname)課程號(hào)(cno)數(shù)據(jù)庫(kù)1高等數(shù)學(xué)2信息系統(tǒng)3操作系統(tǒng)4數(shù)據(jù)結(jié)構(gòu)5C程序設(shè)計(jì)6例:查詢課程表中的課程名和課程號(hào)。πcname,cno(course)或π2,1(course)
查詢課程名和課程號(hào)3.3關(guān)系運(yùn)算3、連接(Join)(1)連接運(yùn)算的含義:連接也稱θ連接,是從兩個(gè)關(guān)系的笛卡爾積中選取滿足某規(guī)定條件的全體元組,形成一個(gè)新的關(guān)系,記為:3.3關(guān)系運(yùn)算例題:已知關(guān)系R和關(guān)系S如下表所示:ABCa16c1a27c2a19c2a312c3EDC5e2b27e1b110e3b36e2b2
RS求:B<E3.3關(guān)系運(yùn)算連接結(jié)果表B<EABR.CEDS.Ca16c17e1c1a16c110e3c3a27c210e3c3a19c210e3c33.3關(guān)系運(yùn)算(3)兩類常用連接運(yùn)算①等值連接(equi-join)θ為“=”的連接運(yùn)算稱為等值連接,它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。等值連接為:A=BRS={trts|tr
R∧ts
S∧tr[A]=ts[B]}3.3關(guān)系運(yùn)算②自然連接(Naturaljoin)若A、B是相同的屬性組,就可以在結(jié)果中把重復(fù)的屬性去掉。這種去掉了重復(fù)屬性的等值連接稱為自然連接。自然連接可記作:RS={trts|tr
R∧ts
S∧tr[B]=ts[B]}3.3關(guān)系運(yùn)算例題:已知關(guān)系R和關(guān)系S如下表所示:
RSABCa16c1a27c2a19c2a312c3EDC5e2b27e1b110e3b36e2b23.3關(guān)系運(yùn)算求:
R.C=S.CR.B=R.E3.3關(guān)系運(yùn)算R.B=S.E,等值連接結(jié)果表ABR.CEDS.Ca16c16e2c2a27c27e1c13.3關(guān)系運(yùn)算R.C=S.C等值連接結(jié)果自然連接結(jié)果表ABCEDa16c17e1a27c25e2a27c26e2a19c25e2a19c26e2a312c310e3ABR.CEDS.Ca16c17e1c1a27c25e2c2a27c26e2c2a19c25e2c2a19c26e2c2a312c310e3c33.3關(guān)系運(yùn)算根據(jù)學(xué)生-課程數(shù)據(jù)庫(kù)的三個(gè)表:求:
(1)student∞score(2)course∞score(3)student∞score∞course
3.3關(guān)系運(yùn)算student∞score∞course
學(xué)號(hào)姓名性別年齡所在系課程號(hào)課程名學(xué)分成績(jī)2022001張超男18物理系2高等數(shù)學(xué)3782022001張超男18物理系3信息系統(tǒng)2882022001張超男18物理系5數(shù)據(jù)結(jié)構(gòu)3812022002李嵐女17信息系1數(shù)據(jù)庫(kù)4902022002李嵐女17信息系4操作系統(tǒng)5682022003王芳女19數(shù)學(xué)系4操作系統(tǒng)5702022003王芳女19數(shù)學(xué)系5數(shù)據(jù)結(jié)構(gòu)3572022003王芳女19數(shù)學(xué)系1數(shù)據(jù)庫(kù)4892022005趙強(qiáng)男19物理系2高等數(shù)學(xué)3932022005趙強(qiáng)男19物理系5數(shù)據(jù)結(jié)構(gòu)3793.3關(guān)系運(yùn)算4.關(guān)系代數(shù)操作表達(dá)式舉例*設(shè)教學(xué)數(shù)據(jù)庫(kù)中有三個(gè)關(guān)系,學(xué)生關(guān)系:S(SNO,SN,AGE,SEX)、學(xué)習(xí)關(guān)系:SC(SNO,CNO,SCORE)、課程關(guān)系:C(CNO,CN,TEACHER)(1)檢索學(xué)習(xí)課程號(hào)為C3的學(xué)生學(xué)號(hào)和成績(jī)∏SNO,SCORE(σCNO=’C3’(SC))(2)檢索學(xué)習(xí)課程號(hào)為C4的學(xué)生學(xué)號(hào)和姓名∏SNO,SN(σCNO=’C4’(S∞SC))3.3關(guān)系運(yùn)算(3)檢索學(xué)習(xí)課程名為MATHS的學(xué)生學(xué)號(hào)和姓名∏
SNO,SN(σCN=’MATHS’(S∞SC∞C))(4)檢索學(xué)習(xí)課程號(hào)為C1或C3的學(xué)生學(xué)號(hào)∏
SNO(σCNO=’C1’VCNO=’C3’(SC))(5)檢索不學(xué)習(xí)課程號(hào)為C2的學(xué)生的姓名和年齡∏SN,AGE(S)-∏SN,AGE(σCNO=’C2’(S∞SC))3.4.1數(shù)據(jù)依賴數(shù)據(jù)依賴共有三種:函數(shù)依賴(FunctionalDependency,簡(jiǎn)稱FD)、多值依賴(MultivaluedDependency,簡(jiǎn)稱MVD)和連接依賴(JoinDependency,簡(jiǎn)稱JD),其中最重要的是函數(shù)依賴。3.4關(guān)系的規(guī)范化1.函數(shù)依賴的定義所謂函數(shù)依賴是指在關(guān)系R中,X、Y為R的兩個(gè)屬性或?qū)傩越M,如果關(guān)系R存在:對(duì)于X的每一個(gè)具體值,Y都只有一個(gè)具體值與之對(duì)應(yīng),則稱屬性Y函數(shù)依賴于屬性X。記作X→Y。3.4關(guān)系的規(guī)范化函數(shù)依賴簡(jiǎn)單表述:如果屬性X的值決定屬性Y的值,那么屬性Y函數(shù)依賴于屬性X?;蛘?,如果知道X的值,就可以獲得Y的值。所以X→Y可以叫做Y函數(shù)依賴于X,也可以叫做X函數(shù)決定Y,或X決定Y。3.4關(guān)系的規(guī)范化例
學(xué)生情況表學(xué)號(hào)姓名專業(yè)名性別出生日期總學(xué)分20151101王林計(jì)算機(jī)男1996-02-105020151102程明計(jì)算機(jī)男1997-02-015020151103王燕計(jì)算機(jī)女1995-10-065020151104韋嚴(yán)平網(wǎng)絡(luò)男1997-08-265020151106李方方網(wǎng)絡(luò)女1996-11-20503.4關(guān)系的規(guī)范化學(xué)生情況表對(duì)應(yīng)的關(guān)系模式可描述為:學(xué)生情況(學(xué)號(hào),姓名,性別,出生日期,總學(xué)分)其中,學(xué)號(hào)為主鍵,則存在如下的函數(shù)依賴關(guān)系:學(xué)號(hào)→姓名;學(xué)號(hào)→專業(yè)名;學(xué)號(hào)→性別;學(xué)號(hào)→出生日期;學(xué)號(hào)→總學(xué)分3.4關(guān)系的規(guī)范化2、幾種特定的函數(shù)依賴*(1)非平凡函數(shù)依賴和平凡函數(shù)依賴設(shè)關(guān)系模式R(U),X、Y?U;如果X→Y,且Y?X,則稱X→Y為平凡的函數(shù)依賴。如果X→Y,且Y不是X的子集,則稱X→Y為非平凡的函數(shù)依賴。3.4關(guān)系的規(guī)范化例:在學(xué)生課程關(guān)系(學(xué)生號(hào),課程號(hào),成績(jī))中,若存在函數(shù)依賴:(1)(學(xué)生號(hào),課程號(hào))→成績(jī);(2)(學(xué)生號(hào),課程號(hào))→課程號(hào);(1)為非平凡函數(shù)依賴(2)為平凡函數(shù)依賴3.4關(guān)系的規(guī)范化(2)完全函數(shù)依賴和部分函數(shù)依賴**定義:設(shè)關(guān)系模式R(U),X,Y?U;如果X→Y,并且對(duì)于X的任何一個(gè)真子集Z,Z→Y都不成立,則稱Y完全函數(shù)依賴于X。若X→Y,但對(duì)于X的某一個(gè)真子集Z,有Z→Y成立,則稱Y部分函數(shù)依賴于X。3.4關(guān)系的規(guī)范化例:在學(xué)生課程關(guān)系(學(xué)號(hào),課程號(hào),成績(jī))中,主碼為(學(xué)號(hào),課程號(hào))。因?yàn)閷W(xué)號(hào)→成績(jī)不成立,課程號(hào)→成績(jī)也不成立,所以(學(xué)號(hào),課程號(hào))→成績(jī)?yōu)橥耆瘮?shù)依賴。又例:在選課關(guān)系(學(xué)號(hào),課程號(hào),姓名,成績(jī))中,(學(xué)號(hào),課程號(hào))是主碼。由于:學(xué)號(hào)→姓名成立,因此:姓名部分函數(shù)依賴于(學(xué)號(hào),課程號(hào))。3.4關(guān)系的規(guī)范化(3)傳遞函數(shù)依賴**設(shè)關(guān)系模式R(U),X?U,Y?U,Z?U。如果X→Y,Y→Z成立,則稱X→Z為傳遞函數(shù)依賴。
例如:學(xué)生關(guān)系(學(xué)號(hào),姓名,性別,年齡,所在系,系主任),其上的函數(shù)依賴集F={學(xué)號(hào)→姓名,學(xué)號(hào)→性別,學(xué)號(hào)→年齡,學(xué)號(hào)→所在系,所在系→系主任},則學(xué)號(hào)→系主任為傳遞函數(shù)依賴。3.4關(guān)系的規(guī)范化3、碼的函數(shù)依賴表示函數(shù)依賴的概念給出關(guān)系模式中碼的更嚴(yán)格定義:候選碼:設(shè)K為關(guān)系模式R(U)中的屬性或?qū)傩约?。若K→U,則K稱為R的一個(gè)候選碼。若關(guān)系模式R有多個(gè)候選碼,則選定其中一個(gè)作為主碼。3.4關(guān)系的規(guī)范化3.4.2關(guān)系的規(guī)范化目的設(shè)有一描述學(xué)校的數(shù)據(jù)庫(kù):含有這樣一個(gè)關(guān)系模式:學(xué)生信息表(學(xué)號(hào),姓名,年齡,系別,系主任,課程號(hào),成績(jī)),(學(xué)號(hào),課程號(hào))為主鍵。其中,一個(gè)系有若干學(xué)生,一個(gè)學(xué)生只屬于一個(gè)系;一個(gè)系只有一名主任;一個(gè)學(xué)生可以選修多門(mén)課程,每門(mén)課程有若干學(xué)生選修;每個(gè)學(xué)生所學(xué)的每門(mén)課程都有一個(gè)成績(jī)。(表3-29)3.4關(guān)系的規(guī)范化關(guān)系模式學(xué)生信息表中存在如下問(wèn)題*:①數(shù)據(jù)冗余(浪費(fèi)大量的存儲(chǔ)空間)。例:每一個(gè)系主任的姓名重復(fù)出現(xiàn)很多次②更新異常(數(shù)據(jù)冗余,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大) 例:某系更換系主任后,系統(tǒng)必須修改與該系學(xué)生有關(guān)的每一個(gè)元組3.4關(guān)系的規(guī)范化③插入異常(該插的數(shù)據(jù)插不進(jìn)去)例:如果一個(gè)系剛成立,尚無(wú)學(xué)生,我們就無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。④刪除異常(不該刪除的數(shù)據(jù)不得不刪)例:如果某個(gè)系的學(xué)生全部畢業(yè)了,我們?cè)趧h除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也刪掉了。3.4關(guān)系的規(guī)范化以上問(wèn)題產(chǎn)生的原因:由存在于模式中的某些不合適的數(shù)據(jù)依賴引起的。解決方法:*通過(guò)分解關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴。關(guān)系模式規(guī)范化的目的是解決關(guān)系模式中存在的數(shù)據(jù)冗余、插入和刪除異常以及更新異常等問(wèn)題?;舅枷耄合龜?shù)據(jù)依賴中的不合適部分,即模式分解。3.4關(guān)系的規(guī)范化關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的規(guī)范化要求,對(duì)于不同的規(guī)范化程度可用范式來(lái)衡量。范式(NormalForm)是符合某一種級(jí)別的關(guān)系模式的集合,是衡量關(guān)系模式規(guī)范化程度的標(biāo)準(zhǔn),達(dá)到的關(guān)系才是規(guī)范化的。目前主要有6種范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。3.4關(guān)系的規(guī)范化
滿足最低要求的叫第一范式,簡(jiǎn)稱為1NF。在第一范式基礎(chǔ)上進(jìn)一步滿足一些要求的為第二范式,簡(jiǎn)稱為2NF。其余以此類推。范式之間存在聯(lián)系:1NF?2NF?3NF?BCNF?4NF?5NF。通常把某一關(guān)系模式R為第n范式簡(jiǎn)記為R∈nNF。在這些范式中,最重要的是3NF和BCNF,它們是進(jìn)行規(guī)范化的主要目標(biāo)。3.4關(guān)系的規(guī)范化3.2.3關(guān)系的規(guī)范化過(guò)程*
一個(gè)低一級(jí)范式的關(guān)系模式,通過(guò)模式分解可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集合,這個(gè)過(guò)程稱為規(guī)范化。*
通常實(shí)際應(yīng)用中,規(guī)范化到3NF就可以了。3.4關(guān)系的規(guī)范化1、第一范式(1NF)定義:設(shè)R是一個(gè)關(guān)系模式。如果R的每個(gè)屬性的值域都是不可分的簡(jiǎn)單數(shù)據(jù)項(xiàng)(原子)的集合,則稱這個(gè)關(guān)系模式屬于第一范式,簡(jiǎn)記作R∈1NF。簡(jiǎn)單表述:如果關(guān)系模式R的每一個(gè)屬性都是不可分解的,則R∈1NF。1NF是規(guī)范化最低的范式,在任何一個(gè)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,關(guān)系至少應(yīng)該是第一范式。不滿足第一范式的數(shù)據(jù)庫(kù)模式不能稱為關(guān)系數(shù)據(jù)庫(kù)。3.4關(guān)系的規(guī)范化例如:職工情況表
職工號(hào)姓名工資基本工資職務(wù)工資工齡工資20011李嵐32901200143020012王曉江30001300124020013張華3800150016203.4關(guān)系的規(guī)范化可規(guī)范為:職工情況表職工號(hào)姓名基本工資職務(wù)工資工齡工資20011李嵐329080043020012王曉江300080034020013張華3800150016203.4關(guān)系的規(guī)范化2、第二范式**定義:如果關(guān)系模式R是第一范式,且每個(gè)非主屬性都完全函數(shù)依賴于碼,則稱R為滿足第二范式的模式,記為:R∈2NF。
在一個(gè)關(guān)系中,包含在任何候選碼中的各個(gè)屬性都稱為主屬性;不包含在任何候選碼中的屬性稱為非主屬性。3.4關(guān)系的規(guī)范化(1)主關(guān)鍵字只有一個(gè)屬性的關(guān)系一定是第二范式。例如:關(guān)系R(學(xué)號(hào),姓名,出生日期,成績(jī))主屬性為學(xué)號(hào);非主屬性為姓名、出生日期、成績(jī)。存在下列函數(shù)依賴關(guān)系:學(xué)號(hào)→姓名,學(xué)號(hào)→性別,學(xué)號(hào)→出生日期,學(xué)號(hào)→成績(jī)由于每個(gè)非主屬性都完全函數(shù)依賴于碼,所以該關(guān)系R∈2NF。3.4關(guān)系的規(guī)范化(2)主關(guān)鍵字是屬性的組合,這樣的關(guān)系模式可能不是第二范式。例如:關(guān)系S(學(xué)號(hào),姓名,性別,課程,學(xué)分)其中學(xué)號(hào)和課程為主屬性;姓名、性別、學(xué)分為非主屬性。存在下列函數(shù)依賴關(guān)系:學(xué)號(hào)→姓名,學(xué)號(hào)→性別,(課程、學(xué)號(hào))→學(xué)分3.4關(guān)系的規(guī)范化存在非主屬性部分函數(shù)依賴于碼,故關(guān)系S不屬于2NF。根據(jù)最小函數(shù)依賴的情況,對(duì)上述關(guān)系模式進(jìn)行分解,分解為兩個(gè)關(guān)系:S1(學(xué)號(hào),姓名,性別)S2(學(xué)號(hào),課程,學(xué)分)S1∈2NF;S2∈2NF。3.4關(guān)系的規(guī)范化又例如:職工信息(職工號(hào),姓名,職稱,項(xiàng)目號(hào),項(xiàng)目名稱,項(xiàng)目排名)其中,主碼為(職工號(hào),項(xiàng)目號(hào)),非主屬性為(姓名,職稱,項(xiàng)目名稱,項(xiàng)目排名)職工信息關(guān)系中存在的函數(shù)依賴:職工號(hào)→姓名;職工號(hào)→職稱;項(xiàng)目號(hào)→項(xiàng)目名稱;(職工號(hào),項(xiàng)目號(hào))→項(xiàng)目排名。3.4關(guān)系的規(guī)范化根據(jù)最小函數(shù)依賴,上述關(guān)系模式分解為三個(gè)關(guān)系:職工信息表(職工號(hào),姓名,職稱)項(xiàng)目表(項(xiàng)目號(hào),項(xiàng)目名稱)項(xiàng)目排名表(職工號(hào),項(xiàng)目號(hào),項(xiàng)目排名)3.4關(guān)系的規(guī)范化3、第三范式**定義:如果關(guān)系模式R是第二范式,且沒(méi)有一個(gè)非主屬性是傳遞函數(shù)依賴于碼,則稱R為滿足第三范式的模式,記為:R∈3NF。3.4關(guān)系的規(guī)范化
例:有關(guān)系模式,學(xué)生(學(xué)號(hào),姓名,系名,系主任)存在的函數(shù)依賴是學(xué)號(hào)→系名,學(xué)號(hào)→姓名,系名→系主任。所以系主任傳遞函數(shù)依賴于學(xué)號(hào)。分解:(1)學(xué)生(學(xué)號(hào),姓名,系名)(2)系(系名,系主任)3.4關(guān)系的規(guī)范化
又例:關(guān)系ST(學(xué)號(hào),樓號(hào),收費(fèi));其中包含的函數(shù)依賴有:學(xué)號(hào)→樓號(hào)樓號(hào)→收費(fèi)則存在傳遞函數(shù)依賴:學(xué)號(hào)→收費(fèi)分解為兩個(gè)關(guān)系:
st1(學(xué)號(hào),樓號(hào))
st2(樓號(hào),收費(fèi))3.4關(guān)系的規(guī)范化推論1:如果關(guān)系模式R∈1NF,且它的每一個(gè)非主屬性既不部分依賴、也不傳遞依賴于碼,則R∈3NF。推論2:不存在非主屬性的關(guān)系模式一定為3NF。3.4關(guān)系的規(guī)范化關(guān)系模式規(guī)范化的基本步驟總結(jié):*(1)對(duì)1NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的部分函數(shù)依賴,從而產(chǎn)生若干個(gè)2NF的關(guān)系;(2)對(duì)2NF關(guān)系進(jìn)行投影,消除原關(guān)系中非主屬性對(duì)碼的傳遞函數(shù)依賴,從而產(chǎn)生若干個(gè)3NF的關(guān)系;(3)對(duì)3NF關(guān)系進(jìn)行投影,消除原關(guān)系中主屬性對(duì)碼的部分函數(shù)依賴和傳遞函數(shù)依賴(也就是說(shuō),使決定屬性都成為投影的候選碼),得到一組BCNF的關(guān)系。3.4關(guān)系的規(guī)范化例:有一個(gè)學(xué)生關(guān)系,學(xué)生(學(xué)號(hào),姓名,系名,系主任,課程號(hào),課程名,成績(jī))(3)分析是否滿足第三范式,否則分解為第三范式。
規(guī)范化到第三范式。步驟:(1)分析此關(guān)系模式是否滿足第一范式,否則分解為第一范式。(2)分析是否滿足第二范式,否則分解為第二范式。3.4關(guān)系的規(guī)范化(1)此關(guān)系模式滿足第一范式,因?yàn)槠渌袑傩远疾豢稍俜?。?)不滿足第二范式,因?yàn)榇嬖诜侵鲗傩浴靶彰睂?duì)主碼“學(xué)號(hào)+課程”的非完全函數(shù)依賴:學(xué)號(hào)姓名。分解為2NF,得到3個(gè)關(guān)系:學(xué)生(學(xué)號(hào),姓名,系名,系主任)課程(課程號(hào),課程名)成績(jī)(學(xué)號(hào),課程號(hào),成績(jī))3.4關(guān)系的規(guī)范化(3)分解后的學(xué)生關(guān)系不滿足第三范式,因?yàn)榇嬖诜侵鲗傩浴跋抵魅巍?/p>
對(duì)主碼“學(xué)號(hào)”的傳遞函數(shù)依賴:學(xué)號(hào)系名,系名系主任。學(xué)生關(guān)系分解為兩個(gè)關(guān)系達(dá)到3NF:學(xué)生(學(xué)號(hào),姓名,系名)和系(系名,系主任)最終得到4個(gè)關(guān)系,即學(xué)生、系、課程和成績(jī)。3.4關(guān)系的規(guī)范化
關(guān)系規(guī)范化的作用:減少了冗余數(shù)據(jù),節(jié)省了空間,避免了不合理的插入、刪除、修改等操作,保持了數(shù)據(jù)的一致性。缺點(diǎn):信息放在不同表中,查詢數(shù)據(jù)時(shí)有時(shí)需要把多個(gè)表連接在一起,增加了操作的難度,降低了操作效率。3.4關(guān)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房源核查方案(3篇)
- 財(cái)務(wù)規(guī)劃制作方案(3篇)
- 人防門(mén)裝修方案(3篇)
- 醫(yī)療服務(wù)準(zhǔn)入管理制度
- 學(xué)校物資調(diào)配管理制度
- 合營(yíng)公司財(cái)務(wù)管理制度
- 醫(yī)療安全應(yīng)急管理制度
- 養(yǎng)生調(diào)理中心管理制度
- 醫(yī)療配套基建方案(3篇)
- DB62T 4363-2021 沙蓬栽培技術(shù)規(guī)程
- 運(yùn)維服務(wù)保密協(xié)議書(shū)
- 《學(xué)前兒童語(yǔ)言教育》課件-第2章 學(xué)前兒童語(yǔ)言的獲得與發(fā)展
- 中原鄉(xiāng)鎮(zhèn)櫻桃溝鄉(xiāng)村振興景觀概念性規(guī)劃方案【鄉(xiāng)村文旅】【鄉(xiāng)村振興】【鄉(xiāng)村景觀規(guī)劃】
- 【9化 二模】河北邢臺(tái)邯鄲2025年5月中考二模九年級(jí)化學(xué)試卷
- 2025-2030年中國(guó)夜視攝像機(jī)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025年中考英語(yǔ)高頻核心詞匯背記手冊(cè)
- 危大工程巡視檢查記錄表 (樣表)附危大工程安全監(jiān)管及檢查要點(diǎn)
- 外墻鋁板工程協(xié)議書(shū)
- 四川省2025屆高三第二次聯(lián)合測(cè)評(píng)-生物試卷+答案
- 2024年江蘇省淮安市中考英語(yǔ)真題(原卷版)
- 廣東省廣州市黃埔區(qū)2021-2022學(xué)年七年級(jí)下學(xué)期期末英語(yǔ)試題(含答案)
評(píng)論
0/150
提交評(píng)論