數(shù)據(jù)庫原理及應(yīng)用_第1頁
數(shù)據(jù)庫原理及應(yīng)用_第2頁
數(shù)據(jù)庫原理及應(yīng)用_第3頁
數(shù)據(jù)庫原理及應(yīng)用_第4頁
數(shù)據(jù)庫原理及應(yīng)用_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫原理及應(yīng)用

1

數(shù)據(jù)庫系統(tǒng)概論

王珊薩師煊編著高等教育出版社教材

2教學(xué)參考書

段丁凡,蘇斌

《數(shù)據(jù)庫基礎(chǔ)及應(yīng)用》王珊,陳紅《數(shù)據(jù)庫系統(tǒng)原理教程》湯庸,葉小平等《數(shù)據(jù)庫理論及應(yīng)用基礎(chǔ)》陶宏才《數(shù)據(jù)庫原理及設(shè)計(jì)》李俊山

《數(shù)據(jù)庫系統(tǒng)原理與設(shè)計(jì)》SQLServer2000的相關(guān)輔導(dǎo)書籍3課程目的

掌握數(shù)據(jù)庫管理系統(tǒng)的基本原理作為系統(tǒng)管理員管理數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng)4課程內(nèi)容

數(shù)據(jù)庫相關(guān)的一些基本概念關(guān)系數(shù)據(jù)庫和關(guān)系運(yùn)算關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL的使用關(guān)系數(shù)據(jù)庫規(guī)范化理論數(shù)據(jù)庫的恢復(fù)技術(shù)、并發(fā)控制、安全性和完整性數(shù)據(jù)庫設(shè)計(jì)的基本概念和方法5學(xué)習(xí)要求理解數(shù)據(jù)庫的基本概念了解數(shù)據(jù)管理技術(shù)的發(fā)展理解數(shù)據(jù)模型的基本概念掌握數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)第一章 緒論

61.1數(shù)據(jù)庫系統(tǒng)概述

數(shù)據(jù)庫的地位數(shù)據(jù)庫技術(shù)產(chǎn)生于六十年代末,是數(shù)據(jù)管理的最新技術(shù),是計(jì)算機(jī)科學(xué)的重要分支。數(shù)據(jù)庫技術(shù)是信息系統(tǒng)的核心和基礎(chǔ),它的出現(xiàn)極大地促進(jìn)了計(jì)算機(jī)應(yīng)用向各行各業(yè)的滲透。數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個(gè)國家信息化程度的重要標(biāo)志。71.1.1四個(gè)基本概念

數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)8四個(gè)基本概念

數(shù)據(jù)(Data):

數(shù)據(jù)庫中存儲的基本對象,是描述事物的符號記錄,如:數(shù)字、文字、圖形、圖像、聲音等,數(shù)據(jù)與其語義是不可分的。如學(xué)生檔案中的學(xué)生記錄(李明,男,1972,江蘇,計(jì)算機(jī)系,1990)9四個(gè)基本概念

數(shù)據(jù)庫(Database,DB):

是長期儲存在計(jì)算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合。其特征是:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存??蔀楦鞣N用戶共享。冗余度較小。數(shù)據(jù)獨(dú)立性較高、易擴(kuò)展。10四個(gè)基本概念

數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。DBMS的主要功能有:數(shù)據(jù)管理功能:數(shù)據(jù)定義功能,數(shù)據(jù)組織、存儲和管理,數(shù)據(jù)操縱功能,數(shù)據(jù)庫的事物管理和運(yùn)行管理,數(shù)據(jù)庫的建立和維護(hù)功能,其他功能

提供數(shù)據(jù)庫的用戶接口Oracle,Sybase,Informix,SQLServer,MySQL,Access11四個(gè)基本概念

數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS):是指在計(jì)算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)“DB+DBMS+應(yīng)用系統(tǒng)+數(shù)據(jù)庫管理員(DataBaseAdministration,DBA)”在不引起混淆時(shí)常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。12數(shù)據(jù)庫最終用戶應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具DBMS操作系統(tǒng)數(shù)據(jù)庫管理員DBA應(yīng)用程序員13應(yīng)用系統(tǒng)應(yīng)用開發(fā)工具DBMS操作系統(tǒng)硬件數(shù)據(jù)庫系統(tǒng)環(huán)境示意圖數(shù)據(jù)庫在計(jì)算機(jī)系統(tǒng)中的地位數(shù)據(jù)庫管理系統(tǒng)應(yīng)用系統(tǒng)數(shù)據(jù)庫用戶、數(shù)據(jù)庫管理員141.1.2數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展

人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段15數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展

人工管理階段(40年代中--50年代中)應(yīng)用需求:科學(xué)計(jì)算硬件:無直接存取存儲設(shè)備軟件:無通用的操作系統(tǒng)處理方式:批處理16數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——人工管理階段

數(shù)據(jù)管理者:應(yīng)用程序,數(shù)據(jù)不保存。數(shù)據(jù)面向的對象:某一應(yīng)用程序。數(shù)據(jù)共享程度:無共享、冗余度極大。數(shù)據(jù)獨(dú)立性:不獨(dú)立,完全依賴于程序。數(shù)據(jù)結(jié)構(gòu)化:無結(jié)構(gòu)。數(shù)據(jù)控制能力:應(yīng)用程序自己控制。17應(yīng)用程序1數(shù)據(jù)集1應(yīng)用程序2數(shù)據(jù)集2應(yīng)用程序n數(shù)據(jù)集n...…...…人工管理階段應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——人工管理階段

18數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展

文件系統(tǒng)階段(50年代末--60年代中)應(yīng)用需求:科學(xué)計(jì)算、數(shù)據(jù)處理硬件:出現(xiàn)磁盤、磁鼓等軟件:操作系統(tǒng)、高級語言處理方式:批處理、共享的實(shí)時(shí)處理方式19數(shù)據(jù)管理者:文件系統(tǒng),數(shù)據(jù)長期保存。數(shù)據(jù)面向的對象:某一應(yīng)用程序。數(shù)據(jù)共享程度:共享性差、冗余度大。數(shù)據(jù)結(jié)構(gòu)化:記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)。數(shù)據(jù)獨(dú)立性:邏輯結(jié)構(gòu)改變須修改應(yīng)用程序。數(shù)據(jù)控制能力:應(yīng)用程序自己控制。數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——文件系統(tǒng)階段

20文件管理階段應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系應(yīng)用程序1文件1應(yīng)用程序2文件2應(yīng)用程序n文件n存取方法...…...…數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——文件系統(tǒng)階段

21數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展

數(shù)據(jù)庫系統(tǒng)階段(60年代末以來)

應(yīng)用需求:大規(guī)模管理硬件:出現(xiàn)大容量磁盤、磁盤陣列軟件:數(shù)據(jù)庫管理系統(tǒng)處理方式:聯(lián)機(jī)實(shí)時(shí)處理、分布處理和批處理22數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——數(shù)據(jù)庫系統(tǒng)階段

數(shù)據(jù)管理者:DBMS

數(shù)據(jù)面向的對象:整個(gè)系統(tǒng)

數(shù)據(jù)高度結(jié)構(gòu)化:數(shù)據(jù)庫與文件系統(tǒng)的根本區(qū)別數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充數(shù)據(jù)的獨(dú)立性高:物理獨(dú)立性和邏輯獨(dú)立性數(shù)據(jù)控制能力:由DBMS統(tǒng)一管理和控制23數(shù)據(jù)庫管理階段應(yīng)用程序與數(shù)據(jù)的對應(yīng)關(guān)系DBMS應(yīng)用程序1應(yīng)用程序2數(shù)據(jù)庫…數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——數(shù)據(jù)庫系統(tǒng)階段

241.1.3數(shù)據(jù)庫系統(tǒng)的特點(diǎn)數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)的共享性高,冗余度低,易擴(kuò)充數(shù)據(jù)獨(dú)立性高數(shù)據(jù)由DBMS統(tǒng)一管理和控制25數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫系統(tǒng):實(shí)現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)話,這是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。文件系統(tǒng):文件由記錄組成,文件內(nèi)部有結(jié)構(gòu),文件之間無結(jié)構(gòu)。數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)之間整體有結(jié)構(gòu),是一個(gè)有機(jī)的整體。26數(shù)據(jù)結(jié)構(gòu)化學(xué)生文件student的記錄結(jié)構(gòu)學(xué)生編號姓名性別年齡系家庭住址聯(lián)系電話課程文件course的記錄結(jié)構(gòu)課程編號課程名稱學(xué)時(shí)數(shù)教材名稱學(xué)生選課文件sc的記錄結(jié)構(gòu)學(xué)生編號課程編號學(xué)期成績27數(shù)據(jù)結(jié)構(gòu)化學(xué)生基本記錄學(xué)生編號姓名性別年齡系學(xué)生學(xué)籍記錄家庭出身籍貫政治面貌獎(jiǎng)懲情況記錄日期獎(jiǎng)懲條目日期學(xué)校學(xué)歷名家庭成員記錄姓名與本人關(guān)系詳細(xì)情況學(xué)生選課記錄學(xué)號課程號學(xué)期成績課程記錄課程號課程名稱28數(shù)據(jù)庫系統(tǒng)的特點(diǎn)——共享性高

數(shù)據(jù)共享性高,冗余度低,容易擴(kuò)充數(shù)據(jù)庫系統(tǒng)從整體角度來組織存儲數(shù)據(jù),數(shù)據(jù)不只是面向某一個(gè)應(yīng)用,而是面向整個(gè)系統(tǒng),因此具有很高的共享性。共享數(shù)據(jù)帶來了低冗余性,也能避免數(shù)據(jù)之間的不相容性和不一致性。數(shù)據(jù)共享使得應(yīng)用可以應(yīng)需要而增加,容易擴(kuò)充29數(shù)據(jù)庫系統(tǒng)的特點(diǎn)——數(shù)據(jù)獨(dú)立性高

物理獨(dú)立性:是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)時(shí)相互獨(dú)立的。數(shù)據(jù)的物理存儲由DBMS負(fù)責(zé),應(yīng)用程序不必了解,只需要處理數(shù)據(jù)的邏輯結(jié)構(gòu)。這樣當(dāng)數(shù)據(jù)庫的物理結(jié)構(gòu)改變時(shí),應(yīng)用程序不用改變。邏輯獨(dú)立性:直指用戶的應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨(dú)立的,數(shù)據(jù)庫的邏輯結(jié)構(gòu)改變了,用戶程序可以不予改變。數(shù)據(jù)與程序的獨(dú)立,把數(shù)據(jù)的定義和存儲從程序中分離出去,而存取數(shù)據(jù)的方法由DBMS提供,從而大大簡化了應(yīng)用程序的編制,減少了應(yīng)用程序的維護(hù)和修改。30數(shù)據(jù)庫系統(tǒng)的特點(diǎn)——數(shù)據(jù)由DBMS統(tǒng)一管理和控制

數(shù)據(jù)的安全性保護(hù):保護(hù)數(shù)據(jù)不被不合法應(yīng)用,不合法用戶破壞。數(shù)據(jù)的完整性檢查:包括檢查數(shù)據(jù)的正確性,有效性和相容性。并發(fā)控制:多個(gè)進(jìn)程并發(fā)存取或修改數(shù)據(jù)庫時(shí)的控制。數(shù)據(jù)庫恢復(fù):計(jì)算機(jī)系統(tǒng)的硬件故障,軟件故障,操作員的操作錯(cuò)誤或者故意破壞導(dǎo)致數(shù)據(jù)庫丟失或破壞時(shí),由DBMS提供的功能讓數(shù)據(jù)庫恢復(fù)到正確狀態(tài)。數(shù)據(jù)庫中的數(shù)據(jù)是共享的,多個(gè)應(yīng)用,多個(gè)用戶可以同時(shí)存取數(shù)據(jù)庫的數(shù)據(jù),甚至同時(shí)存取統(tǒng)一數(shù)據(jù),那么,DBMS必須具有以下的基本功能:311.2數(shù)據(jù)模型

數(shù)據(jù)模型就是對現(xiàn)實(shí)世界數(shù)據(jù)特征的抽象,是現(xiàn)實(shí)世界的模擬描述或表示。數(shù)據(jù)模型應(yīng)滿足的三個(gè)要求:比較真實(shí)地描述現(xiàn)實(shí)世界易為用戶所理解易于在計(jì)算機(jī)上實(shí)現(xiàn)模型是所研究的系統(tǒng)、過程、事物或概念的一種表達(dá)形式,也可指根據(jù)實(shí)驗(yàn)、圖樣放大或縮小而制作的樣品,一般用于展覽或?qū)嶒?yàn)或鑄造機(jī)器零件等用的模子。數(shù)據(jù)(data)是描述事物的符號記錄。模型(Model)是現(xiàn)實(shí)世界的抽象。321.2.1兩類數(shù)據(jù)模型

按照建立數(shù)據(jù)模型的目的不同,可以分為兩類:按照用戶的觀點(diǎn)建模按照計(jì)算機(jī)系統(tǒng)的觀點(diǎn)建模網(wǎng)狀模型層次模型關(guān)系模型

——概念模型(信息模型)邏輯模型

——邏輯模型和物理模型

——用于設(shè)計(jì)數(shù)據(jù)庫

——用于數(shù)據(jù)庫的邏輯實(shí)現(xiàn)和物理實(shí)現(xiàn)33兩大類數(shù)據(jù)模型(續(xù))客觀對象的抽象過程---兩步抽象現(xiàn)實(shí)世界中的客觀對象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。34兩大類數(shù)據(jù)模型(續(xù))DBMS支持的數(shù)據(jù)模型概念模型認(rèn)識抽象信息世界機(jī)器世界現(xiàn)實(shí)世界中客觀對象的抽象過程現(xiàn)實(shí)世界現(xiàn)實(shí)世界概念模型數(shù)據(jù)庫設(shè)計(jì)人員完成邏輯模型物理模型由DBMS完成概念模型邏輯模型數(shù)據(jù)庫設(shè)計(jì)人員完成351.2.2數(shù)據(jù)模型的組成要素

數(shù)據(jù)結(jié)構(gòu)——系統(tǒng)的靜態(tài)特性數(shù)據(jù)結(jié)構(gòu)不僅要描述數(shù)據(jù)庫組成對象,還要描述對象之間的聯(lián)系。通常所說的層狀、網(wǎng)狀和關(guān)系模型,就是按照此處的數(shù)據(jù)結(jié)構(gòu)來進(jìn)行劃分的。

數(shù)據(jù)操作——系統(tǒng)的動(dòng)態(tài)特性是指對數(shù)據(jù)庫中的各種對象運(yùn)行執(zhí)行的操作的集合,包括操作及有關(guān)的操作規(guī)則。數(shù)據(jù)庫的操作包括查詢和更新。

數(shù)據(jù)的完整性約束條件——一組完整性規(guī)則的集合完整性規(guī)則是數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的約束規(guī)則,用來限定數(shù)據(jù)庫狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確。36二、數(shù)據(jù)模型的組成要素

數(shù)據(jù)結(jié)構(gòu)——系統(tǒng)的靜態(tài)特性

數(shù)據(jù)操作——系統(tǒng)的動(dòng)態(tài)特性

數(shù)據(jù)的完整性約束條件——一組完整性規(guī)則的集合同時(shí)數(shù)據(jù)模型還必須提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。例如,在全國英語等級考試中規(guī)定,要先考過四級才能考六級;四級要達(dá)到520分,才能參加口語考試。371.2.3概念模型(信息模型)

概念從用戶的角度出發(fā),將具體的現(xiàn)實(shí)世界抽象為一個(gè)具有某種信息結(jié)構(gòu)的信息世界,這種信息結(jié)構(gòu)只反映現(xiàn)實(shí)世界,與具體的DMBS無關(guān)。作用對信息世界進(jìn)行建模,是現(xiàn)實(shí)世界到信息世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計(jì)者進(jìn)行交流的語言。最后將概念模型轉(zhuǎn)換為計(jì)算機(jī)上某一DBMS支持的數(shù)據(jù)模型,建立數(shù)據(jù)庫。38信息世界中的基本概念

實(shí)體(Entity):客觀存在并可相互區(qū)別的事物。屬性(Attribute):實(shí)體所具有的某一特性。碼(Key):能唯一標(biāo)識實(shí)體的屬性集。域(Domain):屬性的取值范圍。實(shí)體型(EntityType):實(shí)體名和屬性集表達(dá)的同類實(shí)體。實(shí)體集(EntitySet):同型實(shí)體的集合。39信息世界中的基本概念

聯(lián)系(Relationship):實(shí)體內(nèi)部的聯(lián)系和實(shí)體間的聯(lián)系一對一聯(lián)系(one-to-one,1:1)一對多聯(lián)系(one-to-many,1:N)多對多聯(lián)系(many-to-many,M:N)定義:設(shè)聯(lián)系型R關(guān)聯(lián)實(shí)體型A和B。若對應(yīng)A中的每個(gè)實(shí)體,B中有且僅有一個(gè)實(shí)體與之關(guān)聯(lián),則稱R是一對一聯(lián)系型。若對應(yīng)A中的每個(gè)實(shí)體,B中有n個(gè)實(shí)體(n≥0)與之關(guān)聯(lián),則稱R是一對多聯(lián)系型。若對應(yīng)A中的每個(gè)實(shí)體,B中有n個(gè)實(shí)體(n≥0)與之關(guān)聯(lián),對應(yīng)B中的每個(gè)實(shí)體,A中有m個(gè)實(shí)體(m≥

0)與之關(guān)聯(lián),則稱R是多對多聯(lián)系型。40返回41返回4243概念模型的一種表示方法

實(shí)體-聯(lián)系方法(E-R方法),也稱E-R模型。實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體名;實(shí)體的屬性用橢圓形表示,以無向邊將其與相應(yīng)的實(shí)體連接起來。

聯(lián)系:聯(lián)系本身用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無向邊旁標(biāo)上聯(lián)系的類型(1:1、1:n、m:n),聯(lián)系的屬性也要用無向邊與該聯(lián)系連接。44丈夫夫妻妻子11父親父子孩子1n課程選修學(xué)生mn學(xué)生學(xué)號姓名性別年齡45丈夫夫妻妻子11父親父子孩子1n課程選修學(xué)生mn46兩個(gè)以上的實(shí)體型之間的聯(lián)系單個(gè)實(shí)體型之間一對多的聯(lián)系47(1)一個(gè)員工可以是多個(gè)部門的經(jīng)理,而一個(gè)部門最多只能有一個(gè)經(jīng)理,則該管理聯(lián)系為1:N聯(lián)系。(2)一個(gè)員工可以在多個(gè)部門工作,而一個(gè)部門有多個(gè)員工,則該工作聯(lián)系為M:N聯(lián)系。聯(lián)系實(shí)例

N48聯(lián)系實(shí)例——工廠物資管理的概念模型

實(shí)體及其屬性圖實(shí)體及其聯(lián)系圖49聯(lián)系實(shí)例——工廠物資管理的概念模型

完整的實(shí)體聯(lián)系圖501.2.4最常用的數(shù)據(jù)模型

根據(jù)數(shù)據(jù)結(jié)構(gòu)形式的不同,數(shù)據(jù)模型分為:層狀模型網(wǎng)狀模型關(guān)系模型面向?qū)ο蟮年P(guān)系模型非關(guān)系模型511、層狀模型

用樹形結(jié)構(gòu)表示各類實(shí)體以及實(shí)體之間的聯(lián)系按樹的定義層次模型有以下兩個(gè)限制:有且僅有一個(gè)結(jié)點(diǎn)無雙親——根結(jié)點(diǎn)其它結(jié)點(diǎn)有且僅有一個(gè)雙親52特點(diǎn)

優(yōu)點(diǎn):簡單,只需很少命令就可以操作數(shù)據(jù)庫性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。提供了良好的完整性支持。

缺點(diǎn):難以描述現(xiàn)實(shí)世界中的復(fù)雜聯(lián)系。對插入和刪除操作的限制多。查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)。532、網(wǎng)狀模型

去掉了層次模型的兩個(gè)限制:可以有一個(gè)以上的結(jié)點(diǎn)無雙親至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)的雙親54特點(diǎn)

優(yōu)點(diǎn):

能更為直接地描述現(xiàn)實(shí)世界具有良好的性能,存取效率較高。

缺點(diǎn):

結(jié)構(gòu)比較復(fù)雜數(shù)據(jù)獨(dú)立性差。553、關(guān)系模型

層狀模型和網(wǎng)狀模型在實(shí)際當(dāng)中幾乎不再使用,而幾乎所有的DBMS都支持關(guān)系模型,即使不支持的,也加上了關(guān)系模型的接口。數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)操作完整性約束56數(shù)據(jù)結(jié)構(gòu)

邏輯結(jié)構(gòu)是一張二維表,它由行和列組成。

學(xué)生登記表

學(xué)

2005004

王小明

22

社會(huì)學(xué)

2005

2006006

黃大鵬

20

商品學(xué)

20062006008

張文斌

21

法律學(xué)

2006

57常用術(shù)語

關(guān)系:描述數(shù)據(jù)本身、數(shù)據(jù)之間聯(lián)系,一個(gè)關(guān)系對應(yīng)一張二維表。列:有時(shí)也稱“字段”、“屬性”行:有時(shí)也稱“元組”、“記錄”關(guān)系模式:對關(guān)系的描述,一般表示為關(guān)系名(屬性1,屬性2,…,屬性n),即R(A1,A2,…,An)。

如學(xué)生(學(xué)號,姓名,年齡,性別,系別,年級)。域:屬性的取值范圍。58常用術(shù)語

分量:元組中的一個(gè)屬性值。主碼:一個(gè)唯一識別關(guān)系實(shí)例的最小字段集合。

關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件。最基本的規(guī)范條件是關(guān)系的每一個(gè)分量必須是一個(gè)不可分的數(shù)據(jù)項(xiàng)。59數(shù)據(jù)操作與完整性約束

數(shù)據(jù)操作

關(guān)系數(shù)據(jù)操作是集合操作

關(guān)系模型將操作中的存取路徑對用戶屏蔽完整性約束

實(shí)體完整性、參照完整性、用戶自定義完整性60特點(diǎn)

優(yōu)點(diǎn):

建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上概念單一,實(shí)體和聯(lián)系都用關(guān)系表示,數(shù)據(jù)操作結(jié)果為關(guān)系數(shù)據(jù)的存取路徑對用戶是透明的。

缺點(diǎn):由于存取路徑透明,使得數(shù)據(jù)存取的效率不如非關(guān)系模型614、面向?qū)ο蟮臄?shù)據(jù)模型

用面向?qū)ο笥^點(diǎn)來描述現(xiàn)實(shí)世界實(shí)體(對象)的邏輯組織、對象間聯(lián)系等的模型。對象:現(xiàn)實(shí)世界中實(shí)體的模型化,每一個(gè)對象都有它唯一的標(biāo)識。

類:所有具有相同屬性和方法集的對象構(gòu)成一個(gè)對象類。任何一個(gè)對象都是某一對象類的一個(gè)實(shí)例。62第四講數(shù)據(jù)庫系統(tǒng)模式的概念復(fù)習(xí)回顧:

1.當(dāng)前最流行的數(shù)據(jù)模型是什么?

2.關(guān)系的相關(guān)概念63第四講數(shù)據(jù)庫系統(tǒng)模式的概念一、從數(shù)據(jù)庫管理系統(tǒng)角度看數(shù)據(jù)庫系統(tǒng)內(nèi)部的模式結(jié)構(gòu)。三級模式結(jié)構(gòu):外模式、模式、內(nèi)模式641.3.1數(shù)據(jù)庫系統(tǒng)模式的概念

型(Type):對某一類數(shù)據(jù)的結(jié)構(gòu)和屬性的說明。值(Value):是型的一個(gè)具體賦值。例如:學(xué)生記錄記錄型:(學(xué)號,姓名,性別,系別,年齡,籍貫)該記錄型的一個(gè)記錄值:(900201,李明,男,計(jì)算機(jī),22,江蘇)65第四講數(shù)據(jù)庫系統(tǒng)模式的概念

(一)

模式(Schema):數(shù)據(jù)庫中全體數(shù)據(jù)邏輯結(jié)構(gòu)和特征的描述。(表結(jié)構(gòu))

模式只涉及型,不涉及具體的值。例如:學(xué)生選課數(shù)據(jù)庫,型包括學(xué)生記錄、課程記錄和學(xué)生選課記錄幾個(gè)關(guān)系的模式,是相對穩(wěn)定的,而里面的數(shù)據(jù)是動(dòng)態(tài)的,2011年某一刻的數(shù)據(jù)和2012年某一刻的數(shù)據(jù)是不同的兩個(gè)值。66模式(邏輯模式)說明:一個(gè)數(shù)據(jù)庫只有一個(gè)模式。模式是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,與數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境無關(guān),與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計(jì)語言無關(guān)。數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)

67數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)

應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E內(nèi)模式外模式1外模式3模式外模式2數(shù)據(jù)庫外模式/模式映象內(nèi)模式/模式映象學(xué)生(學(xué)號,姓名,性別)課程(課號,課名,學(xué)分)選課(學(xué)號,課號,成績)68學(xué)生數(shù)據(jù)庫模式結(jié)構(gòu)學(xué)生(學(xué)號,姓名,性別,班級,系)課程(課號,課名,學(xué)分,任課教師,上課地點(diǎn),上課時(shí)間)選課(學(xué)號,課號,成績)學(xué)生數(shù)據(jù)庫外模式結(jié)構(gòu)計(jì)算機(jī)系學(xué)生(學(xué)號,姓名,性別,班級)數(shù)據(jù)庫課程(課號,課名,學(xué)分,任課教師,上課地點(diǎn),上課時(shí)間)數(shù)據(jù)庫選課成績(學(xué)號,課號,成績)69(二)外模式(子模式或用戶模式)數(shù)據(jù)庫用戶使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是模式的子集,一個(gè)數(shù)據(jù)庫可以有多個(gè)外模式同一外模式可以為某一用戶的多個(gè)應(yīng)用系統(tǒng)所使用。外模式是保證數(shù)據(jù)庫安全性的一個(gè)有力措施數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)

外模式1外模式2應(yīng)用1應(yīng)用270(三)內(nèi)模式(存儲模式)數(shù)據(jù)物理結(jié)構(gòu)和存儲方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫內(nèi)部的存儲方式一個(gè)數(shù)據(jù)庫只能有一個(gè)內(nèi)模式數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)

例如:學(xué)生記錄表,按照不同方式存儲時(shí)插入學(xué)生記錄S3,年齡16歲,存儲方式會(huì)有不同。S10

S5

S1

S6

S7

s9S1

S5

S6

S7

s9

s10S115

S616

S1016

S517

S717

s918堆存儲方式學(xué)號升序存儲方式按年齡升序存儲方式S3S3S371導(dǎo)入:三級模式是對數(shù)據(jù)庫中數(shù)據(jù)的三個(gè)抽象級別,兩級映象是在DBMS內(nèi)部實(shí)現(xiàn)這三個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換。外模式/模式模式/內(nèi)模式二、數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨(dú)立性

廣東同學(xué)粵語福建同學(xué)閩南語西藏同學(xué)藏語粵語翻譯閩南語翻譯藏語翻譯普通話書庫庫房

管理員教材科微機(jī)登記處外模式模式內(nèi)模式72

定義了外模式與模式之間的對應(yīng)關(guān)系,每一個(gè)外模式都對應(yīng)一個(gè)外模式/模式映象。保證了數(shù)據(jù)的邏輯獨(dú)立性(一)外模式/模式映象

外模式1模式外模式2外模式n應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n模式DBA73

定義了數(shù)據(jù)全局邏輯結(jié)構(gòu)與存儲結(jié)構(gòu)之間的對應(yīng)關(guān)系,數(shù)據(jù)庫中模式/內(nèi)模式映象是唯一的。保證了數(shù)據(jù)的物理獨(dú)立性(二)模式/內(nèi)模式映象

模式內(nèi)模式映像內(nèi)模式DBA74應(yīng)用1應(yīng)用2應(yīng)用3應(yīng)用4外模式1外模式2外模式3模式映像內(nèi)模式映像1映像2映像3外模式/模式映像數(shù)據(jù)庫模式/內(nèi)模式映像數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

75數(shù)據(jù)庫系統(tǒng)的結(jié)構(gòu)

小結(jié)在數(shù)據(jù)庫的三級模式中,數(shù)據(jù)庫模式即全局邏輯結(jié)構(gòu)是數(shù)據(jù)庫的中心和關(guān)鍵,它獨(dú)立于數(shù)據(jù)庫的其他模式,數(shù)據(jù)庫的內(nèi)模式依賴于它的全局邏輯結(jié)構(gòu),但是獨(dú)立于數(shù)據(jù)庫外模式,也獨(dú)立于具體的存儲設(shè)備。數(shù)據(jù)庫的外模式面向具體的應(yīng)用程序,它定義在邏輯模式之上,獨(dú)立于存儲模式和存儲設(shè)備。

通過DBMS的兩級映像,保證了應(yīng)用程序的穩(wěn)定性和數(shù)據(jù)庫中數(shù)據(jù)的物理獨(dú)立性,從而便于進(jìn)行數(shù)據(jù)庫的獨(dú)立管理和應(yīng)用程序的開發(fā)和維護(hù)。76數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)——從最終用戶角度看待

單用戶數(shù)據(jù)庫系統(tǒng)DBDBDB整個(gè)數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS和數(shù)據(jù),都裝在同一臺計(jì)算機(jī)上,由一個(gè)用戶獨(dú)占,不同用戶之間不能共享數(shù)據(jù)。缺點(diǎn):數(shù)據(jù)不能共享,存在大量的數(shù)據(jù)冗余77數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

主從式數(shù)據(jù)庫系統(tǒng)指一個(gè)主機(jī)帶多個(gè)終端的多用戶結(jié)構(gòu)。整個(gè)數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS和數(shù)據(jù),都裝在主機(jī)上,所有處理任務(wù)都由主機(jī)來完成,各個(gè)用戶并發(fā)地存取數(shù)據(jù)庫,數(shù)據(jù)可共享。缺點(diǎn):當(dāng)終端數(shù)增加到一定程度后,主機(jī)任務(wù)過于繁重,系統(tǒng)性能大幅度下降。78數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

分布式數(shù)據(jù)庫系統(tǒng)——邏輯上是一個(gè)整體數(shù)據(jù)庫,各個(gè)場地?cái)?shù)據(jù)有相同部分,有不同部分。由分布式數(shù)據(jù)庫管理系統(tǒng)統(tǒng)一管理控制,數(shù)據(jù)存儲對用戶透明。網(wǎng)絡(luò)79DB數(shù)據(jù)庫服務(wù)器客戶機(jī)接口數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

客戶/服務(wù)器(C/S)式數(shù)據(jù)庫系統(tǒng)用一個(gè)專門的主機(jī)來執(zhí)行DBMS功能,管理數(shù)據(jù),稱為數(shù)據(jù)庫服務(wù)器,而其他結(jié)點(diǎn)計(jì)算機(jī)安裝應(yīng)用程序,用于訪問服務(wù)器上的數(shù)據(jù)庫,稱為客戶機(jī)。80客戶端網(wǎng)絡(luò)服務(wù)器DB請求結(jié)果結(jié)果先在數(shù)據(jù)庫服務(wù)器上進(jìn)行處理,再傳回給客戶機(jī),可以減少網(wǎng)絡(luò)上的數(shù)據(jù)量。

數(shù)據(jù)庫更加開放。客戶和服務(wù)器可以在多種不同的軟硬件平臺上運(yùn)行,具有較強(qiáng)的可移植性。數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

81數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

三層C/S結(jié)構(gòu)客戶端DB應(yīng)用服務(wù)器DBMS服務(wù)器82按照服務(wù)器在地理位置上的分布,分為集中的服務(wù)器結(jié)構(gòu)和分布式的服務(wù)器結(jié)構(gòu)。集中的服務(wù)器結(jié)構(gòu)客戶機(jī)1……客戶機(jī)n服務(wù)器DB瓶頸客戶機(jī)1……客戶機(jī)nDB服務(wù)器1服務(wù)器2DB分布式的服務(wù)器結(jié)構(gòu)分布式數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

83數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)

瀏覽器/服務(wù)器(B/S)式數(shù)據(jù)庫系統(tǒng)瀏覽器DB應(yīng)用服務(wù)器DBMS服務(wù)器WEB服務(wù)器841.4數(shù)據(jù)庫系統(tǒng)的組成

數(shù)據(jù)庫系統(tǒng):數(shù)據(jù)庫+數(shù)據(jù)庫管理系統(tǒng)(及其開發(fā)工具)+應(yīng)用系統(tǒng)+數(shù)據(jù)庫管理員一、硬件平臺二、軟件三、人員85數(shù)據(jù)庫系統(tǒng)的組成人員

最終用戶:具體操作應(yīng)用系統(tǒng),看不到數(shù)據(jù)庫的模式結(jié)構(gòu)。應(yīng)用程序員:根據(jù)外模式編制應(yīng)用程序,數(shù)據(jù)庫的兩級映像功能保證了他們不必了解具體的存儲細(xì)節(jié)。系統(tǒng)分析員:負(fù)責(zé)系統(tǒng)需求分析和規(guī)范說明,從總體上設(shè)計(jì)系統(tǒng),與最終用戶和DBA一起,完成系統(tǒng)軟硬件配置,參與各級模式的概要設(shè)計(jì)。系統(tǒng)分析員+數(shù)據(jù)庫管理員+數(shù)據(jù)庫設(shè)計(jì)人員+應(yīng)用程序員+最終用戶86數(shù)據(jù)庫系統(tǒng)的組成人員

數(shù)據(jù)庫設(shè)計(jì)員:負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定,數(shù)據(jù)庫各級模式結(jié)構(gòu)的設(shè)計(jì)。必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計(jì)。很多情況下,數(shù)據(jù)庫設(shè)計(jì)員由數(shù)據(jù)庫管理員擔(dān)任。數(shù)據(jù)庫管理員+系統(tǒng)分析員+數(shù)據(jù)庫設(shè)計(jì)人員+應(yīng)用程序員+最終用戶87數(shù)據(jù)庫系統(tǒng)的用戶——數(shù)據(jù)庫管理員

數(shù)據(jù)庫管理員(DBA)的主要職責(zé)是負(fù)責(zé)全面管理和控制數(shù)據(jù)庫系統(tǒng),包括:決定數(shù)據(jù)庫中的信息內(nèi)容與結(jié)構(gòu)決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略定義數(shù)據(jù)的安全性和完整性約束條件監(jiān)控?cái)?shù)據(jù)庫的使用和運(yùn)行(例如定義和實(shí)施備份和恢復(fù)策略)數(shù)據(jù)庫的改進(jìn)與重組重構(gòu)與用戶,應(yīng)用程序員和系統(tǒng)分析員密切結(jié)合,概念模式、模式和內(nèi)模式88小結(jié)

數(shù)據(jù)庫的基本概念

數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)管理技術(shù)的發(fā)展

人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

數(shù)據(jù)的結(jié)構(gòu)化、共享性、獨(dú)立性、由DBMS統(tǒng)一管理89小結(jié)

數(shù)據(jù)模型的三要素概念模型的ER圖表示

數(shù)據(jù)模型層次模型、網(wǎng)狀模型、關(guān)系模型數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)數(shù)據(jù)庫的二級映象功能90第五講關(guān)系定義、參照完整性(集合論角度)一、關(guān)系1.域域是一組有相同數(shù)據(jù)類型的值的集合。例如,自然數(shù)、整數(shù)、實(shí)數(shù)、長度小于25字節(jié)的字符串集合、{0,1}、大于等于0且小于10的正整數(shù)等。下面是三個(gè)集合表示的域。D2=性別集合={男,女},表示性別的集合。D1=學(xué)生集合={李明,劉濤},表示學(xué)生姓名的集合。D3=專業(yè)集合={計(jì)算機(jī)專業(yè),數(shù)學(xué)專業(yè),法律專業(yè)},表示專業(yè)的集合。91關(guān)系定義2.笛卡兒積給定一組域D1,D2,…,Dn(這些域中可以有相同的),則D1,D2,…,Dn的笛卡兒積為:D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}其中每一個(gè)元素(d1,d2,…,dn)叫作一個(gè)n元組,簡稱元組。笛卡兒積可表示為一個(gè)二維表。表中的每行對應(yīng)一個(gè)元組,表中的每列對應(yīng)一個(gè)域。92關(guān)系定義例如上面給出的三個(gè)域D1,D2,D3的笛卡兒積為:D1×D2×D3={(李明,男,計(jì)算機(jī)專業(yè)),

(李明,男,數(shù)學(xué)專業(yè)),

(李明,男,法律專業(yè)),

(李明,女,計(jì)算機(jī)專業(yè)),

(李明,女,數(shù)學(xué)專業(yè)),

(李明,女,法律專業(yè)),

(劉濤,男,計(jì)算機(jī)專業(yè)),(劉濤,男,數(shù)學(xué)專業(yè)),

(劉濤,男,法律專業(yè)),

(劉濤,女,計(jì)算機(jī)專業(yè)),

(劉濤,女,數(shù)學(xué)專業(yè)),

(劉濤,女,法律專業(yè))}舉例:D1=姓合={李明,劉濤}D2=性別集合={男,女}D3=專業(yè)集合={計(jì)算機(jī)專業(yè),數(shù)學(xué)專業(yè),法律專業(yè)}93關(guān)系定義D1×D2×D3一共有2×2×3=12元組。這12個(gè)元組正好組成一張二維表姓名性別專業(yè)李明男計(jì)算機(jī)專業(yè)李明男數(shù)學(xué)專業(yè)李明男法律專業(yè)李明女計(jì)算機(jī)專業(yè)李明女?dāng)?shù)學(xué)專業(yè)李明女法律專業(yè)劉濤男計(jì)算機(jī)專業(yè)劉濤男數(shù)學(xué)專業(yè)劉濤男法律專業(yè)劉濤女計(jì)算機(jī)專業(yè)劉濤女?dāng)?shù)學(xué)專業(yè)劉濤女法律專業(yè)94關(guān)系定義3.關(guān)系給定一組域D1,D2,…,Dn,在這些域上笛卡兒積D1×D2×…×Dn上的一個(gè)子集,稱為一個(gè)關(guān)系,表示為:R(D1,D2,…,Dn)這里R表示關(guān)系的名字,n是關(guān)系的目或度。關(guān)系中的每個(gè)元素是關(guān)系中的元組,通常用t表示。當(dāng)n=1時(shí),稱該關(guān)系為單元(目)關(guān)系。當(dāng)n=2時(shí),稱該關(guān)系為二元(目)關(guān)系。95關(guān)系是笛卡兒積的有限子集,所以關(guān)系也是一個(gè)二維表,表的每行對應(yīng)一個(gè)元組,表的每列對應(yīng)一個(gè)域。由于域可以相同,為了加以區(qū)分,必須對每列起一個(gè)名字,稱為屬性。在實(shí)際應(yīng)用中,關(guān)系往往是從笛卡兒積中選取的有意義的子集。從上例中取出有實(shí)際意義的元組來構(gòu)造關(guān)系,該關(guān)系的名字為STU,屬性名就取域名,即姓名、性別和專業(yè)。則這個(gè)關(guān)系可以表示為:STU(姓名,性別,專業(yè))96姓名性別專業(yè)李明男計(jì)算機(jī)專業(yè)劉濤女會(huì)計(jì)專業(yè)該關(guān)系可以包含兩個(gè)元組,假設(shè)學(xué)生不重名,則姓名屬性的每一個(gè)值都唯一地標(biāo)識了一個(gè)元組,因此可以作為STU關(guān)系的主碼。974.關(guān)系的三種類型

基本關(guān)系(通常又稱為基本表或基表)、查詢表和視圖表。1、基本表是實(shí)際存在的表,它是實(shí)際存儲數(shù)據(jù)的邏輯表示2、查詢表是查詢結(jié)果對應(yīng)的表。3、視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實(shí)際存儲的數(shù)據(jù)。

984.關(guān)系的性質(zhì)(理解)在關(guān)系數(shù)據(jù)庫中,要求關(guān)系中的每一個(gè)分量是不可再分的數(shù)據(jù)項(xiàng),關(guān)系數(shù)據(jù)庫中的關(guān)系應(yīng)具有以下性質(zhì):⑴列是同質(zhì)的,即每一列中的分量均是同類型的數(shù)據(jù),即均來自同一個(gè)域。⑵不同的列可以出自同一個(gè)域,要給予不同的列不同的屬性名。⑶列的順序是無所謂的,即列的次序可以變換。⑷任意兩個(gè)元組不能完全相同。⑸行的順序是無所謂的,即行的次序可以變換。⑹每一分量必須是不可再分的數(shù)據(jù)項(xiàng)。99二、參照完整性1.關(guān)系間的引用2.外碼3.參照完整性規(guī)則1001.關(guān)系間的引用在關(guān)系模型中實(shí)體及實(shí)體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。例1學(xué)生實(shí)體、專業(yè)實(shí)體學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)主碼主碼學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。學(xué)生關(guān)系中的“專業(yè)號”值必須是確實(shí)存在的專業(yè)的專業(yè)號

,即專業(yè)關(guān)系中有該專業(yè)的記錄。外碼101關(guān)系間的引用(續(xù))例2學(xué)生、課程、學(xué)生與課程之間的多對多聯(lián)系學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)課程(課程號,課程名,學(xué)分)選修(學(xué)號,課程號,成績)102關(guān)系間的引用(續(xù))例3學(xué)生實(shí)體及其內(nèi)部的一對多聯(lián)系

學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)“學(xué)號”是主碼,“班長”是外碼,它引用了本關(guān)系的“學(xué)號”“班長”必須是確實(shí)存在的學(xué)生的學(xué)號

1032.外碼(ForeignKey)設(shè)F是基本關(guān)系R的一個(gè)或一組屬性,但不是關(guān)系R的碼。如果F與基本關(guān)系S的主碼Ks相對應(yīng),則稱F是基本關(guān)系R的外碼基本關(guān)系R稱為參照關(guān)系(ReferencingRelation)基本關(guān)系S稱為被參照關(guān)系(ReferencedRelation)或目標(biāo)關(guān)系(TargetRelation)104外碼(續(xù))[例1]:學(xué)生關(guān)系的“專業(yè)號與專業(yè)關(guān)系的主碼“專業(yè)號”相對應(yīng)“專業(yè)號”屬性是學(xué)生關(guān)系的外碼專業(yè)關(guān)系是被參照關(guān)系,學(xué)生關(guān)系為參照關(guān)系

105外碼(續(xù))[例2]:選修關(guān)系的“學(xué)號”與學(xué)生關(guān)系的主碼“學(xué)號”相對應(yīng)選修關(guān)系的“課程號”與課程關(guān)系的主碼“課程號”相對應(yīng)“學(xué)號”和“課程號”是選修關(guān)系的外碼學(xué)生關(guān)系和課程關(guān)系均為被參照關(guān)系選修關(guān)系為參照關(guān)系106外碼(續(xù))[例3]:“班長”與本身的主碼“學(xué)號”相對應(yīng)“班長”是外碼學(xué)生關(guān)系既是參照關(guān)系也是被參照關(guān)系

107外碼(續(xù))關(guān)系R和S不一定是不同的關(guān)系目標(biāo)關(guān)系S的主碼Ks和參照關(guān)系的外碼F必須定義在同一個(gè)(或一組)域上外碼并不一定要與相應(yīng)的主碼同名當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時(shí),往往取相同的名字,以便于識別1083.參照完整性規(guī)則

參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個(gè)元組在F上的值必須為:或者取空值(F的每個(gè)屬性值均為空值)或者等于S中某個(gè)元組的主碼值109參照完整性規(guī)則(續(xù))[例1]:學(xué)生關(guān)系中每個(gè)元組的“專業(yè)號”屬性只取兩類值:(1)空值,表示尚未給該學(xué)生分配專業(yè)(2)非空值,這時(shí)該值必須是專業(yè)關(guān)系中某個(gè)元組的“專業(yè)號”值,表示該學(xué)生不可能分配一個(gè)不存在的專業(yè)110參照完整性規(guī)則(續(xù))〔例2〕:選修(學(xué)號,課程號,成績)“學(xué)號”和“課程號”可能的取值:(1)選修關(guān)系中的主屬性,不能取空值(2)只能取相應(yīng)被參照關(guān)系中已經(jīng)存在的主碼值111參照完整性規(guī)則(續(xù))例3〕:學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)“班長”屬性值可以取兩類值:(1)空值,表示該學(xué)生所在班級尚未選出班長(2)非空值,該值必須是本關(guān)系中某個(gè)元組的學(xué)號值112參照完整性規(guī)則根據(jù)參照完整性規(guī)則,應(yīng)該對數(shù)據(jù)庫的修改加以限制,這些限制包括

*插入約束:禁止在從表中插入包含主表中不存在的關(guān)鍵字的數(shù)據(jù)行*刪除約束:禁止刪除在從表中有對應(yīng)記錄的主表記錄*更新約束:禁止更新導(dǎo)致從表中的相應(yīng)值孤立的主表中的外部關(guān)鍵字值學(xué)號姓名09001張三09002李四09003王五學(xué)號課程號成績09001001900900100391090020059909002001970900400298學(xué)生信息(主)選課成績(從)113參照完整性學(xué)號姓名09001張三09002李四09003王五學(xué)號課程號成績09001001900900100391090020059909002001970900400298114用戶定義的完整性針對某一具體關(guān)系數(shù)據(jù)庫的約束條件,反映某一具體應(yīng)用所涉及的數(shù)據(jù)必須滿足的語義要求關(guān)系模型應(yīng)提供定義和檢驗(yàn)這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能115用戶定義的完整性(續(xù))例:

課程(課程號,課程名,學(xué)分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}116補(bǔ)充:第六講數(shù)據(jù)庫表的設(shè)計(jì)建表的基本步驟:確定表中有哪些列確定每列的數(shù)據(jù)類型給表列添加各種約束創(chuàng)建各表之間的關(guān)系SQLServer中的數(shù)據(jù)類型整型數(shù)據(jù):int

smallint

浮點(diǎn)數(shù)據(jù):floatnumeric……字符數(shù)據(jù)固定長度:char(6)可變長度:varchar(10)unicode編碼:nchar(10)……布爾數(shù)據(jù)(真/假)

bit:1/0貨幣數(shù)據(jù)money日期數(shù)據(jù)datetime117表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束1.?dāng)?shù)值數(shù)據(jù)(1)使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型:bigint、int、smallint及tinyint,如表3-1所示。數(shù)據(jù)類型取值范圍存儲空間bigint-2^63(-9,223,372,036,854,775,808)~2^63-1(9,223,372,036,854,775,807)8個(gè)字節(jié)Int-2^31(-2,147,483,648)~2^31-1(2,147,483,647)4個(gè)字節(jié)smallint-2^15(-32,768)~2^15-1(32,767)2個(gè)字節(jié)tinyint0~2551個(gè)字節(jié)表3-1使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型118表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束(2)帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型:decimal和numeric,如表3-2所示。語法形式取值范圍精度范圍存儲空間decimal[(p[,s])]及numeric[(p[,s])]使用最大精度時(shí),有效值從-10^38+1~10^38–1p(精度):最多可以存儲的十進(jìn)制數(shù)字的總位數(shù),包括小數(shù)點(diǎn)左邊和右邊的位數(shù)。該精度是從1到最大精度38之間的值。默認(rèn)精度為18。s(小數(shù)位數(shù)):小數(shù)點(diǎn)右邊可以存儲的十進(jìn)制數(shù)字的最大位數(shù),默認(rèn)的小數(shù)位數(shù)為0;取值為0<=s<=p。1-95個(gè)字節(jié)10-199個(gè)字節(jié)20-2813個(gè)字節(jié)29-3817個(gè)字節(jié)119表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束(3)近似數(shù)字近似數(shù)字用于表示浮點(diǎn)數(shù)值數(shù)據(jù)的大致數(shù)值數(shù)據(jù)類型,如表3-5所示。數(shù)據(jù)類型取值范圍尾數(shù)精度存儲空間float-1.79E+308~1.79E+30874個(gè)字節(jié)real-3.40E+38~3.40E+38158個(gè)字節(jié)表3-5近似數(shù)字120表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束2.(1)非Unicode字符串類型字符串類型以字符的形式存儲數(shù)據(jù),字符可以是SQLServer使用的字符集中任何一個(gè)有效字符,如表3-8所示。數(shù)據(jù)類型取值范圍char[(n)]固定長度,非Unicode字符數(shù)據(jù),長度為n個(gè)字節(jié)。1≤n≤8000,存儲大小是n個(gè)字節(jié)。varchar[(n|max)]可變長度,非Unicode字符數(shù)據(jù)。1≤n≤8000。存儲大小是輸入數(shù)據(jù)的實(shí)際長度加2個(gè)字節(jié)。所輸入數(shù)據(jù)的長度可以為0個(gè)字符。text長度可變的非Unicode數(shù)據(jù),最大長度為2^31-1(2,147,483,647)個(gè)字符。表3-8字符串類型121表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束2.字符串(2)Unicode字符串如表3-4所示。數(shù)據(jù)類型取值范圍nchar[(n)]n個(gè)字符的固定長度的Unicode字符數(shù)據(jù)。1≤n≤4000。存儲大小為2n字節(jié)。nvarchar[(n|max)]包含n個(gè)字符的可變長度Unicode字符數(shù)據(jù)。1≤n≤4000。字節(jié)的存儲大小是所輸入字符個(gè)數(shù)的兩倍+2個(gè)字節(jié)。所輸入的數(shù)據(jù)字符長度可以為零ntext可變長度的Unicode數(shù)據(jù),最大長度為2^30-1(1,073,741,823)個(gè)字符。存儲大小是所輸入字符個(gè)數(shù)的兩倍(以字節(jié)為單位)。表3-4Unicode字符串122表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束3.日期和時(shí)間型

SQLServer2005提供了datetime和smalldatetime,用于表示某天的日期和時(shí)間的數(shù)據(jù)類型,如表3-7所示。數(shù)據(jù)類型取值范圍精確度datetime1753年1月1日~9999年12月31日3.33毫秒smalldatetime1900年1月1日~2079年6月6日1分鐘表3-7日期和時(shí)間型123表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束4.貨幣或貨幣值的數(shù)據(jù)類型:money和smallmoney,如表3-3所示。數(shù)據(jù)類型取值范圍存儲空間money-922,337,203,685,477.5808~922,337,203,685,477.58078個(gè)字節(jié)smallmoney

-214,748.3648~214,748.36474個(gè)字節(jié)表3-3貨幣或貨幣值的數(shù)據(jù)類型5.可以取值為1、0或NULL的整數(shù)數(shù)據(jù)類型:bit124表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束6.二進(jìn)制字符串二進(jìn)制字符串如表3-6所示。數(shù)據(jù)類型取值范圍存儲空間binary[(n)]長度為n字節(jié)的固定長度二進(jìn)制數(shù)據(jù),其中n是從1~8,000的值。n個(gè)字節(jié)varbinary[(n)]可變長度二進(jìn)制數(shù)據(jù)。n可以取從1~8,000的值。所輸入數(shù)據(jù)的實(shí)際長度+2個(gè)字節(jié)。image長度可變的二進(jìn)制數(shù)據(jù),從0~2^31-1(2,147,483,647)個(gè)字節(jié)。表3-6二進(jìn)制字符串125表的設(shè)計(jì)1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束7.其他數(shù)據(jù)類型(1)cursor。這是變量或存儲過程OUTPUT參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)包含對游標(biāo)的引用。(2)timestamp。公開數(shù)據(jù)庫中自動(dòng)生成的唯一二進(jìn)制數(shù)字的數(shù)據(jù)類型。(3)sql_variant。用于存儲SQLServer2005支持的各種數(shù)據(jù)類型(不包括text、ntext、image、timestamp和sql_variant)的值。(4)uniqueidentifier。16字節(jié)全局唯一標(biāo)識符代碼(簡稱GUID)。(5)table。這是一種特殊的數(shù)據(jù)類型,用于存儲結(jié)果集以進(jìn)行后續(xù)處理。主要用于臨時(shí)存儲一組行,這些行是作為表值函數(shù)的結(jié)果集返回的。(6)xml。該數(shù)據(jù)類型使用戶能夠在SQLServer數(shù)據(jù)庫中存儲XML文檔和片段。126創(chuàng)建表建表的語法CREATETABLE

表名

(

字段1數(shù)據(jù)類型列的特征,字段2數(shù)據(jù)類型列的特征,

...)列的特征:包括該列是是否為空(NULL)、是否是標(biāo)識列(自動(dòng)編號)、是否有默認(rèn)值、是否為主鍵等。127回顧SQLServer的約束約束的目的:確保表中數(shù)據(jù)的完整型常用的約束類型:主鍵約束(PrimaryKeyConstraint):要求主鍵列數(shù)據(jù)唯一,并且不允許為空唯一約束(UniqueConstraint):要求該列唯一,允許為空,但只能出現(xiàn)一個(gè)空值。檢查約束(CheckConstraint):某列取值范圍限制、格式限制等,如有關(guān)年齡的約束默認(rèn)約束(DefaultConstraint):某列的默認(rèn)值,如我們的男性學(xué)員較多,性別默認(rèn)為“男”外鍵約束(ForeignKeyConstraint):用于兩表間建立關(guān)系,需要指定引用主表的那列1282.E-R圖轉(zhuǎn)換為關(guān)系模型的原則1、一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。

2、一個(gè)1:1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。如果與某一端對應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼和聯(lián)系本身的屬性。3、一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。12

溫馨提示

  • 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)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論