版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
電子商務(wù)數(shù)據(jù)庫(kù)技術(shù)E-BusinessDatabaseTechnology電子商務(wù)的基本結(jié)構(gòu)框架電子商務(wù)應(yīng)用社會(huì)人文環(huán)境(公共政策、法律、規(guī)則等)一般業(yè)務(wù)服務(wù)自然科技環(huán)境(文檔、安全、網(wǎng)絡(luò)協(xié)議的技術(shù)標(biāo)準(zhǔn))多媒體信息發(fā)布安全保障基礎(chǔ)通信網(wǎng)絡(luò)網(wǎng)絡(luò)軟件操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)計(jì)算機(jī)硬件設(shè)備電子商務(wù)應(yīng)用一般業(yè)務(wù)服務(wù)是上商務(wù)活動(dòng)的標(biāo)準(zhǔn)化服務(wù)物流管理視頻點(diǎn)播網(wǎng)上銀行電子市場(chǎng)電子廣告網(wǎng)上娛樂有償信息服務(wù)家庭購(gòu)物目錄服務(wù)多媒體信息發(fā)布文本聲音圖像動(dòng)畫安全保障數(shù)據(jù)存儲(chǔ)的安全保障防止非法用戶的使用防止合法用戶的非法使用防止數(shù)據(jù)丟失和損壞數(shù)據(jù)傳輸?shù)陌踩U蠑?shù)據(jù)在傳輸過程中如何防止被截取防止被截取的數(shù)據(jù)被使用基礎(chǔ)通信網(wǎng)絡(luò)電子商務(wù)的硬件基礎(chǔ)設(shè)施,承擔(dān)著電子商務(wù)信息傳輸?shù)娜蝿?wù)遠(yuǎn)程通信網(wǎng)(telecom)電話(telephone)電報(bào)(telegram)有線電視網(wǎng)(cableTV)無(wú)線通信網(wǎng)(wireless)移動(dòng)通信(mobile)衛(wèi)星網(wǎng)(satellite)互聯(lián)網(wǎng)(internet)主要的互聯(lián)網(wǎng)技術(shù)在操作系統(tǒng)和網(wǎng)絡(luò)軟件的支持下提供的主要技術(shù)WWW(如微軟Explore,網(wǎng)景Netscape)電子郵件(如Outlook,F(xiàn)oxmail等)FTP(如CuteFTP等)Telnet網(wǎng)絡(luò)數(shù)據(jù)庫(kù)系統(tǒng)OracleInformixSQLServerDB2dBASEAccessVisualFoxPro(VFP)計(jì)算機(jī)硬件設(shè)備工作站、服務(wù)器和終端;電話設(shè)備、集線器、交換機(jī)、路由器、調(diào)制解調(diào)器等TCP/IPAppleTalkSPX/IPXNetBIOSDECnetAPPC/LU6.2地位與作用存儲(chǔ)管理查詢結(jié)算處理物理地位電子商務(wù)服務(wù)商組織信息并發(fā)布;用戶根據(jù)需要提取信息發(fā)布向客戶發(fā)送信息http://數(shù)據(jù)庫(kù)工作組客戶靜態(tài)頁(yè)面和動(dòng)態(tài)頁(yè)面數(shù)據(jù)庫(kù)服務(wù)器表 ID LAST_NAME FIRST_NAME 10 Havel Marta 11 Magee Colin 12 Giljum Henry 14 Nguyen Mai SALES_ ID NAME PHONE REP_ID 201 Unisports 55-2066101 12 202 SimmsAtheletics 81-20101 14 203 DelhiSports 91-10351 14 204 Womansport 1-206-104-0103 11表名:S_CUSTOMER表名:S_EMP201202203204靜態(tài)頁(yè)面動(dòng)態(tài)頁(yè)面綁定Web與數(shù)據(jù)庫(kù)集成的主要形式運(yùn)用Web發(fā)布數(shù)據(jù)運(yùn)用Web共享數(shù)據(jù)用數(shù)據(jù)庫(kù)驅(qū)動(dòng)Web站點(diǎn)
建立電子商務(wù)網(wǎng)站步驟選擇ISP和DSP注冊(cè)域名和選擇接入方式網(wǎng)頁(yè)設(shè)計(jì)制作創(chuàng)建和維護(hù)數(shù)據(jù)庫(kù)整合數(shù)據(jù)庫(kù)和網(wǎng)站在Web上使用數(shù)據(jù)庫(kù)ISP服務(wù)提供商,是可以讓用戶連入Internet并提供網(wǎng)絡(luò)服務(wù)的主機(jī)系統(tǒng)互聯(lián)網(wǎng)內(nèi)容提供商(ICP,InternetrContentProvider)。為客戶提供各種網(wǎng)上信息服務(wù)(網(wǎng)絡(luò)新聞、搜索引擎、網(wǎng)頁(yè)制作、電子商務(wù)等)。互聯(lián)網(wǎng)接入提供商(IAP,InternetAccessProvider)。專門為用戶提供上網(wǎng)服務(wù)(虛擬主機(jī)、托管服務(wù)器、專線接入)。DSP數(shù)據(jù)庫(kù)服務(wù)提供商(DatabaseServiceProvider)物理形態(tài)域名是企業(yè)在Internet上的地址,并且具有商標(biāo)的性質(zhì)IAPISPhttp://DSP工作組客戶網(wǎng)頁(yè)設(shè)計(jì)工具Netscape的Navigator、CommunicatorMicrosoft的FrontpageMicromedia的Dreamweaver網(wǎng)頁(yè)三劍客Dreamweaver用于構(gòu)造網(wǎng)站和應(yīng)用程序Fireworks設(shè)計(jì)、優(yōu)化和集成網(wǎng)頁(yè)圖形Flash創(chuàng)建豐富的交互動(dòng)畫網(wǎng)絡(luò)數(shù)據(jù)庫(kù)是數(shù)據(jù)庫(kù)驅(qū)動(dòng)Web站點(diǎn)的核心桌面型中小型面向?qū)ο笮痛笮头植夹蛿?shù)據(jù)倉(cāng)庫(kù)型數(shù)據(jù)庫(kù)系統(tǒng)的幾個(gè)層面數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)數(shù)據(jù)庫(kù)應(yīng)用DBMSDBDBS的設(shè)計(jì)DB的設(shè)計(jì)數(shù)據(jù)的訪問基于Web的應(yīng)用模式客戶訪問通過HTTP(HypertextTransferProtocol)程序設(shè)計(jì)Web站點(diǎn)http://數(shù)據(jù)庫(kù)工作站客戶Web設(shè)計(jì)超文本記語(yǔ)言(HTML,HypertextMarkupLanguage)。提供網(wǎng)頁(yè)顯示功能。腳本語(yǔ)言(如JavaScript、VBScript等)。提供程序控制和訪問控制功能,如數(shù)據(jù)庫(kù)訪問等功能
處理用戶在表單中數(shù)據(jù),編輯、復(fù)制它們到隱含域,等等增強(qiáng)界限效果控制表單的提交和生成復(fù)雜的URL請(qǐng)求。四個(gè)基本概念數(shù)據(jù)(Data)數(shù)據(jù)庫(kù)(Database,簡(jiǎn)稱DB)數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,簡(jiǎn)稱DBMS)數(shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem,簡(jiǎn)稱DBS)數(shù)據(jù)描述事物的符號(hào)記錄。例(李明,男,22,1982,浙江,計(jì)算機(jī),1999)語(yǔ)義李明是個(gè)大學(xué)生,1982年出生,今年22歲,男性,浙江人,1999年考入計(jì)算機(jī)系數(shù)據(jù)的形式還不能完全表達(dá)其內(nèi)容,需要經(jīng)過解釋。數(shù)據(jù)的解釋是指對(duì)數(shù)據(jù)含義的說明,數(shù)據(jù)的含義稱為數(shù)據(jù)的語(yǔ)義,數(shù)據(jù)與其語(yǔ)義是不可分的。數(shù)據(jù)庫(kù)長(zhǎng)期儲(chǔ)存在計(jì)算機(jī)內(nèi),有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可為各種用戶共享。數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)管理軟件系統(tǒng)。管理、控制數(shù)據(jù)庫(kù)的建立、運(yùn)行和維護(hù)。功能數(shù)據(jù)定義功能數(shù)據(jù)操縱功能數(shù)據(jù)庫(kù)的運(yùn)行管理數(shù)據(jù)庫(kù)的建立和維護(hù)功能數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)引入到計(jì)算機(jī)系統(tǒng)中的系統(tǒng)構(gòu)成,一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。在一般不引起混淆的情況下常常把數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)稱為數(shù)據(jù)庫(kù)。數(shù)據(jù)管理技術(shù)的發(fā)展階段人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段人工管理階段1)不保存;2)無(wú)軟件管理,由應(yīng)用程序直接管理;3)不共享;4)無(wú)獨(dú)立性。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)組1數(shù)據(jù)組2數(shù)據(jù)組n…文件系統(tǒng)階段1)長(zhǎng)期保存;2)文件系統(tǒng)管理數(shù)據(jù);3)共享差,冗余度大;4)獨(dú)立性差。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…文件1文件2文件n文件系統(tǒng)(FS)…數(shù)據(jù)庫(kù)系統(tǒng)階段1)數(shù)據(jù)結(jié)構(gòu)化;2)共享好,冗余低,易擴(kuò)充;3)獨(dú)立性高;4)DBMS統(tǒng)一管理和控制。應(yīng)用程序1應(yīng)用程序2應(yīng)用程序n…數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展第一代,層次數(shù)據(jù)庫(kù)系統(tǒng)和網(wǎng)狀數(shù)據(jù)庫(kù)系統(tǒng)第二代,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)第三代,面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)模型數(shù)據(jù)模型是數(shù)據(jù)庫(kù)中用于抽象、表示和處理現(xiàn)實(shí)世界中的數(shù)據(jù)和信息的工具。需要滿足三方面要求:一是能比較真實(shí)地模擬現(xiàn)實(shí)世界;二是容易為人所理解;三是便于在計(jì)算機(jī)上實(shí)現(xiàn)。機(jī)器世界DBMS支持的數(shù)據(jù)模型信息世界概念模型現(xiàn)實(shí)世界認(rèn)識(shí)抽象數(shù)據(jù)模型的組成要求1、
數(shù)據(jù)結(jié)構(gòu)是所研究的對(duì)象類型的集合。屬于系統(tǒng)靜態(tài)特性。2、
數(shù)據(jù)操作是指對(duì)數(shù)據(jù)庫(kù)中各種對(duì)象(型)的實(shí)例(值)允許執(zhí)行的操作的集合。屬于系統(tǒng)動(dòng)態(tài)特性。3、
數(shù)據(jù)約束條件是一組完整性規(guī)則的集合。完整性規(guī)則是給定的數(shù)據(jù)模型中數(shù)據(jù)及其聯(lián)系所具有的制約和依存規(guī)則,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫(kù)狀態(tài)以及狀態(tài)的變化,以保證數(shù)據(jù)的正確、有效、相容。概念模型概念模型實(shí)際上是現(xiàn)實(shí)世界到機(jī)器世界的一個(gè)中間層次?;靖拍顚?shí)體(entity):客觀存在,并可相互區(qū)別的事物。屬性(attribute):實(shí)體的某一特性。碼(key):唯一標(biāo)識(shí)實(shí)體的屬性集合。域(domain):屬性的取值范圍。實(shí)體型(entitytype):實(shí)體及其屬性名集合來抽象和刻畫同類實(shí)體。實(shí)體集(entityset):同類實(shí)體的集合。聯(lián)系(relationship):實(shí)體之間、實(shí)體內(nèi)部屬性間的聯(lián)系。如1:1、1:n、m:n等。概念模型表示方法E-R圖,P.P.S.Chen于1976年提出(entity-relationshipapproach)。實(shí)體型:用矩形表示,矩形框內(nèi)寫明實(shí)體屬性:用橢圓形表示,并用無(wú)向邊將其一相應(yīng)的實(shí)體連接起來聯(lián)系:用菱形表示,菱形框人寫明聯(lián)系名,并用無(wú)向邊分別與有關(guān)實(shí)體連接起來,同時(shí)在無(wú)向邊旁標(biāo)上聯(lián)系的類型(1:1,1:m,m:n等)示例1一般的聯(lián)系班級(jí)班級(jí)-班長(zhǎng)班長(zhǎng)11班級(jí)組成學(xué)生1n1:1課程選修學(xué)生mn1:nm:n示例2特殊的聯(lián)系課程講授教師1m參考書n三個(gè)實(shí)體間的聯(lián)系職工經(jīng)理1n實(shí)體內(nèi)部的聯(lián)系示例3E-R圖課程講授教師1m參考書n選修學(xué)生mn班級(jí)組成1n小組長(zhǎng)n1成績(jī)常用的數(shù)據(jù)模型層次模型(hierarchicalmodel)網(wǎng)狀模型(networkmodel)關(guān)系模型(relationalmodel)層次模型代表:IBM的IMS(InformationManagementSystem)數(shù)據(jù)結(jié)構(gòu)基本結(jié)構(gòu)只有一個(gè)結(jié)點(diǎn)無(wú)雙親,即為根結(jié)點(diǎn)(1:1)其他結(jié)點(diǎn)有且只有一個(gè)雙親結(jié)點(diǎn)(1:n)多對(duì)多(m:n)冗余結(jié)點(diǎn)法:m:n=1:m+1:n虛擬結(jié)點(diǎn)法:將冗余結(jié)點(diǎn)轉(zhuǎn)為虛擬結(jié)點(diǎn),即指引元,指向替代的結(jié)點(diǎn)。其它非樹型結(jié)構(gòu)轉(zhuǎn)換成樹型操縱與完整性約束沒有雙親結(jié)點(diǎn)值不能插入子女結(jié)點(diǎn)值刪除雙親結(jié)點(diǎn)值,相應(yīng)子女值也同時(shí)刪除冗余結(jié)點(diǎn)更新時(shí),幾處同時(shí)更新存儲(chǔ)結(jié)構(gòu)鄰接法:層次樹前序鏈接法:用指引元反映數(shù)據(jù)之間的層次聯(lián)系優(yōu)缺點(diǎn)簡(jiǎn)單;聯(lián)系固定;完整性良好。非層次表示笨拙;插入、刪除限制多;查詢子女通過雙親;層次命令趨于程序化。示例用層次模型表示多對(duì)多E-R圖S→CC→SS→V.CC→V.SS#SNSSS-CC#CNmn學(xué)生S課程CS#SNSSC#CNC#CNS#SNSSS#SNSSC#CNV.CV.S網(wǎng)狀模型典型代表是DBTG系統(tǒng),也稱CODASYL系統(tǒng)。這是20世紀(jì)70年代數(shù)據(jù)系統(tǒng)語(yǔ)言研究會(huì)CODASYL(ConferenceOnDataSystemLanguage)下屬的數(shù)據(jù)庫(kù)任務(wù)組(DataBaseTaskGroup,簡(jiǎn)稱DBTG)提出的一個(gè)系統(tǒng)方案數(shù)據(jù)結(jié)構(gòu)可以有一個(gè)以上的結(jié)點(diǎn)無(wú)雙親;至少有一點(diǎn)結(jié)點(diǎn),有多于一個(gè)的雙親;兩個(gè)結(jié)點(diǎn)之間可以有兩種或多種聯(lián)系。操縱與完整性約束
插入操作允許尚未確定雙親結(jié)點(diǎn)值的子女結(jié)點(diǎn)值;刪除操作允許只刪除雙親結(jié)點(diǎn)值。存儲(chǔ)結(jié)構(gòu)鏈接法:?jiǎn)蜗?、雙向、環(huán)狀、向首引元陣列、二進(jìn)制陣列、索引優(yōu)缺點(diǎn)更直接描述;性能良好、存取效率高。DDL復(fù)雜;獨(dú)立性差、指定存取路徑。示例網(wǎng)狀模型表示多對(duì)多學(xué)號(hào)姓名年齡性別課程號(hào)課程名學(xué)號(hào)課程號(hào)成績(jī)學(xué)生(S)課程(C)學(xué)生-成績(jī)系(S-SC)課程-成績(jī)系(C-SC)成績(jī)(SC)關(guān)系模型關(guān)系模型(relationalmodel)1970年E.F.Codd論文“大型共享系統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的關(guān)系模型”數(shù)據(jù)結(jié)構(gòu)邏輯結(jié)構(gòu)是二維表,由行和列組成。關(guān)系:二維表。元組:表中的一行。屬性:表中的一列。主碼(key):屬性組(集),可以唯一確定一個(gè)元組。域(domain):屬性的取值范圍。分量:元組中的一個(gè)屬性值。關(guān)系模式:對(duì)關(guān)系的描述。表示為:關(guān)系名(屬性1,屬性2,……屬性n)操縱與完整性約束集合操作(操作對(duì)象、操作結(jié)果都是關(guān)系(元組的集合)):查詢、插入、刪除、修改。實(shí)體完整性、參照完整性、用戶定義的完整性。存儲(chǔ)結(jié)構(gòu)實(shí)體、及實(shí)體之間的聯(lián)系用“表”表示,表以文件形式存儲(chǔ)優(yōu)缺點(diǎn)與非關(guān)系模型不同,它建立于嚴(yán)格的數(shù)學(xué)概念(關(guān)系代數(shù))的基礎(chǔ)上的;關(guān)系模型的概念單一。無(wú)論實(shí)體還是實(shí)體間的聯(lián)系都用關(guān)系表示,對(duì)數(shù)據(jù)的檢索結(jié)果也是關(guān)系(即表)。故其數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、清晰,用戶易懂易用;關(guān)系模型的存取路徑對(duì)用戶透明,具有更高的數(shù)據(jù)獨(dú)立性,更好的安全保密性,也簡(jiǎn)化了程序員的工作和數(shù)據(jù)庫(kù)開發(fā)建立的工作。
由于存取路徑對(duì)用戶透明,查詢效率不如非關(guān)系數(shù)據(jù)模型;為提高性能,須對(duì)用戶查詢請(qǐng)求進(jìn)行優(yōu)化,從而增加了數(shù)據(jù)庫(kù)管理系統(tǒng)的負(fù)擔(dān)。示例二維表學(xué)生登記表學(xué)號(hào)姓名性別系別年齡95001張三男CS2096010李四女IS1999100王五男MA17關(guān)系名列,屬性名,主碼行,元組域:如整數(shù)三級(jí)模式結(jié)構(gòu)應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D外模式3外模式2外模式1123模式內(nèi)模式DB一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式外模式/模式映象模式/內(nèi)模式映象也稱子模式、用戶模式。是模式的子集。是用戶的數(shù)據(jù)視圖,與某一應(yīng)用有關(guān)。也稱邏輯模式。是所有用戶的公共數(shù)據(jù)視圖。與應(yīng)用開發(fā)工具、應(yīng)用無(wú)關(guān);與物理存儲(chǔ)、硬件環(huán)境無(wú)關(guān)。也稱存儲(chǔ)模式。數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。只有一個(gè)內(nèi)模式;主要描述存儲(chǔ)方式,如順序存儲(chǔ)、B樹存儲(chǔ),hash存儲(chǔ);以及如何進(jìn)行索引、壓縮、加密等。數(shù)據(jù)獨(dú)立性邏輯獨(dú)立性當(dāng)模式改變時(shí)(例如增加新的關(guān)系、新的屬性、改變屬性的數(shù)據(jù)類型等),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/模式的映象作相應(yīng)改變,可以使外模式保持不變。應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而也不必修改,保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。物理獨(dú)立性當(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ú)立性。數(shù)據(jù)庫(kù)系統(tǒng)的組成硬件平臺(tái)及數(shù)據(jù)庫(kù)足夠大的內(nèi)存足夠大的磁盤較高的通道能力軟件DBMS支持DBMS的OS具有與數(shù)據(jù)庫(kù)接口的高級(jí)語(yǔ)言及其編譯系統(tǒng)以DBMS為核心的應(yīng)用開發(fā)工具為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)人員數(shù)據(jù)庫(kù)管理員系統(tǒng)分析員和數(shù)據(jù)庫(kù)設(shè)計(jì)人員應(yīng)用程序員用戶用戶偶然用戶不經(jīng)常訪問數(shù)據(jù)庫(kù)。一般是企業(yè)或組織機(jī)構(gòu)的高中級(jí)管理人員。簡(jiǎn)單用戶查詢和修改數(shù)據(jù)庫(kù)。銀行的職員、航空公司的機(jī)票預(yù)定工作人員、旅館總臺(tái)服務(wù)員等。復(fù)雜用戶包括工程師、科學(xué)家、經(jīng)濟(jì)學(xué)家、科學(xué)技術(shù)工作者等能夠直接使用數(shù)據(jù)庫(kù)語(yǔ)言訪問數(shù)據(jù)庫(kù),甚至編制應(yīng)用程序的人。DBA的工作職責(zé)決定數(shù)據(jù)庫(kù)中的信息內(nèi)容和結(jié)構(gòu)決定數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)和存取策略定義數(shù)據(jù)的安全性要求和完整性約束條件監(jiān)控?cái)?shù)據(jù)庫(kù)的使用和運(yùn)行數(shù)據(jù)庫(kù)的改進(jìn)和重組重構(gòu)數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)是數(shù)據(jù)庫(kù)系統(tǒng)的核心,是為數(shù)據(jù)庫(kù)的建立、使用和維護(hù)而配置的軟件。DBMS建立在操作系統(tǒng)的基礎(chǔ)上,是位于操作系統(tǒng)與用戶之間的一層數(shù)據(jù)管理軟件,負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的管理和控制。用戶發(fā)出的或應(yīng)用程序中的各種操作數(shù)據(jù)庫(kù)中數(shù)據(jù)的命令,都要通過數(shù)據(jù)庫(kù)管理系統(tǒng)來執(zhí)行。數(shù)據(jù)庫(kù)管理系統(tǒng)還承擔(dān)著數(shù)據(jù)庫(kù)的維護(hù)工作,能夠按照數(shù)據(jù)庫(kù)管理員所規(guī)定的要求,保證數(shù)據(jù)庫(kù)的安全性和完整性。DBMS的功能和組成功能數(shù)據(jù)定義模式、存儲(chǔ)模式和外模式,各模式間的映象定義,及定義結(jié)束條件數(shù)據(jù)操縱檢索、插入、刪除、修改等數(shù)據(jù)庫(kù)運(yùn)行管理并發(fā)控制、安全性檢查、完整性約束條件等的檢查與執(zhí)行。內(nèi)部維護(hù)(包括索引、數(shù)據(jù)字典的自動(dòng)維護(hù))
數(shù)據(jù)組織、存儲(chǔ)和管理文件結(jié)構(gòu)、存取方式(如何保證空間利用率和處理效率(時(shí)間效率))數(shù)據(jù)庫(kù)的建立與維護(hù)初始數(shù)據(jù)輸入、數(shù)據(jù)轉(zhuǎn)換等。轉(zhuǎn)儲(chǔ)(備份)與恢復(fù)、重組、重構(gòu)等。數(shù)據(jù)通信接口與用戶的通信接口,各服務(wù)器間的通信接口等組成數(shù)據(jù)定義語(yǔ)言及其翻譯處理程序DDL數(shù)據(jù)操縱語(yǔ)言及其編譯(或翻譯)程序DML,宿主型、自主型(自含型)數(shù)據(jù)庫(kù)運(yùn)行控制程序
實(shí)用程序
數(shù)據(jù)庫(kù)保護(hù)DBMS的數(shù)據(jù)控制功能數(shù)據(jù)安全性(Security)保護(hù)數(shù)據(jù)完整性(Integrity)控制并發(fā)(Concurrency)控制數(shù)據(jù)庫(kù)恢復(fù)(Recovery)安全性控制三層安全防線操作系統(tǒng)的安全保護(hù)機(jī)制DBMS的安全保護(hù)機(jī)制數(shù)據(jù)庫(kù)中對(duì)象的安全保護(hù)機(jī)制計(jì)算機(jī)系統(tǒng)采用的安全措施用戶標(biāo)識(shí)和鑒定存取控制視圖數(shù)據(jù)加密數(shù)據(jù)庫(kù)審計(jì)完整性約束此外,還可以分立即執(zhí)行約束(語(yǔ)句結(jié)束)和延遲執(zhí)行約束(事務(wù)結(jié)束)粒度/狀態(tài)列級(jí)元組級(jí)關(guān)系級(jí)靜態(tài)類型格式值域空值其它元組值應(yīng)滿足的條件實(shí)體完整性約束參照完整性約束函數(shù)依賴約束統(tǒng)計(jì)約束動(dòng)態(tài)改變列定義或列值元組新舊值之間應(yīng)滿足的約束條件關(guān)系新舊狀態(tài)間應(yīng)滿足的約束條件Oracle示例CREATETABLEEMP(EmpnoNUMERIC(4)PRIMARYKEY,EnameVARCHAR(10)NOTNULL,JobVARCHAR(9),MgrNUMERIC(4),SalNUMERIC(7,2)CHECK(Sal>300),DeptnoNUMERIC(2),
CONSTRAINTFK_DEPTNOFOREIGNKEY(Deptno)
REFERENCEDEPT(Deptno)
ONDELETECASCADE);并發(fā)控制并發(fā)控制的單位—事務(wù)(transaction)Begintransaction數(shù)據(jù)庫(kù)操縱語(yǔ)句集Commit/rollback并發(fā)操作導(dǎo)致數(shù)據(jù)的不一致性丟失數(shù)據(jù)不可重復(fù)讀讀“臟”數(shù)據(jù)不一致性的示例時(shí)間事務(wù)1事務(wù)2t1檢索,讀A=16
t2
檢索,讀A=16t3更新,A←A-1寫回A=15
t4
更新,A←A-1寫回A=15時(shí)間事務(wù)1事務(wù)2t1檢索,讀B=200
t2
檢索,讀B=200t3更新,B←B*2寫回B=400t4檢索,讀B=400
時(shí)間事務(wù)1事務(wù)2t1檢索,讀C=200更新,C←C+100寫回C=300
t2
t3檢索,讀C=300t4撤銷(ROLLBACK)數(shù)據(jù)庫(kù)技術(shù)新進(jìn)展分布式數(shù)據(jù)庫(kù)面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)多媒體數(shù)據(jù)庫(kù)分布式數(shù)據(jù)庫(kù)DDBMS是在兩臺(tái)或多臺(tái)地理上或物理上分散而邏輯上集中的數(shù)據(jù)庫(kù)系統(tǒng)?!晥D(計(jì)算機(jī)學(xué)生)視圖(數(shù)學(xué)系學(xué)生)視圖(中文系學(xué)生)全局概念模式(學(xué)生)局部概念模式(玉泉校區(qū)學(xué)生)分片模式(按校區(qū)劃分)局部?jī)?nèi)模式(UNIX平臺(tái))局部?jī)?nèi)模式(LINUX平臺(tái))分配模式(各校區(qū)學(xué)生信息各自存儲(chǔ))局部?jī)?nèi)模式(WINDOWS平臺(tái))局部概念模式(紫金港校區(qū)學(xué)生)局部概念模式(西溪校區(qū)學(xué)生)全局外層全局概念層局部概念層…………局部?jī)?nèi)層面向?qū)ο髷?shù)據(jù)庫(kù)系統(tǒng)OODBMS是數(shù)據(jù)庫(kù)技術(shù)與面向?qū)ο蠹夹g(shù)相結(jié)合的產(chǎn)物。具有表示和構(gòu)造復(fù)雜對(duì)象的能力通過封裝和消息隱藏技術(shù)提供了程序的模塊化機(jī)制繼承和類層次技術(shù)不僅能表示ISA聯(lián)系,還提供了軟件重用的機(jī)制通過滯后聯(lián)編*等概念提供系統(tǒng)擴(kuò)充能力提供與宿主語(yǔ)言的無(wú)縫(seamless)連接消息中的方法名,在應(yīng)該程序編譯時(shí)還不能確定它所代表的過程,只有執(zhí)行時(shí),當(dāng)消息發(fā)送到具體的對(duì)象后,方法名的方法的過程才能夠結(jié)合。這種“名”與“義”的推遲結(jié)合稱為滯后聯(lián)編(latebinding)多媒體數(shù)據(jù)庫(kù)MDB是能夠管理數(shù)值、文件、表格、表格、圖形、圖像、聲音等多媒體的數(shù)據(jù)庫(kù)應(yīng)用方式基于關(guān)系模型,加以擴(kuò)充,使之支持多媒體數(shù)據(jù)庫(kù)類型基于OO模型來實(shí)現(xiàn)對(duì)多媒體信息的描述和操作基于超文本模型關(guān)鍵技術(shù)數(shù)據(jù)模型技術(shù),如OO數(shù)據(jù)模型、語(yǔ)義數(shù)據(jù)模型等數(shù)據(jù)的存儲(chǔ)管理和壓縮/解壓技術(shù)多媒體信息的再現(xiàn)和良好的用戶界面技術(shù)多媒體信息的檢索與查詢及其他處理技術(shù)分布式環(huán)境與并行處理技術(shù)客戶機(jī)/服務(wù)器技術(shù)客戶機(jī)/服務(wù)器的結(jié)構(gòu)C/S的組成三層結(jié)構(gòu)的客戶機(jī)/服務(wù)器結(jié)構(gòu)C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)現(xiàn)技術(shù)客戶機(jī)/服務(wù)器的結(jié)構(gòu)節(jié)點(diǎn)(Site)1客戶機(jī)(Client)節(jié)點(diǎn)(Site)2客戶機(jī)(Client)節(jié)點(diǎn)(Site)3服務(wù)器(Server)節(jié)點(diǎn)(Site)n客戶機(jī)通訊網(wǎng)絡(luò)(CommunicationNetwork)服務(wù)器(Server)……接口接口接口接口C/S的組成客戶機(jī)是一個(gè)面向?qū)ο笞罱K用戶的接口或應(yīng)用程序。它通過向一個(gè)設(shè)備或應(yīng)用程序(服務(wù)器)發(fā)出請(qǐng)求信息,然后將信息顯示給用戶。主要處理界面。服務(wù)器建立進(jìn)程和網(wǎng)絡(luò)服務(wù)地址、監(jiān)聽用戶的調(diào)用、處理客戶的請(qǐng)求、將結(jié)果交給客戶機(jī)和釋放與客戶機(jī)的連接。是主要處理設(shè)備。連接件多指一種軟件通信過程;對(duì)應(yīng)用開發(fā)人員來說,客戶機(jī)/服務(wù)器之間的連接主要是它所能使用的軟件工具和編程函數(shù)。如ODBC。三層結(jié)構(gòu)的客戶機(jī)/服務(wù)器結(jié)構(gòu)三層C/S模式客戶機(jī)客戶機(jī)……客戶機(jī)應(yīng)用邏輯應(yīng)用服務(wù)器(Web服務(wù)器)數(shù)據(jù)庫(kù)服務(wù)器網(wǎng)絡(luò)自定義協(xié)議DBMS接口DBDB優(yōu)點(diǎn)整個(gè)系統(tǒng)被分為不同的邏輯塊,層次非常清晰能夠使“肥客戶機(jī)”變成“瘦客戶機(jī)”開發(fā)和管理的工作向服務(wù)器方向轉(zhuǎn)移,使得分布數(shù)據(jù)處理成為可能管理和維護(hù)變得相對(duì)簡(jiǎn)單加強(qiáng)整個(gè)系統(tǒng)的安全性C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn)技術(shù)開放的數(shù)據(jù)庫(kù)訪問接口ODBC(OpenedDatabaseConnectivity)JDBC存儲(chǔ)過程高性能。存儲(chǔ)過程是以編譯和優(yōu)化后的形式存儲(chǔ)的,因此在被調(diào)用時(shí)可以直接運(yùn)行,速度快。存儲(chǔ)在服務(wù)器端。共享性簡(jiǎn)化了應(yīng)用開發(fā)過程,提高了應(yīng)用開發(fā)效率簡(jiǎn)化了安全性控制分布數(shù)據(jù)管理數(shù)據(jù)復(fù)制和分布兩階段提交因特網(wǎng)多層應(yīng)用示例因特網(wǎng)瀏覽器瀏覽器……瀏覽器應(yīng)用邏輯Web服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器自定義協(xié)議DBMS接口DBDBWeb服務(wù)及應(yīng)用選擇應(yīng)用服務(wù)器應(yīng)用邏輯自定義協(xié)議……關(guān)系模式關(guān)系模式是關(guān)系的描述,它由五部分組成,即為五元組:R(U,D,DOM,F)其中R為關(guān)系名,U是屬性集合,D是域的集合,即取值范圍的集合。DOM是屬性源域(屬性集合U中屬性所來自的域),為屬性向域的映象集合F為屬性間的數(shù)據(jù)依賴關(guān)系集合。簡(jiǎn)化描述R(U,F),甚至R(U)關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)中的異常問題數(shù)據(jù)冗余更新異常插入異常刪除異常示例數(shù)據(jù)學(xué)生(學(xué)號(hào),姓名,系名,系負(fù)責(zé)人,課程名,成績(jī))主碼={學(xué)號(hào),課程名}學(xué)號(hào)(6)姓名(8)系名(8)系負(fù)責(zé)人(8)課程名(10)成績(jī)(2)980701章涌管理系李瑞祥市場(chǎng)營(yíng)銷85980701章涌管理系李瑞祥技術(shù)經(jīng)濟(jì)78980701章涌管理系李瑞祥生產(chǎn)管理80980702李文利管理系李瑞祥市場(chǎng)營(yíng)銷70980702李文利管理系李瑞祥技術(shù)經(jīng)濟(jì)86980702李文利管理系李瑞祥生產(chǎn)管理90980703王沐陽(yáng)管理系李瑞祥市場(chǎng)營(yíng)銷84980703王沐陽(yáng)管理系李瑞祥技術(shù)經(jīng)濟(jì)75980703王沐陽(yáng)管理系李瑞祥生產(chǎn)管理70980704楊舒管理系李瑞祥市場(chǎng)營(yíng)銷78980704楊舒管理系李瑞祥技術(shù)經(jīng)濟(jì)72980704楊舒管理系李瑞祥生產(chǎn)管理9012行42字節(jié)數(shù)據(jù)冗余總字節(jié)數(shù)=(6+8+8+8+10+2)*12=504B系名和系負(fù)責(zé)人重復(fù)12次學(xué)號(hào)和姓名重復(fù)3次課程名重復(fù)4次更新異常管理系負(fù)責(zé)人改為李增瑞需要修改12條記錄(所有相關(guān)的記錄,與該系的學(xué)生有關(guān))由于數(shù)據(jù)重復(fù)存儲(chǔ)導(dǎo)致更新操作復(fù)雜化。插入異常計(jì)算機(jī)系成立,尚未招生——無(wú)法插入在學(xué)生表存儲(chǔ)數(shù)據(jù)必須保證其實(shí)體完整性——主屬性不為空,故學(xué)號(hào)和課程名不能為空招生完畢,但學(xué)生尚未選修課程——無(wú)法插入學(xué)號(hào)是有了,但由于未選修,所以課程名不知道,不能保證主屬性不為空的實(shí)體完整性要求。求學(xué)校有多少系?結(jié)果不正確,在學(xué)生表中還未有計(jì)算機(jī)系含在內(nèi)。問計(jì)算機(jī)系負(fù)責(zé)人是誰(shuí)?不知道,計(jì)算機(jī)系不存在。由于信息不全,導(dǎo)致應(yīng)該存儲(chǔ)的數(shù)據(jù)無(wú)法存儲(chǔ)。刪除異常管理系98級(jí)學(xué)生畢業(yè),刪除所有該年級(jí)學(xué)生。由于管理系只有98級(jí)學(xué)生,被刪除后,連帶管理系及其負(fù)責(zé)人信息一起被刪除。問學(xué)校有幾個(gè)系?問管理系負(fù)責(zé)人是誰(shuí)?若980701學(xué)生取消三門選修課程,則需要?jiǎng)h除該學(xué)生對(duì)應(yīng)的三條記錄該學(xué)生記錄信息也會(huì)因此被刪除。問管理系有多少學(xué)生?刪除元組時(shí)導(dǎo)致額外信息的丟失根本原因上述學(xué)生關(guān)系模式的規(guī)范化程序較低。解決的辦法通過規(guī)范化理論對(duì)其進(jìn)行規(guī)范化,可以逐步降低和消除上述問題基礎(chǔ)概念函數(shù)依賴(FunctionalDependency)非平凡的函數(shù)依賴(NontrivialFunctionalDependency)完全函數(shù)依賴(FullFunctionalDependency)部分函數(shù)依賴(PartialFunctionalDependency)傳遞函數(shù)依賴(TransitiveFunctionalDependency)函數(shù)依賴定義1:對(duì)于R中屬性X的任何一個(gè)具體值,Y僅有唯一的具體值與之對(duì)應(yīng),則稱R的屬性Y函數(shù)依賴于屬性X,記作X→Y,X稱為決定因素(Determinant)。設(shè)R(U)是一關(guān)系模式,U是R的屬性集合。X和Y是U的子集,對(duì)于R(U)的任意一個(gè)可能的關(guān)系r,如果r中不存在兩個(gè)元組,它們?cè)赬上的屬性值相同,而在Y上的屬性值不同,則稱“X函數(shù)確定Y”或“Y函數(shù)依賴于X”,記作X→Y。例如:學(xué)號(hào)→姓名,學(xué)號(hào)→系名(學(xué)號(hào),課程名)→成績(jī)非平凡的函數(shù)依賴在關(guān)系模式R(U)中,對(duì)于U的子集X和Y,如果X→Y,但Y?X,則稱X→Y是非平凡函數(shù)依賴。若Y?X,則稱X→Y為平凡函數(shù)依賴。對(duì)任一關(guān)系模式,平凡函數(shù)依賴都必然成立,不能反映新的語(yǔ)義,故一般只討論非平凡的函數(shù)依賴。完全函數(shù)依賴與部分函數(shù)依賴定義2:在R中如果屬性集Y函數(shù)依賴于屬性庥X,且不函數(shù)依賴于X的任何真子集,則稱Y完全函數(shù)依賴于X,記作XY,否則Y部分函數(shù)依賴于X,記作XY。在關(guān)系模式R(U)中,如果X→Y,且對(duì)于X的任一真子集X’,都有X’?Y,則稱Y完全函數(shù)依賴于X,記XY。若X→Y,但Y不完全函數(shù)依賴于X,則稱Y部分函數(shù)依賴于X,記X
Y。如關(guān)系SC(Sno,Cno,Grade)中,由于Sno?Grade,Cno?Grade。所以有(Sno,Cno)Grade。傳遞函數(shù)依賴定義3:在R中,對(duì)于屬性子集X、Y、Z,若XY,Y?X,Y→Z,則稱Z對(duì)X傳遞函數(shù)依賴,記作XZ。在關(guān)系模式R(U)中,如果X→Y,Y→Z且Z?Y(即Z-Y≠φ),Y?X,則稱Z傳遞函數(shù)依賴于X。記作XY,或者X
Y。說明:Y→Z且Z?Y(即Z-Y≠φ)是指Y與Z之間的函數(shù)依賴是非平凡的。而加上條件:Y?X,否則因?yàn)槿绻鸜→X,則X←→Y,故XZ。并非傳遞函數(shù)依賴了。如關(guān)系Std(Sno,Sdept,Mname)中有Sno→Sdept,Sdept→Mname,且Sdept?Sno,故Sno
Mname。碼如果K
U,則K
是關(guān)系模式R(U)的超級(jí)碼(Superkey)K
是R(U)的候選碼(candidatekey)當(dāng)且僅當(dāng)K
U,且不存在
K,使
U成立。即K
R若關(guān)系模式R有多個(gè)候選碼,則選定其中一個(gè)作為主碼(primarykey)外碼外部碼(Foreignkey):如果關(guān)系R的某一屬性組A不是R的候選碼,而是另一關(guān)系S的候選碼,則稱A為R的外部碼。外部碼提供了一種表示兩個(gè)關(guān)系聯(lián)系的方法包含在任意一個(gè)候選碼中的屬性,稱為主屬性。不包含在任何候選碼中的屬性稱為非主屬性。范式范式(NormalForm)是符合某一級(jí)別的關(guān)系模式的集合。目前主要有六種范式,即第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、BC范式(BCNF)、第四范式(4NF)和第五范式(5NF)。它們之間有如下的關(guān)系。1NF?2NF?3NF?BCNF?4NF?5NF若R為第n范式,則記R∈nNF。第一范式(1NF)如果一個(gè)關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R∈1NF。1NF是關(guān)系模式的最起碼要求,不滿足第一范式的數(shù)據(jù)庫(kù)模式不能稱為關(guān)系數(shù)據(jù)庫(kù)。例如,學(xué)生(學(xué)號(hào),姓名,系名,系負(fù)責(zé)人,課程名,成績(jī))第二范式(2NF)若關(guān)系模式R∈1NF,并且每一個(gè)非主屬性都完全函數(shù)依賴于R的碼,則R∈2NF。將學(xué)生(學(xué)號(hào),姓名,系名,系負(fù)責(zé)人,課程名,成績(jī))中存在的非主屬性對(duì)碼的部分函數(shù)依賴消除后可以降低和消除異常問題。姓名、系名、系負(fù)責(zé)人部分函數(shù)依賴于{學(xué)號(hào),課程名},但都完全函數(shù)依賴于學(xué)號(hào)。學(xué)生情況(學(xué)號(hào),姓名,系名,系負(fù)責(zé)人)成績(jī)(學(xué)號(hào),課程名,成績(jī))規(guī)范化結(jié)果學(xué)生情況(學(xué)號(hào),姓名,系名,系負(fù)責(zé)人)成績(jī)(學(xué)號(hào),課程名,成績(jī))學(xué)號(hào)(6)姓名(8)系名(8)系負(fù)責(zé)人(8)980701章涌管理系李瑞祥980702李文利管理系李瑞祥980703王沐陽(yáng)管理系李瑞祥980704楊舒管理系李瑞祥學(xué)號(hào)(6)課程名(10)成績(jī)(2)980701市場(chǎng)營(yíng)銷85980701技術(shù)經(jīng)濟(jì)78980701生產(chǎn)管理80980702市場(chǎng)營(yíng)銷70980702技術(shù)經(jīng)濟(jì)86980702生產(chǎn)管理90980703市場(chǎng)營(yíng)銷84980703技術(shù)經(jīng)濟(jì)75980703生產(chǎn)管理70980704市場(chǎng)營(yíng)銷78980704技術(shù)經(jīng)濟(jì)72980704生產(chǎn)管理90規(guī)范化前總字節(jié)數(shù)=(6+8+8+8+10+2)*12=504B規(guī)范化后總字節(jié)數(shù)=(6+8+8+8)*4+(6+10+2)*12=120B+216B=336B異常問題緩解數(shù)據(jù)冗余(減輕,但仍存在)數(shù)據(jù)冗余:系名和系負(fù)責(zé)人重復(fù)4次;學(xué)號(hào)重復(fù)3次;課程名重復(fù)4次。更新異常(減輕,但仍存在)修改管理系負(fù)責(zé)人為李增瑞需涉及4條記錄插入異常(減輕,但仍存在)計(jì)算機(jī)系成立,尚未招生——無(wú)法插入(未解決)招生完畢,但學(xué)生尚未選修課程——可以插入學(xué)生情況表刪除異常(減輕,但仍存在)取消選修,不會(huì)刪除學(xué)生信息但刪除系中學(xué)生,仍會(huì)導(dǎo)致學(xué)生信息丟失。(未解決)第三范式(3NF)如果R∈2NF,且它的任何一個(gè)非主屬性都不傳遞依賴于任何主碼,則R是第三范范式,記作R∈3NF。將起傳遞作用的函數(shù)關(guān)系中的主屬性(決定方)和非主屬性取出單獨(dú)構(gòu)成一個(gè)關(guān)系模式,再將它的決定方和關(guān)系式中余下的屬性,加上主碼,構(gòu)另一個(gè)關(guān)系模式去掉關(guān)系模式中的多余項(xiàng)。對(duì)學(xué)生情況進(jìn)行規(guī)范化由于只有系負(fù)責(zé)人傳遞函數(shù)依賴于學(xué)號(hào)(學(xué)號(hào)→系名,系名→系負(fù)責(zé)人)故分解得到系(系名,系負(fù)責(zé)人)學(xué)生表(學(xué)號(hào),姓名,系名)系名(8)系負(fù)責(zé)人(8)管理系李瑞祥學(xué)號(hào)(6)姓名(8)系名(8)980701章涌管理系980702李文利管理系980703王沐陽(yáng)管理系980704楊舒管理系異常問題緩解數(shù)據(jù)冗余降低規(guī)范前學(xué)生情況總字節(jié)數(shù)=(6+8+8+8)*4=120B規(guī)范后學(xué)生表+系的總字節(jié)數(shù)=(8+8)*1+(6+8+8)*4=104B更新異常不再修改系負(fù)責(zé)人只與該系的一個(gè)元組有關(guān)。插入異常不再系成立后可插入系,不需要招生刪除異常不再刪除管理系的所有學(xué)生并不會(huì)將管理系的信息一起刪除進(jìn)一步優(yōu)化將作為外碼的字段所占空間減少,即減少重復(fù)項(xiàng)的空間占用。例如將系名用系號(hào)(2B)表示,課程名用課程號(hào)表示(2B)。系號(hào)(2)系名(8)系負(fù)責(zé)人(8)MD管理系李瑞祥學(xué)號(hào)(6)姓名(8)系號(hào)(2)980701章涌MD980702李文利MD980703王沐陽(yáng)MD980704楊舒MD優(yōu)化前總字節(jié)數(shù)=104B優(yōu)化后總字節(jié)數(shù)=(2+8+8)*1+(6+8+2)*4=82進(jìn)一步優(yōu)化課程表(課程號(hào),課程名)選修(學(xué)號(hào),課程號(hào),成績(jī))優(yōu)化前總字節(jié)數(shù)=(6+10+2)*12=216B優(yōu)化后總字節(jié)數(shù)=(2+10)*3+(6+2+2)*12=156B學(xué)號(hào)(6)課程號(hào)(2)成績(jī)(2)980701185980701278980701380980702170980702286980702390980703184980703275980703370980704178980704272980704390課程號(hào)(2)課程名(10)1市場(chǎng)營(yíng)銷2技術(shù)經(jīng)濟(jì)3生產(chǎn)管理BCNF設(shè)關(guān)系模式R<U,F>∈1NF。如果對(duì)于R的每個(gè)函數(shù)依賴X→Y,若Y?X,則X必含有候選碼,那么R∈BCNF(BoyceCoddNormalForm)。實(shí)際上即說,在BCNF中,每一個(gè)決定屬性集都包含候選碼。BCNF為Boyce和Codd兩個(gè)提出的,比3NF更進(jìn)一步,通常認(rèn)為是修正的第三范式,所以有時(shí)也稱為第三范式。第四范式(4NF)關(guān)系模式R<U,F>∈1NF,如果對(duì)R的每個(gè)非平凡多值依賴X→→Y,(Y?X),X都含有候選碼,則R∈4NF。規(guī)范化過程非規(guī)范化的關(guān)系消去重復(fù)項(xiàng),將關(guān)系模式分解成若干個(gè)規(guī)范化的關(guān)系模式,并指定一個(gè)或若干個(gè)屬性作為主碼。消除決定屬性集非碼的非平凡函數(shù)依賴1NF
↓消除非主屬性對(duì)碼的部分函數(shù)依賴2NF
↓消除非主屬性對(duì)碼的傳遞函數(shù)依賴3NF
↓消除主屬性對(duì)碼的部分和傳遞函數(shù)依賴BCNF
↓消除非平凡且非函數(shù)依賴的多值依賴
4NF
↓消除不是由候選碼所蘊(yùn)含的連接依賴
5NF
面向?qū)ο蠡靖拍顚?duì)象(Object)是一些屬性及專用服務(wù)的封裝,是問題空間中一些東西的抽象。粗略地講,對(duì)象就是E-R模型中的實(shí)體。類和實(shí)例(ClassandInstance)具有相同結(jié)構(gòu)和相同行為的對(duì)象被組合在同一類中,是對(duì)象的抽象,對(duì)應(yīng)E-R模型中的實(shí)體集。實(shí)例是為具體的對(duì)象。消息(Message)和方法(Method)消息是實(shí)現(xiàn)對(duì)象存取或使用的一種方式,是能夠激活對(duì)象的唯一過程。方法是提供對(duì)對(duì)象內(nèi)部屬性訪問的過程,消息可用于訪問其他類的數(shù)據(jù)。繼承(Inheritance)對(duì)象繼承了它所在類的結(jié)構(gòu)、操作和約束,也指一個(gè)類繼承另一個(gè)類的結(jié)構(gòu)、操作和約束。體現(xiàn)了一種共享機(jī)制。類定義classemployee{//定義類雇員
/*Variables變量,屬性*/
string name;//名字
string address;//地址
date start-date;//雇用日期
int salary;//工資
/*Messages消息,方法*/
int annual-salary();//年工資
string get-name();//取得姓名
string get-address();//取得地址
int set-address(stringnew-address);//設(shè)置新地址
int employment-length();//雇用時(shí)間
};ORACLE對(duì)象定義CREATETYPEpersonASOBJECT(--定義對(duì)象人
nameVARCHAR2(30),--姓名
phoneVARCHAR2(20));--電話CREATETYPElineitemASOBJECT(--定義對(duì)象項(xiàng)目
item_nameVARCHAR2(30),--項(xiàng)目名稱
quantityNUMBER,--數(shù)量
unit_priceNUMBER(12,2));--單價(jià)CREATETYPElineitem_tableASTABLEOFlineitem;--定義項(xiàng)目表CREATETYPEpurchase_orderASOBJECT(--定義對(duì)象定購(gòu)合同
idNUMBER,--合同號(hào)
contactperson,--合同人
lineitemslineitem_table,--項(xiàng)目
MEMBERFUNCTION--成員函數(shù)
get_valueRETURNNUMBER);--取值繼承繼承的例子實(shí)現(xiàn)技術(shù)對(duì)象關(guān)系數(shù)據(jù)庫(kù)(ORDBMS)面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)ORDBMS四個(gè)基本特征允許基本類型擴(kuò)充支持復(fù)雜對(duì)象的管理,復(fù)雜對(duì)象指由基本的或用戶定義的類型所構(gòu)成的對(duì)象支持結(jié)構(gòu)、數(shù)據(jù)和函數(shù)的繼承,包括多重繼承對(duì)產(chǎn)生式規(guī)則的支持A→B,B→C類型擴(kuò)充與復(fù)雜對(duì)象CREATETYPEpersonASOBJECT(--定義對(duì)象人
nameVARCHAR2(30),--姓名
phoneVARCHAR2(20));--電話CREATETYPEemployeeASOBJECT(--定義雇員
empperson,--雇員基本信息繼承
salaryNUMBER(6,2));--雇員獨(dú)特信息CREATETYPEcustomerASOBJECT(--定義客戶
custperson,--客戶基本信息繼承
accnoCHAR(6));--客戶獨(dú)特信息面向?qū)ο蟮臄?shù)據(jù)庫(kù)必備的:是指面向?qū)ο蟮臄?shù)據(jù)庫(kù)民必須滿足的特征。它們是復(fù)雜對(duì)象、對(duì)象標(biāo)識(shí)、封裝性、類、繼承性及遲后綁定重載、可擴(kuò)充性、計(jì)算完備性、持久性、輔存管理、并發(fā)性、恢復(fù)和即席查詢功能??蛇x的:是為了使系統(tǒng)更加完善可添加的功能。分別是多繼承性、類型檢查和推理、分布、設(shè)計(jì)事務(wù)處理和版本開放的:是設(shè)計(jì)人員可以選擇的特征。分別是程序設(shè)計(jì)范例、表示系統(tǒng)、類型系統(tǒng)及單一性。常用開發(fā)工具PowerBuilder(PB)DelphiPowerBuilderPB應(yīng)用由用戶可與之交互的窗口和菜單等用戶界面組成。包括標(biāo)準(zhǔn)的Windows控件和PB特有的控件。(參考圖)PB應(yīng)用是事件驅(qū)動(dòng)的。用戶通過在事件中編寫腳本可以控制應(yīng)用程序的運(yùn)行。(參考圖)PB應(yīng)用的編程語(yǔ)言是PowerScript,由各種命令,函數(shù)和處理響應(yīng)的語(yǔ)句組成。(參考圖)
PowerScript提供了豐富的內(nèi)部函數(shù),編程人員可以使用它們?nèi)タ刂茟?yīng)用程序中的對(duì)象和控件。此外還可以定義自己的函數(shù)。面向?qū)ο缶幊獭B的基本組成元素是對(duì)象,具有屬性、事件和函數(shù)(方法)等性質(zhì)。象菜單、窗口等都是對(duì)象,可以封裝、繼續(xù)和多態(tài)處理,增加了可重用性和可擴(kuò)展性。PB支持跨平臺(tái)開發(fā)。用戶開發(fā)的PB應(yīng)用能夠移植到PB支持的各種平臺(tái)上。支持團(tuán)隊(duì)跨平臺(tái)開發(fā)。PB提供連接各種數(shù)據(jù)庫(kù)的接口。(參考圖)PB常用工具ApplicationPainter(應(yīng)用描繪器):用于應(yīng)用對(duì)象WindowsPainter(窗口描繪器):用于生成窗口對(duì)象DataWindowPainter(數(shù)據(jù)窗口描繪器):用于生成數(shù)據(jù)窗口對(duì)象,即定義數(shù)據(jù)顯示格式DatabasePainter(數(shù)據(jù)庫(kù)描繪器):用于定義操縱數(shù)據(jù)庫(kù)MenuPainter(菜單描繪器):用于生成菜單對(duì)象UserObjectPainter(用戶對(duì)象描繪器):用于生成用戶自定義對(duì)象LibraryPainter(庫(kù)管理描繪器):用戶管理應(yīng)用的源程序中的對(duì)象的庫(kù)代碼編輯窗口:用于編輯、編譯腳本和函數(shù),可以直接引用窗口的安全變量和窗口函數(shù),還可以引用全程變量、結(jié)構(gòu)和函數(shù)。調(diào)試器:可以在一個(gè)應(yīng)用的任何對(duì)象中的任何函數(shù)或事件的代碼中設(shè)置斷點(diǎn),檢查變量值,檢查調(diào)用堆棧,單步執(zhí)行程序等DelphiDelphi的編程語(yǔ)言是ObjectPascal。數(shù)據(jù)訪問頁(yè):在該頁(yè)上的控件主要用于說明有關(guān)的數(shù)據(jù)庫(kù)信息,如應(yīng)用程序要訪問的數(shù)據(jù)庫(kù),要訪問的數(shù)據(jù)庫(kù)表,及表中的字段等。例如:Tdatasource(作為數(shù)據(jù)庫(kù)訪問控件和數(shù)據(jù)控制控件的連接),Ttable(表控件),Tquery(查詢控件,支持各種SQL語(yǔ)句),TstoreProc(存儲(chǔ)過程控件,可訪問存儲(chǔ)過程),Tdatabase(連接數(shù)據(jù)庫(kù)),TbatchMove(支持批量數(shù)據(jù)復(fù)制)。數(shù)據(jù)控制頁(yè):該頁(yè)的控件主要用于顯示瀏覽數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息,為用戶提供一個(gè)可視化的界面等。如Tdbgrid(表格數(shù)據(jù)顯示),Treport(報(bào)表輸出)等??梢酝ㄟ^BDE(BorlandDatabaseEngine)連接數(shù)據(jù)庫(kù)Delphi開發(fā)環(huán)境主窗口主菜單項(xiàng)快速命令欄控件選擇板窗體(Delphi的程序由許多個(gè)Forms串成一個(gè)系統(tǒng))對(duì)象觀察器(用來描述控件的屬性特征和動(dòng)作行為,分為屬性和事件兩部分)程序代碼編輯器其他重要工具項(xiàng)目管理器對(duì)象瀏覽器圖像編輯器數(shù)據(jù)庫(kù)體系SQL視圖1視圖2基本表1基本表2基本表3基本表4存儲(chǔ)文件1存儲(chǔ)文件2外模式——視圖模式——基本表內(nèi)模式——文件SQL組成數(shù)據(jù)查詢(dataquery)用于查詢數(shù)據(jù)數(shù)據(jù)操縱(datamanipulation)用于增、刪、改數(shù)據(jù)數(shù)據(jù)定義(datadefinition)用于定義、刪除和修改數(shù)據(jù)模式數(shù)據(jù)控制(datacontrol)用于數(shù)據(jù)訪問權(quán)限的控制SQL特點(diǎn)綜合統(tǒng)一;非過程化;面向集合的操作;一種語(yǔ)法兩種使用方式;簡(jiǎn)單易學(xué);數(shù)據(jù)定義基本對(duì)象主要包括數(shù)據(jù)庫(kù)、表、視圖和索引。表tablecreate、drop、alter視圖viewcreate、drop索引indexcreate、drop數(shù)據(jù)庫(kù)databasecreate、drop數(shù)據(jù)庫(kù)的建立與刪除建立數(shù)據(jù)庫(kù)CREATE
DATABASE<數(shù)據(jù)庫(kù)名>[其他參數(shù)];CREATEDATABASEnewtest;數(shù)據(jù)庫(kù)的刪除DROP
DATABASE
<數(shù)據(jù)庫(kù)名>;DROP
DATABASE
newtest;SQLServer中的數(shù)據(jù)庫(kù)創(chuàng)建CREATEDATABASEdatabase_name
[ON
[<filespec>[,...n]]
[,<filegroup>[,...n]]
]
[LOGON{<filespec>[,...n]}]
[COLLATEcollation_name]
[FORLOAD|FORATTACH]<filespec>::=[PRIMARY]
([NAME=
logical_file_name,]
FILENAME=
'os_file_name'
[,SIZE=
size]
[,MAXSIZE={max_size|UNLIMITED}]
[,FILEGROWTH=
growth_increment])[,...n]<filegroup>::=FILEGROUPfilegroup_name<filespec>[,...n]基本表定義格式:CREATETABLE<表名>(<列名><數(shù)據(jù)類型>[列級(jí)約束][,<列名><數(shù)據(jù)類型>[列級(jí)約束]……][,<表級(jí)約束>]);注:在上面的格式規(guī)定中可以看出,一外表名后的括號(hào)中可以跟若干個(gè)列的定義,列與列之間用逗號(hào)分隔,(方括號(hào)表示可選項(xiàng),尖括號(hào)表示必選項(xiàng),圓括號(hào)為實(shí)際應(yīng)用的括號(hào))。另外,SQL語(yǔ)言通常以分號(hào)結(jié)尾(在少數(shù)SQL語(yǔ)言的實(shí)際使用環(huán)境中,不以分號(hào)結(jié)尾)。簡(jiǎn)單示例例:CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20),SsexCHAR(1),SageINT,SdeptCHAR(15));定義及約束條件存于數(shù)據(jù)字典中示例CreateTABLESC(SNO char(7) notnull,CNO char(4) notnull,G smallint notnulldefault0,Primarykey(SNO,CNO),Foreignkeystudent_no(SNO) ReferencesSondeleteCASCADEonupdateSETNULL,Foreignkeycourse_no(CNO) ReferencesCondeleteSETNULLonupdateRESTRICT,Unique(SNO,CNO),Check(G>=0andG<=100));刪除基本表格式:DROPTABLE<表名>;例:刪除表Student。DROPTABLEStudent;基本表定義一旦被刪除,表中的數(shù)據(jù)及在此表上建立的索引都將自動(dòng)被刪除,但與其相關(guān)的視圖仍然保留,卻已無(wú)法引用。修改基本表格式:ALTERTABLE<表名>[ADD<新列名><數(shù)據(jù)類型>[完整性約束]][DROP<完整性約束名>][MODIFY<列名><數(shù)據(jù)類型>];修改基表包括下列幾種方式:修改方式使用的關(guān)鍵字增加新列ADD增加新的完整性約束條件修改原有的列定義MODIFY刪除已有的列定義DROP其它(如改變約束的使、能狀態(tài))enable、disable修改示例例:在學(xué)生表(Student)中增加新列Scome,表示入學(xué)時(shí)間。ALTERTABLEStudentADDScomeDATE;注:新增列為空值(允許空值),而不能為非空(列約束為NOTNULL),否則可能破壞已有的數(shù)據(jù)。在有些實(shí)際的數(shù)據(jù)庫(kù)系統(tǒng)中,允許在數(shù)據(jù)庫(kù)表中為空(沒有數(shù)據(jù))的情形下,新增非空列。例:改變列Sage的數(shù)據(jù)類型定義。ALTERTABLEStudentMODIFYSageSMALLINT;注:改變列的數(shù)據(jù)類型定義,一般只允許擴(kuò)展原有的數(shù)據(jù)類型長(zhǎng)度;而對(duì)于減小數(shù)據(jù)類型長(zhǎng)度或改變數(shù)據(jù)類型(如INT改為DATE)則會(huì)有限制。一般地,只有在表中列值為空時(shí)允許這類修改。示例例:刪除列Sno的約束。ALTERTABLEStudentDROPUNIQUE(Sno);如果要?jiǎng)h除屬性(列),一般需要幾個(gè)步驟:將保留部分及其內(nèi)容復(fù)制到一個(gè)新表(可以使用create……asselect……這樣的句式完成)。刪除原表。將復(fù)制的表重新命名。關(guān)于視圖視圖的主要作用是減少冗余和簡(jiǎn)化查詢?;碇淮娣呕緮?shù)據(jù),由基本數(shù)據(jù)經(jīng)過各種計(jì)算派生出的數(shù)據(jù)一般是不存儲(chǔ)的。在已有字段上的視圖定義當(dāng)然也不含這些派生數(shù)據(jù)。視圖中的數(shù)據(jù)不實(shí)際存儲(chǔ)。根據(jù)基表中的列派生出的屬性列不實(shí)際存在,故稱屬性列。定義視圖格式:CREATEVIEW<視圖名>[(<列名1>[,<列名2>]……)]AS<子查詢>[WITHCHECKOPTION];子查詢可以是任意復(fù)雜的SELECT語(yǔ)句,但通常不允許含有ORDERBY子句和DISTINCT短語(yǔ)。WITH子句表示對(duì)視圖進(jìn)行UPDATE、INSERT和DELETE操作時(shí)保證更新、插入和刪除的行滿足視圖定義的謂詞條件(即子查詢的條件表達(dá)式)。視圖的列名可以省略,但以下情況需要明確組成視圖的所有列名(或全部省略,或全部指定):其中某個(gè)目標(biāo)列不是單純的屬性名,而是集函數(shù)或列表達(dá)式。多表連接時(shí)選出了幾個(gè)同名列作為視圖的字段。需要在視圖中為某個(gè)列啟用新的更合適的名字。刪除視圖格式:DROPVIEW<視圖名>;視圖所基的表如果被刪除,視圖將失效,基于該視圖的其它視圖也失效。但視圖的定義在未執(zhí)行DROPVIEW語(yǔ)句前始終存在于數(shù)據(jù)字典建立索引索引的作用在于加快表的檢索(查詢)速度。系統(tǒng)在存取數(shù)據(jù)時(shí)會(huì)自動(dòng)選擇合適的索引作為存取路徑,用戶不必也不能選擇索引。索引對(duì)于用戶而言只是作為優(yōu)化SQL語(yǔ)句的參考(如,如何充分利用現(xiàn)有的索引)。至于系統(tǒng)以何種方式建立索引,要引用哪些索引,如何引用都無(wú)須關(guān)心。格式:CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]……);其中次序有兩種,即升序(ASC,缺省值)和DESC(降序)。UNIQUE表示索引值唯一,在此索引的約束下,元組的索引項(xiàng)不能有相同的值。CLUSTER表示要建立的索引是聚簇索引。示例例:為表Student中的列Sno建立唯一索引。CREATEUNIQUEINDEXStusnoONStudent(Sno);例:為表Course中的列Cno建立唯一索引。CREATEUNIQUEINDEXCoucnoONCourse(Cno);例:為表SC中的列Sno和Cno建立唯一索引,且Sno升序,Cno降序。CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);刪除索引一旦建立索引,數(shù)據(jù)庫(kù)系統(tǒng)將負(fù)責(zé)使用、維護(hù),用戶不需要干預(yù)。使用索引能夠減少查詢的操作時(shí)間,但在數(shù)據(jù)增、刪、改時(shí),系統(tǒng)會(huì)花費(fèi)時(shí)間、空間來維護(hù)相關(guān)索引表中的索引項(xiàng),又會(huì)增加開銷,所以索引并不是建得越多越好。有時(shí)需要對(duì)索引進(jìn)行調(diào)整,如刪除索引。格式:DROPINDEX<索引名>;例:刪除索引Stusname。DROPINDEXStusname;刪除指定的索引后,系統(tǒng)會(huì)刪除索引內(nèi)容,并將索引的定義(描述)也從數(shù)據(jù)字典中刪除。查詢格式格式:SELECT[ALL|DISTINCT]<目標(biāo)列表達(dá)式>[,<目標(biāo)列表達(dá)式>]……FROM<表名或視圖名>[,<表名或視圖名>]……[WHERE<條件表達(dá)式>][GROUPBY<列名1>[HAVING<條件表達(dá)式>]][ORDERBY<列名2>[ASC|DESC]];注:“|”表示選擇項(xiàng),其中排在前面的ALL和ASC為缺省選擇項(xiàng)。目標(biāo)列表達(dá)式可以是列名,也可以是算術(shù)表達(dá)式、字符串常量、函數(shù)等。列名1和列名2都可以出現(xiàn)多個(gè)列名示例用表及其關(guān)系SnoSnameSsexSageSdept95001張三男20CS96010李思思女19IS95041王五男17CS97101鄭路路女18MA96104任西女20MA96023丁八男19ISCnoCnameCpnoCcredit1數(shù)據(jù)庫(kù)542數(shù)學(xué)
23信息系統(tǒng)144操作系統(tǒng)35數(shù)據(jù)結(jié)構(gòu)246C語(yǔ)言54StudentCourseSnoCnoGrade950011919500128395001386950412789504138295041692960104819610446996023494SCStudentCourseSCmn無(wú)條件查詢SELECTSname,2004-SageFROMStudent;Sage原來表示年齡,如果當(dāng)前年份為2004年,表達(dá)式2004-Sage表示出生年份。SELECTSname,’YearofBirth:’,2004-Sage,ISLOWER(Sdept)FROMStudent;這例中使用了字符串常量和函數(shù),字符串常量用于改變列的顯示標(biāo)題,函數(shù)則作用于每一檢索到的元組。Sname2004-Sage張三1984李思思1985王五1987鄭路路1986任西1984丁八1985Sname‘YearofBirth:’2004-SageISLOWER(Sdept)張三YearofBirth:1984cs李思思YearofBirth:1985is王五YearofBirth:1987cs鄭路路YearofBirth:1986ma任西YearofBirth:1984ma丁八YearofBirth:1985is查詢滿足條件的元組查詢條件用條件表達(dá)式表示,使用了下面的運(yùn)算符:比較運(yùn)算符=,>,<,>=,<=,!=,<>,!>,!<,NOT+比較符確定范圍BETWEEN……AND……,NOTBETWEEN……AND……確定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值判斷ISNULL,ISNOTNULL邏輯運(yùn)算符AND,OR,NOT條件查詢SELECTSnameFROMStudentWHERESdept=’CS’;SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;SELECTSname,SsexFROMStudentWHERESdeptIN(‘IS’,’MA’,’CS’);例:找出95級(jí)學(xué)生的信息。SELECT*FROMStudentWHERESnoLIKE‘95%’;其中學(xué)號(hào)的前兩位表示該學(xué)生的所在級(jí)號(hào)。SnoSnameSsexSageSdept95001張三男20CS95041王五男17CSSnameSsex張三男李思思女王五男鄭路路女任西女丁八男SnameSdeptSage張三CS20任西MA20Sname張三王五排序查詢?cè)谂判驎r(shí)可以指定多個(gè)列,系統(tǒng)將按照指定列的順序來依次列示結(jié)果。例:顯示所有學(xué)生的信息,按系排序(不指定升序或降序,通常使用缺省值,一般升序?yàn)镾QL語(yǔ)言中的缺省值),同系中按年齡從大到小排列(降序)。SELECT*FROMStudentORDERBYSdept,SageDESC;有時(shí)也可以使用列的序號(hào)來指定排序的列,這在列為常量、函數(shù)等較長(zhǎng)列名時(shí)尤其有效。SELECT*FROMStudentORDERBY5,4DESC;這里的“5”即指列Sdept,“4”即指Sage。Sno、SnameSsexSageSdept95001張三男20CS95041王五男17CS96010李思思女19IS96023丁八男19IS96104任西女20MA97101鄭路路女18MASno、SnameSsexSageSdept95001張三男20CS96010李思思女19IS95041王五男17CS97101鄭路路女18MA96104任西女20MA96023丁八男19IS嵌套查詢例:查詢其它系中比IS系某一學(xué)生年齡小的學(xué)生名單。SELECTSname,SageFROMStudentWHERESage<ANY(SELECTSageFROMStudentWHERESdept=’IS’)ANDSdept<>’IS’ORDERBYSageDESC;例:查詢所有選修了1號(hào)課程和學(xué)生姓名。SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROMSCWHERESno=Student.SnoANDCno=‘1’);計(jì)算查詢又稱集合函數(shù)、組函數(shù)、分組函數(shù)、聚集函數(shù)等,通過與分組短語(yǔ)一起使用。作用于元組集。COUNT([DISTINCT|ALL]*)統(tǒng)計(jì)元組個(gè)數(shù)COUNT([DISTINCT|ALL]<列名>)統(tǒng)計(jì)一列中值的個(gè)數(shù)SUM([DISTINCT|ALL]<列名>)計(jì)算一列值的總和(列須是數(shù)值型)AVG([DISTINCT|ALL]<列名>)計(jì)算一列值的平均值(列須是數(shù)值型)MAX([DISTINCT|ALL]<列名>)計(jì)算一列值的最大值MIN([DISTINCT|ALL]<列名>)計(jì)算一列值的最小值示例例:求總的學(xué)生數(shù)。SELECTCOUNT(*)FROMStudent;例:求選修了課程的學(xué)生數(shù)。SELECTCOUNT(DISTINCTSno)FROMSC;例:求課程4的平均成績(jī)。SELECTAVG(Grade)FROMSCWHERECno=’4’;例:求課程4的最高分?jǐn)?shù)。SELECTMAX(Grade)FROMSCWHERECno=’4’;COUNT(*)6COUNT(DISTINCTSno)5AVG(Grade)81.333333333MAX(Grade)94與分組結(jié)合將查詢結(jié)果表的各行按一列或多列取值相等的原則進(jìn)行分組。目的是細(xì)化集合函數(shù)的作用對(duì)象。如果不分組,集合函數(shù)的作用對(duì)象就是整個(gè)結(jié)果;如果分組,集合函數(shù)的作用對(duì)象就是每一組。例:找出每門的選修人數(shù)。SELECTCno,COUNT(Sno)FROMSCGROUPBYCno;例:查詢選修人數(shù)超過2人(不含2人)的課程號(hào)。SELECTCnoFROMSCGROUPBYSnoHAVINGCOUNT(*)>2;其中HAVING子句用于對(duì)分組結(jié)果進(jìn)行篩選。CnoCOUNT(Sno)1122326143Cno4數(shù)據(jù)操作插入數(shù)據(jù)——INSERT修改數(shù)據(jù)——UPDATE刪除數(shù)據(jù)——DELETE插入數(shù)據(jù)插入單個(gè)元組格式:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>]……)]VALUES(<常量1>[,<常量2>]……);插入多個(gè)元組(子查詢結(jié)果)格式:INSERTINTO<表名>[(<屬性列1>[,<屬性列2>]……)]<子查詢>;例:對(duì)每一個(gè)系,求學(xué)生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫(kù)。INSERTINTODeptage(Sdept,Avgage)SELECTSdept,AVG(Sage)FROMStudentGROUPBYSdept;修改數(shù)據(jù)格式:UPDATE<表名>SET<列名>=<表達(dá)式>[,<列名>=<表達(dá)式>]……[WHERE<條件>];根據(jù)條件的指定可以
修改一個(gè)元組的值,也可以
修改多個(gè)元組的值,此外也可以使用
帶子查詢的修改語(yǔ)句。例:將計(jì)算機(jī)科學(xué)系的學(xué)生的成績(jī)置零。UPDATESCSETGrade=0WHERE‘CS’=(SELECTSdeptFROMStudentWHEREStudent.Sno=SC.Sno);一致性問題UPDATE語(yǔ)句一次只能操作一個(gè)表。這會(huì)帶來數(shù)據(jù)庫(kù)的一致性問題。例如,學(xué)號(hào)為95007的學(xué)生因病休學(xué)一年,復(fù)學(xué)后需要將其學(xué)號(hào)改為96089,由于Student表和SC表都有關(guān)于95007的信息,因此兩個(gè)表都需要修改,而這種修改只能通過兩條UPDATE語(yǔ)句進(jìn)行。在執(zhí)行了一句修改后(例如對(duì)Student中相應(yīng)的記錄做了修改),數(shù)據(jù)庫(kù)中的數(shù)據(jù)處于不一致狀態(tài),數(shù)據(jù)的參照完整性受到破壞(此時(shí)原來95007選修的課程還沒有歸于96089)。只有兩條修改語(yǔ)句都執(zhí)行了,數(shù)據(jù)庫(kù)才會(huì)再
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023-2024學(xué)年浙江攝影版(三起)(2020)小學(xué)信息技術(shù)五年級(jí)下冊(cè) 第二單元 第8課 變量計(jì)數(shù)(說課稿)
- 《認(rèn)識(shí)小數(shù)》(說課稿)-2023-2024學(xué)年三年級(jí)下冊(cè)數(shù)學(xué)蘇教版
- Unit 5 The colourful world Part C Reading time大單元整體說課稿表格式-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 3《我很誠(chéng)實(shí)》(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治三年級(jí)下冊(cè)
- 信息技術(shù)必修1數(shù)據(jù)與計(jì)算2.2《做出判斷的分支》說課稿
- 第三章 函數(shù)概念與性質(zhì) 小結(jié)說課稿-2024-2025學(xué)年高一上學(xué)期數(shù)學(xué)人教A版(2019)必修第一冊(cè)
- 2025年度食堂員工培訓(xùn)與管理服務(wù)合同6篇
- 第六單元《勸學(xué)》說課稿 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 第六課 具有“超鏈接”功能的作品(說課稿)2024-2025學(xué)年六年級(jí)上冊(cè)信息技術(shù)川教版
- 第二單元圖像處理的基本方法第11課一、《藝術(shù)相框效果》說課稿 2023-2024學(xué)年人教版初中信息技術(shù)七年級(jí)下冊(cè)
- 工程款支付報(bào)審表
- 《項(xiàng)目施工組織設(shè)計(jì)開題報(bào)告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實(shí)驗(yàn)室評(píng)審不符合項(xiàng)整改報(bào)告
- 農(nóng)民工考勤表(模板)
- 承臺(tái)混凝土施工技術(shù)交底
- 臥床患者更換床單-軸線翻身
- 計(jì)量基礎(chǔ)知識(shí)培訓(xùn)教材201309
- 中考英語(yǔ) 短文填詞、選詞填空練習(xí)
- 阿特拉斯基本擰緊技術(shù)ppt課件
- 新課程理念下的班主任工作藝術(shù)
評(píng)論
0/150
提交評(píng)論