數(shù)據(jù)庫系統(tǒng)課件匯總整本書電子教案全套課件完整版ppt最新教學(xué)教程最全課件_第1頁
數(shù)據(jù)庫系統(tǒng)課件匯總整本書電子教案全套課件完整版ppt最新教學(xué)教程最全課件_第2頁
數(shù)據(jù)庫系統(tǒng)課件匯總整本書電子教案全套課件完整版ppt最新教學(xué)教程最全課件_第3頁
數(shù)據(jù)庫系統(tǒng)課件匯總整本書電子教案全套課件完整版ppt最新教學(xué)教程最全課件_第4頁
數(shù)據(jù)庫系統(tǒng)課件匯總整本書電子教案全套課件完整版ppt最新教學(xué)教程最全課件_第5頁
已閱讀5頁,還剩762頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1.1 數(shù)據(jù)庫系統(tǒng)概述 訂票存取款股票超市日常辦公數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)已成為人們提高工作效率和管理水平的重要手段,已成為企業(yè)提高競爭力有力武器。那么,什么是數(shù)據(jù)庫系統(tǒng)?它是如何構(gòu)成如何工作的呢?我們怎樣才能成功開發(fā)出一個高性能的數(shù)據(jù)庫系統(tǒng)呢? 數(shù)據(jù)庫系統(tǒng)涉及的相關(guān)概念(1)數(shù)據(jù)(DATA)如: “姓名“,12各(2)數(shù)據(jù)庫(DATABASE 簡稱DB) 如:xskc.mdb(ACCESS)(3)數(shù)據(jù)庫管理系統(tǒng)( DataBase Management System 簡稱DBMS) 如: MYSQL可以控制管理數(shù)據(jù)庫(4)數(shù)據(jù)庫管理員( Database Administrator DBA) (

2、5)數(shù)據(jù)庫系統(tǒng)( DataBase System 簡稱DBS) 數(shù)據(jù)庫系統(tǒng)( DataBase System 簡稱DBS) 它是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體,一般由數(shù)據(jù)庫、硬件、軟件、數(shù)據(jù)庫管理員四部分構(gòu)成。 1數(shù)據(jù)庫(DataBase,簡稱為DB) 數(shù)據(jù)庫是與一個特定組織的各項(xiàng)應(yīng)用相關(guān)的全部數(shù)據(jù)的匯集。通常由兩大部分組成: (1)有關(guān)應(yīng)用所需要的工作數(shù)據(jù)的集合,稱為物理數(shù)據(jù)庫,它是數(shù)據(jù)庫的主體; (2)關(guān)于各級數(shù)據(jù)結(jié)構(gòu)的描述,稱為描述數(shù)據(jù)庫,通常是由一個數(shù)據(jù)字典系統(tǒng)管理。 數(shù)據(jù)庫構(gòu)建主要是通過綜合各個用戶的文件,除去不必要的冗余,使之相互聯(lián)系形成的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)取決于數(shù)據(jù)庫

3、的類型。2硬件支持系統(tǒng) 硬件是數(shù)據(jù)庫賴以存在的物理設(shè)備,包括CPU,內(nèi)存,外存,數(shù)據(jù)通道等各種存儲、處理和傳輸數(shù)據(jù)的設(shè)備。3軟件支持系統(tǒng) 主要包括操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、各種宿主語言和支持開發(fā)的實(shí)用程序等。 WINDOWS,UNIX / 操作系統(tǒng) ACCESS,ORACLE /數(shù)據(jù)庫管理系統(tǒng) C+,VB,ASP等等 /宿主語言 XXX工資管理系統(tǒng) /應(yīng)用程序4數(shù)據(jù)庫管理員(Database Administrator,簡記為DBA) 管理、開發(fā)和使用數(shù)據(jù)庫系統(tǒng)的人員主要有系統(tǒng)分析員、數(shù)據(jù)庫管理員(DBA)、應(yīng)用程序員和用戶。 應(yīng)用系統(tǒng)(超市管理系統(tǒng))應(yīng)用開發(fā)工具軟件(C+)數(shù)據(jù)庫管理系統(tǒng)(M

4、ySQL)操作系統(tǒng)(WINDOWS)硬件/數(shù)據(jù)庫數(shù)據(jù)庫用戶5。數(shù)據(jù)庫系統(tǒng)層次結(jié)構(gòu)圖1.2 數(shù)據(jù)庫管理系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(DBMS)是數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)進(jìn)行管理的軟件,是數(shù)據(jù)庫系統(tǒng)的核心組成部分。對數(shù)據(jù)庫的一切操作,包括定義、查詢、更新及各種控制等都是通過DBMS進(jìn)行的。DBMS是用戶與數(shù)據(jù)庫的接口。1.數(shù)據(jù)庫的定義功能 DBMS提供數(shù)據(jù)定義語言(Data Definition Language,簡稱DDL)定義數(shù)據(jù)庫的結(jié)構(gòu),包括外模式、內(nèi)模式及其相互之間的映像,定義數(shù)據(jù)的完整性約束、保密限制等約束條件。定義工作是由DBA完成的。 一.DBMS的主要功能 2.數(shù)據(jù)庫操縱功能 DBMS提供數(shù)據(jù)操

5、縱語言(Data Manipulation Language,簡稱DML)實(shí)現(xiàn)對數(shù)據(jù)庫的操作?;镜臄?shù)據(jù)操作有四種:檢索、插入、刪除和修改。 DBMS的主要功能 3.數(shù)據(jù)庫運(yùn)行控制功能 DBMS對數(shù)據(jù)庫的控制主要通過四個方面實(shí)現(xiàn):數(shù)據(jù)安全性控制、數(shù)據(jù)完整性控制、多用戶環(huán)境下的并發(fā)控制和數(shù)據(jù)庫的恢復(fù)。 DBMS的主要功能 3.數(shù)據(jù)庫運(yùn)行控制功能 (1)數(shù)據(jù)安全性控制 數(shù)據(jù)庫安全性的控制是對數(shù)據(jù)庫的一種保護(hù)。它的作用是防止未經(jīng)授權(quán)的用戶蓄意或無意地修改數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)泄露,更改或破壞,使企業(yè)蒙受巨大的損失。 DBMS的主要功能 3.數(shù)據(jù)庫運(yùn)行控制功能 (2)數(shù)據(jù)完整性控制 數(shù)據(jù)完整性控制是

6、DBMS對數(shù)據(jù)庫提供保護(hù)的另一個重要方面。其目的是保持進(jìn)入數(shù)據(jù)庫中的存儲數(shù)據(jù)的語義的正確性和有效性,防止任何對數(shù)據(jù)造成違反其語義的操作。 DBMS的主要功能 3.數(shù)據(jù)庫運(yùn)行控制功能 (3)并發(fā)控制 并發(fā)控制是DBMS的第三類控制機(jī)制。數(shù)據(jù)庫技術(shù)的一個優(yōu)點(diǎn)是數(shù)據(jù)的共享性。但多個應(yīng)用程序同時(shí)對數(shù)據(jù)庫進(jìn)行操作可能會破壞數(shù)據(jù)的正確性,或者在數(shù)據(jù)庫內(nèi)存儲了錯誤的數(shù)據(jù),或者用戶讀取了不正確的數(shù)據(jù)(稱為臟數(shù)據(jù))。 DBMS的主要功能 3.數(shù)據(jù)庫運(yùn)行控制功能 (4)恢復(fù)機(jī)制 恢復(fù)機(jī)制是保護(hù)數(shù)據(jù)庫的又一重要方面。在對數(shù)據(jù)庫進(jìn)行操作的過程中,可能會出現(xiàn)各種故障,例如停電、軟硬件各種錯誤、人為破壞等,導(dǎo)致數(shù)據(jù)庫損壞

7、或者數(shù)據(jù)不正確。此時(shí)DBMS的恢復(fù)機(jī)制有能力把數(shù)據(jù)庫恢復(fù)至最近的某個正確的狀態(tài)。為了保證恢復(fù)工作的正常進(jìn)行,系統(tǒng)要經(jīng)常為數(shù)據(jù)庫建立若干備份副本。 DBMS的主要功能 4.數(shù)據(jù)庫的維護(hù)功能 包括數(shù)據(jù)庫的初始數(shù)據(jù)的載入、轉(zhuǎn)換、轉(zhuǎn)儲、數(shù)據(jù)庫的重組和性能監(jiān)視、分析等數(shù)據(jù)庫的維護(hù)功能。 DBMS的主要功能 數(shù)5.數(shù)據(jù)字典(Data Dictionary,記為DD) DD中存放著數(shù)據(jù)庫三級結(jié)構(gòu)的描述,對于數(shù)據(jù)庫的操作要通過查閱DD進(jìn)行?,F(xiàn)在有的大型系統(tǒng)中,把DD單獨(dú)抽出來自成一個系統(tǒng),成為一個軟件工具,使得DD成為一個比DBMS更高級的用戶和數(shù)據(jù)庫之間的接口。 DBMS的主要功能 數(shù)據(jù)字典的主要作用是:供

8、數(shù)據(jù)庫管理系統(tǒng)快速查找有關(guān)對象的信息。數(shù)據(jù)庫管理系統(tǒng)在處理用戶存取時(shí),要經(jīng)常查閱數(shù)據(jù)字典中的用戶表、外模式表和模式表;供數(shù)據(jù)庫管理員查詢,以掌握整個系統(tǒng)的運(yùn)行情況;支持?jǐn)?shù)據(jù)庫設(shè)計(jì)與系統(tǒng)分析。數(shù)據(jù)字典的功能 二.DBMS的工作過程 1.3 數(shù)據(jù)模型 DBMS都是針對數(shù)據(jù)模型進(jìn)行設(shè)計(jì)的,任何一個數(shù)據(jù)庫都要組織成符合DBMS規(guī)定的數(shù)據(jù)模型。 數(shù)據(jù)模型不僅要能表示存儲了哪些數(shù)據(jù),更重要的是還要能以一定的結(jié)構(gòu)形式表示出各種不同數(shù)據(jù)之間的聯(lián)系。利用這些聯(lián)系很快找到相關(guān)聯(lián)的數(shù)據(jù),完成相關(guān)數(shù)據(jù)的運(yùn)算處理。因此,數(shù)據(jù)模型應(yīng)具有描述數(shù)據(jù)和數(shù)據(jù)聯(lián)系兩方面的功能。 概念數(shù)據(jù)模型 它是一種與具體的計(jì)算機(jī)和數(shù)據(jù)庫管理系統(tǒng)

9、無關(guān)的,面向客觀世界和用戶的模型。(給用戶看的)邏輯數(shù)據(jù)模型 是概念世界的抽象描述到信息世界的轉(zhuǎn)換。它是一種面向數(shù)據(jù)庫系統(tǒng)的模型,直接與DBMS有關(guān)。(面向?qū)I(yè)人員)物理數(shù)據(jù)模型。 是信息世界模型在機(jī)器世界的實(shí)現(xiàn)。它是面向計(jì)算機(jī)物理表示的模型,此模型給出了數(shù)據(jù)模型在計(jì)算機(jī)上真正的物理結(jié)構(gòu)的表示(存放在磁盤上的) 一.數(shù)據(jù)模型的三個層次(1)實(shí)體(entity)如 “學(xué)生”,“工人”(2)屬性(attribute) 如“學(xué)號”,“姓名”(3)碼(key) 如 “學(xué)號”(4)域(domain) 學(xué)號取8位(5)實(shí)體型(entity type)學(xué)生(學(xué)號,姓名,.)(6)實(shí)體集(entity set

10、) 全體學(xué)生(7)聯(lián)系(relationship) 實(shí)體對應(yīng)關(guān)系1.概念數(shù)據(jù)模型一對一聯(lián)系(1:1) 例如,一個企業(yè)只有一個廠長,而一個廠長只在一個企業(yè)中任職,則企業(yè)與廠長之間具有一對一聯(lián)系。 一對多聯(lián)系(1:N) 例如,一個企業(yè)聘用多名工人,而一名工人只在一個企業(yè)中工作,則企業(yè)與工人之間具有一對多聯(lián)系。多對多聯(lián)系(M:N) 例如,一個企業(yè)聘用多名工程師,而一個工程師在多個企業(yè)中兼職,則企業(yè)與工程師之間具有多對多聯(lián)系。 聯(lián)系概念模型的表示方法很多,其中最為常用實(shí)體聯(lián)系方法(Entity-Relationship approach)。該方法用E-R圖來描述現(xiàn)實(shí)世界的概念模型。E-R圖提供了表示實(shí)

11、體型、屬性和聯(lián)系的方法。(1)實(shí)體型(集):用矩形表示,矩形框內(nèi)寫明實(shí)體集名。(2)屬性:用橢圓形表示,并用無向邊將其與相應(yīng)的實(shí)體集連接起來。(3)聯(lián)系:用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,并且在無向邊旁標(biāo)上聯(lián)系的類型(1:1,1:N或M:N)。 聯(lián)系本身也是一種實(shí)體型,也可以有屬性 實(shí)體集A聯(lián)系名實(shí)體集B屬性名1屬性名n屬性名1屬性名n屬性名1屬性名nnm學(xué)生選課課程學(xué)號課程名課程號課程號學(xué)號姓名nm多對多學(xué)生選課學(xué)校學(xué)號學(xué)校名稱學(xué)校編號姓名n1一對多校長選課學(xué)校編號學(xué)校名稱學(xué)校編號姓名11一對一實(shí)體型之間關(guān)系帶屬性的ER圖層次模型(hierarchical m

12、odel)網(wǎng)狀模型(network model)關(guān)系模型(relational model)。 2.邏輯數(shù)據(jù)模型(1)層次模型 用樹型(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體間聯(lián)系的數(shù)據(jù)模型稱為層次模型(hierarchical model),層次模型的每個父結(jié)點(diǎn)可以有多個子結(jié)點(diǎn),但每個子結(jié)點(diǎn)只允許有一個父結(jié)點(diǎn) 對于描述一種簡單的“樹”型結(jié)構(gòu),層次模型非常合適,并且這種模式對于包含大量數(shù)據(jù)的數(shù)據(jù)庫來說,效率很高。例如,銀行的客戶系統(tǒng)就很適合層次模型,這是因?yàn)槊總€客戶可能包含多個賬戶,每個賬戶可能會進(jìn)行多個交易。 網(wǎng)狀模型是利用集合理論創(chuàng)造出的一種類似樹狀層次的結(jié)構(gòu),與樹狀層次結(jié)構(gòu)不同的是其中的子結(jié)點(diǎn)可以

13、擁有多個父結(jié)點(diǎn)。其實(shí),層次模型是網(wǎng)狀模型的一個特例。網(wǎng)狀數(shù)據(jù)庫系統(tǒng)的典型代表是DBTG數(shù)據(jù)庫管理系統(tǒng)。 某一結(jié)點(diǎn)可以無父結(jié)點(diǎn),某一結(jié)點(diǎn)也可以有多個父結(jié)點(diǎn)。 (2)網(wǎng)狀模型下圖為一個描述網(wǎng)狀模型的簡圖: 網(wǎng)狀模型的數(shù)據(jù)庫,對于尋找附屬于指定的對象的一組記錄時(shí),效率非常高。但是在按照某種特定的方式查找數(shù)據(jù)庫記錄時(shí),數(shù)據(jù)庫的速度會降低。 關(guān)系模型是目前最重要的一種模型。在用戶看來,一個關(guān)系模型的邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。例如,表1-1中的學(xué)生人事記錄就是一個關(guān)系模型,它涉及下列概念。(3)關(guān)系數(shù)據(jù)模型 關(guān)系:對應(yīng)通常說的表,如圖1-1中的這張學(xué)生人事記錄表;元組:表中的一行即為一個元組,

14、如(95001,張三,男,計(jì)算機(jī)系,北京)屬性:表中的一列即為一個屬性, 如 學(xué)號、 姓名;候選碼(KEY):表中的某個屬性組,它可以唯一確定一個元組,如學(xué)號,身份證,閱覽證號主碼或主鍵(KEY):表中如果有多個候選碼,只能選其中唯一一個作為主碼域(domain):屬性的取值范圍,如人的年齡一般在1-100歲之間。圖1-1中學(xué)生年齡屬性的域應(yīng)是(1438),性別的域是(男,女),系別的域是一個學(xué)校所有系名的集合;分量:元組中的一個屬性值; (8)關(guān)系模式:對關(guān)系的描述,一般表示為:關(guān)系名(屬性1,屬性2,屬性N)例如,上面的關(guān)系可描述為:學(xué)生(學(xué)號,姓名,性別,系別,年齡,籍貫) 假設(shè)上面的5

15、個實(shí)體型即學(xué)生、班級、課程、教師、參考書分別具有下列屬性:學(xué)生(學(xué)號、姓名、性別、年齡)班級(班級編號、所屬專業(yè)系)課程(課程號、課程名、學(xué)分)教師(職工號、姓名、性別、年齡、職稱)參考書(書號、書名、內(nèi)容提要、價(jià)格) 邏輯模型的實(shí)例 機(jī)器世界是計(jì)算機(jī)硬件和操作系統(tǒng)的總稱。信息世界表達(dá)的數(shù)據(jù)模型及其上的數(shù)據(jù)操縱最終要用計(jì)算機(jī)世界提供的手段和方法實(shí)現(xiàn),計(jì)算機(jī)世界對應(yīng)的是物理模型表示。 3.物理數(shù)據(jù)模型(1) 位(bit):一個二進(jìn)制數(shù)。(2) 字節(jié)(byte):8bit為一個字節(jié),可以存放一個ASCII字符。(3) 字(word):若干字節(jié)組成一個字。一個字所含的二進(jìn)制位數(shù)稱為字長。(4) 塊(

16、block):是內(nèi)外存交換數(shù)據(jù)的基本單位,它又稱物理塊或磁盤塊,它的大小有512字節(jié)、1024字節(jié)、2048字節(jié)等。內(nèi)外存數(shù)據(jù)交換由操作系統(tǒng)的文件系統(tǒng)管理。(5) 桶(bucket):外存的邏輯單位,一個桶可以包含一個物理塊或多個在空間上不一定連續(xù)的物理塊。(6) 卷(volume):一臺輸入輸出設(shè)備所能裝載的全部有用的信息,稱為“卷”。例如磁帶機(jī)的一盤磁帶就是一卷,磁盤的一個盤組也是一卷。 3.物理數(shù)據(jù)模型1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 模式(schema)是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅僅涉及到型的描述,不涉及到具體的值。模式的一個具體值稱為模式的一個實(shí)例(instance)。

17、同一個模式可以有很多實(shí)例。模式是相對穩(wěn)定的,而實(shí)例是相對變動的。模式反映的是數(shù)據(jù)的結(jié)構(gòu)及其關(guān)系,而實(shí)例反映的是數(shù)據(jù)庫某一時(shí)刻的狀態(tài)。1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 1.模式模式也稱邏輯模式,是數(shù)據(jù)庫中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。2.外模式 外模式也稱子模式或用戶模式,它是數(shù)據(jù)庫用戶(包括應(yīng)用程序員和最終用戶)看見和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)邏輯表示。1.4 數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu) 3.內(nèi)模式 內(nèi)模式也稱存儲模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲結(jié)構(gòu)的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的表示方式。例如,記錄的存儲方式是順序存儲、按照

18、B樹結(jié)構(gòu)存儲還是按hash方法存儲;索引按照什么方式組織;數(shù)據(jù)是否壓縮存儲,是否加密;數(shù)據(jù)的存儲記錄結(jié)構(gòu)有何規(guī)定等。一個數(shù)據(jù)庫只有一個內(nèi)模式。數(shù)據(jù)庫三級模式應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D外模式1外模式2外模式3概念模式內(nèi)模式數(shù)據(jù)庫外模式/概念模式映象概念模式/內(nèi)模式映象外模式: 用戶模式模式 : 邏輯模式內(nèi)模式 : 物理模式1.5 數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展 數(shù)據(jù)管理經(jīng)歷了三個發(fā)展階段:人工管理階段;文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段。20世紀(jì)50年代中期以前,計(jì)算機(jī)應(yīng)用于科學(xué)計(jì)算。硬件無直接存取設(shè)備,軟件無操作系統(tǒng)和專門管理數(shù)據(jù)的軟件;數(shù)據(jù)處理方式是批處理;管理者是人,方式是手工;是低級階段。特點(diǎn)是:(1)數(shù)

19、據(jù)無結(jié)構(gòu)化,不在計(jì)算機(jī)內(nèi)部保存。(2)要手工管理數(shù)據(jù)物理存儲。(3)數(shù)據(jù)面向程序不共享。(4)數(shù)據(jù)無獨(dú)立性。一個程序只處理一批數(shù)據(jù)。(5)數(shù)據(jù)處理的效率很低,編寫程序麻煩。 1人工管理階段20世紀(jì)50年代后期和60年代中期,PC應(yīng)用從科學(xué)計(jì)算擴(kuò)大到了數(shù)據(jù)管理領(lǐng)域。硬件有了磁盤、磁鼓等直接存儲設(shè)備;軟件有了文件系統(tǒng);處理方式是批處理和聯(lián)機(jī)實(shí)時(shí)處理。其特點(diǎn)是:(1)文件長期保存。(2)由文件系統(tǒng)對數(shù)據(jù)進(jìn)行管理。(3)數(shù)據(jù)物理結(jié)構(gòu)與邏輯結(jié)構(gòu)有了區(qū)別,但較簡單。(4)數(shù)據(jù)共享性差。(5)程序與數(shù)據(jù)之間只有一定的獨(dú)立性。缺點(diǎn):數(shù)據(jù)冗余大;數(shù)據(jù)與程序間缺少獨(dú)立性。2.文件管理階段20世紀(jì)60年代后期,硬件

20、出現(xiàn)了大容量的磁盤,價(jià)格下降,軟件出現(xiàn)了數(shù)據(jù)庫管理系統(tǒng)。其特點(diǎn)是:(1) 數(shù)據(jù)結(jié)構(gòu)化,這是數(shù)據(jù)庫與文件系統(tǒng)的根本區(qū)別。(2) 由DBMS提供統(tǒng)一的管理控制功能(安全性、完整性、并發(fā)控制、數(shù)據(jù)庫恢復(fù))。(3) 數(shù)據(jù)的共享性好。 (4) 數(shù)據(jù)的獨(dú)立性高。(5)可控?cái)?shù)據(jù)冗余度,冗余度低。3. 數(shù)據(jù)庫管理階段4. 數(shù)據(jù)獨(dú)立性的比較文件階段應(yīng)用程序與數(shù)據(jù)之間的關(guān)系數(shù)據(jù)庫階段程序與數(shù)據(jù)之間的關(guān)系 人工管理階段文件系統(tǒng)階段5. 數(shù)據(jù)庫技術(shù)的產(chǎn)生應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n數(shù)據(jù)庫系統(tǒng)階段數(shù)據(jù)1數(shù)據(jù)2數(shù)據(jù)n文件系統(tǒng)物理文件1物理文件2物理文件n數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫1.6 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu) 從數(shù)據(jù)庫管理系統(tǒng)

21、角度來看,數(shù)據(jù)庫系統(tǒng)是一個三級模式結(jié)構(gòu),但數(shù)據(jù)庫的這種模式結(jié)構(gòu)對最終用戶和程序員是透明的,他們見到的僅是數(shù)據(jù)庫的外模式和應(yīng)用程序。從最終用戶角度來看,數(shù)據(jù)庫系統(tǒng)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、分布式結(jié)構(gòu)和客戶/服務(wù)器結(jié)構(gòu)。 單用戶數(shù)據(jù)庫系統(tǒng)是一種早期的最簡單的數(shù)據(jù)庫系統(tǒng)。在單用戶系統(tǒng)中,整個數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都裝在一臺計(jì)算機(jī)上,由一個用戶獨(dú)占,不同機(jī)器之間不能共享數(shù)據(jù)。1單用戶數(shù)據(jù)庫系統(tǒng)DBDBDB 主從式結(jié)構(gòu)是指一個主機(jī)帶多個終端的多用戶結(jié)構(gòu)。在這種結(jié)構(gòu)中,數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù),都集中存放在主機(jī)上,所有處理任務(wù)都由主機(jī)來完成,各個用戶通過主機(jī)的終端并發(fā)

22、地存儲數(shù)據(jù)庫,共享數(shù)據(jù)資源。2.主從式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)主機(jī)DB 分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)是指數(shù)據(jù)庫中的數(shù)據(jù)在邏輯上是一個整體,但物理地分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同結(jié)點(diǎn)上。網(wǎng)絡(luò)中的每個結(jié)點(diǎn)都可以處理本地?cái)?shù)據(jù)庫中的數(shù)據(jù),執(zhí)行局部應(yīng)用;也可以同時(shí)存儲和處理多個異地?cái)?shù)據(jù)庫中的數(shù)據(jù),執(zhí)行全局應(yīng)用。3. 分布式結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng)主機(jī)DB主機(jī)DB網(wǎng)絡(luò)DB主機(jī) 主從式數(shù)據(jù)庫系統(tǒng)中的主機(jī)和分布式數(shù)據(jù)庫系統(tǒng)中的每個結(jié)點(diǎn)機(jī)是一個計(jì)算機(jī),即執(zhí)行DBMS功能又執(zhí)行應(yīng)用程序。隨著工作站功能的增強(qiáng)和廣泛使用,人們開始把DBMS功能和應(yīng)用分開,網(wǎng)絡(luò)中某個結(jié)點(diǎn)上的計(jì)算機(jī)專門用于執(zhí)行DBMS功能,稱為數(shù)據(jù)庫服務(wù)器,簡稱服務(wù)器,其他結(jié)點(diǎn)上的

23、計(jì)算機(jī)安裝DBMS的外圍應(yīng)用開發(fā)工具,支持用戶的應(yīng)用,稱為客戶機(jī),這就是客戶/服務(wù)器機(jī)構(gòu)的數(shù)據(jù)庫系統(tǒng)。4. 客戶/服務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫系統(tǒng) 第一章數(shù)據(jù)庫系統(tǒng)概述SQL數(shù)據(jù)庫入門第1章 數(shù)據(jù)庫入門數(shù)據(jù)庫系統(tǒng)1.11.21.31.41.51.6知識架構(gòu)數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)模型數(shù)據(jù)庫系統(tǒng)的模式結(jié)構(gòu)數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)學(xué)習(xí)目標(biāo)掌握數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)模型13了解數(shù)據(jù)庫的產(chǎn)生與發(fā)展2熟悉數(shù)據(jù)庫的模式與體系結(jié)構(gòu)掌握了解熟悉2.1 關(guān)系數(shù)據(jù)庫概述 關(guān)系數(shù)據(jù)庫理論是美國E.F.Codd先生1970首先提出的。 關(guān)系數(shù)據(jù)模型的主要特點(diǎn)是數(shù)學(xué)理論和以結(jié)構(gòu)簡單(二維表格)為基礎(chǔ)。 關(guān)系模型由三部分組成

24、:數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和關(guān)系的完整性約束條件集合。關(guān)系運(yùn)算理論關(guān)系模式設(shè)計(jì)理論關(guān)系數(shù)據(jù)關(guān)系數(shù)據(jù)庫關(guān)系代數(shù)語言關(guān)系演算語言包括數(shù)據(jù)依賴,范式,模式設(shè)計(jì)方法1.2 關(guān)系數(shù)據(jù)結(jié)構(gòu) 一.關(guān)系數(shù)據(jù)結(jié)構(gòu)關(guān)系的非形式化定義:滿足一定條件的二維表。基本術(shù)語1.域:一組具有相同數(shù)據(jù)類型的值的集合。2.笛卡爾積(Cartesian Product) 給定一組域D1,D2,Dn,這些域中可以有相同的。D1,D2,Dn的笛卡爾積為: D1D2Dn(d1,d2,dn)diDi,i1,2,n 2.1 關(guān)系模型67元組(Tuple):每一個元素(d1,d2,dn)分量:元素中的每一個值di若Di(i1,2,n)為有限集,

25、其基數(shù)(Cardinal number)為mi(i1,2,n),則D1D2Dn的基數(shù)為: n M=mi i=1 例如:D1=孫悟空,宋江,林黛玉 D2=男,女 D3=西游記,水滸傳,紅樓夢D1D2D3=孫悟空,男,宋江,男,林黛玉,男, 孫悟空,女,宋江,女,林黛玉,女 D3= 孫悟空,男,西游記,宋江,男,西游記, 林黛玉,男,西游記, 孫悟空,女,西游記, 宋江,女,西游記,林黛玉,女,西游記, 孫悟空,男,水滸傳,宋江,男,水滸傳, 林黛玉,男,水滸傳, 孫悟空,女,水滸傳, 宋江,女,水滸傳,林黛玉,女,水滸傳, 孫悟空,男,紅樓夢,宋江,男,紅樓夢, 林黛玉,男,紅樓夢, 孫悟空,女

26、,紅樓夢, 宋江,女,紅樓夢,林黛玉,女,紅樓夢 2.1 關(guān)系模型683.關(guān)系(Relation)的數(shù)學(xué)定義 D1D2Dn的子集叫作在域D1、 D2、Dn上的關(guān)系,用 R(D1, D2, , Dn) 表示。R:關(guān)系的名字n:關(guān)系的目或度(Degree)。 2.1 關(guān)系模型69單元關(guān)系(Unary relation)n=1二元關(guān)系(Binary relation)n=22.1 關(guān)系模型70 小說名 人物名 性 別西游記孫悟空 男水滸傳宋江 男紅樓夢林黛玉 女小說人物對照表對于一個笛卡爾積只有取它的子集才有意義,這也和用戶看待的二維表一樣,只有滿足一定條件的二維表才是研究的對象。 候選碼(Cand

27、idate Key):在一個關(guān)系中,能惟一標(biāo)識元組的屬性或最小屬性集稱為關(guān)系的候選碼。主碼(Primary Key):若一個關(guān)系中有多個候選碼,則選其中的一個為主碼。 包含在任何一個候選碼中的屬性稱為主屬性(Primary Attribute),不包含在任何候選碼中的屬性稱為非主屬性(Non-primary Attribute)或非碼屬性(Non-key Attribute)。4.碼712.1 關(guān)系模型外碼(Foreign Key):設(shè)F是基本關(guān)系R的一個或一組屬性,但不是R的碼。Ks是基本關(guān)系S的主碼。如果F與Ks相對應(yīng),則稱F是R的外碼。并稱基本關(guān)系R為參照關(guān)系(Referencing R

28、elation),基本關(guān)系S為被參照關(guān)系(Referenced Relationship)。4.碼722.1 關(guān)系模型例如:學(xué)生關(guān)系和專業(yè)關(guān)系分別為:學(xué)生(學(xué)生編號,姓名,性別,年齡,專業(yè)編號,身份證號碼)專業(yè)(專業(yè)編號,專業(yè)名稱,專業(yè)負(fù)責(zé)人)4.碼73在關(guān)系數(shù)據(jù)庫中,表與表的聯(lián)系就是通過公共屬性實(shí)現(xiàn)的,這個公共屬性是一個表的主碼和另外一個表的外碼 2.1 關(guān)系模型5.關(guān)系的性質(zhì)1)分量必須取原子值2)列是同質(zhì)的,即每一列的分量是同一類型的數(shù)據(jù),來自同一個域。3)表中的列稱為屬性,給每列起一個名稱即屬性名,不同屬性要起不同的屬性名。4)列的順序無關(guān)5)關(guān)系中任意兩行不能相同。6)行的順序無關(guān)。

29、742.1 關(guān)系模型1 操作對象是關(guān)系2 基本操作方式 屬性指定 元祖選擇 關(guān)系合并 元組插入 元組刪除 2.關(guān)系操作75檢索更新2.1 關(guān)系模型76關(guān)系代數(shù)語言關(guān)系演算語言具有關(guān)系代數(shù)和關(guān)系演算雙重特點(diǎn)的語言域關(guān)系數(shù)據(jù)語言元組關(guān)系數(shù)據(jù)語言ISBLAPLHAQUELQBESQL關(guān)系數(shù)據(jù)語言關(guān)系數(shù)據(jù)語言2.1 關(guān)系模型實(shí)體完整性參照完整性用戶自定義完整性3. 關(guān)系完整性約束772.1 關(guān)系模型實(shí)體完整性 規(guī)則:若屬性A是基本關(guān)系R的主屬性,則屬性A不能取空值。782.1 關(guān)系模型79導(dǎo)師編號姓名性別職稱1001劉易男副教授1002張清枚男教授1003王敏女教授研究生編號姓名性別研究方向?qū)熅幪?

30、004001李勇男網(wǎng)絡(luò)安全10012004002劉晨女IPv610022004003張三男數(shù)據(jù)倉庫10032004004李立男數(shù)據(jù)挖掘10022004005趙兵男網(wǎng)格安全導(dǎo) 師 研究生2.1 關(guān)系模型80外碼:設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼。規(guī)則:若F是基本關(guān)系R的外碼,并與 S的主碼Ks相對應(yīng),則對于R中每個元組在F上的值必須為: 取空值(F的每個屬性值均為空值) 等于S中某個元組的主碼值參照完整性2.1 關(guān)系模型參照完整性例如: 學(xué)生(學(xué)號、姓名、性別) 課程(課程號、課程名、學(xué)時(shí)) 學(xué)習(xí) (學(xué)號、課程號、成

31、績)81思考: 每個關(guān)系的主碼 哪個關(guān)系有外碼2.1 關(guān)系模型某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求。82職稱(助教,講師,副教授,教授)性別(男,女)用戶自定義的完整性2.1 關(guān)系模型2.3 關(guān)系代數(shù) 關(guān)系代數(shù)是一種抽象的查詢語言,是關(guān)系數(shù)據(jù)操縱語言的一種傳統(tǒng)表達(dá)方式,它是用關(guān)系的運(yùn)算來表示查詢的。任何一種運(yùn)算都是將一定的運(yùn)算符作用于一定的運(yùn)算對象上,得到預(yù)期的運(yùn)算結(jié)果。所以運(yùn)算對象、運(yùn)算符、運(yùn)算結(jié)果是運(yùn)算的三大要素。關(guān)系代數(shù)的運(yùn)算對象是關(guān)系,運(yùn)算結(jié)果也為關(guān)系。 概述 傳統(tǒng)的集合運(yùn)算 4種 專門的關(guān)系運(yùn)算 4種集合運(yùn)算符-并差交廣義笛卡爾積比較運(yùn)算符 大于大于等于小于小于等于等于不等于運(yùn)

32、算符含義運(yùn)算符含義表1 關(guān)系代數(shù)運(yùn)算符 2.2 關(guān)系代數(shù)關(guān)系代數(shù)運(yùn)行符專門的關(guān)系運(yùn)算符 選擇投影連接除邏輯運(yùn)算符 非與或運(yùn)算符含義運(yùn)算符含義表2 關(guān)系代數(shù)運(yùn)算符(續(xù)) 2.2 關(guān)系代數(shù)概述并 R S R St|tR tSABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1a1b3c2并示意圖RS交 R S R St|tR tSABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1ABCa1b2c2a2b2c1交示意圖RS差 R S R St|tR tSABCa1b1c1a1b2c2a2b2c

33、1ABCa1b2c2a1b3c2a2b2c1ABCa1b1c1差示意圖RS笛卡爾積 RXS trts|trR tsS ABCABCa1b1c1a1b2c2a1b1c1a1b3c2a1b1c1a2b2c1a1b2c2a1b2c2a1b2c2a1b3c2a1b2c2a2b2c1a2b2c1a1b2c2a2b2c1a1b3c2a2b2c1a2b2c1ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSsnosnameSsexSageSdept95001李勇男20計(jì)算機(jī)95002劉晨女19信息95003王敏女18管理95004張立男19信息studentcnocnm

34、aecpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL64courseSnocnograde9500119295001285950013889500229095002380sc選擇(即限定條件) f ( R )=t|tR F( t)=真例1查詢信息系全體學(xué)生 sdept=信息(student) 或 5=信息(student) (按序號) 例2查詢年齡小于20的學(xué)生 Sage20(student) 或 420(student) snosnameSsexSageSdept95002劉晨女19信息95004張立男19信息snosnameSs

35、exSageSdept95002劉晨女19信息95003王敏女18管理95004張立男19信息投影(即選出若干屬性列) A ( R )=tA|tR例3查詢學(xué)生的姓名和所在系 sname,sdept(student) 或 2,5(studnt) (按序號) 例2查詢學(xué)生關(guān)系中有哪些系 sdept(student)Sdept計(jì)算機(jī)信息管理信息snameSdept李勇計(jì)算機(jī)劉晨信息王敏管理張立信息連接(將兩個關(guān)系或多個關(guān)系按照條件連接)R S= trts|trR tsS trAts B非等值連接 AB , 等值連接 A=B 自然連接 :濾掉重復(fù)列的連接非等值連接 列1列2 , ABCa1b15a1b

36、26a2b38a2b412BEb13b27b310b32b52AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310RSR SC1980查詢所有學(xué)生的數(shù)據(jù),結(jié)果按出生年份降序排序GET W(學(xué)生) DOWN 出生年份*2.3.1 元組關(guān)系演算查詢所有學(xué)生的數(shù)據(jù)GET W(學(xué)生)查詢學(xué)生表中有哪些院系GET W(學(xué)生.學(xué)院)查詢所有1980年以后出生的學(xué)生學(xué)號和籍貫GET W(學(xué)生.學(xué)號,學(xué)生.籍貫):學(xué)生.出生年份1980查詢所有學(xué)生的數(shù)據(jù),結(jié)果按出生年份降序排序GET W(學(xué)生) DOWN 出生年份*2.3.1 元組關(guān)系演算 域關(guān)系演算表達(dá)式

37、的定義用域變量代替元組變量的每一個分量,域變量的變化范圍是某個值域而不是一個關(guān)系域關(guān)系演算的查詢表達(dá)式為: t1,t2,tk|P(t1,t2,tk) 其中t1,t2,tk代表域變量,P是域演算公式。2域關(guān)系演算 109*2.3.1 域關(guān)系演算2.5 查詢優(yōu)化 數(shù)據(jù)管理經(jīng)歷了三個發(fā)展階段:人工管理階段;文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段。111用戶輸入查詢查詢的內(nèi)部表示執(zhí)行查詢步驟向用戶報(bào)告查詢結(jié)果查詢語句的句法分析查詢優(yōu)化處理查詢 1、響應(yīng)用戶查詢的一般過程 2.4 查詢優(yōu)化112例:查詢學(xué)號為091502的學(xué)生選修的課程名稱。E1=課程名(課程.學(xué)號=學(xué)習(xí).學(xué)號學(xué)習(xí).學(xué)號=091502(課程學(xué)習(xí))E

38、2=課程名(課程.學(xué)號=學(xué)習(xí).學(xué)號(課程 學(xué)號=091502(學(xué)習(xí))E3=課程名(課程 學(xué)號=091502(學(xué)習(xí))查詢效率:E3E2E12.4.1 查詢優(yōu)化的必要性關(guān)系代數(shù)表達(dá)式的等價(jià)變換規(guī)則1131)連接、笛卡爾積交換律 E1E2E2 E1 E1 E2 E2 E1 E1 E2 E2 E1FF2)連接、笛卡爾積結(jié)合律 (E1E2) E3 E1(E2E3 ) (E1 E2) E3 E1 (E2 E3) (E1 E2) E3 E1 (E2 E3)F1F2F1F22.4.1 查詢優(yōu)化的必要性3、投影的串接定律(注意條件)A1,A2,An(B1,B2,Bm(E) A1,A2,An(E)4、選擇的串接定

39、律F1(F2(E) F1F2(E)5、選擇與投影的交換律(注意條件)F(A1,A2,An(E) A1,A2,An (F(E)(F只涉及A1,A2,An )A1,A2,An (F(E) A1,A2,An F(A1,An,B1,Bm(E)6、選擇與笛卡爾積的交換律F (E1E2) F (E1 ) E2F (E1E2) F1 (E1 ) F2(E2) F (E1E2) F 2(F 1(E1 ) E2)1147、選擇與并的交換F (E1E2) F (E1 ) F (E2)8、選擇與差的交換F (E1-E2) F (E1 ) -F (E2)9、投影與笛卡爾積的交換律A1,A2,An,B1,B2,Bm (

40、E1E2) A1,A2,An (E1) B1,B2,Bm ( E2)10、投影與并的交換A1,A2,An(E1E2)A1,A2,An (E1) A1,A2,An(E2)1152.4.1 查詢優(yōu)化的必要性5、關(guān)系代數(shù)表達(dá)式的優(yōu)化算法輸入:一個關(guān)系表達(dá)式的語法樹輸出:計(jì)算該表達(dá)式的程序方法:1)把F1F2 .Fn(E)變換為 F1 (F2(Fn( E) 2)對每一個選擇盡可能把它移到樹的葉端。 3)對每一個投影盡可能把它移到樹的葉端。4)合并選擇和投影或一個選擇后跟一個投影。5)將得到的語法樹的內(nèi)節(jié)點(diǎn)分組。(每一雙目運(yùn)算和它所有的直接祖先為一組。6)生成一個程序,每組節(jié)點(diǎn)的計(jì)算是程序中的一步。求值

41、順序?yàn)橄茸訉O,后祖先。116規(guī)則4規(guī)則3,5,9,10規(guī)則4-8規(guī)則3-5 1、盡可能早地執(zhí)行選擇操作(減少中間運(yùn)算結(jié)果) 2、合并笛卡爾積和其后的選擇操作,使之稱為一個連接運(yùn)算 3、合并連續(xù)的選擇和投影操作,以免分開運(yùn)算造成多次掃描文件,從而節(jié)省了操作時(shí)間 4、找出表達(dá)式里的公共子表達(dá)式。 5、適當(dāng)?shù)貙﹃P(guān)系文件做預(yù)處理1172.4.2 查詢優(yōu)化的策略和算法例:求001001號學(xué)生所選修的課程名及成績 CN,G (SC.S#=001001SC.C#=C.C# (SC C)118CN,GSC.S#=001001SC.C#=C.C#SCC2.4.2 查詢優(yōu)化的策略和算法119CN,GSC.C#=C

42、.C#SCCSC.S#=001001CN,GSC.C#=C.C#SCCSC.S#=001001選擇的串接定律選擇與笛卡爾積的交換 120CN,GSC.C#=C.C#SCCSC.S#=001001CN,G,SC.C#,C.C#5、選擇與投影的交換律F(A1,A2,An(E) A1,A2,An (F(E)(F只涉及A1,A2,An )A1,A2,An (F(E) A1,A2,An F(A1,An,B1,Bm(E)121CN,GSC.C#=C.C#SCCSC.S#=001001C#,CNG,C# 投影與笛卡爾積的交換律優(yōu)化后的表達(dá)式122CN,G ( C#,G( SC.S#=001001(SC) C

43、N,C#(C)例:查詢選修了數(shù)據(jù)庫原理的學(xué)生姓名和成績 123姓名,成績 (課程名=數(shù)據(jù)庫原理 學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號學(xué)習(xí).課程號=課程.課程號(學(xué)生 學(xué)習(xí) 課程)姓名,成績 (課程名=數(shù)據(jù)庫原理 (學(xué)生 學(xué)習(xí) 課程)124姓名,成績課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí)125姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號規(guī)則 4 、6選擇的串接選擇和笛卡爾積交換126姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號姓名,成績,學(xué)習(xí).課程號,課程.課程號規(guī)則 5選擇和投

44、影交換127姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號姓名,課程號,成績課程號規(guī)則 9投影和笛卡爾積交換128規(guī)則 5選擇和投影交換姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號課程號姓名,學(xué)生.學(xué)號,學(xué)習(xí).學(xué)號,課程號,成績姓名,課程號,成績129規(guī)則 9投影和笛卡爾積交換姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí).學(xué)號課程號姓名,學(xué)號課程號,學(xué)號,成績姓名,課程號,成績130姓名,成績學(xué)習(xí).課程號=課程.課程號課程學(xué)生學(xué)習(xí) 課程名=數(shù)據(jù)庫原理學(xué)生.學(xué)號=學(xué)習(xí)

45、.學(xué)號課程號姓名,學(xué)號姓名,課程號,成績優(yōu)化后的表達(dá)式131姓名,成績 ( 課程號,成績,姓名(學(xué)號,姓名(學(xué)生) 學(xué)習(xí) ) 課程號( 課程名=數(shù)據(jù)庫原理(課程)關(guān)系系統(tǒng):關(guān)系系統(tǒng)的定義關(guān)系系統(tǒng)的分類1322.5 關(guān)系系統(tǒng)關(guān)系系統(tǒng)(關(guān)系數(shù)據(jù)庫系統(tǒng)):支持關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng)。1關(guān)系系統(tǒng)的定義一個系統(tǒng)可定義為關(guān)系系統(tǒng),當(dāng)且僅當(dāng)它支持:(1)關(guān)系數(shù)據(jù)結(jié)構(gòu)。(2)支持選擇、投影和(自然)連接運(yùn)算。對這些運(yùn)算不必要求定義任何物理存取路徑。1332.5.1 關(guān)系系統(tǒng)定義1) 表式系統(tǒng):僅支持?jǐn)?shù)據(jù)結(jié)構(gòu),不能算關(guān)系系統(tǒng)。2) (最小)關(guān)系系統(tǒng):數(shù)據(jù)結(jié)構(gòu)+三種關(guān)系操作。3)關(guān)系完備的系統(tǒng):數(shù)據(jù)結(jié)構(gòu)+所有關(guān)

46、系代數(shù)操作。4)全關(guān)系系統(tǒng):支持關(guān)系模型的所有特征。 S: 數(shù)據(jù)結(jié)構(gòu) M: 數(shù)據(jù)操作 I: 完整性約束 134SMIMIS SIM SIM2.5.2 關(guān)系系統(tǒng)分類準(zhǔn)則0:一個關(guān)系型的DBMS必須能完全通過它的關(guān)系能力來管理數(shù)據(jù)庫。135 一個關(guān)系型DBMS的關(guān)系能力包括屬性指定、元組選擇、插入和刪除、關(guān)系合并以及數(shù)據(jù)完整性和并發(fā)控制等,準(zhǔn)則0指出,一個RDBMS必須能完全通過這些關(guān)系能力來管理數(shù)據(jù)庫,而不需要用戶介入。*2.5.3 全關(guān)系系統(tǒng)的12條基本準(zhǔn)則 準(zhǔn)則1:信息準(zhǔn)則。 準(zhǔn)則2:保證訪問準(zhǔn)則。 準(zhǔn)則3:空值的系統(tǒng)化處理。 準(zhǔn)則4:基于關(guān)系模型的動態(tài)的聯(lián)機(jī)數(shù)據(jù)字典。136 準(zhǔn)則1-4 保

47、證數(shù)據(jù)庫完整性 *2.5.3 全關(guān)系系統(tǒng)的12條基本準(zhǔn)則 準(zhǔn)則5:統(tǒng)一的數(shù)據(jù)子語言。 準(zhǔn)則6:視圖更新準(zhǔn)則。 準(zhǔn)則7:高級的插入、修改和刪除操作。137 準(zhǔn)則5-7 保證數(shù)據(jù)庫操作*2.5.3 全關(guān)系系統(tǒng)的12條基本準(zhǔn)則 準(zhǔn)則8:數(shù)據(jù)物理獨(dú)立性。 準(zhǔn)則9:數(shù)據(jù)邏輯獨(dú)立性。 準(zhǔn)則10:數(shù)據(jù)完整性的獨(dú)立性。 準(zhǔn)則11:分布獨(dú)立性。 準(zhǔn)則12:無破壞準(zhǔn)則。138準(zhǔn)則8-11 保證數(shù)據(jù)庫獨(dú)立性 *2.5.3 全關(guān)系系統(tǒng)的12條基本準(zhǔn)則2.6 函數(shù)依賴 一個關(guān)系模式應(yīng)當(dāng)是一個5元組,它可以形式化地表示為:R(U,D,dom,F(xiàn)),其中R為關(guān)系名(student)U為組成該關(guān)系的屬性名集合(sno,sna

48、me.)D為屬性組U中屬性所來自的域(取值范圍)dom為屬性向域的映象集合,子集,視圖F為屬性間數(shù)據(jù)的依賴關(guān)系集合。Sno-sname通常寫作 R(U,F(xiàn))snosnameSsexSageSdept95001李勇男20計(jì)算機(jī)95002劉晨女19信息95003王敏女18管理95004張立男19信息studentcnocnamecpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL64courseSnocnograde9500119295001285950013889500229095002380sc三表合并snosnameSsexSagec

49、nocnamecpnoCcreditgradeSdept95001李勇男201數(shù)據(jù)庫5485計(jì)算機(jī)95001李勇男202數(shù)據(jù)庫結(jié)構(gòu)285計(jì)算機(jī)95001李勇男203微機(jī)原理1490計(jì)算機(jī)95004張立男191數(shù)據(jù)庫6378信息95004張立男192數(shù)據(jù)庫結(jié)構(gòu)7482信息95004張立男193微機(jī)原理6290信息一.帶來的問題1. 插入異常。根據(jù)實(shí)體完整性,主碼的取值不能為空,就是說sno和cno這兩列不能沒有屬性值。如果一個學(xué)生沒有選課就不可以插進(jìn)來。snosnameSsexSagecnocnamegradeSdept95001李勇男201數(shù)據(jù)庫85計(jì)算機(jī)95001李勇男202數(shù)據(jù)庫結(jié)構(gòu)85計(jì)

50、算機(jī)95001李勇男203微機(jī)原理90計(jì)算機(jī)95004張立男191數(shù)據(jù)庫78信息95004張立男192數(shù)據(jù)庫結(jié)構(gòu)82信息95004張立男193微機(jī)原理90信息snosnameSsexSagecnocnamegradeSdept95001李勇男201數(shù)據(jù)庫85計(jì)算機(jī)95001李勇男202數(shù)據(jù)庫結(jié)構(gòu)85計(jì)算機(jī)95001李勇男203微機(jī)原理90計(jì)算機(jī)95004張立男191數(shù)據(jù)庫78信息95004張立男192數(shù)據(jù)庫結(jié)構(gòu)82信息95004張立男193微機(jī)原理90信息2. 刪除異常。如果一個年紀(jì)的學(xué)生全部畢業(yè)了,在刪除該學(xué)生團(tuán)體元組的同時(shí),把這個團(tuán)體的課程及系部信息也丟掉了。3. 數(shù)據(jù)冗余。一個學(xué)生選多省

51、門課,相關(guān)信息就得跟隨多少次。snosnameSsexSagecnocnamegradeSdept95001李勇男201數(shù)據(jù)庫85計(jì)算機(jī)95001李勇男202數(shù)據(jù)庫結(jié)構(gòu)85計(jì)算機(jī)95001李勇男203微機(jī)原理90計(jì)算機(jī)95004張立男191數(shù)據(jù)庫78信息95004張立男192數(shù)據(jù)庫結(jié)構(gòu)82信息95004張立男193微機(jī)原理90信息4. 更新異常.由于數(shù)據(jù)冗余,在數(shù)據(jù)修改時(shí)會出現(xiàn)問題。例如,改一門課程,就得涉及許多學(xué)生修改。snosnameSsexSagecnocnamegradeSdept95001李勇男201數(shù)據(jù)庫85計(jì)算機(jī)95001李勇男202數(shù)據(jù)庫結(jié)構(gòu)85計(jì)算機(jī)95001李勇男203微機(jī)

52、原理90計(jì)算機(jī)95004張立男191數(shù)據(jù)庫78信息95004張立男192數(shù)據(jù)庫結(jié)構(gòu)82信息95004張立男193微機(jī)原理90信息二、函數(shù)依賴定義 設(shè)有關(guān)系模式R(A1,A2,An)或簡記為R(U),X,Y是U的子集(屬性集),r是R的任一具體關(guān)系,如果在當(dāng)前值r的任意兩個元組t1,t2中, 若t1X= t2X,必然有t1Y= t2Y,則稱X函數(shù)確定Y,或Y函數(shù)依賴于X,記為XY。X叫做決定因素,XY為模式R的一個函數(shù)依賴?;蛘哒f,對于X的每一個具體值,都有Y唯一的具體值與之對應(yīng),即Y值由X值決定,因而這種數(shù)據(jù)依賴稱為函數(shù)依賴。A1A2A3A4.An.snosnmaesexsage.95001李

53、勇男2095001李勇男20.R(U)r (如student)YXt1t2XY三. 碼候選碼 , 主碼,全碼,外碼主屬性, 非主屬性snosnameSsexSagebodynoSdept95001李勇男20130702.計(jì)算機(jī)studentscsnocnograde95001185四、幾種函數(shù)依賴完全函數(shù)依賴在R(U)中,如果Y函數(shù)依賴于X,但對于X的任何一個真子集X,都有Y不函數(shù)依賴于X,則稱Y對X完全函數(shù)依賴,記為XY。snocnograde95001185XYX 部分函數(shù)依賴如果XY,但Y不完全函數(shù)依賴于X,稱Y對X部分函數(shù)依賴,記為XY。XYsnocnosnamegrade950011

54、name85X即: XY 同時(shí) XY 傳遞函數(shù)依賴 在R(U)中,如果XY, Y不包含X,Y不函數(shù)依賴于X,YZ,則稱Z對X傳遞函數(shù)依賴。snosdeptmaster95001計(jì)算機(jī)李明95050外語王海sno-sdept, sdept-master 則sno-master2.7 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu) 范式最早是由E.F.Codd提出來的,滿足特定要求的模式稱之為范式(Normal form,簡稱NF)。所謂第幾范式,就是滿足特定要求的模式的集合。 范式共有六個級別,從低到高依次是1NF,2NF,3NF,BCNF,4NF,5NF,若某關(guān)系模式R為第三范式,那么它一定是一個第二范式,但反之不然。

55、 第一范式是規(guī)范化的最低要求,第一范式要求數(shù)據(jù)表不能存在重復(fù)記錄,即存在一個主碼,主碼是碼的最小子集。每個字段對應(yīng)的值都是不可分割的數(shù)據(jù)項(xiàng)。1、 第一范式 學(xué)號 姓名英語數(shù)學(xué)數(shù)據(jù)庫970001李明696886980007張三788073990008王五856370 學(xué)號 姓名成績英語數(shù)學(xué)數(shù)據(jù)庫970001李明696886980007張三788073990008王五856370若關(guān)系模式R是第一范式,且R中的每一個非主屬性完全函數(shù)依賴于R的某個侯選碼,則稱R是屬于第二范式。即去掉非主屬性對某個侯選碼的部分函數(shù)依賴。2 、第二范式snosnameSsexSagecnogradeSdept95001

56、李勇男20185計(jì)算機(jī)95001李勇男20285計(jì)算機(jī)95001李勇男20390計(jì)算機(jī)95004張立男19178信息95004張立男19282信息1NF(sno,cno)-sname 同時(shí)sno-sname 存在部分函數(shù)依賴(sno,cno)-ssex 同時(shí)sno-ssex 存在部分函數(shù)依賴去掉非主屬性對主屬性的部分函數(shù)依賴,成為2NFsnosnameSsexSageSdept95001李勇男20計(jì)算機(jī)95001李勇男20計(jì)算機(jī)Snocnograde9500119295001285studentSC若關(guān)系模式R是第二范式,且R中的每一個非主屬性都不傳遞函數(shù)依賴于R的某個侯選碼,則稱R是屬于第三

57、范式。即去掉非主屬性對侯選碼的傳遞函數(shù)依賴3、第三范式snosdeptmaster95001計(jì)算機(jī)李明95050外語王海sno-sdept, sdept-master 則sno-master將其分解去掉傳遞函數(shù)依賴,分解為兩個關(guān)系snosdept95001計(jì)算機(jī)95050外語sdeptmaster計(jì)算機(jī)李明外語王海160凡是滿足3NF的關(guān)系,一般都能獲得滿意的效果。但是某些情況下,3NF仍會出現(xiàn)問題。原因是沒有對主屬性與關(guān)鍵字之間給出任何限制,如果出現(xiàn)主屬性部分或傳遞依賴于KEY,則也會使關(guān)系性能變壞4、BCNF(擴(kuò)充的3NF)范式1614、BCNF(擴(kuò)充的3NF)范式162一個滿足BCNF的

58、關(guān)系模式有:所有非主屬性對每一個碼都是完全函數(shù)依賴。所有主屬性對每一個不包含它的碼也是完全函數(shù)依賴。沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。例:關(guān)系模式SJP(S,J,P) S:學(xué)生 學(xué)生選修課程有一定的名次 J:課程 每門課程中每一名次只有一個學(xué)生 P:名次 (名次沒有并列)163BCNF(擴(kuò)充的3NF) 函數(shù)依賴: (S,J) P 分析得知:SJP 3NF SJP BCNF (J,P) S例:關(guān)系模式STJ(S,T,J) S:學(xué)生 某一學(xué)生選定某門課,就對應(yīng)一個固定教師 T:教師 每個教師只教一門課 J: 課程 每門課有若干教師 函數(shù)依賴: (S,J) T ,(S,T) J,TJ分析

59、得知:STJ 3NF但是:STJ BCNF 因?yàn)椋?T J,而T不是碼 STJ可以分解為:ST(S,T)TJ(T,J)1644、BCNF(擴(kuò)充的3NF)判斷題:()若關(guān)系中所有的屬性均為主屬性,則關(guān)系至少可以達(dá)到NF?()若關(guān)系為雙目關(guān)系,則至少可以達(dá)到BCNF?()若每個決定因素都是單屬性,則至少可以達(dá)到NF?(4)若每個碼都是單屬性,則R至少可以達(dá)到2NF?1663NF與BCNF的關(guān)系 如果一個關(guān)系數(shù)據(jù)庫中的所有關(guān)系模式都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了模式的徹底分解,達(dá)到了最高的規(guī)范化程度,消除了插入異常和刪除異常。如果關(guān)系模式RBCNF,必定有R3NF。如果R3NF,且R

60、只有一個候選碼,則R必屬于BCNF。消除非主屬性對碼的傳遞函數(shù)依賴消除非主屬性對碼的部分函數(shù)依賴使每個屬性都不可再分非規(guī)范表1NF2NF3NF消除主屬性對碼的部分函數(shù)依賴BCNF需求分析 概念結(jié)構(gòu)設(shè)計(jì) 邏輯結(jié)構(gòu)設(shè)計(jì) 數(shù)據(jù)庫物理設(shè)計(jì) 數(shù)據(jù)庫實(shí)施 數(shù)據(jù)庫運(yùn)行與維護(hù)3.1 數(shù)據(jù)庫設(shè)計(jì)的基本步驟 數(shù)據(jù)庫設(shè)計(jì)步驟結(jié)構(gòu)圖1.需求分析:這一階段要求充分而準(zhǔn)確了解和分析用戶需求(包括數(shù)據(jù)需求和處理需求)。這是整個設(shè)計(jì)過程的基礎(chǔ),是最費(fèi)時(shí)最困難的一步。2.概念結(jié)構(gòu)設(shè)計(jì):是整個數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵,它通過對用戶需求進(jìn)行綜合、歸納與抽象,形成一個獨(dú)立于具體DBMS的概念模型。3.邏輯結(jié)構(gòu)設(shè)計(jì):將概念模型轉(zhuǎn)換為某個DBM

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論