版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(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è)計》李俊山
《數(shù)據(jù)庫系統(tǒng)原理與設(shè)計》SQLServer2000的相關(guān)輔導(dǎo)書籍3課程目的
掌握數(shù)據(jù)庫管理系統(tǒng)的基本原理作為系統(tǒng)管理員管理數(shù)據(jù)庫系統(tǒng)設(shè)計開發(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è)計的基本概念和方法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ī)科學(xué)的重要分支。數(shù)據(jù)庫技術(shù)是信息系統(tǒng)的核心和基礎(chǔ),它的出現(xiàn)極大地促進(jìn)了計算機(jī)應(yīng)用向各行各業(yè)的滲透。數(shù)據(jù)庫的建設(shè)規(guī)模、數(shù)據(jù)庫信息量的大小和使用頻度已成為衡量一個國家信息化程度的重要標(biāo)志。71.1.1四個基本概念
數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)8四個基本概念
數(shù)據(jù)(Data):
數(shù)據(jù)庫中存儲的基本對象,是描述事物的符號記錄,如:數(shù)字、文字、圖形、圖像、聲音等,數(shù)據(jù)與其語義是不可分的。如學(xué)生檔案中的學(xué)生記錄(李明,男,1972,江蘇,計算機(jī)系,1990)9四個基本概念
數(shù)據(jù)庫(Database,DB):
是長期儲存在計算機(jī)內(nèi)、有組織的、可共享的大量數(shù)據(jù)集合。其特征是:數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲存??蔀楦鞣N用戶共享。冗余度較小。數(shù)據(jù)獨(dú)立性較高、易擴(kuò)展。10四個基本概念
數(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四個基本概念
數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS):是指在計算機(jī)系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng)“DB+DBMS+應(yīng)用系統(tǒng)+數(shù)據(jù)庫管理員(DataBaseAdministration,DBA)”在不引起混淆時常常把數(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ī)系統(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é)計算硬件:無直接存取存儲設(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é)計算、數(shù)據(jù)處理硬件:出現(xiàn)磁盤、磁鼓等軟件:操作系統(tǒng)、高級語言處理方式:批處理、共享的實時處理方式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ī)實時處理、分布處理和批處理22數(shù)據(jù)庫技術(shù)的產(chǎn)生與發(fā)展——數(shù)據(jù)庫系統(tǒng)階段
數(shù)據(jù)管理者:DBMS
數(shù)據(jù)面向的對象:整個系統(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):實現(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),是一個有機(jī)的整體。26數(shù)據(jù)結(jié)構(gòu)化學(xué)生文件student的記錄結(jié)構(gòu)學(xué)生編號姓名性別年齡系家庭住址聯(lián)系電話課程文件course的記錄結(jié)構(gòu)課程編號課程名稱學(xué)時數(shù)教材名稱學(xué)生選課文件sc的記錄結(jié)構(gòu)學(xué)生編號課程編號學(xué)期成績27數(shù)據(jù)結(jié)構(gòu)化學(xué)生基本記錄學(xué)生編號姓名性別年齡系學(xué)生學(xué)籍記錄家庭出身籍貫政治面貌獎懲情況記錄日期獎懲條目日期學(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ù)不只是面向某一個應(yīng)用,而是面向整個系統(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ù)時相互獨(dú)立的。數(shù)據(jù)的物理存儲由DBMS負(fù)責(zé),應(yīng)用程序不必了解,只需要處理數(shù)據(jù)的邏輯結(jié)構(gòu)。這樣當(dāng)數(shù)據(jù)庫的物理結(jié)構(gòu)改變時,應(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ā)控制:多個進(jìn)程并發(fā)存取或修改數(shù)據(jù)庫時的控制。數(shù)據(jù)庫恢復(fù):計算機(jī)系統(tǒng)的硬件故障,軟件故障,操作員的操作錯誤或者故意破壞導(dǎo)致數(shù)據(jù)庫丟失或破壞時,由DBMS提供的功能讓數(shù)據(jù)庫恢復(fù)到正確狀態(tài)。數(shù)據(jù)庫中的數(shù)據(jù)是共享的,多個應(yīng)用,多個用戶可以同時存取數(shù)據(jù)庫的數(shù)據(jù),甚至同時存取統(tǒng)一數(shù)據(jù),那么,DBMS必須具有以下的基本功能:311.2數(shù)據(jù)模型
數(shù)據(jù)模型就是對現(xiàn)實世界數(shù)據(jù)特征的抽象,是現(xiàn)實世界的模擬描述或表示。數(shù)據(jù)模型應(yīng)滿足的三個要求:比較真實地描述現(xiàn)實世界易為用戶所理解易于在計算機(jī)上實現(xiàn)模型是所研究的系統(tǒng)、過程、事物或概念的一種表達(dá)形式,也可指根據(jù)實驗、圖樣放大或縮小而制作的樣品,一般用于展覽或?qū)嶒灮蜩T造機(jī)器零件等用的模子。數(shù)據(jù)(data)是描述事物的符號記錄。模型(Model)是現(xiàn)實世界的抽象。321.2.1兩類數(shù)據(jù)模型
按照建立數(shù)據(jù)模型的目的不同,可以分為兩類:按照用戶的觀點(diǎn)建模按照計算機(jī)系統(tǒng)的觀點(diǎn)建模網(wǎng)狀模型層次模型關(guān)系模型
——概念模型(信息模型)邏輯模型
——邏輯模型和物理模型
——用于設(shè)計數(shù)據(jù)庫
——用于數(shù)據(jù)庫的邏輯實現(xiàn)和物理實現(xiàn)33兩大類數(shù)據(jù)模型(續(xù))客觀對象的抽象過程---兩步抽象現(xiàn)實世界中的客觀對象抽象為概念模型;把概念模型轉(zhuǎn)換為某一DBMS支持的數(shù)據(jù)模型。34兩大類數(shù)據(jù)模型(續(xù))DBMS支持的數(shù)據(jù)模型概念模型認(rèn)識抽象信息世界機(jī)器世界現(xiàn)實世界中客觀對象的抽象過程現(xiàn)實世界現(xiàn)實世界概念模型數(shù)據(jù)庫設(shè)計人員完成邏輯模型物理模型由DBMS完成概念模型邏輯模型數(shù)據(jù)庫設(shè)計人員完成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)的動態(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)的動態(tài)特性
數(shù)據(jù)的完整性約束條件——一組完整性規(guī)則的集合同時數(shù)據(jù)模型還必須提供定義完整性約束條件的機(jī)制,以反映具體應(yīng)用所涉及的數(shù)據(jù)必須遵守的特定的語義約束條件。例如,在全國英語等級考試中規(guī)定,要先考過四級才能考六級;四級要達(dá)到520分,才能參加口語考試。371.2.3概念模型(信息模型)
概念從用戶的角度出發(fā),將具體的現(xiàn)實世界抽象為一個具有某種信息結(jié)構(gòu)的信息世界,這種信息結(jié)構(gòu)只反映現(xiàn)實世界,與具體的DMBS無關(guān)。作用對信息世界進(jìn)行建模,是現(xiàn)實世界到信息世界的第一層抽象,是用戶和數(shù)據(jù)庫設(shè)計者進(jìn)行交流的語言。最后將概念模型轉(zhuǎn)換為計算機(jī)上某一DBMS支持的數(shù)據(jù)模型,建立數(shù)據(jù)庫。38信息世界中的基本概念
實體(Entity):客觀存在并可相互區(qū)別的事物。屬性(Attribute):實體所具有的某一特性。碼(Key):能唯一標(biāo)識實體的屬性集。域(Domain):屬性的取值范圍。實體型(EntityType):實體名和屬性集表達(dá)的同類實體。實體集(EntitySet):同型實體的集合。39信息世界中的基本概念
聯(lián)系(Relationship):實體內(nèi)部的聯(lián)系和實體間的聯(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)實體型A和B。若對應(yīng)A中的每個實體,B中有且僅有一個實體與之關(guān)聯(lián),則稱R是一對一聯(lián)系型。若對應(yīng)A中的每個實體,B中有n個實體(n≥0)與之關(guān)聯(lián),則稱R是一對多聯(lián)系型。若對應(yīng)A中的每個實體,B中有n個實體(n≥0)與之關(guān)聯(lián),對應(yīng)B中的每個實體,A中有m個實體(m≥
0)與之關(guān)聯(lián),則稱R是多對多聯(lián)系型。40返回41返回4243概念模型的一種表示方法
實體-聯(lián)系方法(E-R方法),也稱E-R模型。實體型:用矩形表示,矩形框內(nèi)寫明實體名;實體的屬性用橢圓形表示,以無向邊將其與相應(yīng)的實體連接起來。
聯(lián)系:聯(lián)系本身用菱形表示,菱形框內(nèi)寫明聯(lián)系名,并用無向邊分別與有關(guān)實體連接起來,同時在無向邊旁標(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兩個以上的實體型之間的聯(lián)系單個實體型之間一對多的聯(lián)系47(1)一個員工可以是多個部門的經(jīng)理,而一個部門最多只能有一個經(jīng)理,則該管理聯(lián)系為1:N聯(lián)系。(2)一個員工可以在多個部門工作,而一個部門有多個員工,則該工作聯(lián)系為M:N聯(lián)系。聯(lián)系實例
N48聯(lián)系實例——工廠物資管理的概念模型
實體及其屬性圖實體及其聯(lián)系圖49聯(lián)系實例——工廠物資管理的概念模型
完整的實體聯(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)表示各類實體以及實體之間的聯(lián)系按樹的定義層次模型有以下兩個限制:有且僅有一個結(jié)點(diǎn)無雙親——根結(jié)點(diǎn)其它結(jié)點(diǎn)有且僅有一個雙親52特點(diǎn)
優(yōu)點(diǎn):簡單,只需很少命令就可以操作數(shù)據(jù)庫性能優(yōu)于關(guān)系模型,不低于網(wǎng)狀模型。提供了良好的完整性支持。
缺點(diǎn):難以描述現(xiàn)實世界中的復(fù)雜聯(lián)系。對插入和刪除操作的限制多。查詢子女結(jié)點(diǎn)必須通過雙親結(jié)點(diǎn)。532、網(wǎng)狀模型
去掉了層次模型的兩個限制:可以有一個以上的結(jié)點(diǎn)無雙親至少有一個結(jié)點(diǎn)有多于一個的雙親54特點(diǎn)
優(yōu)點(diǎn):
能更為直接地描述現(xiàn)實世界具有良好的性能,存取效率較高。
缺點(diǎn):
結(jié)構(gòu)比較復(fù)雜數(shù)據(jù)獨(dú)立性差。553、關(guān)系模型
層狀模型和網(wǎng)狀模型在實際當(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
女
社會學(xué)
2005
2006006
黃大鵬
20
男
商品學(xué)
20062006008
張文斌
21
女
法律學(xué)
2006
…
…
…
…
…
…
57常用術(shù)語
關(guān)系:描述數(shù)據(jù)本身、數(shù)據(jù)之間聯(lián)系,一個關(guān)系對應(yīng)一張二維表。列:有時也稱“字段”、“屬性”行:有時也稱“元組”、“記錄”關(guān)系模式:對關(guān)系的描述,一般表示為關(guān)系名(屬性1,屬性2,…,屬性n),即R(A1,A2,…,An)。
如學(xué)生(學(xué)號,姓名,年齡,性別,系別,年級)。域:屬性的取值范圍。58常用術(shù)語
分量:元組中的一個屬性值。主碼:一個唯一識別關(guān)系實例的最小字段集合。
關(guān)系必須是規(guī)范化的,滿足一定的規(guī)范條件。最基本的規(guī)范條件是關(guān)系的每一個分量必須是一個不可分的數(shù)據(jù)項。59數(shù)據(jù)操作與完整性約束
數(shù)據(jù)操作
關(guān)系數(shù)據(jù)操作是集合操作
關(guān)系模型將操作中的存取路徑對用戶屏蔽完整性約束
實體完整性、參照完整性、用戶自定義完整性60特點(diǎn)
優(yōu)點(diǎn):
建立在嚴(yán)格的數(shù)學(xué)概念的基礎(chǔ)上概念單一,實體和聯(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)實世界實體(對象)的邏輯組織、對象間聯(lián)系等的模型。對象:現(xiàn)實世界中實體的模型化,每一個對象都有它唯一的標(biāo)識。
類:所有具有相同屬性和方法集的對象構(gòu)成一個對象類。任何一個對象都是某一對象類的一個實例。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):是型的一個具體賦值。例如:學(xué)生記錄記錄型:(學(xué)號,姓名,性別,系別,年齡,籍貫)該記錄型的一個記錄值:(900201,李明,男,計算機(jī),22,江蘇)65第四講數(shù)據(jù)庫系統(tǒng)模式的概念
(一)
模式(Schema):數(shù)據(jù)庫中全體數(shù)據(jù)邏輯結(jié)構(gòu)和特征的描述。(表結(jié)構(gòu))
模式只涉及型,不涉及具體的值。例如:學(xué)生選課數(shù)據(jù)庫,型包括學(xué)生記錄、課程記錄和學(xué)生選課記錄幾個關(guān)系的模式,是相對穩(wěn)定的,而里面的數(shù)據(jù)是動態(tài)的,2011年某一刻的數(shù)據(jù)和2012年某一刻的數(shù)據(jù)是不同的兩個值。66模式(邏輯模式)說明:一個數(shù)據(jù)庫只有一個模式。模式是數(shù)據(jù)庫系統(tǒng)模式結(jié)構(gòu)的中間層,與數(shù)據(jù)的物理存儲細(xì)節(jié)和硬件環(huán)境無關(guān),與具體的應(yīng)用程序、開發(fā)工具及高級程序設(shè)計語言無關(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),上課時間)選課(學(xué)號,課號,成績)學(xué)生數(shù)據(jù)庫外模式結(jié)構(gòu)計算機(jī)系學(xué)生(學(xué)號,姓名,性別,班級)數(shù)據(jù)庫課程(課號,課名,學(xué)分,任課教師,上課地點(diǎn),上課時間)數(shù)據(jù)庫選課成績(學(xué)號,課號,成績)69(二)外模式(子模式或用戶模式)數(shù)據(jù)庫用戶使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示。外模式通常是模式的子集,一個數(shù)據(jù)庫可以有多個外模式同一外模式可以為某一用戶的多個應(yīng)用系統(tǒng)所使用。外模式是保證數(shù)據(jù)庫安全性的一個有力措施數(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)部的存儲方式一個數(shù)據(jù)庫只能有一個內(nèi)模式數(shù)據(jù)庫系統(tǒng)的三級模式結(jié)構(gòu)
例如:學(xué)生記錄表,按照不同方式存儲時插入學(xué)生記錄S3,年齡16歲,存儲方式會有不同。S10
S5
S1
S6
S7
s9S1
S5
S6
S7
s9
s10S115
S616
S1016
S517
S717
s918堆存儲方式學(xué)號升序存儲方式按年齡升序存儲方式S3S3S371導(dǎo)入:三級模式是對數(shù)據(jù)庫中數(shù)據(jù)的三個抽象級別,兩級映象是在DBMS內(nèi)部實現(xiàn)這三個抽象層次的聯(lián)系和轉(zhuǎn)換。外模式/模式模式/內(nèi)模式二、數(shù)據(jù)庫的二級映象功能與數(shù)據(jù)獨(dú)立性
廣東同學(xué)粵語福建同學(xué)閩南語西藏同學(xué)藏語粵語翻譯閩南語翻譯藏語翻譯普通話書庫庫房
管理員教材科微機(jī)登記處外模式模式內(nèi)模式72
定義了外模式與模式之間的對應(yīng)關(guān)系,每一個外模式都對應(yīng)一個外模式/模式映象。保證了數(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整個數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS和數(shù)據(jù),都裝在同一臺計算機(jī)上,由一個用戶獨(dú)占,不同用戶之間不能共享數(shù)據(jù)。缺點(diǎn):數(shù)據(jù)不能共享,存在大量的數(shù)據(jù)冗余77數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)
主從式數(shù)據(jù)庫系統(tǒng)指一個主機(jī)帶多個終端的多用戶結(jié)構(gòu)。整個數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS和數(shù)據(jù),都裝在主機(jī)上,所有處理任務(wù)都由主機(jī)來完成,各個用戶并發(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)——邏輯上是一個整體數(shù)據(jù)庫,各個場地數(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)用一個專門的主機(jī)來執(zhí)行DBMS功能,管理數(shù)據(jù),稱為數(shù)據(jù)庫服務(wù)器,而其他結(jié)點(diǎn)計算機(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è)計系統(tǒng),與最終用戶和DBA一起,完成系統(tǒng)軟硬件配置,參與各級模式的概要設(shè)計。系統(tǒng)分析員+數(shù)據(jù)庫管理員+數(shù)據(jù)庫設(shè)計人員+應(yīng)用程序員+最終用戶86數(shù)據(jù)庫系統(tǒng)的組成人員
數(shù)據(jù)庫設(shè)計員:負(fù)責(zé)數(shù)據(jù)庫中數(shù)據(jù)的確定,數(shù)據(jù)庫各級模式結(jié)構(gòu)的設(shè)計。必須參加用戶需求調(diào)查和系統(tǒng)分析,然后進(jìn)行數(shù)據(jù)庫設(shè)計。很多情況下,數(shù)據(jù)庫設(shè)計員由數(shù)據(jù)庫管理員擔(dān)任。數(shù)據(jù)庫管理員+系統(tǒng)分析員+數(shù)據(jù)庫設(shè)計人員+應(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)控數(shù)據(jù)庫的使用和運(yùn)行(例如定義和實施備份和恢復(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ù)、長度小于25字節(jié)的字符串集合、{0,1}、大于等于0且小于10的正整數(shù)等。下面是三個集合表示的域。D2=性別集合={男,女},表示性別的集合。D1=學(xué)生集合={李明,劉濤},表示學(xué)生姓名的集合。D3=專業(yè)集合={計算機(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}其中每一個元素(d1,d2,…,dn)叫作一個n元組,簡稱元組。笛卡兒積可表示為一個二維表。表中的每行對應(yīng)一個元組,表中的每列對應(yīng)一個域。92關(guān)系定義例如上面給出的三個域D1,D2,D3的笛卡兒積為:D1×D2×D3={(李明,男,計算機(jī)專業(yè)),
(李明,男,數(shù)學(xué)專業(yè)),
(李明,男,法律專業(yè)),
(李明,女,計算機(jī)專業(yè)),
(李明,女,數(shù)學(xué)專業(yè)),
(李明,女,法律專業(yè)),
(劉濤,男,計算機(jī)專業(yè)),(劉濤,男,數(shù)學(xué)專業(yè)),
(劉濤,男,法律專業(yè)),
(劉濤,女,計算機(jī)專業(yè)),
(劉濤,女,數(shù)學(xué)專業(yè)),
(劉濤,女,法律專業(yè))}舉例:D1=姓合={李明,劉濤}D2=性別集合={男,女}D3=專業(yè)集合={計算機(jī)專業(yè),數(shù)學(xué)專業(yè),法律專業(yè)}93關(guān)系定義D1×D2×D3一共有2×2×3=12元組。這12個元組正好組成一張二維表姓名性別專業(yè)李明男計算機(jī)專業(yè)李明男數(shù)學(xué)專業(yè)李明男法律專業(yè)李明女計算機(jī)專業(yè)李明女?dāng)?shù)學(xué)專業(yè)李明女法律專業(yè)劉濤男計算機(jī)專業(yè)劉濤男數(shù)學(xué)專業(yè)劉濤男法律專業(yè)劉濤女計算機(jī)專業(yè)劉濤女?dāng)?shù)學(xué)專業(yè)劉濤女法律專業(yè)94關(guān)系定義3.關(guān)系給定一組域D1,D2,…,Dn,在這些域上笛卡兒積D1×D2×…×Dn上的一個子集,稱為一個關(guān)系,表示為:R(D1,D2,…,Dn)這里R表示關(guān)系的名字,n是關(guān)系的目或度。關(guān)系中的每個元素是關(guān)系中的元組,通常用t表示。當(dāng)n=1時,稱該關(guān)系為單元(目)關(guān)系。當(dāng)n=2時,稱該關(guān)系為二元(目)關(guān)系。95關(guān)系是笛卡兒積的有限子集,所以關(guān)系也是一個二維表,表的每行對應(yīng)一個元組,表的每列對應(yīng)一個域。由于域可以相同,為了加以區(qū)分,必須對每列起一個名字,稱為屬性。在實際應(yīng)用中,關(guān)系往往是從笛卡兒積中選取的有意義的子集。從上例中取出有實際意義的元組來構(gòu)造關(guān)系,該關(guān)系的名字為STU,屬性名就取域名,即姓名、性別和專業(yè)。則這個關(guān)系可以表示為:STU(姓名,性別,專業(yè))96姓名性別專業(yè)李明男計算機(jī)專業(yè)劉濤女會計專業(yè)該關(guān)系可以包含兩個元組,假設(shè)學(xué)生不重名,則姓名屬性的每一個值都唯一地標(biāo)識了一個元組,因此可以作為STU關(guān)系的主碼。974.關(guān)系的三種類型
基本關(guān)系(通常又稱為基本表或基表)、查詢表和視圖表。1、基本表是實際存在的表,它是實際存儲數(shù)據(jù)的邏輯表示2、查詢表是查詢結(jié)果對應(yīng)的表。3、視圖表是由基本表或其他視圖表導(dǎo)出的表,是虛表,不對應(yīng)實際存儲的數(shù)據(jù)。
984.關(guān)系的性質(zhì)(理解)在關(guān)系數(shù)據(jù)庫中,要求關(guān)系中的每一個分量是不可再分的數(shù)據(jù)項,關(guān)系數(shù)據(jù)庫中的關(guān)系應(yīng)具有以下性質(zhì):⑴列是同質(zhì)的,即每一列中的分量均是同類型的數(shù)據(jù),即均來自同一個域。⑵不同的列可以出自同一個域,要給予不同的列不同的屬性名。⑶列的順序是無所謂的,即列的次序可以變換。⑷任意兩個元組不能完全相同。⑸行的順序是無所謂的,即行的次序可以變換。⑹每一分量必須是不可再分的數(shù)據(jù)項。99二、參照完整性1.關(guān)系間的引用2.外碼3.參照完整性規(guī)則1001.關(guān)系間的引用在關(guān)系模型中實體及實體間的聯(lián)系都是用關(guān)系來描述的,因此可能存在著關(guān)系與關(guān)系間的引用。例1學(xué)生實體、專業(yè)實體學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡)專業(yè)(專業(yè)號,專業(yè)名)主碼主碼學(xué)生關(guān)系引用了專業(yè)關(guān)系的主碼“專業(yè)號”。學(xué)生關(guān)系中的“專業(yè)號”值必須是確實存在的專業(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é)生實體及其內(nèi)部的一對多聯(lián)系
學(xué)生(學(xué)號,姓名,性別,專業(yè)號,年齡,班長)“學(xué)號”是主碼,“班長”是外碼,它引用了本關(guān)系的“學(xué)號”“班長”必須是確實存在的學(xué)生的學(xué)號
1032.外碼(ForeignKey)設(shè)F是基本關(guān)系R的一個或一組屬性,但不是關(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必須定義在同一個(或一組)域上外碼并不一定要與相應(yīng)的主碼同名當(dāng)外碼與相應(yīng)的主碼屬于不同關(guān)系時,往往取相同的名字,以便于識別1083.參照完整性規(guī)則
參照完整性規(guī)則若屬性(或?qū)傩越M)F是基本關(guān)系R的外碼,它與基本關(guān)系S的主碼Ks相對應(yīng)(基本關(guān)系R和S不一定是不同的關(guān)系),則對于R中每個元組在F上的值必須為:或者取空值(F的每個屬性值均為空值)或者等于S中某個元組的主碼值109參照完整性規(guī)則(續(xù))[例1]:學(xué)生關(guān)系中每個元組的“專業(yè)號”屬性只取兩類值:(1)空值,表示尚未給該學(xué)生分配專業(yè)(2)非空值,這時該值必須是專業(yè)關(guān)系中某個元組的“專業(yè)號”值,表示該學(xué)生不可能分配一個不存在的專業(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)系中某個元組的學(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)提供定義和檢驗這類完整性的機(jī)制,以便用統(tǒng)一的系統(tǒng)的方法處理它們,而不要由應(yīng)用程序承擔(dān)這一功能115用戶定義的完整性(續(xù))例:
課程(課程號,課程名,學(xué)分)“課程號”屬性必須取唯一值非主屬性“課程名”也不能取空值“學(xué)分”屬性只能取值{1,2,3,4}116補(bǔ)充:第六講數(shù)據(jù)庫表的設(shè)計建表的基本步驟:確定表中有哪些列確定每列的數(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è)計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個字節(jié)Int-2^31(-2,147,483,648)~2^31-1(2,147,483,647)4個字節(jié)smallint-2^15(-32,768)~2^15-1(32,767)2個字節(jié)tinyint0~2551個字節(jié)表3-1使用整數(shù)數(shù)據(jù)的精確數(shù)字?jǐn)?shù)據(jù)類型118表的設(shè)計1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束(2)帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型:decimal和numeric,如表3-2所示。語法形式取值范圍精度范圍存儲空間decimal[(p[,s])]及numeric[(p[,s])]使用最大精度時,有效值從-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個字節(jié)10-199個字節(jié)20-2813個字節(jié)29-3817個字節(jié)119表的設(shè)計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個字節(jié)real-3.40E+38~3.40E+38158個字節(jié)表3-5近似數(shù)字120表的設(shè)計1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束2.(1)非Unicode字符串類型字符串類型以字符的形式存儲數(shù)據(jù),字符可以是SQLServer使用的字符集中任何一個有效字符,如表3-8所示。數(shù)據(jù)類型取值范圍char[(n)]固定長度,非Unicode字符數(shù)據(jù),長度為n個字節(jié)。1≤n≤8000,存儲大小是n個字節(jié)。varchar[(n|max)]可變長度,非Unicode字符數(shù)據(jù)。1≤n≤8000。存儲大小是輸入數(shù)據(jù)的實際長度加2個字節(jié)。所輸入數(shù)據(jù)的長度可以為0個字符。text長度可變的非Unicode數(shù)據(jù),最大長度為2^31-1(2,147,483,647)個字符。表3-8字符串類型121表的設(shè)計1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束2.字符串(2)Unicode字符串如表3-4所示。數(shù)據(jù)類型取值范圍nchar[(n)]n個字符的固定長度的Unicode字符數(shù)據(jù)。1≤n≤4000。存儲大小為2n字節(jié)。nvarchar[(n|max)]包含n個字符的可變長度Unicode字符數(shù)據(jù)。1≤n≤4000。字節(jié)的存儲大小是所輸入字符個數(shù)的兩倍+2個字節(jié)。所輸入的數(shù)據(jù)字符長度可以為零ntext可變長度的Unicode數(shù)據(jù),最大長度為2^30-1(1,073,741,823)個字符。存儲大小是所輸入字符個數(shù)的兩倍(以字節(jié)為單位)。表3-4Unicode字符串122表的設(shè)計1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束3.日期和時間型
SQLServer2005提供了datetime和smalldatetime,用于表示某天的日期和時間的數(shù)據(jù)類型,如表3-7所示。數(shù)據(jù)類型取值范圍精確度datetime1753年1月1日~9999年12月31日3.33毫秒smalldatetime1900年1月1日~2079年6月6日1分鐘表3-7日期和時間型123表的設(shè)計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個字節(jié)smallmoney
-214,748.3648~214,748.36474個字節(jié)表3-3貨幣或貨幣值的數(shù)據(jù)類型5.可以取值為1、0或NULL的整數(shù)數(shù)據(jù)類型:bit124表的設(shè)計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個字節(jié)varbinary[(n)]可變長度二進(jìn)制數(shù)據(jù)。n可以取從1~8,000的值。所輸入數(shù)據(jù)的實際長度+2個字節(jié)。image長度可變的二進(jìn)制數(shù)據(jù),從0~2^31-1(2,147,483,647)個字節(jié)。表3-6二進(jìn)制字符串125表的設(shè)計1.1關(guān)系數(shù)據(jù)庫基礎(chǔ)目錄前一頁后一頁結(jié)束7.其他數(shù)據(jù)類型(1)cursor。這是變量或存儲過程OUTPUT參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)包含對游標(biāo)的引用。(2)timestamp。公開數(shù)據(jù)庫中自動生成的唯一二進(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ù)的結(jié)果集返回的。(6)xml。該數(shù)據(jù)類型使用戶能夠在SQLServer數(shù)據(jù)庫中存儲XML文檔和片段。126創(chuàng)建表建表的語法CREATETABLE
表名
(
字段1數(shù)據(jù)類型列的特征,字段2數(shù)據(jù)類型列的特征,
...)列的特征:包括該列是是否為空(NULL)、是否是標(biāo)識列(自動編號)、是否有默認(rèn)值、是否為主鍵等。127回顧SQLServer的約束約束的目的:確保表中數(shù)據(jù)的完整型常用的約束類型:主鍵約束(PrimaryKeyConstraint):要求主鍵列數(shù)據(jù)唯一,并且不允許為空唯一約束(UniqueConstraint):要求該列唯一,允許為空,但只能出現(xiàn)一個空值。檢查約束(CheckConstraint):某列取值范圍限制、格式限制等,如有關(guān)年齡的約束默認(rèn)約束(DefaultConstraint):某列的默認(rèn)值,如我們的男性學(xué)員較多,性別默認(rèn)為“男”外鍵約束(ForeignKeyConstraint):用于兩表間建立關(guān)系,需要指定引用主表的那列1282.E-R圖轉(zhuǎn)換為關(guān)系模型的原則1、一個實體型轉(zhuǎn)換為一個關(guān)系模式。實體的屬性就是關(guān)系的屬性。實體的碼就是關(guān)系的碼。
2、一個1:1聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與任意一端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,每個實體的碼均是該關(guān)系的候選碼。如果與某一端對應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個關(guān)系模式的碼和聯(lián)系本身的屬性。3、一個1:n聯(lián)系可以轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,也可以與n端對應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的碼為n端實體的碼。12
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國城市公共汽車客運(yùn)行業(yè)運(yùn)營模式及發(fā)展規(guī)劃分析報告
- 2024-2030年中國地板椅項目可行性研究報告
- 2024-2030年中國圖書零售連鎖行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測報告
- 2024-2030年中國回收自控系統(tǒng)項目申請報告
- 2024-2030年中國啤酒行業(yè)市場營銷模式及投資前景展望報告
- 2024-2030年中國原青花素行業(yè)需求規(guī)模及投資價值調(diào)研報告
- 2024年版權(quán)購買合同購買價格及版權(quán)范圍
- 2024年桶裝水品牌形象設(shè)計與宣傳推廣服務(wù)協(xié)議3篇
- 茂名職業(yè)技術(shù)學(xué)院《電子競技用戶分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年人教版八年級地理上冊期末考試卷(附答案)
- 2024年初中七年級英語上冊單元寫作范文(新人教版)
- 2025年蛇年年會匯報年終總結(jié)大會模板
- 2024年度國家公務(wù)員考試公共基礎(chǔ)知識復(fù)習(xí)試卷及答案(共四套)
- 中國高血壓防治指南(2024年修訂版)解讀-治療篇
- 內(nèi)審檢查表完整版本
- 2024年秋季國家開放大學(xué)《形勢與政策》大作業(yè)及答案
- 上海市復(fù)旦附中2025屆高一上數(shù)學(xué)期末檢測模擬試題含解析
- 義務(wù)教育勞動課程標(biāo)準(zhǔn)2022年版考試題庫及答案5
- 《社會調(diào)查研究與方法》形成性考核冊及參考答案
- 腫瘤所治療所致血小板減少癥診療指南
評論
0/150
提交評論